1 subroutine utdtri ( letria, diamet,
2 > coonoe, somare, aretri )
3 c ______________________________________________________________________
7 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
9 c Version originale enregistree le 18 juin 1996 sous le numero 96036
10 c aupres des huissiers de justice Simart et Lavoir a Clamart
11 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
12 c aupres des huissiers de justice
13 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
15 c HOMARD est une marque deposee d'Electricite de France
21 c ______________________________________________________________________
23 c UTilitaire : Diametre d'un TRIangle
25 c ______________________________________________________________________
27 c Le diametre d'une maille est la longueur du plus grand segment que
28 c l'on peut tracer a l'interieur de cette maille.
29 c Pour un triangle, le diametre est la longueur maximale des aretes
30 c ______________________________________________________________________
32 c . nom . e/s . taille . description .
33 c .____________________________________________________________________.
34 c . letria . e . 1 . numero du triangle a examiner .
35 c . diamet . s . 1 . diametre .
36 c . coonoe . e . nbnoto . coordonnees des noeuds .
38 c . somare . e .2*nbarto. numeros des extremites d'arete .
39 c . aretri . e .nbtrto*3. numeros des 3 aretes des triangles .
40 c .____________________________________________________________________.
43 c 0. declarations et dimensionnement
46 c 0.1. ==> generalites
60 double precision diamet, coonoe(nbnoto,sdim)
62 integer somare(2,nbarto), aretri(nbtrto,3)
66 c 0.4. ==> variables locales
70 double precision ar1, ar2, ar3
71 double precision var(3)
73 c 0.5. ==> initialisations
74 c ______________________________________________________________________
85 c 2. les carres des longueurs des 3 aretes
88 c 2.1. ==> en dimension 2
92 var(1) = coonoe(somare(2,a1),1) - coonoe(somare(1,a1),1)
93 var(2) = coonoe(somare(2,a1),2) - coonoe(somare(1,a1),2)
94 ar1 = var(1)*var(1) + var(2)*var(2)
96 var(1) = coonoe(somare(2,a2),1) - coonoe(somare(1,a2),1)
97 var(2) = coonoe(somare(2,a2),2) - coonoe(somare(1,a2),2)
98 ar2 = var(1)*var(1) + var(2)*var(2)
100 var(1) = coonoe(somare(2,a3),1) - coonoe(somare(1,a3),1)
101 var(2) = coonoe(somare(2,a3),2) - coonoe(somare(1,a3),2)
102 ar3 = var(1)*var(1) + var(2)*var(2)
104 c 2.2. ==> en dimension 3
108 var(1) = coonoe(somare(2,a1),1) - coonoe(somare(1,a1),1)
109 var(2) = coonoe(somare(2,a1),2) - coonoe(somare(1,a1),2)
110 var(3) = coonoe(somare(2,a1),3) - coonoe(somare(1,a1),3)
111 ar1 = var(1)*var(1) + var(2)*var(2) + var(3)*var(3)
113 var(1) = coonoe(somare(2,a2),1) - coonoe(somare(1,a2),1)
114 var(2) = coonoe(somare(2,a2),2) - coonoe(somare(1,a2),2)
115 var(3) = coonoe(somare(2,a2),3) - coonoe(somare(1,a2),3)
116 ar2 = var(1)*var(1) + var(2)*var(2) + var(3)*var(3)
118 var(1) = coonoe(somare(2,a3),1) - coonoe(somare(1,a3),1)
119 var(2) = coonoe(somare(2,a3),2) - coonoe(somare(1,a3),2)
120 var(3) = coonoe(somare(2,a3),3) - coonoe(somare(1,a3),3)
121 ar3 = var(1)*var(1) + var(2)*var(2) + var(3)*var(3)
127 c on ne prend la racine carre qu'ici pour economiser du temps calcul
130 diamet = max ( ar1, ar2, ar3 )
131 diamet = sqrt(diamet)
132 cgn print *, ar1, ar2, ar3, ' ==> ', diamet