1 subroutine gbralo ( type1, long, iad, codret )
2 c ______________________________________________________________________
6 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
8 c Version originale enregistree le 18 juin 1996 sous le numero 96036
9 c aupres des huissiers de justice Simart et Lavoir a Clamart
10 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
11 c aupres des huissiers de justice
12 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
14 c HOMARD est une marque deposee d'Electricite de France
20 c ______________________________________________________________________
23 c utilisee uniquement en mode gm dynamique,
24 c dans le sens reduction de taille,
25 c avec une taille finale > 0
26 c ______________________________________________________________________
28 c . nom . e/s . taille . description .
29 c .____________________________________________________________________.
30 c . type1 . e . char*1 . type du tableau a reallouer .
31 c . long . e . 1 . nouvelle longueur du tableau .
32 c . iad . es . 1 . adresse du premier element du tableau .
33 c . . . . (adresse memoire) .
34 c . codret . s . 1 . code de retour .
35 c . codret . s . 1 . 0 : tout va bien .
36 c ______________________________________________________________________
39 c 0. declarations et dimensionnement
42 c 0.1. ==> generalites
59 c 0.4. ==> variables locales
64 c 0.5. ==> initialisations
66 c ______________________________________________________________________
72 texte(3) = 'L''adresse est hors des limites de la pile (heap). '
73 texte(4) = 'La zone a deja ete liberee. '
74 texte(5) = 'L''adresse n''est pas au debut d''un bloc. '
77 c 2. recherche de la taille selon le type de tableau a reallouer
80 if ( type1.eq.'i'.or.type1.eq.'I' ) then
82 elseif ( type1.eq.'s'.or.type1.eq.'S' ) then
84 elseif ( type1.eq.'r'.or.type1.eq.'R' ) then
87 write(ulsort,*) ' gbralo type inconnu ', type1
88 call ugstop('gbralo',ulsort,0,1,1)
92 c 3. reallocation effective
94 c (attention: dmralo ne garantit pas que l'adresse de depart iad
95 c ne sera pas changee)
99 cgn write(ulsort,*) 'appel de dmralo avec iad = ', iad
100 cgn write(ulsort,*) 'appel de dmralo avec size = ', size
101 call dmralo ( iad, size, codret )
102 cgn write(ulsort,*) 'retour de dmralo'
104 if ( codret.ne.0 ) then
105 write (ulsort,*) ' GBRALO : erreur a la re-allocation'
106 write (ulsort,*) 'Code de retour de DMRALO : ', codret
107 if ( codret.ge.-5 .and. codret.le.-3 ) then
108 write (ulsort,*) texte(abs(codret))
110 write (ulsort,*) 'Type : ', type1
111 write (ulsort,*) 'Adresse : ', iad
112 write (ulsort,*) 'Taille voulue : ', long