1 subroutine vcme24 ( numfam,
6 > 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 aVant adaptation - Conversion de Maillage Extrude - phase 24
29 c Determine les familles pour la relation hexaedres/pentaedres
30 c ______________________________________________________________________
32 c . nom . e/s . taille . description .
33 c .____________________________________________________________________.
34 c . numfam . es . 1 . numero de la derniere famille traitee .
35 c . nbfpe0 . e . 1 . nombre de familles pour le dimensionnement .
36 c . cfaqua . e . nctfqu*. codes des familles des quadrangles .
37 c . . . nbfqua . 1 : famille MED .
38 c . . . . 2 : type de quadrangle .
39 c . . . . 3 : numero de surface de frontiere .
40 c . . . . 4 : famille des aretes internes apres raf.
41 c . . . . 5 : famille des triangles de conformite .
42 c . . . . 6 : famille de sf active/inactive .
43 c . . . . 7 : famille du quadrangle extrude .
44 c . . . . 8 : famille du volume perpendiculaire .
45 c . . . . 9 : code du quadrangle dans hexa ou penta.
46 c . . . . 10 : position du quadrangle .
47 c . . . . si equivalence : .
48 c . . . . + l : appartenance a l'equivalence l .
49 c . cfahex . es . nctfhe*. codes des familles des hexaedres .
50 c . . . nbfhex . 1 : famille MED .
51 c . . . . 2 : type d'hexaedres .
52 c . . . . 3 : famille des tetraedres de conformite .
53 c . . . . 4 : famille des pyramides de conformite .
54 c . . . . si extrusion : .
55 c . . . . 3 : famille des pentaedres de conformite .
56 c . cfapen . es . nctfpe*. codes des familles des pentaedres .
57 c . . . nbfpen . 1 : famille MED .
58 c . . . . 2 : type de pentaedres .
59 c . . . . 3 : famille des tetraedres de conformite .
60 c . . . . 4 : famille des pyramides de conformite .
61 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
62 c . langue . e . 1 . langue des messages .
63 c . . . . 1 : francais, 2 : anglais .
64 c . codret . e . 1 . code de retour des modules .
65 c . . . . 0 : pas de probleme .
66 c . . . . 1 : probleme .
67 c ______________________________________________________________________
70 c 0. declarations et dimensionnement
73 c 0.1. ==> generalites
79 parameter ( nompro = 'VCME24' )
101 integer cfaqua(nctfqu,nbfqua)
102 integer cfahex(nctfhe,nbfhex)
103 integer cfapen(nctfpe,nbfpen)
105 integer ulsort, langue, codret
107 c 0.4. ==> variables locales
110 integer lafami, famdeb
111 integer fahohe, fammed
115 parameter ( nbmess = 10 )
116 character*80 texte(nblang,nbmess)
118 c 0.5. ==> initialisations
119 c ______________________________________________________________________
127 #ifdef _DEBUG_HOMARD_
128 write (ulsort,texte(langue,1)) 'Entree', nompro
134 #ifdef _DEBUG_HOMARD_
135 write (ulsort,90002) 'numfam', numfam
136 write (ulsort,90002) 'nbfpe0', nbfpe0
137 write (ulsort,90002) 'nbfqua', nbfqua
138 write (ulsort,90002) 'nctfqu', nctfqu
141 #ifdef _DEBUG_HOMARD_
142 write (ulsort,*) 'Codes des familles des quadrangles'
143 do 5991 , iaux = 1 , nbfqua
144 write(ulsort,90012) 'Famille', iaux,
145 > (cfaqua(jaux,iaux),jaux=1,nctfqu)
147 write (ulsort,*) 'Codes des familles des hexaedres'
148 do 5992 , iaux = 1 , nbfhex
149 write(ulsort,90012) 'Famille', iaux,
150 > (cfahex(jaux,iaux),jaux=1,nctfhe)
152 write (ulsort,*) 'Codes des familles des pentaedres'
153 do 5993 , iaux = 1 , nbfpen
154 write(ulsort,90012) 'Famille', iaux,
155 > (cfapen(jaux,iaux),jaux=1,nctfpe)
162 c 2. Parcours des familles de la face avant des quadrangles
164 #ifdef _DEBUG_HOMARD_
165 write (ulsort,90002) '2. parcours ; codret', codret
169 do 20 , lafami = famdeb, nbfqua
171 if ( cfaqua(cofxqp,lafami).eq.0 ) then
172 cgn write (ulsort,90002) '. Famille de quadrangle', lafami
174 c 2.1. ==> La famille du volume d'extrusion
176 fahohe = cfaqua(cofxqx,lafami)
177 fammed = cfahex(cofamd,fahohe)
178 cgn write (ulsort,90002) '.. Familles HOMARD/MED hexa',fahohe,fammed
180 c 2.1.2. ==> On veut une famille de pentaedre avec la meme famille MED
182 do 212 , iaux = 1 , nbfpen
184 do 2121 , jaux = 1 , nctfpe
185 if ( cfapen(cofamd,iaux).ne.fammed ) then
191 cgn write (ulsort,90002) '.. Correspond a la famille', nufaex
196 c 2.2. ==> Creation d'une nouvelle famille
197 c 2.2.1. ==> S'il n'y a plus de places, on sort et on recommencera
200 if ( nbfpen.ge.nbfpe0 ) then
206 c 2.2.2. ==> Creation
210 c 2.2.2.1. ==> La famille avec les memes caracteristiques
213 do 222 , iaux = 1 , nctfpe
214 cfapen(iaux,nbfpen) = 0
216 cgn write (ulsort,90002) '.. Creation de la famille', nbfpen
217 cfapen(cofamd,nbfpen) = fammed
218 if ( cfahex(cotyel,fahohe).eq.edhex8 ) then
219 cfapen(cotyel,nbfpen) = edpen6
221 cfapen(cotyel,nbfpen) = edpe15
227 c 2.3. ==> Enregistrement de la famille de pentaedres associee a
228 c la famille des hexaedres
232 cfahex(cofexh,fahohe) = nufaex
240 #ifdef _DEBUG_HOMARD_
241 write (ulsort,90002) 'A la sortie de '//nompro//', nbfhex', nbfhex
242 write (ulsort,*) 'Codes des familles des hexaedres'
243 do 6991 , iaux = 1 , abs(nbfhex)
244 write(ulsort,90012) 'Famille', iaux,
245 > (cfahex(jaux,iaux),jaux=1,nctfhe)
247 write (ulsort,90002) 'A la sortie de '//nompro//', nbfpen', nbfpen
248 write (ulsort,*) 'Codes des familles des pentaedres'
249 do 6992 , iaux = 1 , abs(nbfpen)
250 write(ulsort,90012) 'Famille', iaux,
251 > (cfapen(jaux,iaux),jaux=1,nctfpe)
259 if ( codret.ne.0 ) then
263 write (ulsort,texte(langue,1)) 'Sortie', nompro
264 write (ulsort,texte(langue,2)) codret
268 #ifdef _DEBUG_HOMARD_
269 write (ulsort,texte(langue,1)) 'Sortie', nompro