1 subroutine utntri ( letria, normal,
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 : Normale d'un TRIangle
25 c ______________________________________________________________________
27 c . nom . e/s . taille . description .
28 c .____________________________________________________________________.
29 c . letria . e . 1 . numero du triangle a examiner .
30 c . normal . s . 3 . vecteur de la normale .
31 c . coonoe . e . nbnoto . coordonnees des noeuds .
33 c . somare . e .2*nbarto. numeros des extremites d'arete .
34 c . aretri . e .nbtrto*3. numeros des 3 aretes des triangles .
35 c .____________________________________________________________________.
38 c 0. declarations et dimensionnement
41 c 0.1. ==> generalites
55 double precision normal(3), coonoe(nbnoto,sdim)
57 integer somare(2,nbarto), aretri(nbtrto,3)
61 c 0.4. ==> variables locales
65 double precision aret1(3), aret2(3)
67 c 0.5. ==> initialisations
68 c ______________________________________________________________________
77 aret1(1) = coonoe(somare(2,a1),1) - coonoe(somare(1,a1),1)
78 aret1(2) = coonoe(somare(2,a1),2) - coonoe(somare(1,a1),2)
79 aret1(3) = coonoe(somare(2,a1),3) - coonoe(somare(1,a1),3)
81 aret2(1) = coonoe(somare(2,a2),1) - coonoe(somare(1,a2),1)
82 aret2(2) = coonoe(somare(2,a2),2) - coonoe(somare(1,a2),2)
83 aret2(3) = coonoe(somare(2,a2),3) - coonoe(somare(1,a2),3)
86 c 2. normal = produit vectoriel
89 normal(1) = aret2(2)*aret1(3) - aret2(3)*aret1(2)
90 normal(2) = aret2(3)*aret1(1) - aret2(1)*aret1(3)
91 normal(3) = aret2(1)*aret1(2) - aret2(2)*aret1(1)
93 aret1(1) = sqrt ( normal(1)*normal(1) +
94 > normal(2)*normal(2) +
95 > normal(3)*normal(3) )
97 normal(1) = normal(1)/aret1(1)
98 normal(2) = normal(2)/aret1(1)
99 normal(3) = normal(3)/aret1(1)