]> SALOME platform Git repositories - modules/homard.git/blob - src/tool/Decision/dehovf.F
Salome HOME
Copyright update 2022
[modules/homard.git] / src / tool / Decision / dehovf.F
1       subroutine dehovf ( option,
2      >                    nbento, enthom, decfac,
3      >                    nompra, phase,
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 - HOmologues - Verification des Faces
26 c                --          --           -                -
27 c ______________________________________________________________________
28 c .        .     .        .                                            .
29 c .  nom   . e/s . taille .           description                      .
30 c .____________________________________________________________________.
31 c . option . e   .    1   . variantes                                  .
32 c .        .     .        .   2 : triangles                            .
33 c .        .     .        .   4 : quadrangles                          .
34 c . nbento . e   .    1   . nombre d'entites total                     .
35 c . enthom . e   . nbento . ensemble des entites homologues            .
36 c . decfac . e   . -nbquto. decision sur les faces (quad. + tri.)      .
37 c .        .     . :nbtrto.                                            .
38 c . nompra . e   . char6  . nom du programme appelant                  .
39 c . phase  . e   .    1   . phase du programme appelant                .
40 c .        .     .        . 0 : debut                                  .
41 c .        .     .        . 1 : fin                                    .
42 c . ulsort . e   .   1    . numero d'unite logique de la liste standard.
43 c . langue . e   .    1   . langue des messages                        .
44 c .        .     .        . 1 : francais, 2 : anglais                  .
45 c . codret . es  .    1   . code de retour des modules                 .
46 c .        .     .        . 0 : pas de probleme                        .
47 c .        .     .        . 1 : desaccord sur les decisions entre      .
48 c .        .     .        .     entites homologues                     .
49 c ______________________________________________________________________
50 c
51 c====
52 c 0. declarations et dimensionnement
53 c====
54 c
55 c 0.1. ==> generalites
56 c
57       implicit none
58       save
59 c
60       character*6 nompro
61       parameter ( nompro = 'DEHOVF' )
62 c
63 #include "nblang.h"
64 c
65 c 0.2. ==> communs
66 c
67 #include "envex1.h"
68 c
69 #include "impr02.h"
70 #include "nombtr.h"
71 #include "nombqu.h"
72 #include "envca1.h"
73 c
74 c 0.3. ==> arguments
75 c
76       integer option
77       integer nbento
78       integer enthom(nbento)
79       integer decfac(-nbquto:nbtrto)
80       integer phase
81       character*6 nompra
82 c
83       integer ulsort, langue, codret
84 c
85 c 0.4. ==> variables locales
86 c
87       integer iaux, jaux
88       integer face1 , face2
89 c
90       integer nbmess
91       parameter ( nbmess = 10 )
92       character*80 texte(nblang,nbmess)
93       character*9 saux09(nblang,0:1)
94 c
95 c 0.5. ==> initialisations
96 c ______________________________________________________________________
97 c
98 c====
99 c 1. messages
100 c====
101 c
102 #include "impr01.h"
103 c
104 #ifdef _DEBUG_HOMARD_
105       write (ulsort,texte(langue,1)) 'Entree', nompro
106       call dmflsh (iaux)
107 #endif
108 c
109       texte(1,4) =
110      > '(''Pour les deux '',a,'' homologues'',i6,'' et'',i6)'
111       texte(1,5) = '(''. '',a,'' numero'',i7,'' : decision = '',i2)'
112       texte(1,6) = '(''... Probleme ...'')'
113       texte(1,7) =
114      > '(/,a8,a6,'' : '',i8,'' erreur(s) sur les '',a,''.'')'
115 c
116       texte(2,4) =
117      > '(''For the two homologous '',a,i6,'' and'',i6)'
118       texte(2,5) = '(''. '',a,'' #'',i7,'' : decision = '',i2)'
119       texte(2,6) = '(''... Problem ...'')'
120       texte(2,7) = '(/,a8,a6,'' : '',i8,'' error(s) over '',a,''.'')'
121 c
122 c                    123456789
123       saux09(1,0) = 'Debut de '
124       saux09(1,1) = 'Fin de   '
125       saux09(2,0) = 'Start of '
126       saux09(2,1) = 'End of   '
127 c
128 c====
129 c 2. controle des decisions sur les faces
130 c    on boucle uniquement sur les faces de la face periodique 2
131 c====
132 c
133       jaux = 0
134 c
135       if ( homolo.ge.3 ) then
136 c
137         do 21 , iaux = 1 , nbento
138 c
139           if ( enthom(iaux).gt.0 ) then
140 c
141             face1 = iaux
142             face2 = enthom(iaux)
143             if ( option.eq.4 ) then
144               face1 = -face1
145               face2 = -face2
146             endif
147 c
148 #ifdef _DEBUG_HOMARD_
149             write (ulsort,texte(langue,4)) mess14(langue,3,option),
150      >               iaux, enthom(iaux)
151             write (ulsort,texte(langue,5)) mess14(langue,2,option),
152      >               iaux, decfac(face1)
153             write (ulsort,texte(langue,5)) mess14(langue,2,option),
154      >               enthom(iaux), decfac(face2)
155 #endif
156 c
157             if ( decfac(face1).ne.decfac(face2) ) then
158               write (ulsort,texte(langue,4)) mess14(langue,3,option),
159      >               iaux, enthom(iaux)
160               write (ulsort,texte(langue,5)) mess14(langue,2,option),
161      >               iaux, decfac(face1)
162               write (ulsort,texte(langue,5)) mess14(langue,2,option),
163      >               enthom(iaux), decfac(face2)
164               write (ulsort,texte(langue,6))
165               jaux = jaux + 1
166             endif
167 c
168           endif
169 c
170  21     continue
171 c
172         if ( jaux.ne.0 ) then
173           write (ulsort,texte(langue,7))
174      >    saux09(langue,phase), nompra, jaux,  mess14(langue,3,option)
175           codret = 1
176         endif
177 c
178       endif
179 c
180 c====
181 c 3. la fin
182 c====
183 c
184       if ( codret.ne.0 ) then
185 c
186 #include "envex2.h"
187 c
188       write (ulsort,texte(langue,1)) 'Sortie', nompro
189       write (ulsort,texte(langue,2)) codret
190 c
191       endif
192 c
193 #ifdef _DEBUG_HOMARD_
194       write (ulsort,texte(langue,1)) 'Sortie', nompro
195       call dmflsh (iaux)
196 #endif
197 c
198       end