1 subroutine eslnom ( idfmed, nomamd, lnomam,
3 > typrep, nomaxe, uniaxe,
4 > ulsort, langue, codret )
5 c ______________________________________________________________________
9 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
11 c Version originale enregistree le 18 juin 1996 sous le numero 96036
12 c aupres des huissiers de justice Simart et Lavoir a Clamart
13 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
14 c aupres des huissiers de justice
15 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
17 c HOMARD est une marque deposee d'Electricite de France
23 c ______________________________________________________________________
25 c Entree-Sortie - Lecture - NOm du Maillage
27 c ______________________________________________________________________
28 c Remarque : eslnom et eslnof sont des clones
29 c ______________________________________________________________________
31 c . nom . e/s . taille . description .
32 c .____________________________________________________________________.
33 c . idfmed . e . 1 . identificateur du fichier de .
34 c . . . . maillage d'entree .
35 c . nomamd . e . char64 . nom du maillage MED .
36 c . lnomam . e . 1 . longueur du nom du maillage voulu .
37 c . sdim . s . 1 . dimension de l'espace .
38 c . mdim . s . 1 . dimension du maillage .
39 c . typrep . s . 1 . type de repere .
40 c . nomaxe . s . 3 . nom des axes de coordonnees .
41 c . uniaxe . s . 3 . unite des axes de coordonnees .
42 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
43 c . langue . e . 1 . langue des messages .
44 c . . . . 1 : francais, 2 : anglais .
45 c . codret . es . 1 . code de retour des modules .
46 c . . . . 0 : pas de probleme .
47 c . . . . 3 : le maillage est absent du fichier .
48 c ______________________________________________________________________
51 c 0. declarations et dimensionnement
54 c 0.1. ==> generalites
60 parameter ( nompro = 'ESLNOM' )
79 character*16 nomaxe(3), uniaxe(3)
82 integer ulsort, langue, codret
84 c 0.4. ==> variables locales
93 integer ptrav1, ptrav2
94 integer codre1, codre2
97 character*8 ntrav1, ntrav2
103 parameter ( nbmess = 150 )
104 character*80 texte(nblang,nbmess)
105 c ______________________________________________________________________
113 #ifdef _DEBUG_HOMARD_
114 write (ulsort,texte(langue,1)) 'Entree', nompro
122 texte(1,4) = '(''Nombre de maillages :'',i3)'
123 texte(1,5) = '(''Nom du maillage numero'',i3,'' : '',a64)'
125 texte(2,4) = '(''Number of meshes:'',i3)'
126 texte(2,5) = '(''Name of mesh #'',i3,'': '',a64)'
130 #ifdef _DEBUG_HOMARD_
131 write (ulsort,texte(langue,22)) nomamd(1:lnomam)
135 c 2. le maillage est-il present ?
137 c 2.1. ==> combien de maillages
138 #ifdef _DEBUG_HOMARD_
139 write (ulsort,90002) '2.1. combien de maillages ; codret', codret
142 if ( codret.eq.0 ) then
144 #ifdef _DEBUG_HOMARD_
145 write (ulsort,texte(langue,3)) 'MMHNMH', nompro
147 call mmhnmh ( idfmed, nbmaie, codret )
148 if ( codret.ne.0 ) then
149 write (ulsort,texte(langue,20))
150 #ifdef _DEBUG_HOMARD_
152 write (ulsort,texte(langue,4)) nbmaie
158 c 2.2. ==> structures de stockage des noms des maillages du fichier
159 #ifdef _DEBUG_HOMARD_
160 write (ulsort,90002) '2.2. structures ; codret', codret
163 if ( codret.eq.0 ) then
166 call gmalot ( ntrav1, 'chaine ', iaux , ptrav1, codre1 )
167 call gmalot ( ntrav2, 'entier ', nbmaie , ptrav2, codre2 )
169 codre0 = min ( codre1, codre2 )
170 codret = max ( abs(codre0), codret,
175 c 2.3. ==> numero et dimension du maillage voulu
176 #ifdef _DEBUG_HOMARD_
177 write (ulsort,90002) '2.3. numero et dimension ; codret', codret
180 if ( codret.eq.0 ) then
182 do 23 , iaux = 1 , nbmaie
184 c 2.3.1. ==> nom et dimension du maillage numero iaux
185 c sdim : Dimension de l'espace de calcul.
186 c mdim : Dimension du maillage.
188 if ( codret.eq.0 ) then
189 c 12345678901234567890123456789012
192 #ifdef _DEBUG_HOMARD_
193 write (ulsort,texte(langue,3)) 'MMHMII', nompro
195 call mmhmii ( idfmed, iaux,
196 > saux64, sdim, mdim, typema, sau200,
197 > saux16, stype, nstep,
198 > typrep, nomaxe, uniaxe,
200 if ( codret.ne.0 ) then
201 write (ulsort,texte(langue,20))
206 if ( codret.eq.0 ) then
207 call utlgut ( jaux, saux64,
208 > ulsort, langue, codret )
211 #ifdef _DEBUG_HOMARD_
212 write (ulsort,texte(langue,5)) iaux, saux64
215 c 2.3.2. ==> archivage de ce nom
217 if ( codret.eq.0 ) then
219 call utchs8 ( saux64, jaux, smem(ptrav1+8*(iaux-1)),
220 > ulsort, langue, codret )
224 if ( codret.eq.0 ) then
226 imem(ptrav2+iaux-1) = jaux
230 c 2.3.3. ==> comparaison avec le nom voulu
231 c une fois le maillage trouve, on s'assure qu'il est decrit
234 if ( codret.eq.0 ) then
235 if ( jaux.eq.lnomam ) then
236 if ( saux64(1:jaux).eq.nomamd(1:lnomam) ) then
237 if ( typema.ne.ednost ) then
238 write (ulsort,texte(langue,22)) nomamd(1:lnomam)
239 write (ulsort,texte(langue,28)) typema
249 c 2.3.4. ==> le maillage voulu est inconnu dans ce fichier
252 write (ulsort,texte(langue,12)) nomamd(1:lnomam)
253 write (ulsort,texte(langue,4)) nbmaie
255 do 234 , iaux = 1 , nbmaie
257 jaux = imem(ptrav2+iaux-1)
258 call uts8ch ( smem(ptrav1+8*(iaux-1)), jaux, saux64,
259 > ulsort, langue, codre1 )
260 write (ulsort,texte(langue,5)) iaux, saux64
270 if ( codret.eq.0 ) then
272 #ifdef _DEBUG_HOMARD_
273 write (ulsort,90002) 'sdim', sdim
274 write (ulsort,90002) 'mdim', mdim
277 call gmlboj ( ntrav1 , codre1 )
278 call gmlboj ( ntrav2 , codre2 )
280 codre0 = min ( codre1, codre2 )
281 codret = max ( abs(codre0), codret,
290 if ( codret.ne.0 ) then
294 write (ulsort,texte(langue,1)) 'Sortie', nompro
295 write (ulsort,texte(langue,2)) codret
299 #ifdef _DEBUG_HOMARD_
300 write (ulsort,texte(langue,1)) 'Sortie', nompro