1 subroutine utdtet ( letetr, diamet,
2 > coonoe, somare, aretri,
3 > tritet, cotrte, aretet )
4 c ______________________________________________________________________
8 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
10 c Version originale enregistree le 18 juin 1996 sous le numero 96036
11 c aupres des huissiers de justice Simart et Lavoir a Clamart
12 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
13 c aupres des huissiers de justice
14 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
16 c HOMARD est une marque deposee d'Electricite de France
22 c ______________________________________________________________________
24 c UTilitaire : Diametre d'un TETraedre
26 c ______________________________________________________________________
28 c Le diametre d'une maille est la longueur du plus grand segment que
29 c l'on peut tracer a l'interieur de cette maille.
30 c Pour un tetraedre, le diametre est la longueur maximale des aretes
31 c ______________________________________________________________________
33 c . nom . e/s . taille . description .
34 c .____________________________________________________________________.
35 c . letetr . e . 1 . numero du tetraedre a examiner .
36 c . diamet . s . 1 . qualite .
37 c . coonoe . e . nbnoto . coordonnees des noeuds .
39 c . somare . e .2*nbarto. numeros des extremites d'arete .
40 c . aretri . e .nbtrto*3. numeros des 3 aretes des triangles .
41 c . tritet . e .nbtecf*4. numeros des 4 triangles des tetraedres .
42 c . cotrte . e .nbtecf*4. code des 4 triangles des tetraedres .
43 c . aretet . e .nbteca*6. numeros des 6 aretes des tetraedres .
44 c .____________________________________________________________________.
47 c 0. declarations et dimensionnement
50 c 0.1. ==> generalites
64 double precision diamet, coonoe(nbnoto,3)
67 integer somare(2,nbarto)
68 integer aretri(nbtrto,3)
69 integer tritet(nbtecf,4), cotrte(nbtecf,4), aretet(nbteca,6)
71 c 0.4. ==> variables locales
73 integer listar(6), listso(4)
76 double precision ar1, ar2, ar3, ar4, ar5, ar6
77 double precision var(3)
79 c 0.5. ==> initialisations
81 c ______________________________________________________________________
84 c 1. les aretes et les sommets de ce tetraedre
88 > nbtrto, nbtecf, nbteca,
90 > tritet, cotrte, aretet,
94 c 2. les carres des longueurs des 6 aretes
97 var(1) = coonoe(listso(2),1) - coonoe(listso(1),1)
98 var(2) = coonoe(listso(2),2) - coonoe(listso(1),2)
99 var(3) = coonoe(listso(2),3) - coonoe(listso(1),3)
100 ar1 = var(1)*var(1) + var(2)*var(2) + var(3)*var(3)
102 var(1) = coonoe(listso(3),1) - coonoe(listso(1),1)
103 var(2) = coonoe(listso(3),2) - coonoe(listso(1),2)
104 var(3) = coonoe(listso(3),3) - coonoe(listso(1),3)
105 ar2 = var(1)*var(1) + var(2)*var(2) + var(3)*var(3)
107 var(1) = coonoe(listso(4),1) - coonoe(listso(1),1)
108 var(2) = coonoe(listso(4),2) - coonoe(listso(1),2)
109 var(3) = coonoe(listso(4),3) - coonoe(listso(1),3)
110 ar3 = var(1)*var(1) + var(2)*var(2) + var(3)*var(3)
112 var(1) = coonoe(listso(3),1) - coonoe(listso(2),1)
113 var(2) = coonoe(listso(3),2) - coonoe(listso(2),2)
114 var(3) = coonoe(listso(3),3) - coonoe(listso(2),3)
115 ar4 = var(1)*var(1) + var(2)*var(2) + var(3)*var(3)
117 var(1) = coonoe(listso(4),1) - coonoe(listso(2),1)
118 var(2) = coonoe(listso(4),2) - coonoe(listso(2),2)
119 var(3) = coonoe(listso(4),3) - coonoe(listso(2),3)
120 ar5 = var(1)*var(1) + var(2)*var(2) + var(3)*var(3)
122 var(1) = coonoe(listso(4),1) - coonoe(listso(3),1)
123 var(2) = coonoe(listso(4),2) - coonoe(listso(3),2)
124 var(3) = coonoe(listso(4),3) - coonoe(listso(3),3)
125 ar6 = var(1)*var(1) + var(2)*var(2) + var(3)*var(3)
129 c on ne prend la racine carre qu'ici pour economiser du temps calcul
132 diamet = max ( ar1, ar2, ar3, ar4, ar5, ar6 )
133 diamet = sqrt(diamet)
134 cgn print *, ar1, ar2, ar3, ar4, ar5, ar6, ' ==> ', diamet