1 subroutine eslmmc ( idfmed, nomamd,
2 > typenh, typent, typgeo,
3 > nmadeb, nbmato, dim1, dim2,
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 . typenh . e . 1 . code des entites au sens homard .
40 c . . . . -1 : noeuds .
41 c . . . . 0 : mailles-points .
42 c . . . . 1 : segments .
43 c . . . . 2 : triangles .
44 c . . . . 3 : tetraedres .
45 c . . . . 4 : quadrangles .
46 c . . . . 5 : pyramides .
47 c . . . . 6 : hexaedres .
48 c . . . . 7 : pentaedres .
49 c . typent . e . 1 . type des entites au sens MED .
50 c . typgeo . e . 1 . type geometrique au sens MED .
51 c . nmadeb . e . 1 . numero de la maille de debut .
52 c . . . . >=0 : le tableau est pris tel quel .
53 c . . . . <0 : les descriptions sont inversees .
54 c . nbmato . e . 1 . nombre de mailles a lire .
55 c . dim1 . e . 1 . 1ere dimension de la connectivite .
56 c . dim2 . e . 1 . 2nde dimension de la connectivite .
57 c . typcon . e . 1 . type de connectivite .
58 c . . . . 0 : par noeud (ednoda) .
59 c . . . . 1 : descendante (eddesc) .
60 c . conmai . s .dim1dim2. connectivite des mailles .
61 c . tbiaux . . * . tableau tampon .
62 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
63 c . langue . e . 1 . langue des messages .
64 c . . . . 1 : francais, 2 : anglais .
65 c . codret . es . 1 . code de retour des modules .
66 c . . . . 0 : pas de probleme .
67 c . . . . 1 : probleme .
68 c ______________________________________________________________________
71 c 0. declarations et dimensionnement
74 c 0.1. ==> generalites
80 parameter ( nompro = 'ESLMMC' )
93 integer typenh, typent, typgeo
94 integer nmadeb, nbmato, dim1, dim2
96 integer conmai(dim1,dim2)
101 integer ulsort, langue, codret
103 c 0.4. ==> variables locales
107 integer iaux, jaux, kaux, laux
114 parameter ( nbmess = 150 )
115 character*80 texte(nblang,nbmess)
116 c ______________________________________________________________________
122 c 1.1. ==> les messages
126 #ifdef _DEBUG_HOMARD_
127 write (ulsort,texte(langue,1)) 'Entree', nompro
131 texte(1,4) = '(''... Lecture des '',i10,1x,a)'
132 texte(1,63) = '(''Toutes les familles sont nulles.'')'
134 texte(2,4) = '(''... Readings of '',i10,1x,a)'
135 texte(2,63) = '(''All the families are 0.'')'
141 #ifdef _DEBUG_HOMARD_
142 write (ulsort,texte(langue,4)) nbmato, mess14(langue,3,typenh)
146 nmafin = nmadeb + nbmato - 1
148 #ifdef _DEBUG_HOMARD_
149 write (ulsort,90002) 'typcon', typcon
150 write (ulsort,90002) 'typenh', typenh
151 write (ulsort,90002) 'typent', typent
152 write (ulsort,90002) 'typgeo', typgeo
153 write (ulsort,90002) 'nmadeb', nmadeb
154 write (ulsort,90002) 'nbmato', nbmato
155 write (ulsort,90002) 'nmafin', nmafin
156 write (ulsort,90002) 'dim1 ', dim1
157 write (ulsort,90002) 'dim2 ', dim2
164 c 2. Lecture de la connectivite des mailles
167 if ( codret.eq.0 ) then
169 #ifdef _DEBUG_HOMARD_
170 write (ulsort,texte(langue,3)) 'MMHCYR', nompro
172 call mmhcyr ( idfmed, nomamd, numdt, numit,
176 if ( codret.ne.0 ) then
183 c 3. Creation de la connectivite par noeud
188 if ( typcon.eq.ednoda ) then
190 if ( codret.eq.0 ) then
192 if ( nmadeb.ge.0 ) then
194 do 31 , iaux = nmadeb , nmafin
195 do 311, jaux = 1, dim2
197 conmai(iaux,jaux) = tbiaux(kaux)
202 cgn print *,'passage 32 avec dim2 =', dim2
204 do 32 , iaux = 1, nbmato
205 cgn print *,conmai(1,iaux), conmai(2,iaux)
206 do 321, jaux = 1, dim2
208 conmai(jaux,iaux) = tbiaux(kaux)
217 c 4. Creation de la connectivite descendante, sauf pour les volumes
222 if ( codret.eq.0 ) then
224 c 4.1. ==> Pour les faces
226 if ( typenh.eq.2 .or. typenh.eq.4 ) then
228 cgn print *,'passage 231 avec nmadeb , nmafin =', nmadeb , nmafin
229 do 41 , iaux = nmadeb , nmafin
230 cgn print *,(conmai(iaux,jaux),jaux = 1, dim2)
231 do 411, jaux = 1, dim2
233 conmai(iaux,jaux) = abs(tbiaux(kaux))
237 c 4.2. ==> Pour les segments
239 elseif ( typenh.eq.1 ) then
241 c Le noeud milieu sera gere par les informations supplementaires
245 cgn print *,'passage 42 avec dim2, nbmato =', dim2, nbmato
246 do 42 , iaux = 1, nbmato
249 conmai(jaux,iaux) = tbiaux(kaux)
252 cgn print *,conmai(1,iaux), conmai(2,iaux)
265 if ( codret.ne.0 ) then
269 write (ulsort,texte(langue,1)) 'Sortie', nompro
270 write (ulsort,texte(langue,2)) codret
271 write (ulsort,texte(langue,4)) nbmato, mess14(langue,3,typenh)
272 write (ulsort,texte(langue,78)) saux06, codret
273 write (ulsort,texte(langue,79))
277 #ifdef _DEBUG_HOMARD_
278 write (ulsort,texte(langue,1)) 'Sortie', nompro