1 subroutine infc35 ( numcas, nbcomp, nbentc,
2 > profil, vafoti, vafotr,
3 > facpyr, cofapy, arepyr,
4 > perpyr, pphepe, npyrca,
9 > ulsort, langue, codret )
10 c ______________________________________________________________________
14 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
16 c Version originale enregistree le 18 juin 1996 sous le numero 96036
17 c aupres des huissiers de justice Simart et Lavoir a Clamart
18 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
19 c aupres des huissiers de justice
20 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
22 c HOMARD est une marque deposee d'Electricite de France
28 c ______________________________________________________________________
29 c INformation - inFormations Complementaires - phase 35
31 c Valeurs sur les pyramides
32 c ______________________________________________________________________
34 c . nom . e/s . taille . description .
35 c .____________________________________________________________________.
36 c . numcas . e . 1 . numero du cas en cours de traitement .
37 c . . . . 1 : niveau .
38 c . . . . 2 : qualite .
39 c . . . . 3 : diametre .
40 c . . . . 4 : parente .
41 c . . . . 5 : voisins des recollements .
42 c . nbcomp . e . 1 . nombre de composantes .
43 c . nbentc . e . 1 . nombre total d'entites du calcul .
44 c . profil . s . nbentc . pour chaque entite du calcul : .
45 c . . . . 0 : l'entite est absente du profil .
46 c . . . . 1 : l'entite est presente dans le profil .
47 c . vafoti . s . nbentc . tableau temporaire de la fonction .
48 c . vafotr . s . nbentc . tableau temporaire de la fonction .
49 c . facpyr . e .nbpycf*5. numeros des 5 faces des pyramides .
50 c . cofapy . e .nbpycf*5. codes des faces des pyramides .
51 c . arepyr . e .nbpyca*8. numeros des 8 aretes des pyramides .
52 c . perpyr . e . nbpyto . pere des pyramides .
53 c . . . . si perpyr(i) > 0 : numero de la pyramide .
54 c . . . . si perpyr(i) < 0 : -numero dans pphepe .
55 c . pphepe . e . * . si i <= nbheco : numero de l'hexaedre .
56 c . . . . si non : numero du pentaedre .
57 c . npyrca . e . * . nro des pyramides dans le calcul .
58 c . coonoe . e . nbnoto . coordonnees des noeuds .
60 c . somare . e .2*nbarto. numeros des extremites d'arete .
61 c . aretri . e .nbtrto*3. numeros des 3 aretes des triangles .
62 c . nivtri . e . nbtrto . niveau dans le raffinement/deraffinement .
63 c . nivqua . e . nbquto . niveau dans le raffinement/deraffinement .
64 c . quahex . e .nbhecf*6. numeros des 6 quadrangles des hexaedres .
65 c . facpen . e .nbpecf*5. numeros des 5 faces des pentaedres .
66 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
67 c . langue . e . 1 . langue des messages .
68 c . . . . 1 : francais, 2 : anglais .
69 c . codret . es . 1 . code de retour des modules .
70 c . . . . 0 : pas de probleme .
71 c . . . . 5 : mauvais type de code de calcul associe .
72 c ______________________________________________________________________
75 c 0. declarations et dimensionnement
78 c 0.1. ==> generalites
84 parameter ( nompro = 'INFC35' )
104 integer nbcomp, nbentc
105 integer profil(nbentc)
106 integer vafoti(nbentc)
107 integer facpyr(nbpycf,5), cofapy(nbpycf,5), arepyr(nbpyca,8)
108 integer perpyr(nbpyto), pphepe(*), npyrca(*)
109 integer somare(2,nbarto)
110 integer aretri(nbtrto,3), nivtri(nbtrto)
111 integer nivqua(nbquto)
112 integer quahex(nbhecf,6)
113 integer facpen(nbpecf,5)
115 double precision coonoe(nbnoto,sdim)
116 double precision vafotr(nbentc)
118 integer ulsort, langue, codret
120 c 0.4. ==> variables locales
122 integer iaux, jaux, kaux
124 double precision niveau, qualit, qualij, volume, diamet
127 parameter ( nbmess = 10 )
128 character*80 texte(nblang,nbmess)
130 c 0.5. ==> initialisations
131 c ______________________________________________________________________
140 #ifdef _DEBUG_HOMARD_
141 write (ulsort,texte(langue,1)) 'Entree', nompro
144 texte(1,4) = '(''.. Valeurs sur les '',a)'
146 texte(2,4) = '(''.. Values over the '',a)'
148 #ifdef _DEBUG_HOMARD_
149 write (ulsort,texte(langue,4)) mess14(langue,3,5)
150 write (ulsort,90002) 'numcas', numcas
151 write (ulsort,90002) 'nbpyto', nbpyto
152 write (ulsort,90002) 'nbpype', nbpype
153 write (ulsort,90002) 'nbpycf', nbpycf
154 write (ulsort,90002) 'nbentc', nbentc
163 do 21 , iaux = 1 , nbentc
171 if ( numcas.eq.1 ) then
173 c 3.1. ==> Les pyramides de depart ou issus d'un decoupage en 8
174 c Les faces sont toutes du meme niveau
175 c Remarque : elles sont toujours decrites par faces
177 do 31 , iaux = 1 , nbpype
179 cgn write (ulsort,90015) 'npyrca(',iaux,') =', npyrca(iaux)
180 cgn write (ulsort,90015) 'nivtri(',iaux,') =', nivtri(iaux)
183 if ( jaux.ne.0 ) then
184 vafotr(jaux) = dble(nivtri(facpyr(iaux,1)))
190 c 3.2. ==> Les pyramides issues d'un decoupage de conformite
191 c Remarque : elles sont toujours actives
193 do 32 , iaux = nbpype+1 , nbpyto
195 call utnpyr ( iaux, niveau,
196 > facpyr, perpyr, pphepe,
201 vafotr(jaux) = niveau
210 elseif ( numcas.eq.2 ) then
212 do 41 , iaux = 1 , nbpyto
215 if ( jaux.ne.0 ) then
217 call utqpyr ( kaux, qualit, qualij, volume,
218 > coonoe, somare, aretri,
219 > facpyr, cofapy, arepyr )
220 vafotr(jaux) = qualit
231 elseif ( numcas.eq.3 ) then
233 do 51 , iaux = 1 , nbpyto
236 if ( jaux.ne.0 ) then
238 call utdpyr ( kaux, diamet,
239 > coonoe, somare, aretri,
240 > facpyr, cofapy, arepyr )
241 vafotr(jaux) = diamet
252 elseif ( numcas.eq.4 ) then
254 do 61 , iaux = 1 , nbpyto
257 if ( jaux.ne.0 ) then
258 vafoti(jaux) = perpyr(iaux)
270 if ( codret.ne.0 ) then
274 write (ulsort,texte(langue,1)) 'Sortie', nompro
275 write (ulsort,texte(langue,2)) codret
279 #ifdef _DEBUG_HOMARD_
280 write (ulsort,texte(langue,1)) 'Sortie', nompro