Salome HOME
Homard executable
[modules/homard.git] / src / tool / Utilitaire / utorat.F
1       subroutine utorat ( somare, a1, a2, a3,
2      >                    or1, or2, or3 )
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 - ORientation des Aretes d'un Triangle
24 c    --           --              -           -
25 c Remarque : cela suppose que les aretes a1, a2, a3 sont donnees
26 c            dans l'ordre standard
27 c Remarque : programme semblable a utsotr
28 c ______________________________________________________________________
29 c .        .     .        .                                            .
30 c .  nom   . e/s . taille .           description                      .
31 c .____________________________________________________________________.
32 c . somare . e   .2*nbaret. numeros des extremites d'arete             .
33 c .a1,a2,a3. e   . 1      . les numeros d'aretes du triangle           .
34 c . ori    .  s  . 1      . 1 ou -1 , selon que l'arete ari est dans   .
35 c .        .     .        . le sens du triangle                        .
36 c ______________________________________________________________________
37 c
38 c====
39 c 0. declarations et dimensionnement
40 c====
41 c
42 c 0.1. ==> generalites
43 c
44       implicit none
45       save
46 c
47 c 0.2. ==> communs
48 c
49 c 0.3. ==> arguments
50 c
51       integer somare(2,*)
52       integer a1, a2, a3
53       integer or1, or2, or3
54 c
55 c 0.4. ==> variables locales
56 c
57 c====
58 c 1. recherche des orientations :
59 c    l'orientation de l'arete i est positive si son second somemt est
60 c    un des sommets de l'arete i+1
61 c====
62 c
63 c                           S1 = sa2a3
64 c                            *
65 c                           . .
66 c                          .   .
67 c                         .     .
68 c                     a3 .       . a2
69 c                       .         .
70 c                      .           .
71 c                     .             .
72 c          sa3a1 = S2*---------------*S3 = sa1a2
73 c                           a1
74 c
75 c
76       if ( somare(2,a1) .eq. somare(1,a2)  .or.
77      >     somare(2,a1) .eq. somare(2,a2) ) then
78 c          le 2nd noeud de l'arete 1 est un sommet de a2 ;
79 c          donc l'orientation est positive
80 c
81         or1 = 1
82 c
83       else
84 c
85         or1 = -1
86 c
87       endif
88 c
89       if ( somare(2,a2) .eq. somare(1,a3)  .or.
90      >     somare(2,a2) .eq. somare(2,a3) ) then
91 c          le 2nd noeud de l'arete 2 est un sommet de a3 ;
92 c          donc l'orientation est positive
93 c
94         or2 = 1
95 c
96       else
97 c
98         or2 = -1
99 c
100       endif
101 c
102       if ( somare(2,a3) .eq. somare(1,a1)  .or.
103      >     somare(2,a3) .eq. somare(2,a1) ) then
104 c          le 2nd noeud de l'arete 3 est un sommet de a1 ;
105 c          donc l'orientation est positive
106 c
107         or3 = 1
108 c
109       else
110 c
111         or3 = -1
112 c
113       endif
114 c
115       end