1 subroutine eslmmf ( idfmed, nomamd,
2 > typenh, typent, typgeo,
3 > nmadeb, nbmato, nbelem, numfam,
7 > ulsort, langue, codret )
8 c ______________________________________________________________________
12 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
14 c Version originale enregistree le 18 juin 1996 sous le numero 96036
15 c aupres des huissiers de justice Simart et Lavoir a Clamart
16 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
17 c aupres des huissiers de justice
18 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
20 c HOMARD est une marque deposee d'Electricite de France
26 c ______________________________________________________________________
28 c Entree-Sortie - Lecture d'un Maillage au format MED
32 c ______________________________________________________________________
34 c . nom . e/s . taille . description .
35 c .____________________________________________________________________.
36 c . idfmed . e . 1 . identificateur du fichier de .
37 c . . . . maillage de sortie .
38 c . nomamd . e . char64 . nom du maillage MED .
39 c . nmadeb . e . 1 . numero de la maille de debut .
40 c . . . . >=0 : le tableau est pris tel quel .
41 c . . . . <0 : les descriptions sont inversees .
42 c . nbmato . e . 1 . nombre de mailles a lire .
43 c . nbelem . e . 1 . nombre d'elements, tous types confondus .
44 c . numfam . e . 1 . decalage dans la numerotation des familles .
45 c . . . . 1 : le tableau est pris tel quel .
46 c . . . . <=0 : le tableau passe negatif et est .
47 c . . . . decale de numfam .
48 c . typenh . e . 1 . code des entites au sens homard .
49 c . . . . -1 : noeuds .
50 c . . . . 0 : mailles-points .
51 c . . . . 1 : segments .
52 c . . . . 2 : triangles .
53 c . . . . 3 : tetraedres .
54 c . . . . 4 : quadrangles .
55 c . . . . 5 : pyramides .
56 c . . . . 6 : hexaedres .
57 c . . . . 7 : pentaedres .
58 c . typent . e . 1 . type des entites au sens MED .
59 c . typgeo . e . 1 . type geometrique au sens MED .
60 c . typcon . e . 1 . type de connectivite .
61 c . . . . 0 : par noeud (ednoda) .
62 c . . . . 1 : descendante (eddesc) .
63 c . fammai . s . nbelem . famille med des mailles .
64 c . tbiaux . . nbelem . tableau tampon .
66 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
67 c . langue . e . 1 . langue des messages .
68 c . . . . 1 : francais, 2 : anglais .
69 c . codret . es . 1 . code de retour des modules .
70 c . . . . 0 : pas de probleme .
71 c . . . . 1 : probleme .
72 c ______________________________________________________________________
75 c 0. declarations et dimensionnement
78 c 0.1. ==> generalites
84 parameter ( nompro = 'ESLMMF' )
97 integer typenh, typent, typgeo
98 integer nmadeb, nbmato, nbelem, numfam
100 integer fammai(nbelem)
105 integer ulsort, langue, codret
107 c 0.4. ==> variables locales
113 integer datype, chgt, tsf
119 parameter ( nbmess = 150 )
120 character*80 texte(nblang,nbmess)
121 c ______________________________________________________________________
127 c 1.1. ==> les messages
131 #ifdef _DEBUG_HOMARD_
132 write (ulsort,texte(langue,1)) 'Entree', nompro
136 texte(1,4) = '(''... Lecture des '',i10,1x,a)'
137 texte(1,63) = '(''Toutes les familles sont nulles.'')'
139 texte(2,4) = '(''... Readings of '',i10,1x,a)'
140 texte(2,63) = '(''All the families are 0.'')'
146 #ifdef _DEBUG_HOMARD_
147 write (ulsort,texte(langue,4)) nbmato, mess14(langue,3,typenh)
152 #ifdef _DEBUG_HOMARD_
153 write (ulsort,90002) 'typcon', typcon
154 write (ulsort,90002) 'typenh', typenh
155 write (ulsort,90002) 'typent', typent
156 write (ulsort,90002) 'typgeo', typgeo
157 write (ulsort,90002) 'nmadeb', nmadeb
158 write (ulsort,90002) 'nbmato', nbmato
159 write (ulsort,90002) 'nbelem', nbelem
160 write (ulsort,90002) 'numfam', numfam
169 c 2. Longueur du tableau des familles
172 if ( codret.eq.0 ) then
175 #ifdef _DEBUG_HOMARD_
176 write (ulsort,90002) 'numdt', numdt
177 write (ulsort,90002) 'numit', numit
178 write (ulsort,90002) 'typent', typent
179 write (ulsort,90002) 'typgeo', typgeo
180 write (ulsort,90002) 'datype', datype
181 write (ulsort,90002) 'typcon', typcon
182 write (ulsort,90002) 'chgt', chgt
183 write (ulsort,90002) 'tsf', tsf
185 #ifdef _DEBUG_HOMARD_
186 write (ulsort,texte(langue,3)) 'MMHNME', nompro
188 call mmhnme ( idfmed, nomamd, numdt, numit,
189 > typent, typgeo, datype, typcon, chgt, tsf,
191 if ( codret.ne.0 ) then
194 #ifdef _DEBUG_HOMARD_
195 write (ulsort,90002) 'lgtfam', lgtfam
201 c 3. Remplissage du tableau
203 c 3.1. ==> 0 par defaut
205 if ( lgtfam.eq.0 ) then
207 if ( codret.eq.0 ) then
209 #ifdef _DEBUG_HOMARD_
210 write (ulsort,texte(langue,63))
213 if ( nmadeb.ge.0 ) then
214 do 311 , iaux = 1, nbmato
215 fammai(nmadeb-1+iaux) = 0
218 do 312 , iaux = 1, nbmato
229 if ( codret.eq.0 ) then
231 #ifdef _DEBUG_HOMARD_
232 write (ulsort,texte(langue,3)) 'MMHFNR', nompro
234 call mmhfnr ( idfmed, nomamd, numdt, numit,
237 if ( codret.ne.0 ) then
243 if ( codret.eq.0 ) then
245 if ( numfam.gt.0 ) then
247 if ( nmadeb.ge.0 ) then
248 do 321 , iaux = 1, nbmato
249 fammai(nmadeb-1+iaux) = tbiaux(iaux)
252 do 322 , iaux = 1, nbmato
253 fammai(iaux) = tbiaux(iaux)
259 if ( nmadeb.ge.0 ) then
260 do 323 , iaux = 1, nbmato
261 fammai(nmadeb-1+iaux) = -tbiaux(iaux) + numfam
264 do 324 , iaux = 1, nbmato
265 fammai(iaux) = -tbiaux(iaux) + numfam
279 if ( codret.ne.0 ) then
283 write (ulsort,texte(langue,1)) 'Sortie', nompro
284 write (ulsort,texte(langue,2)) codret
285 write (ulsort,texte(langue,4)) nbmato, mess14(langue,3,typenh)
286 write (ulsort,texte(langue,78)) saux06, codret
287 write (ulsort,texte(langue,79))
291 #ifdef _DEBUG_HOMARD_
292 write (ulsort,texte(langue,1)) 'Sortie', nompro