1 subroutine esemmb ( idfmed, nomamd,
2 > typenh, typent, typgeo,
3 > nbmato, nbrfma, nbelem, numfam,
5 > conmai, infosu, fammai, listma,
6 > numdt, numit, instan,
8 > ulsort, langue, codret )
9 c ______________________________________________________________________
13 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
15 c Version originale enregistree le 18 juin 1996 sous le numero 96036
16 c aupres des huissiers de justice Simart et Lavoir a Clamart
17 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
18 c aupres des huissiers de justice
19 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
21 c HOMARD est une marque deposee d'Electricite de France
27 c ______________________________________________________________________
29 c Entree-Sortie - Ecriture d'un Maillage au format MED
33 c ______________________________________________________________________
35 c . nom . e/s . taille . description .
36 c .____________________________________________________________________.
37 c . idfmed . e . 1 . identificateur du fichier de .
38 c . . . . maillage de sortie .
39 c . nomamd . e . char64 . nom du maillage MED .
40 c . nbmato . e . 1 . nombre de mailles .
41 c . nbrfma . e . 1 . nbre noeuds par maille si connec. par noeud.
42 c . . . . nbre faces par maille si connectivite desce.
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 . dim1 . e . 1 . 1ere dimension de la connectivite .
64 c . conmai . e .nbelem**. connectivite des mailles .
65 c . infosu . e . nbelem . informations supplementaire sur les mailles.
66 c . fammai . e . nbelem . famille med des mailles .
67 c . listma . e . 1 . liste des mailles a ecrire .
68 c . . . . si listma(1) vaut 0, on ecrit tout .
69 c . . . . si listma(1) vaut -1, on ecrit tout et les .
70 c . . . . descriptions sont inversees .
71 c . . . . si listma(1) vaut -2, on ecrit les segments.
72 c . . . . en degre 2 a partir de esece0 .
73 c . . . . si listma(1) vaut -3, on ecrit les segments.
74 c . . . . en degre 3 a partir de esece0 .
75 c . numdt . e . 1 . numero du pas de temps .
76 c . numit . e . 1 . numero d'iteration .
77 c . instan . e . 1 . pas de temps .
78 c . tabaux . . nbelem . tableau tampon .
80 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
81 c . langue . e . 1 . langue des messages .
82 c . . . . 1 : francais, 2 : anglais .
83 c . codret . es . 1 . code de retour des modules .
84 c . . . . 0 : pas de probleme .
85 c . . . . 1 : probleme .
86 c ______________________________________________________________________
89 c 0. declarations et dimensionnement
92 c 0.1. ==> generalites
98 parameter ( nompro = 'ESEMMF' )
110 integer typenh, typent, typgeo
111 integer nbmato, nbrfma, nbelem, numfam
113 integer conmai(dim1,*), infosu(nbelem), fammai(nbelem)
114 integer listma(nbmato), tabaux(*)
119 double precision instan
121 integer ulsort, langue, codret
123 c 0.4. ==> variables locales
128 parameter ( nbmess = 150 )
129 character*80 texte(nblang,nbmess)
130 c ______________________________________________________________________
136 c 1.1. ==> les messages
140 #ifdef _DEBUG_HOMARD_
141 write (ulsort,texte(langue,1)) 'Entree', nompro
145 texte(1,4) = '(''. Ecriture des '',i10,1x,a)'
147 texte(2,4) = '(''. Writings of '',i10,1x,a)'
152 #ifdef _DEBUG_HOMARD_
153 write (ulsort,texte(langue,4)) nbmato, mess14(langue,3,typenh)
155 #ifdef _DEBUG_HOMARD_
156 write (ulsort,90002) 'listma(1)', listma(1)
157 write (ulsort,90002) 'typenh', typenh
158 write (ulsort,90002) 'typent', typent
159 write (ulsort,90002) 'typgeo', typgeo
160 write (ulsort,90002) 'nbmato', nbmato
161 write (ulsort,90002) 'nbrfma', nbrfma
162 write (ulsort,90002) 'typcon', typcon
163 write (ulsort,90002) 'dim1 ', dim1
164 write (ulsort,90002) 'numdt', numdt
165 write (ulsort,90002) 'numit', numit
171 c 2. Ecriture de la connectivite
174 if ( codret.eq.0 ) then
176 #ifdef _DEBUG_HOMARD_
177 write (ulsort,texte(langue,3)) 'ESEMMC', nompro
179 call esemmc ( idfmed, nomamd,
180 > typenh, typent, typgeo,
181 > nbmato, nbrfma, nbelem,
183 > conmai, infosu, listma,
184 > numdt, numit, instan,
186 > ulsort, langue, codret )
191 c 3. Ecriture de la famille d'appartenance
194 if ( codret.eq.0 ) then
196 #ifdef _DEBUG_HOMARD_
197 write (ulsort,texte(langue,3)) 'ESEMMF', nompro
199 call esemmf ( idfmed, nomamd,
200 > typenh, typent, typgeo,
201 > nbmato, nbelem, numfam,
205 > ulsort, langue, codret )
213 if ( codret.ne.0 ) then
217 write (ulsort,texte(langue,1)) 'Sortie', nompro
218 write (ulsort,texte(langue,2)) codret
222 #ifdef _DEBUG_HOMARD_
223 write (ulsort,texte(langue,1)) 'Sortie', nompro