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