Salome HOME
Homard executable
[modules/homard.git] / src / tool / Utilitaire / utntri.F
1       subroutine utntri ( letria, normal,
2      >                    coonoe, somare, aretri )
3 c ______________________________________________________________________
4 c
5 c                             H O M A R D
6 c
7 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
8 c
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
14 c
15 c    HOMARD est une marque deposee d'Electricite de France
16 c
17 c Copyright EDF 1996
18 c Copyright EDF 1998
19 c Copyright EDF 2002
20 c Copyright EDF 2020
21 c ______________________________________________________________________
22 c
23 c     UTilitaire : Normale d'un TRIangle
24 c     --           -            ---
25 c ______________________________________________________________________
26 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                     .
32 c .        .     . * sdim .                                            .
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 .____________________________________________________________________.
36 c
37 c====
38 c 0. declarations et dimensionnement
39 c====
40 c
41 c 0.1. ==> generalites
42 c
43       implicit none
44       save
45 c
46 c 0.2. ==> communs
47 c
48 #include "nombno.h"
49 #include "nombar.h"
50 #include "nombtr.h"
51 #include "envca1.h"
52 c
53 c 0.3. ==> arguments
54 c
55       double precision normal(3), coonoe(nbnoto,sdim)
56 c
57       integer somare(2,nbarto), aretri(nbtrto,3)
58 c
59       integer letria
60 c
61 c 0.4. ==> variables locales
62 c
63       integer a1, a2
64 c
65       double precision aret1(3), aret2(3)
66 c
67 c 0.5. ==> initialisations
68 c ______________________________________________________________________
69 c
70 c====
71 c 1. les aretes
72 c====
73 c
74       a1 = aretri(letria,1)
75       a2 = aretri(letria,2)
76 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)
80 c
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)
84 c
85 c====
86 c 2. normal = produit vectoriel
87 c====
88 c
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)
92 c
93       aret1(1) = sqrt ( normal(1)*normal(1) +
94      >                  normal(2)*normal(2) +
95      >                  normal(3)*normal(3) )
96 c
97       normal(1) = normal(1)/aret1(1)
98       normal(2) = normal(2)/aret1(1)
99       normal(3) = normal(3)/aret1(1)
100 c
101       end