1 subroutine utboqu ( nbquto, nbheto, numead,
2 > nivqua, filqua, perqua,
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 UTilitaire - BOrd - quadrangles
29 c ______________________________________________________________________
31 c . nom . e/s . taille . description .
32 c .____________________________________________________________________.
33 c . nbquto . e . 1 . nombre de quadrangles total .
34 c . nbheto . e . 1 . nombre d'hexaedres total .
35 c . numead . e . 1 . numero de la mere adoptive .
36 c . nivqua . e . nbquto . niveau des quadrangles .
37 c . filqua . e . nbquto . fils des quadrangles .
38 c . perqua . e . nbquto . pere des quadrangles .
39 c . hethex . e . nbheto . historique de l'etat des hexaedres .
40 c . hetpyr . e . nbpyto . historique de l'etat des pyramides .
41 c . volqua . e .nbquto*2. numeros des 2 volumes par quadrangle .
42 c . . . . volqua(i,k) definit le i-eme voisin de k .
43 c . . . . 0 : pas de voisin .
44 c . . . . j>0 : hexaedre j .
45 c . . . . j<0 : pyramide/pentaedre dans pypequ(1/2,j).
46 c . pypequ . e .2*lgpype. pypequ(1,j) = numero de la pyramide voisine.
47 c . . . . du quadrangle k tel que volqua(k,1/2) = -j .
48 c . . . . pypequ(2,j) = numero du pentaedre voisin .
49 c . . . . du quadrangle k tel que volqua(k,1/2) = -j .
50 c . borqua . s . nbquto . reperage des quadrangles de bord .
51 c . . . . -1 : quadrangle non classe .
52 c . . . . 0 : quadrangle bidimensionnel .
53 c . . . . 1 : quadrangle au bord d'un seul hexaedre .
54 c . . . . 2 : quadrangle entre 2 hexaedres .
55 c . . . . 3 : quadrangle de non conformite .
56 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
57 c . langue . e . 1 . langue des messages .
58 c . . . . 1 : francais, 2 : anglais .
59 c . codret . es . 1 . code de retour des modules .
60 c . . . . 0 : pas de probleme .
61 c . . . . sinon : probleme .
62 c ______________________________________________________________________
65 c 0. declarations et dimensionnement
68 c 0.1. ==> generalites
74 parameter ( nompro = 'UTBOQU' )
85 integer nbquto, nbheto, numead
86 integer nivqua(nbquto)
87 integer filqua(nbquto), perqua(nbquto)
88 integer hethex(*), hetpyr(*)
89 integer volqua(2,nbquto), pypequ(2,*)
90 integer borqua(nbquto)
92 integer ulsort, langue, codret
94 c 0.4. ==> variables locales
97 integer nbqu2d, nbqubo, nbquv2, nbquv3, nbquv4, nbqunc
100 parameter ( nbmess = 10 )
101 character*80 texte(nblang,nbmess)
102 c ______________________________________________________________________
110 #ifdef _DEBUG_HOMARD_
111 write (ulsort,texte(langue,1)) 'Entree', nompro
116 > '(''Nombre de '',a,'' de regions bidimensionnelles :'',i10)'
118 > '(''Nombre de '',a,'' de bord :'',i10)'
120 > '(''Nombre de '',a,'' internes aux volumes :'',i10)'
122 > '(''Nombre de '',a,'' de non conformite :'',i10)'
124 > '(''Nombre de '',a,'' non classes :'',i10)'
127 > '(''Number of '',a,'' in 2D regions :'',i10)'
129 > '(''Number of boundary '',a,'' :'',i10)'
131 > '(''Number of '',a,'' inside of volume :'',i10)'
133 > '(''Number of non conformal '',a,'' :'',i10)'
135 > '(''Number of '',a,'' without any place :'',i10)'
140 c 2. appel du programme generique
143 #ifdef _DEBUG_HOMARD_
144 write (ulsort,texte(langue,3)) 'UTBOFA', nompro
147 call utbofa ( iaux, numead,
149 > nivqua, filqua, perqua,
152 > borqua, nbqu2d, nbqubo,
153 > nbquv2, nbquv3, nbquv4, nbqunc,
154 > ulsort, langue, codret )
156 #ifdef _DEBUG_HOMARD_
157 if ( codret.eq.0 ) then
159 write(ulsort,texte(langue,4)) mess14(langue,3,iaux), nbqu2d
160 write(ulsort,texte(langue,5)) mess14(langue,3,iaux), nbqubo
161 write(ulsort,texte(langue,6)) mess14(langue,3,iaux), nbquv2
162 write(ulsort,texte(langue,7)) mess14(langue,3,iaux), nbqunc
163 write(ulsort,texte(langue,8)) mess14(langue,3,iaux),
164 > nbquto - nbqu2d - nbqubo - nbquv2 - nbqunc
172 if ( codret.ne.0 ) then
176 write (ulsort,texte(langue,1)) 'Sortie', nompro
177 write (ulsort,texte(langue,2)) codret
181 #ifdef _DEBUG_HOMARD_
182 write (ulsort,texte(langue,1)) 'Sortie', nompro