1 subroutine utnpen ( lepent, niveau,
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 UTilitaire : Niveau d'un PENtaedre
26 c ______________________________________________________________________
28 c . nom . e/s . taille . description .
29 c .____________________________________________________________________.
30 c . lepent . e . 1 . numero du pentaedre a examiner .
31 c . niveau . s . 1 . niveau .
32 c . facpen . e .nbpecf*5. numeros des 5 faces des pentaedres .
33 c . perpen . e . nbpeto . pere des pentaedres .
34 c . nivtri . e . nbtrto . niveau dans le raffinement/deraffinement .
35 c . nivqua . e . nbquto . niveau dans le raffinement/deraffinement .
36 c ______________________________________________________________________
39 c 0. declarations et dimensionnement
42 c 0.1. ==> generalites
55 double precision niveau
58 integer facpen(nbpecf,5), perpen(nbpeto)
59 integer nivtri(nbtrto), nivqua(nbquto)
61 c 0.4. ==> variables locales
63 integer lafac1, lafac2, lafac3, lafac4, lafac5
67 c 0.5. ==> initialisations
71 cgn write(*,90002) 'nbpema, nbpecf, nbpeto', nbpema, nbpecf, nbpeto
72 cgn write(*,90002) 'nbheco', nbheco
75 c 1. Du maillage initial
78 if ( lepent.le.nbpema ) then
88 c 2.1. ==> Si le pentaedre est decrit par faces :
89 c le plus haut niveau de ses faces
91 if ( lepent.le.nbpecf ) then
93 lafac1 = facpen(lepent,1)
94 lafac2 = facpen(lepent,2)
95 lafac3 = facpen(lepent,3)
96 lafac4 = facpen(lepent,4)
97 lafac5 = facpen(lepent,5)
98 jaux = max(nivtri(lafac1),nivtri(lafac2),
99 > nivqua(lafac3),nivqua(lafac4),nivqua(lafac5))
101 c 2.2. ==> Si le pentaedre est decrit par aretes :
102 c son niveau est le niveau du pere augmente d'un cran
106 iaux = perpen(lepent)
108 if ( iaux.gt.0 ) then
111 write(*,90002) 'lepent, iaux', lepent, iaux
112 write(*,*) 'arret dans utnpen'
115 cgn write(*,90002) 'iaux, lepere', iaux, lepere
117 if ( iaux.gt.0 ) then
119 lafac1 = facpen(lepere,1)
120 lafac2 = facpen(lepere,2)
121 lafac3 = facpen(lepere,3)
122 lafac4 = facpen(lepere,4)
123 lafac5 = facpen(lepere,5)
124 jaux = max(nivtri(lafac1),nivtri(lafac2),
125 > nivqua(lafac3),nivqua(lafac4),nivqua(lafac5))
133 cgn write(*,90002) '==> jaux',jaux
137 c 3. Si le pentaedre est de conformite, on prend le niveau
138 c intermediaire immediatement inferieur
141 if ( lepent.gt.nbpepe ) then
142 niveau = niveau - 0.5d0
146 cgn write(*,90004) '==> niveau',niveau