Salome HOME
Homard executable
[modules/homard.git] / src / tool / Decision / deitei.F
1       subroutine deitei ( decare, decfac,
2      >                    aretri, pertri,
3      >                    tritet,
4      >                    tesupp,
5      >                    ulsort, langue, codret)
6 c ______________________________________________________________________
7 c
8 c                             H O M A R D
9 c
10 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
11 c
12 c Version originale enregistree le 18 juin 1996 sous le numero 96036
13 c aupres des huissiers de justice Simart et Lavoir a Clamart
14 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
15 c aupres des huissiers de justice
16 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
17 c
18 c    HOMARD est une marque deposee d'Electricite de France
19 c
20 c Copyright EDF 1996
21 c Copyright EDF 1998
22 c Copyright EDF 2002
23 c Copyright EDF 2020
24 c ______________________________________________________________________
25 c
26 c traitement des DEcisions - Initialisation de l'indicateur entier
27 c                --          -
28 c                          - cas des TEtraedres - Initialisation
29 c                                    --           -
30 c ______________________________________________________________________
31 c .        .     .        .                                            .
32 c .  nom   . e/s . taille .           description                      .
33 c .____________________________________________________________________.
34 c . decare .  s  .0:nbarto. decisions des aretes                       .
35 c . decfac .  s  . -nbquto. decision sur les faces (quad. + tri.)      .
36 c .        .     . :nbtrto.                                            .
37 c . aretri . e   .nbtrto*3. numeros des 3 aretes des triangles         .
38 c . pertri . e   . nbtrto . pere des triangles                         .
39 c . tritet . e   .nbtecf*4. numeros des 4 triangles des tetraedres     .
40 c . tesupp . e   . nbteto . support pour les tetraedres                .
41 c . ulsort . e   .   1    . numero d'unite logique de la liste standard.
42 c . langue . e   .    1   . langue des messages                        .
43 c .        .     .        . 1 : francais, 2 : anglais                  .
44 c . codret . es  .    1   . code de retour des modules                 .
45 c .        .     .        . 0 : pas de probleme                        .
46 c .        .     .        . 2 : probleme dans le traitement            .
47 c ______________________________________________________________________
48 c
49 c====
50 c 0. declarations et dimensionnement
51 c====
52 c
53 c 0.1. ==> generalites
54 c
55       implicit none
56       save
57 c
58       character*6 nompro
59       parameter ( nompro = 'DEITEI' )
60 c
61 #include "nblang.h"
62 c
63 c 0.2. ==> communs
64 c
65 #include "envex1.h"
66 #include "nombar.h"
67 #include "nombtr.h"
68 #include "nombqu.h"
69 #include "nombte.h"
70 #include "impr02.h"
71 c
72 c 0.3. ==> arguments
73 c
74       integer decare(0:nbarto), decfac(-nbquto:nbtrto)
75       integer aretri(nbtrto,3), pertri(nbtrto)
76       integer tritet(nbtecf,4)
77       integer tesupp(nbteto)
78 c
79       integer ulsort, langue, codret
80 c
81 c 0.4. ==> variables locales
82 c
83       integer areloc, facloc
84       integer letria, letetr, lepere
85       integer iaux
86 c
87       integer nbmess
88       parameter (nbmess = 30 )
89       character*80 texte(nblang,nbmess)
90 c ______________________________________________________________________
91 c
92 c====
93 c 1. initialisation
94 c====
95 c
96 c 1.1. ==> Les messages
97 c
98 #include "impr01.h"
99 c
100 #ifdef _DEBUG_HOMARD_
101       write (ulsort,texte(langue,1)) 'Entree', nompro
102       call dmflsh (iaux)
103 #endif
104 c
105 #include "impr05.h"
106 #include "derco1.h"
107 c
108       codret = 0
109 c
110 c====
111 c 2. traitement des indicateurs portant sur les tetraedres
112 c====
113 c
114 #ifdef _DEBUG_HOMARD_
115         write(ulsort,texte(langue,4)) mess14(langue,3,3)
116 #endif
117 c
118       iaux = 0
119 c
120       do 21 , letetr = 1, nbteto
121 c
122         if ( tesupp(letetr).ne.0 ) then
123 c
124           do 22 , facloc = 1, 4
125 c
126             letria = tritet(letetr,facloc)
127 c
128 c 2.1. ==> Inhibition du raffinement par defaut : on garde la face
129 c          designee
130 c
131             decfac(letria) = 0
132             do 221 , areloc = 1, 3
133               decare(aretri(letria,areloc)) = 0
134   221       continue
135 c
136 c 2.2. ==> Inhibition du deraffinement par defaut : on garde la mere
137 c          de la face designee s'il existe
138 c
139             lepere = pertri(letria)
140 c
141             if ( lepere.gt.0 ) then
142 c
143               decfac(lepere) = 0
144               do 222 , areloc = 1, 3
145                 decare(aretri(lepere,areloc)) = 0
146   222         continue
147 c
148             endif
149 c
150    22     continue
151 c
152         endif
153 c
154    21 continue
155 c
156 c====
157 c 3. la fin
158 c====
159 c
160       if ( codret.ne.0 ) then
161 c
162 #include "envex2.h"
163 c
164       write (ulsort,texte(langue,1)) 'Sortie', nompro
165       write (ulsort,texte(langue,2)) codret
166 c
167       endif
168 c
169 #ifdef _DEBUG_HOMARD_
170       write (ulsort,texte(langue,1)) 'Sortie', nompro
171       call dmflsh (iaux)
172 #endif
173 c
174       end