1 subroutine esle03 ( idfmed,
2 > nbnoto, sdim, coonoe, dimcst,
4 > ulsort, langue, codret)
6 c ______________________________________________________________________
10 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
12 c Version originale enregistree le 18 juin 1996 sous le numero 96036
13 c aupres des huissiers de justice Simart et Lavoir a Clamart
14 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
15 c aupres des huissiers de justice
16 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
18 c HOMARD est une marque deposee d'Electricite de France
24 c ______________________________________________________________________
26 c Entree-Sortie : LEcture - 03
28 c ______________________________________________________________________
29 c . nom . e/s . taille . description .
30 c .____________________________________________________________________.
31 c . idfmed . e . 1 . identificateur du fichier MED .
32 c . nbnoto . e . 1 . nombre total de noeuds .
33 c . sdim . e . 1 . dimension du maillage HOMARD .
34 c . coonoe . e . nbnoto . coordonnees des noeuds .
36 c . dimcst . e . 1 . dimension de la coordonnee constante .
37 c . . . . eventuelle, 0 si toutes varient .
38 c . coocst . s . 11 . 1 : coordonnee constante eventuelle .
39 c . . . . 2, 3, 4 : xmin, ymin, zmin .
40 c . . . . 5, 6, 7 : xmax, ymax, zmax .
41 c . . . . 8, 9, 10 : -1 si constant, max-min sinon .
42 c . . . . 11 : max des (max-min) .
43 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
44 c . langue . e . 1 . langue des messages .
45 c . . . . 1 : francais, 2 : anglais .
46 c . codret . es . 1 . code de retour des modules .
47 c . . . . 0 : pas de probleme .
48 c ______________________________________________________________________
51 c 0. declarations et dimensionnement
54 c 0.1. ==> generalites
60 parameter ( nompro = 'ESLE03' )
72 integer nbnoto, sdim, dimcst
74 double precision coonoe(nbnoto,sdim)
75 double precision coocst(11)
77 integer ulsort, langue, codret
79 c 0.4. ==> variables locales
91 parameter ( nbmess = 150 )
92 character*80 texte(nblang,nbmess)
93 c ______________________________________________________________________
101 #ifdef _DEBUG_HOMARD_
102 write (ulsort,texte(langue,1)) 'Entree', nompro
106 texte(1,5) = '(''... Coordonnes extremes'')'
108 > '(''Direction '',a1,'' : mini = '',g12.5,'' maxi = '',g12.5)'
110 texte(2,5) = '(''... Extreme coordinates'')'
112 > '(a1,''direction '','' : mini = '',g12.5,'' maxi = '',g12.5)'
114 #ifdef _DEBUG_HOMARD_
115 write (ulsort,texte(langue,5))
121 c 2. Si une des coordonnees est constante, lecture de la valeur
122 c sous forme de valeur scalaire
125 if ( dimcst.gt.0 ) then
129 novals(1:13) = 'Dim_Constante'
134 #ifdef _DEBUG_HOMARD_
135 write (ulsort,texte(langue,3)) 'MPRRVR', nompro
137 call mprrvr ( idfmed, novals, numdt, numit,
140 if ( codret.eq.0 ) then
149 c 3.1. ==> La fonction de calcul
151 if ( codret.eq.0 ) then
153 #ifdef _DEBUG_HOMARD_
154 write (ulsort,texte(langue,3)) 'UTMMCO', nompro
156 call utmmco ( coocst(2), coocst(5), coocst(8),
157 > nbnoto, sdim, coonoe,
158 > ulsort, langue, codret )
162 c 3.2. ==> Un rangement different si la coordonnee X ou Y est constante
164 if ( codret.eq.0 ) then
166 if ( dimcst.eq.1 ) then
168 c 3.2.1. ==> x est constant : il faut decaler y en z et x en y,
169 c puis affecter la constante a x
171 coocst(10) = coocst(9)
172 coocst(9) = coocst(8)
173 coocst(7) = coocst(6)
174 coocst(6) = coocst(5)
175 coocst(4) = coocst(3)
176 coocst(3) = coocst(2)
178 coocst(5) = coocst(1)
179 coocst(2) = coocst(1)
181 elseif ( dimcst.eq.2 ) then
183 c 3.2.2. ==> y est constant : il faut decaler y en z,
184 c puis affecter la constante a y
186 coocst(10) = coocst(9)
187 coocst(7) = coocst(6)
188 coocst(4) = coocst(3)
190 coocst(6) = coocst(1)
191 coocst(3) = coocst(1)
195 #ifdef _DEBUG_HOMARD_
196 if ( codret.eq.0 ) then
197 write (ulsort,texte(langue,4)) 'x', coocst(2), coocst(5)
198 write (ulsort,texte(langue,4)) 'y', coocst(3), coocst(6)
199 write (ulsort,texte(langue,4)) 'z', coocst(4), coocst(7)
209 if ( codret.ne.0 ) then
213 write (ulsort,texte(langue,1)) 'Sortie', nompro
214 write (ulsort,texte(langue,2)) codret
218 #ifdef _DEBUG_HOMARD_
219 write (ulsort,texte(langue,1)) 'Sortie', nompro