1 subroutine eslen1 ( idfmed, nomamd,
5 > ulsort, langue, codret)
7 c ______________________________________________________________________
11 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
13 c Version originale enregistree le 18 juin 1996 sous le numero 96036
14 c aupres des huissiers de justice Simart et Lavoir a Clamart
15 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
16 c aupres des huissiers de justice
17 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
19 c HOMARD est une marque deposee d'Electricite de France
25 c ______________________________________________________________________
27 c Entree-Sortie : LEcture des Noeuds - 1
29 c ______________________________________________________________________
30 c . nom . e/s . taille . description .
31 c .____________________________________________________________________.
32 c . idfmed . e . 1 . identificateur du fichier MED .
33 c . nomamd . e . char64 . nom du maillage MED voulu .
34 c . nhnoeu . e . char8 . nom de l'objet decrivant les noeuds .
35 c . dimcst . e . 1 . dimension de la coordonnee constante .
36 c . . . . eventuelle, 0 si toutes varient .
37 c . ltbiau . e . 1 . longueur allouee a tbiaux .
38 c . tbiaux . . * . tableau tampon entier .
39 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
40 c . langue . e . 1 . langue des messages .
41 c . . . . 1 : francais, 2 : anglais .
42 c . codret . es . 1 . code de retour des modules .
43 c . . . . 0 : pas de probleme .
44 c ______________________________________________________________________
47 c 0. declarations et dimensionnement
50 c 0.1. ==> generalites
56 parameter ( nompro = 'ESLEN1' )
76 integer ltbiau, tbiaux(*)
81 integer ulsort, langue, codret
83 c 0.4. ==> variables locales
88 parameter ( nbcmax = 20 )
90 integer iaux, jaux, kaux, laux
91 integer codre1, codre2
95 integer pcoono, adcocs
98 character*16 nomcmp(nbcmax), unicmp(nbcmax)
103 parameter ( nbmess = 150 )
104 character*80 texte(nblang,nbmess)
105 c ______________________________________________________________________
113 #ifdef _DEBUG_HOMARD_
114 write (ulsort,texte(langue,1)) 'Entree', nompro
120 texte(1,4) = '(''... Lecture des complements pour les noeuds'')'
121 texte(1,81) = '(''Longueur allouee pour tbiaux : '',i10)'
122 texte(1,82) = '(''Longueur necessaire pour tbiaux : '',i10)'
124 texte(2,4) = '(''... Readings of additional terms for nodes'')'
125 texte(2,81) = '(''Allocated length for tbiaux : '',i10)'
126 texte(2,82) = '(''Used length for tbiaux : '',i10)'
130 #ifdef _DEBUG_HOMARD_
131 write (ulsort,texte(langue,4))
135 c 2. Lecture sous forme de champ pour les tableaux
137 c 2.1. ==> Reperage du champ et du nombre de ses composantes
140 nomcha(1:8) = suffix(3,-1)
142 #ifdef _DEBUG_HOMARD_
143 write (ulsort,texte(langue,3)) 'ESLE01_no', nompro
145 call esle01 ( idfmed, nomamd, nomcha,
146 > nbcomp, nomcmp, unicmp,
148 > ulsort, langue, codret)
150 if ( codret.eq.0 ) then
152 if ( nbnoto*nbcomp.gt.ltbiau ) then
153 write (ulsort,texte(langue,85)) nbcomp
154 write (ulsort,texte(langue,81)) ltbiau
155 write (ulsort,texte(langue,82)) nbnoto*nbcomp
161 c 2.2. ==> Lecture des valeurs du champ, en mode non entrelace.
162 c En fortran, cela correspond au stockage memoire suivant :
163 c tabaux(1,1), tabaux(2,1), tabaux(3,1), ..., tabaux(nbnoto,1),
164 c tabaux(1,2), tabaux(2,2), tabaux(3,2), ..., tabaux(nbnoto,2),
166 c tabaux(1,nbcomp), tabaux(2,nbcomp), ..., tabaux(nbnoto,nbcomp)
167 c on a ainsi toutes les valeurs pour la premiere composante, puis
168 c toutes les valeurs pour la seconde composante, etc.
169 #ifdef _DEBUG_HOMARD_
170 write (ulsort,90002) '2.2. Lecture ; codret', codret
173 if ( codret.eq.0 ) then
178 c A TRAITER plus tard
179 cgn#ifdef _DEBUG_HOMARD_
180 cgn write (ulsort,texte(langue,3)) 'MFDIVR', nompro
182 cgn call mfdivr ( idfmed, nomcha, numdt, numit,
183 cgn > ednoeu, iaux, ednoin,
185 cgn > tbiaux, codret )
187 #ifdef _DEBUG_HOMARD_
188 write (ulsort,texte(langue,3)) 'MFDIPR', nompro
190 call mfdipr ( idfmed, nomcha, numdt, numit,
191 > ednoeu, iaux, 1, noprof, ednoin,
195 if ( codret.ne.0 ) then
196 write (ulsort,texte(langue,18)) nomcha
203 if ( codret.eq.0 ) then
205 do 23 , iaux = 1 , nbcomp
207 if ( codret.eq.0 ) then
209 call gmaloj ( nhnoeu//'.'//nomcmp(iaux), ' ',
210 > nbnoto, laux, codret )
214 if ( codret.eq.0 ) then
216 kaux = nbnoto*(iaux-1)
218 do 231 , jaux = 1 , nbnoto
219 imem(laux+jaux) = tbiaux(kaux+jaux)
224 #ifdef _DEBUG_HOMARD_
225 call gmprsx ( nompro, nhnoeu//'.'//nomcmp(iaux) )
233 c 3. Lecture sous forme de profil pour les informations supplementaires
235 #ifdef _DEBUG_HOMARD_
236 write (ulsort,90002) '3. Lecture profil ; codret', codret
239 if ( codret.eq.0 ) then
244 #ifdef _DEBUG_HOMARD_
245 write (ulsort,texte(langue,3)) 'ESLE02_'//mess14(langue,1,typenh),
248 call esle02 ( idfmed,
249 > typenh, nhnoeu, iaux,
250 > ulsort, langue, codret)
255 c 4. Coordonnees extremes
257 #ifdef _DEBUG_HOMARD_
258 write (ulsort,90002) '4. coo extremes ; codret', codret
261 if ( codret.eq.0 ) then
264 call gmaloj ( nhnoeu//'.CoorCons', ' ', iaux, adcocs, codre1 )
265 call gmadoj ( nhnoeu//'.Coor', pcoono, iaux, codre2 )
267 codre0 = min ( codre1, codre2 )
268 codret = max ( abs(codre0), codret,
273 if ( codret.eq.0 ) then
275 #ifdef _DEBUG_HOMARD_
276 write (ulsort,texte(langue,3)) 'ESLE03', nompro
278 call esle03 ( idfmed,
279 > nbnoto, sdim, rmem(pcoono), dimcst,
281 > ulsort, langue, codret)
289 if ( codret.ne.0 ) then
293 write (ulsort,texte(langue,1)) 'Sortie', nompro
294 write (ulsort,texte(langue,2)) codret
298 #ifdef _DEBUG_HOMARD_
299 write (ulsort,texte(langue,1)) 'Sortie', nompro