1 subroutine cmalco ( nomail,
3 > ulsort, langue, codret )
4 c ______________________________________________________________________
8 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
10 c Version originale enregistree le 18 juin 1996 sous le numero 96036
11 c aupres des huissiers de justice Simart et Lavoir a Clamart
12 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
13 c aupres des huissiers de justice
14 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
16 c HOMARD est une marque deposee d'Electricite de France
22 c ______________________________________________________________________
24 c Creation du Maillage - ALlocation pour la mise en COnformite
26 c ______________________________________________________________________
28 c but : decompte les entites a creer lors du decoupage de mise en
29 c conformite des faces et des volumes.
30 c ______________________________________________________________________
32 c . nom . e/s . taille . description .
33 c .____________________________________________________________________.
34 c . nomail . e . ch8 . nom de l'objet contenant le maillage .
35 c . lgetco . e . 1 . longueur du tableau de l'etat courant .
36 c . taetco . e . lgetco . tableau de l'etat courant .
37 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
38 c . langue . e . 1 . langue des messages .
39 c . . . . 1 : francais, 2 : anglais .
40 c . codret . e/s . 1 . code de retour des modules .
41 c . . . . 0 : pas de probleme .
42 c ______________________________________________________________________
45 c 0. declarations et dimensionnement
48 c 0.1. ==> generalites
54 parameter ( nompro = 'CMALCO' )
74 integer taetco(lgetco)
76 integer ulsort, langue, codret
78 c 0.4. ==> variables locales
81 integer nretap, nrsset
92 character*8 nhnoeu, nhmapo, nharet, nhtria, nhquad
93 character*8 nhtetr, nhhexa, nhpyra, nhpent
95 character*8 nhvois, nhsupe, nhsups
101 parameter ( nbmess = 10 )
102 character*80 texte(nblang,nbmess)
104 c 0.5. ==> initialisations
105 c ______________________________________________________________________
113 c=======================================================================
114 if ( codava.eq.0 ) then
115 c=======================================================================
117 c 1.3. ==> les messages
121 #ifdef _DEBUG_HOMARD_
122 write (ulsort,texte(langue,1)) 'Entree', nompro
127 > '(/,a6,'' ALLOCATION MEMOIRE POUR LA CONFORMITE'')'
128 texte(1,5) = '(44(''=''),/)'
129 texte(1,6) = '(''Modification de taille des tableaux des '',a)'
130 texte(1,7) = '(5x,''==> code de retour :'',i8)'
133 > '(/,a6,'' MEMORY ALLOCATION FOR CONFORMITY'')'
134 texte(2,5) = '(39(''=''),/)'
135 texte(2,6) = '(''Size modification of arrays for '',a)'
136 texte(2,7) = '(5x,''==> error code :'',i8)'
140 c 1.4. ==> le numero de sous-etape
143 nrsset = taetco(2) + 1
146 call utcvne ( nretap, nrsset, saux, iaux, codret )
150 write ( ulsort,texte(langue,4)) saux
151 write ( ulsort,texte(langue,5))
154 c 2. recuperation des pointeurs
157 if ( codret.eq.0 ) then
159 #ifdef _DEBUG_HOMARD_
160 write (ulsort,texte(langue,3)) 'UTNOMH', nompro
163 call utnomh ( nomail,
165 > degre, maconf, homolo, hierar,
166 > rafdef, nbmane, typcca, typsfr, maextr,
169 > nhnoeu, nhmapo, nharet,
171 > nhtetr, nhhexa, nhpyra, nhpent,
173 > nhvois, nhsupe, nhsups,
174 > ulsort, langue, codret)
179 c 3. Reallocation des tableaux avec les nouvelles dimensions
181 #ifdef _DEBUG_HOMARD_
182 write (ulsort,90002) '3. reallocation ; codret', codret
185 if ( codret.eq.0 ) then
188 if ( typcca.eq.26 .or .typcca.eq.46 ) then
190 elseif ( maextr.ne.0 ) then
196 #ifdef _DEBUG_HOMARD_
197 write (ulsort,texte(langue,3)) 'CMAL01', nompro
199 call cmal01 ( iaux, extrus,
205 > permte, nouvte, jaux, provta,
206 > permhe, nouvhe, jaux, provha,
207 > permpe, nouvpe, jaux, provpa,
208 > permpy, nouvpy, jaux, provya,
209 > ulsort, langue, codret )
212 cgn call gmprsx(nompro,nomail//'.Volume.HOM_Py05')
213 cgn call gmprsx(nompro,nomail//'.Volume.HOM_Py05.ConnDesc')
214 cgn call gmprsx(nompro,nomail//'.Volume.HOM_Py05.ConnAret')
215 cgn call gmprsx(nompro,nomail//'.Volume.HOM_Py05.InfoSupp')
217 c 3.2. ==> Les tetraedres
219 #ifdef _DEBUG_HOMARD_
220 write (ulsort,texte(langue,6)) mess14(langue,3,3)//' - avant'
221 write (ulsort,texte(langue,7)) codret
222 write (ulsort,90002) 'permte', permte
223 write (ulsort,90002) 'nouvte', nouvte
226 if ( permte.ne.nouvte ) then
228 if ( nbpeco.ne.0 .or. nbheco.ne.0 ) then
230 iaux = nbheco + nbpeco
231 call gmaloj ( nhtetr//'.InfoSup2', ' ',
232 > iaux , adtes2, codre0 )
234 codret = max ( abs(codre0), codret )
238 #ifdef _DEBUG_HOMARD_
239 write (ulsort,texte(langue,6)) mess14(langue,3,3)//' - apres'
240 write (ulsort,texte(langue,7)) codret
245 c 3.3. ==> Les pyramides
247 #ifdef _DEBUG_HOMARD_
248 write (ulsort,texte(langue,6)) mess14(langue,3,5)//' - avant'
249 write (ulsort,texte(langue,7)) codret
250 write (ulsort,90002) 'permpy', permpy
251 write (ulsort,90002) 'nouvpy', nouvpy
254 if ( permpy.ne.nouvpy ) then
256 if ( nbpeco.ne.0 .or. nbheco.ne.0 ) then
258 iaux = nbheco + nbpeco
259 call gmaloj ( nhpyra//'.InfoSup2', ' ',
260 > iaux , adpys2, codre0 )
262 codret = max ( abs(codre0), codret )
266 #ifdef _DEBUG_HOMARD_
267 write (ulsort,texte(langue,6)) mess14(langue,3,5)//' - apres'
268 write (ulsort,texte(langue,7)) codret
273 c 3.4. ==> Les hexaedres : filiation en tetraedres/pyramides
274 #ifdef _DEBUG_HOMARD_
275 write (ulsort,90002) '3.4. hexaedres ; codret', codret
278 if ( nbheco.ne.0 ) then
280 if ( codret.eq.0 ) then
283 call gmaloj ( nhhexa//'.InfoSup2', ' ', iaux , adhes2, codre0 )
285 codret = max ( abs(codre0), codret )
291 c 3.5. ==> Les pentaedres : filiation en tetraedres/pyramides
292 #ifdef _DEBUG_HOMARD_
293 write (ulsort,90002) '3.5. pentaedres ; codret', codret
296 if ( nbpeco.ne.0 ) then
298 if ( codret.eq.0 ) then
301 call gmaloj ( nhpent//'.InfoSup2', ' ', iaux , adpes2, codre0 )
303 codret = max ( abs(codre0), codret )
313 if ( codret.ne.0 ) then
317 write (ulsort,texte(langue,1)) 'Sortie', nompro
318 write (ulsort,texte(langue,2)) codret
322 #ifdef _DEBUG_HOMARD_
323 write (ulsort,texte(langue,1)) 'Sortie', nompro
327 c=======================================================================
329 c=======================================================================