Salome HOME
Homard executable
[modules/homard.git] / src / tool / Utilitaire / utdtri.F
1       subroutine utdtri ( letria, diamet,
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 : Diametre d'un TRIangle
24 c     --           -             ---
25 c ______________________________________________________________________
26 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 ______________________________________________________________________
31 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                     .
37 c .        .     . * sdim .                                            .
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 .____________________________________________________________________.
41 c
42 c====
43 c 0. declarations et dimensionnement
44 c====
45 c
46 c 0.1. ==> generalites
47 c
48       implicit none
49       save
50 c
51 c 0.2. ==> communs
52 c
53 #include "nombno.h"
54 #include "nombar.h"
55 #include "nombtr.h"
56 #include "envca1.h"
57 c
58 c 0.3. ==> arguments
59 c
60       double precision diamet, coonoe(nbnoto,sdim)
61 c
62       integer somare(2,nbarto), aretri(nbtrto,3)
63 c
64       integer letria
65 c
66 c 0.4. ==> variables locales
67 c
68       integer a1, a2, a3
69 c
70       double precision ar1, ar2, ar3
71       double precision var(3)
72 c
73 c 0.5. ==> initialisations
74 c ______________________________________________________________________
75 c
76 c====
77 c 1. les aretes
78 c====
79 c
80       a1 = aretri(letria,1)
81       a2 = aretri(letria,2)
82       a3 = aretri(letria,3)
83 c
84 c====
85 c 2. les carres des longueurs des 3 aretes
86 c====
87 c
88 c 2.1. ==> en dimension 2
89 c
90       if ( sdim.eq.2 ) then
91 c
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)
95 c
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)
99 c
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)
103 c
104 c 2.2. ==> en dimension 3
105 c
106       else
107 c
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)
112 c
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)
117 c
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)
122 c
123       endif
124 c
125 c====
126 c 3. diametre
127 c    on ne prend la racine carre qu'ici pour economiser du temps calcul
128 c====
129 c
130       diamet = max ( ar1, ar2, ar3 )
131       diamet = sqrt(diamet)
132 cgn      print *, ar1, ar2, ar3, ' ==> ', diamet
133 c
134       end