1 subroutine mmag42 ( coonoe, somare,
3 > nbvojm, nbpejt, nbpejs, nbjois, nbjoit,
6 > grfmpo, grfmtl, grfmtb,
7 > nbgrfm, nomgro, lgnogr,
11 > ulsort, langue, codret )
12 c ______________________________________________________________________
16 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
18 c Version originale enregistree le 18 juin 1996 sous le numero 96036
19 c aupres des huissiers de justice Simart et Lavoir a Clamart
20 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
21 c aupres des huissiers de justice
22 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
24 c HOMARD est une marque deposee d'Electricite de France
30 c ______________________________________________________________________
32 c Modification de Maillage - AGRegat - phase 4.2
34 c Taille des joints triples
35 c ______________________________________________________________________
37 c Remarque : ce programme est une copie de utb13d
38 c ______________________________________________________________________
40 c . nom . e/s . taille . description .
41 c .____________________________________________________________________.
42 c . coonoe . e . nbnoto . coordonnees des noeuds .
44 c . somare . e .2*nbarto. numeros des extremites d'arete .
45 c . fampen . e . nbpeto . famille des pentaedres .
46 c . cfapen . e . nctfpe*. codes des familles des pentaedres .
47 c . . . nbfpen . 1 : famille MED .
48 c . . . . 2 : type de pentaedres .
49 c . . . . 3 : famille des tetraedres de conformite .
50 c . . . . 4 : famille des pyramides de conformite .
51 c . nbvojm . e . 1 . nombre de volumes de joints multiples .
52 c . nbpejt . e . 1 . nombre de pentaedres de joints triples .
53 c . nbpejs . e . 1 . nombre de pentaedres de joints simples .
54 c . nbjois . e . 1 . nombre de joints simples .
55 c . nbjoit . e . 1 . nombre de joints triples .
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 = 'MMAG42' )
116 double precision coonoe(nbnoto,sdim)
118 integer nbvojm, nbpejt, nbpejs, nbjois, nbjoit
119 integer somare(2,nbarto)
120 integer fampen(nbpeto), cfapen(nctfpe,nbfpen)
121 integer tbau41(4,nbvojm)
123 integer nbfmed, numfam(nbfmed)
124 integer grfmpo(0:nbfmed)
126 integer nbgrfm, lgnogr(nbgrfm)
128 character*8 grfmtb(*)
129 character*8 nomgro(*)
132 double precision famval(*)
137 integer ulsort, langue, codret
139 c 0.4. ==> variables locales
145 double precision vn(3)
146 double precision daux
149 parameter (nbmess = 30 )
150 character*80 texte(nblang,nbmess)
152 c 0.5. ==> initialisations
153 c ______________________________________________________________________
161 #ifdef _DEBUG_HOMARD_
162 write (ulsort,texte(langue,1)) 'Entree', nompro
173 c 2. calcul des longueurs
176 c 2.1. ==> initialisation
178 do 21 , iaux = 1 , nbjoit
184 do 22 , numpen = 1 , nbpejt
186 larete = tbau41(1,numpen)
188 #ifdef _DEBUG_HOMARD_
189 write (ulsort,texte(langue,4)) ' ', mess14(langue,1,1), larete
190 write (ulsort,texte(langue,18)) ' ',mess14(langue,1,7),
194 c 2.2.1. ==> calcul de la longueur
196 vn(1) = coonoe(somare(2,larete),1) - coonoe(somare(1,larete),1)
197 vn(2) = coonoe(somare(2,larete),2) - coonoe(somare(1,larete),2)
198 vn(3) = coonoe(somare(2,larete),3) - coonoe(somare(1,larete),3)
200 daux = sqrt ( vn(1)*vn(1) + vn(2)*vn(2) + vn(3)*vn(3) )
202 c 2.2.3. ==> stockage dans le bon joint
204 iaux = tbau41(2,numpen) - nbjois
205 famnum(iaux) = cfapen(cofamd,fampen(numpen+nbpejs))
206 famval(iaux) = famval(iaux) + daux
207 cgn if ( iaux.ge.1 ) then
208 cgn write (ulsort,92010) '==> longueur =', daux
209 cgn write (ulsort,90002) 'iaux, fampen, fammed', iaux,
210 cgn > fampen(numpen+nbpejs),cfapen(cofamd,fampen(numpen+nbpejs))
211 cgn write (ulsort,92010) '==> cumul =',famval(iaux)
219 #ifdef _DEBUG_HOMARD_
220 write (ulsort,*) '3. impression ; codret =', codret
221 write (ulsort,91010) (famnum(iaux),iaux=1,nbjoit)
222 write (ulsort,92010) (famval(iaux),iaux=1,nbjoit)
227 #ifdef _DEBUG_HOMARD_
228 write (ulsort,texte(langue,3)) 'UTB13E_j_triple', nompro
230 call utb13e ( jaux, iaux,
232 > grfmpo, grfmtl, grfmtb,
233 > nbgrfm, nomgro, lgnogr,
234 > nbjoit, famnum, famval,
237 > ulsort, langue, codret )
243 if ( codret.ne.0 ) then
247 write (ulsort,texte(langue,1)) 'Sortie', nompro
248 write (ulsort,texte(langue,2)) codret
252 #ifdef _DEBUG_HOMARD_
253 write (ulsort,texte(langue,1)) 'Sortie', nompro