1 subroutine utb17a ( hetare, somare, np2are,
5 > hettet, tritet, cotrte, aretet,
6 > hethex, quahex, coquhe, arehex,
7 > hetpyr, facpyr, cofapy, arepyr,
8 > hetpen, facpen, cofape, arepen,
16 > ulsort, langue, codret )
17 c ______________________________________________________________________
21 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
23 c Version originale enregistree le 18 juin 1996 sous le numero 96036
24 c aupres des huissiers de justice Simart et Lavoir a Clamart
25 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
26 c aupres des huissiers de justice
27 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
29 c HOMARD est une marque deposee d'Electricite de France
35 c ______________________________________________________________________
37 c UTilitaire - Bilan sur le maillage - option 17
39 c ______________________________________________________________________
41 c diagnostic des elements du calcul
42 c ______________________________________________________________________
44 c . nom . e/s . taille . description .
45 c .____________________________________________________________________.
46 c . hetare . e . nbarto . historique de l'etat des aretes .
47 c . somare . e .2*nbarto. numeros des extremites d'arete .
48 c . np2are . e . nbarto . numero des noeuds p2 milieux d'aretes .
49 c . posifa . e . nbarto . pointeur sur tableau facare .
50 c . facare . e . nbfaar . liste des faces contenant une arete .
51 c . hettri . e . nbtrto . historique de l'etat des triangles .
52 c . aretri . e .nbtrto*3. numeros des 3 aretes des triangles .
53 c . hetqua . e . nbquto . historique de l'etat des quadrangles .
54 c . arequa . e .nbquto*4. numeros des 4 aretes des quadrangles .
55 c . hettet . e . nbteto . historique de l'etat des tetraedres .
56 c . tritet . e .nbtecf*4. numeros des 4 triangles des tetraedres .
57 c . cotrte . e .nbtecf*4. codes des triangles des tetraedres .
58 c . hethex . e . nbheto . historique de l'etat des hexaedres .
59 c . quahex . e .nbhecf*6. numeros des 6 quadrangles des hexaedres .
60 c . quahex . e .nbhecf*6. numeros des 6 quadrangles des hexaedres .
61 c . hetpyr . e . nbpyto . historique de l'etat des pyramides .
62 c . facpyr . e .nbpycf*5. numeros des 5 faces des pyramides .
63 c . cofapy . e .nbpycf*5. codes des faces des pyramides .
64 c . hetpen . e . nbpeto . historique de l'etat des pentaedres .
65 c . facpen . e .nbpecf*5. numeros des 5 faces des pentaedres .
66 c . cofape . e .nbpecf*5. codes des faces des pentaedres .
67 c . voltri . e .2*nbtrto. numeros des 2 volumes par triangle .
68 c . . . . voltri(i,k) definit le i-eme voisin de k .
69 c . . . . 0 : pas de voisin .
70 c . . . . j>0 : tetraedre j .
71 c . . . . j<0 : pyramide/pentaedre dans pypetr(1/2,j).
72 c . volqua . e .2*nbquto. numeros des 2 volumes par quadrangle .
73 c . . . . volqua(i,k) definit le i-eme voisin de k .
74 c . . . . 0 : pas de voisin .
75 c . . . . j>0 : hexaedre j .
76 c . . . . j<0 : pyramide/pentaedre dans pypequ(1/2,j).
77 c . famare . e . nbarto . famille des aretes .
78 c . cfaare . e . nctfar*. codes des familles des aretes .
79 c . . . nbfare . 1 : famille MED .
80 c . . . . 2 : type de segment .
81 c . . . . 3 : orientation .
82 c . . . . 4 : famille d'orientation inverse .
83 c . . . . 5 : numero de ligne de frontiere .
84 c . . . . > 0 si concernee par le suivi de frontiere.
85 c . . . . <= 0 si non concernee .
86 c . . . . 6 : famille frontiere active/inactive .
87 c . . . . 7 : numero de surface de frontiere .
88 c . . . . + l : appartenance a l'equivalence l .
89 c . famtri . e . nbtrto . famille des triangles .
90 c . cfatri . e . nctftr*. codes des familles des triangles .
91 c . . . nbftri . 1 : famille MED .
92 c . . . . 2 : type de triangle .
93 c . . . . 3 : numero de surface de frontiere .
94 c . . . . 4 : famille des aretes internes apres raf.
95 c . . . . + l : appartenance a l'equivalence l .
96 c . famqua . e . nbquto . famille des quadrangles .
97 c . cfaqua . e . nctfqu*. codes des familles des quadrangles .
98 c . . . nbfqua . 1 : famille MED .
99 c . . . . 2 : type de quadrangle .
100 c . . . . 3 : numero de surface de frontiere .
101 c . . . . 4 : famille des aretes internes apres raf.
102 c . . . . 5 : famille des triangles de conformite .
103 c . . . . 6 : famille de sf active/inactive .
104 c . . . . + l : appartenance a l'equivalence l .
105 c . tabaux . a . nbnoto . tableau auxiliaire .
106 c . ulbila . e . 1 . unite logique d'ecriture du bilan .
107 c . ulsort . e . 1 . unite logique de la sortie generale .
108 c . langue . e . 1 . langue des messages .
109 c . . . . 1 : francais, 2 : anglais .
110 c . codret . s . 1 . code de retour des modules .
111 c . . . . 0 : pas de probleme .
112 c . . . . 1 : probleme .
113 c .____________________________________________________________________.
116 c 0. declarations et dimensionnement
119 c 0.1. ==> generalites
125 parameter ( nompro = 'UTB17A' )
145 integer hetare(nbarto), somare(2,nbarto), np2are(nbarto)
147 integer hettri(nbtrto), aretri(nbtrto,3)
148 integer hetqua(nbquto), arequa(nbquto,4)
149 integer hettet(nbteto)
150 integer tritet(nbtecf,4), cotrte(nbtecf,4), aretet(nbteca,6)
151 integer hethex(nbheto)
152 integer quahex(nbhecf,6), coquhe(nbhecf,6), arehex(nbheca,12)
153 integer hetpyr(nbpyto)
154 integer facpyr(nbpycf,5), cofapy(nbpycf,5), arepyr(nbpyca,8)
155 integer hetpen(nbpeto)
156 integer facpen(nbpecf,5), cofape(nbpecf,5), arepen(nbpeca,9)
158 integer posifa(0:nbarto), facare(nbfaar)
159 integer volqua(2,nbquto)
160 integer voltri(2,nbtrto)
162 integer famare(nbarto), cfaare(nctfar,nbfare)
163 integer famtri(nbtrto), cfatri(nctftr,nbftri)
164 integer famqua(nbquto), cfaqua(nctfqu,nbfqua)
166 integer tabaux(nbnoto)
169 integer ulsort, langue, codret
171 c 0.4. ==> variables locales
176 parameter (nbmess = 10 )
177 character*80 texte(nblang,nbmess)
179 c 0.5. ==> initialisations
180 c ______________________________________________________________________
188 #ifdef _DEBUG_HOMARD_
189 write (ulsort,texte(langue,1)) 'Entree', nompro
194 >'(//,3x,''DIAGNOSTICS SUR LES ELEMENTS DU CALCUL'',/,3x,38(''=''),
197 > '(3x,''Un element est surcontraint si tous ses noeuds sont'')'
199 > '(3x,''sur le bord du domaine. Cela peut poser un probleme'')'
201 > '(3x,''selon les conditions aux limites utilisees.'')'
204 > '(//,3x,''DIAGNOSIS OF CALCULATION ELEMENTS'',/,3x,33(''=''),/)'
206 > '(3x,''An element is overstressed if all its nodes are'')'
208 > '(3x,''located on the boundary of the domain. It may give,'')'
210 > '(3x,''problem depending on the used boundary conditions.'')'
215 write (ulbila,texte(langue,iaux))
219 c 2. Mailles surfaciques
221 #ifdef _DEBUG_HOMARD_
222 write (ulsort,*) '2. Mailles surfaciques : codret = ', codret
225 if ( nbtrac.gt.0 .or. nbquac.gt.0 ) then
227 c 2.1. ==> Reperage des noeuds de bord
229 if ( codret.eq.0 ) then
233 #ifdef _DEBUG_HOMARD_
234 write (ulsort,texte(langue,3)) 'UTB17D', nompro
237 > hetare, somare, np2are,
239 > hettri, aretri, voltri,
240 > hetqua, arequa, volqua,
242 > ulsort, langue, codret )
248 if ( codret.eq.0 ) then
250 #ifdef _DEBUG_HOMARD_
251 write (ulsort,texte(langue,3)) 'UTB17C', nompro
253 call utb17c ( somare, np2are,
264 > ulsort, langue, codret )
271 c 3. Mailles volumiques
273 #ifdef _DEBUG_HOMARD_
274 write (ulsort,*) '3. Mailles volumiques : codret = ', codret
277 if ( nbteac.gt.0 .or. nbheac.gt.0 .or.
278 > nbpyac.gt.0 .or. nbpeac.gt.0 ) then
280 c 3.1. ==> Reperage des noeuds de bord
282 if ( codret.eq.0 ) then
286 #ifdef _DEBUG_HOMARD_
287 write (ulsort,texte(langue,3)) 'UTB17D', nompro
290 > hetare, somare, np2are,
292 > hettri, aretri, voltri,
293 > hetqua, arequa, volqua,
295 > ulsort, langue, codret )
301 if ( codret.eq.0 ) then
303 #ifdef _DEBUG_HOMARD_
304 write (ulsort,texte(langue,3)) 'UTB17B', nompro
306 call utb17b ( somare, np2are,
311 > hettet, tritet, cotrte, aretet,
312 > hethex, quahex, coquhe, arehex,
313 > hetpyr, facpyr, cofapy, arepyr,
314 > hetpen, facpen, cofape, arepen,
317 > ulsort, langue, codret )