1 subroutine mmag43 ( coonoe, somare,
7 > grfmpo, grfmtl, grfmtb,
8 > nbgrfm, nomgro, lgnogr,
12 > ulsort, langue, codret )
13 c ______________________________________________________________________
17 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
19 c Version originale enregistree le 18 juin 1996 sous le numero 96036
20 c aupres des huissiers de justice Simart et Lavoir a Clamart
21 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
22 c aupres des huissiers de justice
23 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
25 c HOMARD est une marque deposee d'Electricite de France
31 c ______________________________________________________________________
33 c Modification de Maillage - AGRegat - phase 4.3
35 c Taille des joints quadruples
36 c ______________________________________________________________________
38 c Remarque : ce programme est une copie de utb13d
39 c ______________________________________________________________________
41 c . nom . e/s . taille . description .
42 c .____________________________________________________________________.
43 c . coonoe . e . nbnoto . coordonnees des noeuds .
45 c . somare . e .2*nbarto. numeros des extremites d'arete .
46 c . famhex . e . nbheto . famille des hexaedres .
47 c . cfahex . e . nctfhe*. codes des familles des hexaedres .
48 c . . . nbfhex . 1 : famille MED .
49 c . . . . 2 : type d'hexaedres .
50 c . . . . 3 : famille des tetraedres de conformite .
51 c . . . . 4 : famille des pyramides de conformite .
52 c . nbvojm . e . 1 . nombre de volumes de joints multiples .
53 c . nbhejq . e . 1 . nombre de pentaedres de joints triples .
54 c . nbjois . e . 1 . nombre de joints simples .
55 c . nbjoiq . e . 1 . nombre de joints quadruples .
56 c . tbau41 . e .4*nbvojm. Les pentaedres de joint triple, puis les .
57 c . . . . hexaedres de joint quadruple : .
58 c . . . . (1,i) : arete multiple .
59 c . . . . (2,i) : numero du joint .
60 c . . . . Pour le i-eme pentaedre de joint triple : .
61 c . . . . (3,i) : triangle cree cote 1er sommet .
62 c . . . . (4,i) : triangle cree cote 2nd sommet .
63 c . . . . Pour le i-eme hexaedre de joint quadruple :.
64 c . . . . (3,i) : quadrangle cree cote 1er sommet .
65 c . . . . (4,i) : quadrangle cree cote 2nd sommet .
66 c . nbfmed . e . 1 . nombre de familles au sens MED .
67 c . numfam . e . nbfmed . numero des familles au sens MED .
68 c . grfmpo . e .0:nbfmed. pointeur des groupes des familles .
69 c . grfmtl . e . * . taille des groupes des familles .
70 c . grfmtb . e .10ngrouc. table des groupes des familles .
71 c . nbgrfm . e . 1 . nombre de groupes .
72 c . nomgro . e .char*(*). noms des groupes (paquets de 10char8) .
73 c . lgnogr . e . nbgrfm . longueur des noms des groupes .
74 c . famnum . a . * . famille : numero avec une valeur .
75 c . famval . a . * . famille : la valeur .
76 c . lifagr . a . * . liste des familles contenant le groupe .
77 c . ulbila . e . 1 . unite logique d'ecriture du bilan .
78 c . ulsort . e . 1 . unite logique de la sortie generale .
79 c . langue . e . 1 . langue des messages .
80 c . . . . 1 : francais, 2 : anglais .
81 c . codret . s . 1 . code de retour des modules .
82 c . . . . 0 : pas de probleme .
83 c . . . . 1 : probleme .
84 c .____________________________________________________________________.
87 c 0. declarations et dimensionnement
90 c 0.1. ==> generalites
96 parameter ( nompro = 'MMAG43' )
116 double precision coonoe(nbnoto,sdim)
118 integer nbvojm, nbhejq
119 integer nbjois, nbjoiq
120 integer somare(2,nbarto)
121 integer famhex(nbheto), cfahex(nctfhe,nbfhex)
122 integer tbau41(4,nbvojm)
124 integer nbfmed, numfam(nbfmed)
125 integer grfmpo(0:nbfmed)
127 integer nbgrfm, lgnogr(nbgrfm)
129 character*8 grfmtb(*)
130 character*8 nomgro(*)
133 double precision famval(*)
138 integer ulsort, langue, codret
140 c 0.4. ==> variables locales
146 double precision vn(3)
147 double precision daux
150 parameter (nbmess = 30 )
151 character*80 texte(nblang,nbmess)
153 c 0.5. ==> initialisations
154 c ______________________________________________________________________
162 #ifdef _DEBUG_HOMARD_
163 write (ulsort,texte(langue,1)) 'Entree', nompro
173 #ifdef _DEBUG_HOMARD_
174 write (ulsort,texte(langue,12)) nbjois
175 write (ulsort,texte(langue,14)) nbjoiq
179 c 2. calcul des longueurs
182 c 2.1. ==> initialisation
184 do 21 , iaux = 1 , nbjoiq
190 do 22 , numhex = 1 , nbhejq
192 larete = tbau41(1,numhex)
194 #ifdef _DEBUG_HOMARD_
195 write (ulsort,texte(langue,4)) ' ', mess14(langue,1,1), larete
196 write (ulsort,texte(langue,18)) ' ',mess14(langue,1,7),
200 c 2.2.1. ==> calcul de la longueur
202 vn(1) = coonoe(somare(2,larete),1) - coonoe(somare(1,larete),1)
203 vn(2) = coonoe(somare(2,larete),2) - coonoe(somare(1,larete),2)
204 vn(3) = coonoe(somare(2,larete),3) - coonoe(somare(1,larete),3)
206 daux = sqrt ( vn(1)*vn(1) + vn(2)*vn(2) + vn(3)*vn(3) )
208 cgn write (ulsort,*) '==> surface =', daux
210 c 2.2.3. ==> stockage dans le bon joint
212 iaux = tbau41(2,numhex) - nbjois
213 famnum(iaux) = cfahex(cofamd,famhex(numhex))
214 famval(iaux) = famval(iaux) + daux
221 #ifdef _DEBUG_HOMARD_
222 write (ulsort,*) '3. impression ; codret =', codret
223 cgn write (ulbila,*) (famval(iaux),iaux=1,nbjoiq)
228 #ifdef _DEBUG_HOMARD_
229 write (ulsort,texte(langue,3)) 'UTB13E_j_quadruple', nompro
231 call utb13e ( jaux, iaux,
233 > grfmpo, grfmtl, grfmtb,
234 > nbgrfm, nomgro, lgnogr,
235 > nbjoiq, famnum, famval,
238 > ulsort, langue, codret )
244 if ( codret.ne.0 ) then
248 write (ulsort,texte(langue,1)) 'Sortie', nompro
249 write (ulsort,texte(langue,2)) codret
253 #ifdef _DEBUG_HOMARD_
254 write (ulsort,texte(langue,1)) 'Sortie', nompro