]> SALOME platform Git repositories - modules/homard.git/blob - src/tool/Decision/deiari.F
Salome HOME
Copyright update 2022
[modules/homard.git] / src / tool / Decision / deiari.F
1       subroutine deiari ( decare, decfac,
2      >                    merare,
3      >                    posifa, facare,
4      >                    arsupp,
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 ARetes - 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 . merare . e   . nbarto . mere des aretes                            .
38 c . posifa . e   . nbarto . pointeur sur tableau facare                .
39 c . facare . e   . nbfaar . liste des faces contenant une arete        .
40 c . arsupp . e   . nbarto . support pour les aretes                    .
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 = 'DEIARI' )
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 "impr02.h"
70 c
71 c 0.3. ==> arguments
72 c
73       integer decare(0:nbarto), decfac(-nbquto:nbtrto)
74       integer merare(nbarto)
75       integer posifa(0:nbarto), facare(nbfaar)
76       integer arsupp(nbarto)
77 c
78       integer ulsort, langue, codret
79 c
80 c 0.4. ==> variables locales
81 c
82       integer larete, lamere
83       integer iaux, ideb, ifin
84 c
85       integer nbmess
86       parameter (nbmess = 10 )
87       character*80 texte(nblang,nbmess)
88 c ______________________________________________________________________
89 c
90 c====
91 c 1. initialisation
92 c====
93 c
94 c 1.1. ==> Les messages
95 c
96 #include "impr01.h"
97 c
98 #ifdef _DEBUG_HOMARD_
99       write (ulsort,texte(langue,1)) 'Entree', nompro
100       call dmflsh (iaux)
101 #endif
102 c
103 #include "impr05.h"
104 c
105       codret = 0
106 c
107 c====
108 c 2. traitement des indicateurs portant sur les aretes
109 c====
110 c
111 #ifdef _DEBUG_HOMARD_
112         write(ulsort,texte(langue,4)) mess14(langue,3,1)
113 #endif
114 c
115       do 21 , larete = 1, nbarto
116 c
117         if ( arsupp(larete).ne.0 ) then
118 c
119 c 2.1. ==> Inhibition du raffinement par defaut : on garde l'arete
120 c          designee et les faces qui la contiennent
121 c
122           decare(larete) = 0
123 cgn        write(ulsort,*) 'Arete', larete, ' a garder'
124           ideb = posifa(larete-1)+1
125           ifin = posifa(larete)
126           do 211 , iaux = ideb, ifin
127 cgn              write(ulsort,*) 'face', facare(iaux), ' a garder'
128             decfac(facare(iaux)) = 0
129   211     continue
130 c
131 c 2.2. ==> Inhibition du deraffinement par defaut : on garde la mere
132 c          de l'arete designee si elle existe et des faces qui
133 c          la contiennent
134 c
135           lamere = merare(larete)
136 c
137           if ( lamere.gt.0 ) then
138 c
139             decare(lamere) = 0
140 cgn          write(ulsort,*) 'Arete', lamere, ' a garder'
141             ideb = posifa(lamere-1)+1
142             ifin = posifa(lamere)
143             do 212 , iaux = ideb, ifin
144 cgn                write(ulsort,*) 'face', facare(iaux), ' a garder'
145               decfac(facare(iaux)) = 0
146   212       continue
147 c
148           endif
149 c
150         endif
151 c
152    21 continue
153 c
154 c====
155 c 3. la fin
156 c====
157 c
158       if ( codret.ne.0 ) then
159 c
160 #include "envex2.h"
161 c
162       write (ulsort,texte(langue,1)) 'Sortie', nompro
163       write (ulsort,texte(langue,2)) codret
164 c
165       endif
166 c
167 #ifdef _DEBUG_HOMARD_
168       write (ulsort,texte(langue,1)) 'Sortie', nompro
169       call dmflsh (iaux)
170 #endif
171 c
172       end