1 subroutine cmcp5c ( indtri, triint,
3 > areint, areqtr, niveau,
4 > aretri, famtri, hettri,
5 > filtri, pertri, nivtri,
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 - Conformite - decoupage des Pentaedres
31 c Construction des triangles internes
32 c ______________________________________________________________________
34 c . nom . e/s . taille . description .
35 c .____________________________________________________________________.
36 c . indtri . es . 1 . indice du dernier triangle cree .
37 c . triint . s . 15 . triangles internes au pentaedre .
38 c . . . . 1-3 = milieu/milieu et sommet face opposee.
39 c . . . . 4-6 = milieu/milieu et noeud central .
40 c . . . . 7-9 = arete face oppose et noeud central .
41 c . . . . 10-15 = appuyes sur une arete interne a .
42 c . . . . une face quadrangulaire coupee .
43 c . lesare . e . 3 . liste des aretes du pentaedre utiles .
44 c . . . . 1-3 = arete face oppose .
45 c . areint . e . 6 . aretes internes au pentaedre .
46 c . areqtr . e .(4,0:3) . aretes tracees sur les faces decoupees .
47 c . aretri . es .nouvtr*3. numeros des 3 aretes des triangles .
48 c . hettri . es . nouvtr . historique de l'etat des triangles .
49 c . filtri . es . nouvtr . premier fils des triangles .
50 c . pertri . es . nouvtr . pere des triangles .
51 c . nivtri . es . nouvtr . niveau des triangles .
52 c . famtri . es . nouvtr . famille des triangles .
53 c . niveau . e . 1 . niveau a attribuer aux triangles .
54 c . ulsort . e . 1 . unite logique de la sortie generale .
55 c . langue . e . 1 . langue des messages .
56 c . . . . 1 : francais, 2 : anglais .
57 c . codret . es . 1 . code de retour des modules .
58 c . . . . 0 : pas de probleme .
59 c . . . . 1 : aucune arete ne correspond .
60 c ______________________________________________________________________
63 c 0. declarations et dimensionnement
66 c 0.1. ==> generalites
72 parameter ( nompro = 'CMCP5C' )
91 integer aretri(nouvtr,3), famtri(nouvtr)
92 integer hettri(nouvtr), filtri(nouvtr), pertri(nouvtr)
93 integer nivtri(nouvtr)
95 integer ulsort, langue, codret
97 c 0.4. ==> variables locales
103 parameter ( nbmess = 10 )
104 character*80 texte(nblang,nbmess)
106 c 0.5. ==> initialisations
107 c ______________________________________________________________________
117 #ifdef _DEBUG_HOMARD_
118 write (ulsort,texte(langue,1)) 'Entree', nompro
127 c 2. Les triangles entre les aretes tracees sur la face coupee et
128 c les sommets de la face opposee
133 jaux = per1a3(1,iaux)
136 triint(iaux) = indtri
137 #ifdef _DEBUG_HOMARD_
138 write (ulsort,texte(langue,3)) 'CMCTRI_123', nompro
140 call cmctri ( aretri, famtri, hettri,
141 > filtri, pertri, nivtri,
143 > areqtr(iaux,1), areqtr(4,iaux), areqtr(jaux,2),
149 c 3. Les triangles entre les aretes tracees sur la face coupee et
155 jaux = per1a3(1,iaux)
158 triint(iaux+3) = indtri
159 #ifdef _DEBUG_HOMARD_
160 write (ulsort,texte(langue,3)) 'CMCTRI_456', nompro
162 call cmctri ( aretri, famtri, hettri,
163 > filtri, pertri, nivtri,
165 > areint(iaux+3), areqtr(4,iaux), areint(jaux+3),
171 c 4. Les triangles s'appuyant sur les 3 aretes de la face non decoupee
176 jaux = per1a3(-1,iaux)
179 triint(iaux+6) = indtri
180 #ifdef _DEBUG_HOMARD_
181 write (ulsort,texte(langue,3)) 'CMCTRI_789', nompro
183 call cmctri ( aretri, famtri, hettri,
184 > filtri, pertri, nivtri,
186 > areint(iaux), lesare(iaux), areint(jaux),
192 c 5. Les triangles s'appuyant sur les aretes tracees sur
193 c les quadrangles coupes
196 do 511 , iaux = 1 , 3
199 triint(iaux+9) = indtri
200 #ifdef _DEBUG_HOMARD_
201 write (ulsort,texte(langue,3)) 'CMCTRI_10-11-12', nompro
203 call cmctri ( aretri, famtri, hettri,
204 > filtri, pertri, nivtri,
206 > areint(iaux), areqtr(iaux,1), areint(iaux+3),
211 do 512 , iaux = 1 , 3
213 jaux = per1a3(-1,iaux)
216 triint(iaux+12) = indtri
217 #ifdef _DEBUG_HOMARD_
218 write (ulsort,texte(langue,3)) 'CMCTRI_13-14-15', nompro
220 call cmctri ( aretri, famtri, hettri,
221 > filtri, pertri, nivtri,
223 > areint(iaux+3), areqtr(iaux,2), areint(jaux),
232 if ( codret.ne.0 ) then
236 write (ulsort,texte(langue,1)) 'Sortie', nompro
237 write (ulsort,texte(langue,2)) codret
241 #ifdef _DEBUG_HOMARD_
242 write (ulsort,texte(langue,1)) 'Sortie', nompro