1 subroutine utmczr ( ncazor, nbzord,
2 > ulsort, langue, codret )
3 c ______________________________________________________________________
7 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
9 c Version originale enregistree le 18 juin 1996 sous le numero 96036
10 c aupres des huissiers de justice Simart et Lavoir a Clamart
11 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
12 c aupres des huissiers de justice
13 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
15 c HOMARD est une marque deposee d'Electricite de France
21 c ______________________________________________________________________
23 c UTilitaire : Mot-Cle - caracterisation des Zones a Raffiner
25 c ______________________________________________________________________
27 c . nom . e/s . taille . description .
28 c .____________________________________________________________________.
29 c . ncazor . es . char*8 . nom de l'objet des zones a raffiner .
30 c . nbzord . s . 1 . nombre de zones a raffiner/deraffiner .
31 c . . . . si negatif, les zones sont 2D (en x et y) .
32 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
33 c . langue . e . 1 . langue des messages .
34 c . . . . 1 : francais, 2 : anglais .
35 c . codret . es . 1 . code de retour des modules .
36 c . . . . 0 : pas de probleme .
37 c . . . . 1 : la configuration est perdue .
38 c . . . . 2 : probleme de lecture .
39 c . . . . 8 : Allocation impossible .
40 c ______________________________________________________________________
43 c 0. declarations et dimensionnement
46 c 0.1. ==> generalites
52 parameter ( nompro = 'UTMCZR' )
58 parameter ( nbmcle = 20 )
74 integer ulsort, langue, codret
76 c 0.4. ==> variables locales
86 integer adnore, adlono, adpono, adnofi, adnoos
93 parameter ( nbmess = 20 )
94 character*80 texte(nblang,nbmess)
96 c 0.5. ==> initialisations
97 c ______________________________________________________________________
103 c 1.1. ==> tout va bien
107 c 1.2. ==> les messages
111 #ifdef _DEBUG_HOMARD_
112 write (ulsort,texte(langue,1)) 'Entree', nompro
116 texte(1,4) = '(''Nombre de zones a raffiner :'',i8)'
117 texte(1,9) = '(''Le mot-cle '',a,'' apparait :'',i8,'' fois.'')'
118 texte(1,11) = '(''La configuration est perdue ?'')'
119 texte(1,12) = '(''Probleme de lecture.'')'
120 texte(1,13) = '(''Donnees incoherentes.'')'
122 >'(''Impossible d''''allouer la structure memorisant les choix.'')'
124 texte(2,4) = '(''Number of zones to refine :'',i8)'
125 texte(2,9) = '(''Keyword '',a,'' appears :'',i8,'' times.'')'
126 texte(2,11) = '(''Configuration is lost ?'')'
127 texte(2,12) = '(''Problem while reading.'')'
128 texte(2,13) = '(''Data without coherence.'')'
129 texte(2,18) = '(''Structure of choices cannot be allocated.'')'
132 c 2. recherche du nombre d'occurences du mot-cle de type
133 c Le nombre de zones de raffinement est egal au nombre de
134 c fois ou un type a ete declare
137 if ( codret.eq.0 ) then
142 call utfin1 ( motcle, numero,
143 > jaux, option, loptio,
144 > ulsort, langue, codre0 )
145 #ifdef _DEBUG_HOMARD_
146 write (ulsort,texte(langue,9)) motcle, jaux
149 c 2.2. ==> aucune option n'a ete precisee
151 if ( codre0.eq.2 ) then
156 c 2.3. ==> probleme de lecture
158 elseif ( codre0.ne.0 ) then
162 c 2.4. ==> on peut y aller
172 if ( codret.eq.0 ) then
176 #ifdef _DEBUG_HOMARD_
177 write (ulsort,texte(langue,4)) nbzord
186 c 3. on alloue le receptacle des caracteristiques des zones
188 #ifdef _DEBUG_HOMARD_
189 write (ulsort,*) '3. Allocation ; codret = ', codret
192 if ( nbzord.ne.0 ) then
194 if ( codret.eq.0 ) then
197 call gmalot ( ncazor, 'reel ', iaux, adzord, codret )
204 c 4. recherche des adresses des objets GM lies aux noms des fichiers
207 #ifdef _DEBUG_HOMARD_
208 write (ulsort,*) '4. Recherche ; codret = ', codret
211 if ( nbzord.ne.0 ) then
213 if ( codret.eq.0 ) then
215 #ifdef _DEBUG_HOMARD_
216 write (ulsort,texte(langue,3)) 'UTAD80', nompro
218 call utad80 ( nbfich,
219 > adnore, adlono, adpono, adnofi, adnoos,
220 > ulsort, langue, codret )
227 c 5. remplissage des tableaux
230 if ( nbzord.ne.0 ) then
232 if ( codret.eq.0 ) then
234 #ifdef _DEBUG_HOMARD_
235 write (ulsort,texte(langue,3)) 'UTMCZ0', nompro
237 call utmcz0 ( nbzord, rmem(adzord),
239 > smem(adnore), imem(adlono), imem(adpono),
240 > smem(adnofi), smem(adnoos),
241 > ulsort, langue, codret )
245 #ifdef _DEBUG_HOMARD_
246 if ( codret.eq.0 ) then
247 call gmprsx (nompro, ncazor )
257 if ( codret.ne.0 ) then
261 write (ulsort,texte(langue,1)) 'Sortie', nompro
262 write (ulsort,texte(langue,2)) codret
263 write (ulsort,texte(langue,10+codret))
267 #ifdef _DEBUG_HOMARD_
268 write (ulsort,texte(langue,1)) 'Sortie', nompro