1 subroutine cmalra ( nomail,
2 > indnoe, indnp2, indnim, indare,
4 > indtet, indhex, indpen,
5 > lgopts, taopts, lgetco, taetco,
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 Creation du Maillage - ALlocation pour le RAffinement
29 c ______________________________________________________________________
31 c . nom . e/s . taille . description .
32 c .____________________________________________________________________.
33 c . nomail . e . ch8 . nom de l'objet contenant le maillage .
34 c . indnoe . es . 1 . indice du dernier noeud cree .
35 c . indnp2 . es . 1 . nombre de noeuds p2 en vigueur .
36 c . indnim . es . 1 . nombre de noeuds internes en vigueur .
37 c . indare . es . 1 . indice de la derniere arete creee .
38 c . indtri . es . 1 . indice du dernier triangle cree .
39 c . indqua . es . 1 . indice du dernier quadrangle cree .
40 c . indtet . es . 1 . indice du dernier tetraedre cree .
41 c . indhex . es . 1 . indice du dernier hexaedre cree .
42 c . indpen . es . 1 . indice du dernier pentaedre cree .
43 c . lgopts . e . 1 . longueur du tableau des options caracteres .
44 c . taopts . e . lgopts . tableau des options caracteres .
45 c . lgetco . e . 1 . longueur du tableau de l'etat courant .
46 c . taetco . e . lgetco . tableau de l'etat courant .
47 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
48 c . langue . e . 1 . langue des messages .
49 c . . . . 1 : francais, 2 : anglais .
50 c . codret . e/s . 1 . code de retour des modules .
51 c . . . . 0 : pas de probleme .
52 c ______________________________________________________________________
55 c 0. declarations et dimensionnement
58 c 0.1. ==> generalites
64 parameter ( nompro = 'CMALRA' )
77 integer indnoe, indnp2, indnim, indare, indtri, indqua
78 integer indtet, indhex, indpen
81 character*8 taopts(lgopts)
84 integer taetco(lgetco)
86 integer ulsort, langue, codret
88 c 0.4. ==> variables locales
91 integer nretap, nrsset
94 integer nbsoan, nbsono
95 integer nbnoan, nbnono
96 integer nbaran, nbarno
97 integer nbtran, nbtrno
98 integer nbquan, nbquno
99 integer nbtean, nbteno
100 integer nbhean, nbheno
101 integer nbpean, nbpeno
102 integer nbpyan, nbpyno
106 character*8 nhnoeu, nhmapo, nharet, nhtria, nhquad
107 character*8 nhtetr, nhhexa, nhpyra, nhpent
109 character*8 nhvois, nhsupe, nhsups
110 character*8 ndecar, ndecfa
115 parameter ( nbmess = 10 )
116 character*80 texte(nblang,nbmess)
118 c 0.5. ==> initialisations
119 c ______________________________________________________________________
127 c=======================================================================
128 if ( codava.eq.0 ) then
129 c=======================================================================
131 c 1.3. ==> les messages
135 #ifdef _DEBUG_HOMARD_
136 write (ulsort,texte(langue,1)) 'Entree', nompro
141 > '(/,a6,'' ALLOCATION MEMOIRE POUR LE DECOUPAGE STANDARD'')'
142 texte(1,5) = '(52(''=''),/)'
145 > '(/,a6,'' MEMORY ALLOCATION FOR STANDARD REFINEMENT'')'
146 texte(2,5) = '(48(''=''),/)'
150 c 1.4. ==> le numero de sous-etape
153 nrsset = taetco(2) + 1
156 call utcvne ( nretap, nrsset, saux, iaux, codret )
160 write (ulsort,texte(langue,4)) saux
161 write (ulsort,texte(langue,5))
164 c 2. recuperation des pointeurs
167 if ( codret.eq.0 ) then
169 #ifdef _DEBUG_HOMARD_
170 write (ulsort,texte(langue,3)) 'UTNOMH', nompro
173 call utnomh ( nomail,
175 > degre, maconf, homolo, hierar,
176 > rafdef, nbmane, typcca, typsfr, maextr,
179 > nhnoeu, nhmapo, nharet,
181 > nhtetr, nhhexa, nhpyra, nhpent,
183 > nhvois, nhsupe, nhsups,
184 > ulsort, langue, codret)
189 c 3. programmes generiques
191 #ifdef _DEBUG_HOMARD_
192 write (ulsort,90002) '3. programmes generiques ; codret', codret
199 cgn call gmprsx(nompro, ndecar)
200 cgn call gmprsx(nompro, ndecfa)
202 c 3.2. ==> Nombre de valeurs
204 if ( codret.eq.0 ) then
209 #ifdef _DEBUG_HOMARD_
210 write (ulsort,texte(langue,3)) 'UTAL00', nompro
212 call utal00 ( iaux, jaux,
213 > nomail, ndecar, ndecfa,
214 > indnoe, indnp2, indnim, indare,
216 > indtet, indhex, indpen,
226 > ulsort, langue, codret )
230 c 3.3. ==> Reallocation des tableaux avec les nouvelles dimensions
232 if ( codret.eq.0 ) then
235 if ( typcca.eq.26 .or .typcca.eq.46 ) then
237 elseif ( maextr.ne.0 ) then
244 #ifdef _DEBUG_HOMARD_
245 write (ulsort,texte(langue,3)) 'CMAL01', nompro
247 call cmal01 ( iaux, extrus,
253 > nbtean, nbteno, jaux, jaux,
254 > nbhean, nbheno, jaux, jaux,
255 > nbpean, nbpeno, jaux, jaux,
256 > nbpyan, nbpyno, jaux, jaux,
257 > ulsort, langue, codret )
265 if ( codret.ne.0 ) then
269 write (ulsort,texte(langue,1)) 'Sortie', nompro
270 write (ulsort,texte(langue,2)) codret
274 #ifdef _DEBUG_HOMARD_
275 write (ulsort,texte(langue,1)) 'Sortie', nompro
279 c=======================================================================
281 c=======================================================================