1 subroutine pcsepy ( nfpent, nfpyra, nftetr, ficalc,
4 > npecca, ntecca, npycca,
5 > ulsort, langue, codret )
6 c ______________________________________________________________________
10 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
12 c Version originale enregistree le 18 juin 1996 sous le numero 96036
13 c aupres des huissiers de justice Simart et Lavoir a Clamart
14 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
15 c aupres des huissiers de justice
16 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
18 c HOMARD est une marque deposee d'Electricite de France
24 c ______________________________________________________________________
26 c aPres adaptation - Conversion de Solution Elements de volume -
28 c Pentaedres - reperages des fils
30 c ______________________________________________________________________
32 c . nom . e/s . taille . description .
33 c .____________________________________________________________________.
34 c . nfpent . s . 1 . nombre de fils pentaedres .
35 c . nfpyra . s . 1 . nombre de fils pyramides .
36 c . nftetr . s . 1 . nombre de fils tetraedres .
37 c . ficalc . s . 3,11 . numeros des fils en numerotation du calcul .
38 c . . . . 1 : pentaedres .
39 c . . . . 2 : pyramides .
40 c . . . . 3 : tetraedres .
41 c . lepent . e . 1 . hexaedre courant .
42 c . etat . e . 1 . etat du pentaedre .
43 c . filpen . e . * . premier fils des pentaedres .
44 c . fppyte . e .2*nbpeco. fppyte(1,j) = numero de la 1ere pyramide .
45 c . . . . fille du pentaedre k tel que filpen(k) =-j .
46 c . . . . fppyte(2,j) = numero du 1er tetraedre .
47 c . . . . fils du pentaedre k tel que filpen(k) = -j .
48 c . npecca . e . * . numero des pentaedres dans le calcul e/s .
49 c . ntecca . e . * . numero des tetraedres dans le calcul e/s .
50 c . npycca . e . * . pyramides en sortie dans le calcul e/s .
51 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
52 c . langue . e . 1 . langue des messages .
53 c . . . . 1 : francais, 2 : anglais .
54 c . codret . es . 1 . code de retour des modules .
55 c . . . . 0 : pas de probleme .
56 c . . . . 1 : probleme .
57 c ______________________________________________________________________
60 c 0. declarations et dimensionnement
63 c 0.1. ==> generalites
69 parameter ( nompro = 'PCSEPY' )
77 integer nfpent, nfpyra, nftetr
81 integer filpen(*), fppyte(2,*)
86 integer ulsort, langue, codret
88 c 0.4. ==> variables locales
93 parameter ( nbmess = 10 )
94 character*80 texte(nblang,nbmess)
96 c 0.5. ==> initialisations
97 c ______________________________________________________________________
106 #ifdef _DEBUG_HOMARD_
107 write (ulsort,texte(langue,1)) 'Entree', nompro
115 #ifdef _DEBUG_HOMARD_
116 write (ulsort,texte(langue,4)) lepent, etat
120 c 2. denombrement des fils pour les differents cas de figure
122 c 2.0. ==> a priori, aucun
128 c 2.1. ==> etat = 1, ..., 6 :
129 c decoupage en 1 tetraedre et 2 pyramides
131 if ( etat.ge.1 .and. etat.le.6 ) then
136 c 2.2. ==> etat = 17, ..., 19 :
137 c decoupage en 2 tetraedres et 1 pyramide.
139 elseif ( etat.ge.17 .and. etat.le.19 ) then
144 c 2.3. ==> etat = 21, ..., 26 :
145 c decoupage en 6 tetraedres
147 elseif ( etat.ge.21 .and. etat.le.26 ) then
151 c 2.4. ==> etat = 31, ..., 36 :
152 c decoupage en 10 tetraedres et 1 pyramide.
154 elseif ( etat.ge.31 .and. etat.le.36 ) then
159 c 2.5. ==> etat = 43, ..., 45 :
160 c decoupage en 2 tetraedres et 4 pyramides
162 elseif ( etat.ge.43 .and. etat.le.45 ) then
167 c 2.6. ==> etat = 51, 52 :
168 c decoupage en 11 tetraedres
170 elseif ( etat.ge.51 .and. etat.le.52 ) then
174 c 2.7. ==> etat = 80 :
175 c decoupage en 8 pentaedres.
177 elseif ( etat.eq.80 .or. etat.eq.99 ) then
183 #ifdef _DEBUG_HOMARD_
184 write (ulsort,90002) 'nfpent', nfpent
185 write (ulsort,90002) 'nfpyra', nfpyra
186 write (ulsort,90002) 'nftetr', nftetr
192 c 3.1. ==> Reperage des pentaedres fils du pentaedre
194 if ( nfpent.gt.0 ) then
196 jaux = filpen(lepent) - 1
197 do 31 , iaux = 1 , nfpent
198 ficalc(1,iaux) = npecca(jaux+iaux)
200 cgn write(ulsort,90002) 'nfpent', nfpent
201 cgn write(ulsort,91020) (ficalc(1,iaux) , iaux = 1 , nfpent)
205 c 3.2. ==> Reperage des pyramides filles du pentaedre
207 if ( nfpyra.gt.0 ) then
209 jaux = fppyte(1,-filpen(lepent)) - 1
210 do 32 , iaux = 1 , nfpyra
211 ficalc(2,iaux) = npycca(jaux+iaux)
213 cgn write(ulsort,90002) 'nfpyra', nfpyra
214 cgn write(ulsort,91020) (ficalc(2,iaux) , iaux = 1 , nfpyra)
218 c 3.3. ==> Reperage des tetraedres fils du pentaedre
220 if ( nftetr.gt.0 ) then
222 jaux = fppyte(2,-filpen(lepent)) - 1
223 do 33 , iaux = 1 , nftetr
224 ficalc(3,iaux) = ntecca(jaux+iaux)
226 cgn write(ulsort,90002) 'nftetr', nftetr
227 cgn write(ulsort,91020) (ficalc(3,iaux) , iaux = 1 , nftetr)
235 if ( codret.ne.0 ) then
237 write (ulsort,texte(langue,1)) 'Sortie', nompro
238 write (ulsort,texte(langue,2)) codret
242 #ifdef _DEBUG_HOMARD_
243 write (ulsort,texte(langue,1)) 'Sortie', nompro