Salome HOME
Homard executable
[modules/homard.git] / src / tool / Utilitaire / utsohe.F
1       subroutine utsohe ( somare, listar, listso )
2 c ______________________________________________________________________
3 c
4 c                             H O M A R D
5 c
6 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
7 c
8 c Version originale enregistree le 18 juin 1996 sous le numero 96036
9 c aupres des huissiers de justice Simart et Lavoir a Clamart
10 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
11 c aupres des huissiers de justice
12 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
13 c
14 c    HOMARD est une marque deposee d'Electricite de France
15 c
16 c Copyright EDF 1996
17 c Copyright EDF 1998
18 c Copyright EDF 2002
19 c Copyright EDF 2020
20 c ______________________________________________________________________
21 c
22 c   UTilitaire :  SOmmets d'un HExaedre
23 c   --            --           --
24 c ______________________________________________________________________
25 c .        .     .        .                                            .
26 c .  nom   . e/s . taille .           description                      .
27 c .____________________________________________________________________.
28 c . somare . e   .2*nbarto. numeros des extremites d'arete             .
29 c . listar . e   .   12   . Liste des aretes de l'hexaedre             .
30 c . listso .  s  .    8   . Liste des sommets de l'hexaedre            .
31 c ______________________________________________________________________
32 c
33 c====
34 c 0. declarations et dimensionnement
35 c====
36 c
37 c 0.1. ==> generalites
38 c
39       implicit none
40       save
41 c
42 c 0.2. ==> communs
43 c
44 c 0.3. ==> arguments
45 c
46       integer somare(2,*), listar(12), listso(8)
47 c
48 c 0.4. ==> variables locales
49 c
50       integer iaux
51 c
52 c====
53 c 1. Recherche des sommets
54 c====
55 c
56       iaux = somare(1,listar(1))
57       if ( iaux.eq.somare(1,listar(2)) ) then
58         listso(1) = iaux
59         listso(2) = somare(2,listar(1))
60         listso(4) = somare(2,listar(2))
61         if ( listso(4).eq.somare(1,listar(4)) ) then
62           listso(3) = somare(2,listar(4))
63         else
64           listso(3) = somare(1,listar(4))
65         endif
66       elseif ( iaux.eq.somare(2,listar(2)) )then
67         listso(1) = iaux
68         listso(2) = somare(2,listar(1))
69         listso(4) = somare(1,listar(2))
70         if ( listso(4).eq.somare(1,listar(4)) ) then
71           listso(3) = somare(2,listar(4))
72         else
73           listso(3) = somare(1,listar(4))
74         endif
75       else
76         listso(1) = somare(2,listar(1))
77         listso(2) = iaux
78         if ( listso(1).eq.somare(1,listar(2)) ) then
79           listso(4) = somare(2,listar(2))
80         else
81           listso(4) = somare(1,listar(2))
82         endif
83         if ( listso(4).eq.somare(1,listar(4)) ) then
84           listso(3) = somare(2,listar(4))
85         else
86           listso(3) = somare(1,listar(4))
87         endif
88       endif
89 c
90       iaux = somare(1,listar(9))
91       if ( iaux.eq.somare(1,listar(11)) ) then
92         listso(5) = iaux
93         listso(6) = somare(2,listar(9))
94         listso(8) = somare(2,listar(11))
95         if ( listso(8).eq.somare(1,listar(12)) ) then
96           listso(7) = somare(2,listar(12))
97         else
98           listso(7) = somare(1,listar(12))
99         endif
100       elseif ( iaux.eq.somare(2,listar(11)) )then
101         listso(5) = iaux
102         listso(6) = somare(2,listar(9))
103         listso(8) = somare(1,listar(11))
104         if ( listso(8).eq.somare(1,listar(12)) ) then
105           listso(7) = somare(2,listar(12))
106         else
107           listso(7) = somare(1,listar(12))
108         endif
109       else
110         listso(5) = somare(2,listar(9))
111         listso(6) = iaux
112         if ( listso(5).eq.somare(1,listar(11)) ) then
113           listso(8) = somare(2,listar(11))
114         else
115           listso(8) = somare(1,listar(11))
116         endif
117         if ( listso(8).eq.somare(1,listar(12)) ) then
118           listso(7) = somare(2,listar(12))
119         else
120           listso(7) = somare(1,listar(12))
121         endif
122       endif
123 c
124       end