1 subroutine gmdesa ( nomtab )
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 ______________________________________________________________________
21 c ......................................................................
22 c . derniere modif octo 93 gn double precision
23 c . modif juin 93 jyb prise en compte du type character*8
24 c . modif 15/06/89 jc jyb
25 c ......................................................................
28 c . permet de liberer la place occupee par un tableau reel, entier
29 c . ou caractere*8 en indiquant simplement
30 c . le nom sous lequel il a ete cree.
31 c . 'attention' : ceci suppose que le nom apparaisse une fois
35 c . nomtab --> chaine de 8 car. maxi contenant le nom du tableau
36 c . (reel ou entier) a liberer
37 c ......................................................................
40 c 0. declarations et dimensionnement
43 c 0.1. ==> generalites
49 parameter ( nompro = 'GMDESA' )
71 c 0.4. ==> variables locales
79 integer icptr, numr, icpti, numi, icpts, nums
85 parameter ( nbmess = 10 )
86 character*80 texte(nblang,nbmess)
95 write (ulsort,texte(langue,1)) 'Entree', nompro
100 c 2. recherche des caracteristiques associe au tableau demande
103 c 2.1. ==> nature du nom
104 c aucun caractere n'est interdit, mais on met un blanc
105 c dans le tableau pour ne plus avoir de messages ftnchek
109 call gmntve ( nomtab, nomvar, nbcain, carint, coergm )
111 if ( coergm.ne.0 ) then
112 write(ulsort,20000) nomtab
113 20000 format( 2x,' mauvais appel au spg gmdesa',
114 > /,4x,' ===> arret dans le gestionnaire de memoire')
120 c 2.1. ==> controle de nom donne en double dans une categorie
123 do 21 iaux = 1, nballr
124 if ( nomvar.eq.nomalr(iaux) ) then
129 if ( icptr.gt.1) then
131 write(ulsort,21000) nomvar
132 21000 format(//2x,' ===== spg gmdesa ======',/2x,' le tableau ',
133 > a8,' apparait plusieurs fois dans les reels')
137 do 23 iaux = 1, nballi
138 if ( nomvar.eq.nomali(iaux) ) then
143 if ( icpti.gt.1) then
145 write(ulsort,23000) nomvar
146 23000 format(//2x,' ===== spg gmdesa ======',/2x,'le tableau ',
147 > a8,' apparait plusieurs fois dans les entiers')
151 do 24 iaux = 1, nballs
152 if ( nomvar.eq.nomals(iaux) ) then
157 if ( icpts.gt.1) then
159 write(ulsort,24000) nomvar
160 24000 format(//2x,' ===== spg gmdesa ======',/2x,'le tableau ',
161 > a8,' apparait plusieurs fois dans les character*8')
164 if ( coergm.eq.0 ) then
165 iaux = icptr + icpti + icpts
166 if ( iaux.eq.0 ) then
167 write(ulsort,26001) nomvar
168 26001 format(//2x,' ===== spg gmdesa ======',/2x,'le tableau ',
172 if ( iaux.gt.1 ) then
173 write(ulsort,26002) nomvar
174 26002 format(//2x,' ===== spg gmdesa ======',/2x,'le tableau ',
175 > a8,' apparait dans plusieurs types simples.')
180 c verification globale du code retour
182 if ( coergm. ne .0) then
183 write(ulsort,20001) nomvar , coergm
184 20001 format(/2x,' ======= spg gmdesa =======',/2x,
185 > 'la recherche du tableau ', a8,' s''est mal passee ',i2)
190 c 3.la demande etant valide, on desalloue le tableau en fonction du type
191 c on precise que l'on supprime la memoire
194 c 3.1. ==> on precise que l'on supprime la memoire
198 c 3.2. ==> c'est parti
202 if ( icptr . ne . 0 ) then
205 call gmdesr ( nomtab , ilong, detlg0 )
211 if ( icpti . ne . 0 ) then
214 call gmdesi ( nomtab , ilong, detlg0 )
220 if ( icpts . ne . 0 ) then
223 call gmdess ( nomtab , ilong, detlg0 )
233 if ( coergm.ne.0 ) then