]> SALOME platform Git repositories - modules/homard.git/blob - src/tool/Suivi_Frontiere/sfcoaq.F
Salome HOME
Merge branch 'V9_13_BR'
[modules/homard.git] / src / tool / Suivi_Frontiere / sfcoaq.F
1       subroutine sfcoaq ( nomail, option,
2      >                    nbarfr, nbqufr,
3      >                    ulsort, langue, codret )
4 c ______________________________________________________________________
5 c
6 c                             H O M A R D
7 c
8 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
9 c
10 c Version originale enregistree le 18 juin 1996 sous le numero 96036
11 c aupres des huissiers de justice Simart et Lavoir a Clamart
12 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
13 c aupres des huissiers de justice
14 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
15 c
16 c    HOMARD est une marque deposee d'Electricite de France
17 c
18 c Copyright EDF 1996
19 c Copyright EDF 1998
20 c Copyright EDF 2002
21 c Copyright EDF 2020
22 c ______________________________________________________________________
23 c
24 c   Suivi de Frontiere : COntrole - Aretes et Quadrangles concernes
25 c   --                   --         -         -
26 c ______________________________________________________________________
27 c .        .     .        .                                            .
28 c .  nom   . e/s . taille .           description                      .
29 c .____________________________________________________________________.
30 c . nomail . e   . char8  . nom de l'objet maillage homard             .
31 c . otpion . e   .   1    . type de recherche :                        .
32 c .        .     .        . 0 : toutes les entites actives             .
33 c .        .     .        . 1 : les actives qui viennent d'etre coupees.
34 c . nbarfr .   s .   1    . nombre d'aretes concernees                 .
35 c . nbqufr .   s .   1    . nombre de quadrangles concernes            .
36 c . ulsort . e   .   1    . numero d'unite logique de la liste standard.
37 c . langue . e   .    1   . langue des messages                        .
38 c .        .     .        . 1 : francais, 2 : anglais                  .
39 c . codret . es  .    1   . code de retour des modules                 .
40 c .        .     .        . en entree = celui du module d'avant        .
41 c .        .     .        . en sortie = celui du module en cours       .
42 c .        .     .        . 0 : pas de probleme                        .
43 c .        .     .        . 1 : manque de temps cpu                    .
44 c .        .     .        . 2x : probleme dans les memoires            .
45 c .        .     .        . 3x : probleme dans les fichiers            .
46 c .        .     .        . 5 : mauvaises options                      .
47 c .        .     .        . 6 : problemes dans les noms d'objet        .
48 c ______________________________________________________________________
49 c
50 c====
51 c 0. declarations et dimensionnement
52 c====
53 c
54 c 0.1. ==> generalites
55 c
56       implicit none
57       save
58 c
59       character*6 nompro
60       parameter ( nompro = 'SFCOAQ' )
61 c
62 #include "nblang.h"
63 c
64 c 0.2. ==> communs
65 c
66 #include "envex1.h"
67 #include "gmenti.h"
68 c
69 #include "envca1.h"
70 #include "nombqu.h"
71 #include "impr02.h"
72 c
73 c 0.3. ==> arguments
74 c
75       character*8 nomail
76 c
77       integer option
78       integer nbarfr, nbqufr
79 c
80       integer ulsort, langue, codret
81 c
82 c 0.4. ==> variables locales
83 c
84       integer iaux, jaux
85 c
86       integer psomar, phetar
87       integer pcfaar, pfamar
88       integer parequ, phetqu
89       integer pcfaqu, pfamqu
90 c
91       character*8 norenu
92       character*8 nhnoeu, nhmapo, nharet, nhtria, nhquad
93       character*8 nhtetr, nhhexa, nhpyra, nhpent
94       character*8 nhelig
95       character*8 nhvois, nhsupe, nhsups
96 c
97       integer nbmess
98       parameter ( nbmess = 10 )
99       character*80 texte(nblang,nbmess)
100 c
101 c 0.5. ==> initialisations
102 c ______________________________________________________________________
103 c
104 c====
105 c 1. messages
106 c====
107 c 1.1. ==> Les messages
108 c
109 #include "impr01.h"
110 c
111 #ifdef _DEBUG_HOMARD_
112       write (ulsort,texte(langue,1)) 'Entree', nompro
113       call dmflsh (iaux)
114 #endif
115 c
116       texte(1,4) = '(''Examen de toutes les entites.'')'
117       texte(1,5) = '(''Examen des entites decoupees.'')'
118       texte(1,6) = '(''Option incorrecte :'',i10)'
119       texte(1,7) = '(''Aucun '',a,''n''''est concerne.'')'
120       texte(1,8) = '(''Nombre de '',a,''concernes :'',i10)'
121 c
122       texte(2,4) = '(''Examination of all the entities.'')'
123       texte(2,5) = '(''Examination of cut entities.'')'
124       texte(2,6) = '(''Non valid option :'',i10)'
125       texte(2,7) = '(''No '',a,''is involved'')'
126       texte(2,8) = '(''Number of involved '',a,'':'',i10)'
127 c
128 #include "impr03.h"
129 c
130 c 1.2. ==> Controle
131 c
132       if ( option.lt.0 .and. option.gt.1 ) then
133         write (ulsort,texte(langue,6)) option
134         codret = 1
135       else
136         codret = 0
137 #ifdef _DEBUG_HOMARD_
138         write (ulsort,texte(langue,4+option))
139 #endif
140       endif
141 c
142 c====
143 c 2. recuperation des pointeurs
144 c====
145 c
146 c 2.1. ==> structure generale
147 c
148       if ( codret.eq.0 ) then
149 c
150 #ifdef _DEBUG_HOMARD_
151       write (ulsort,texte(langue,3)) 'UTNOMH', nompro
152 #endif
153       call utnomh ( nomail,
154      >                sdim,   mdim,
155      >               degre, maconf, homolo, hierar,
156      >              rafdef, nbmane, typcca, typsfr, maextr,
157      >              mailet,
158      >              norenu,
159      >              nhnoeu, nhmapo, nharet,
160      >              nhtria, nhquad,
161      >              nhtetr, nhhexa, nhpyra, nhpent,
162      >              nhelig,
163      >              nhvois, nhsupe, nhsups,
164      >              ulsort, langue, codret)
165 c
166       endif
167 c
168 c 2.2.==> tableaux
169 c
170       if ( codret.eq.0 ) then
171 c
172 #ifdef _DEBUG_HOMARD_
173       write (ulsort,texte(langue,3)) 'UTAD02_ar', nompro
174 #endif
175       iaux = 518
176       call utad02 ( iaux, nharet,
177      >              phetar, psomar, jaux, jaux,
178      >              pfamar, pcfaar,   jaux,
179      >                jaux,   jaux,   jaux,
180      >                jaux,   jaux,   jaux,
181      >              ulsort, langue, codret )
182 c
183       endif
184 c
185       if ( nbquto.gt.0 ) then
186 c
187 #ifdef _DEBUG_HOMARD_
188       write (ulsort,texte(langue,3)) 'UTAD02_qu', nompro
189 #endif
190         iaux = 518
191         call utad02 ( iaux, nhquad,
192      >                phetqu, parequ, jaux, jaux,
193      >                pfamqu, pcfaqu,   jaux,
194      >                  jaux,   jaux,   jaux,
195      >                  jaux,   jaux,   jaux,
196      >                ulsort, langue, codret )
197 c
198       endif
199 c
200 c====
201 c 3. Decompte des aretes concernees par la frontiere
202 c====
203 #ifdef _DEBUG_HOMARD_
204       write (ulsort,90002) '3. Decompte aretes ; codret', codret
205 #endif
206 c
207       if ( codret.eq.0 ) then
208 c
209 #ifdef _DEBUG_HOMARD_
210       write (ulsort,texte(langue,3)) 'SFCONA', nompro
211 #endif
212       call sfcona ( option, nbarfr, imem(iaux),
213      >              imem(phetar), imem(pcfaar), imem(pfamar),
214      >              ulsort, langue, codret )
215 c
216       endif
217 c
218       if ( codret.eq.0 ) then
219 c
220 #ifdef _DEBUG_HOMARD_
221       write (ulsort,texte(langue,8)) mess14(langue,3,1), nbarfr
222 #endif
223 c
224       if ( nbarfr.eq.0 ) then
225 c
226       write (ulsort,texte(langue,7)) mess14(langue,1,1)
227 c
228       endif
229 c
230       endif
231 c
232 c====
233 c 4. Decompte des quadrangles concernes par la frontiere
234 c====
235 #ifdef _DEBUG_HOMARD_
236       write (ulsort,90002) '4. Decompte quad ; codret', codret
237 #endif
238 c
239       if ( nbquto.gt.0 ) then
240 c
241         if ( codret.eq.0 ) then
242 c
243 #ifdef _DEBUG_HOMARD_
244       write (ulsort,texte(langue,3)) 'SFCONQ', nompro
245 #endif
246         call sfconq ( option, nbqufr, imem(iaux),
247      >                imem(phetqu), imem(pcfaqu), imem(pfamqu),
248      >                ulsort, langue, codret )
249 c
250         endif
251 c
252         if ( codret.eq.0 ) then
253 c
254 #ifdef _DEBUG_HOMARD_
255       write (ulsort,texte(langue,8)) mess14(langue,3,4), nbqufr
256 #endif
257 c
258         if ( nbqufr.eq.0 ) then
259 c
260         write (ulsort,texte(langue,7)) mess14(langue,1,4)
261 c
262         endif
263 c
264         endif
265 c
266       endif
267 c
268 c====
269 c 5. la fin
270 c====
271 c
272       if ( codret.ne.0 ) then
273 c
274 #include "envex2.h"
275 c
276       write (ulsort,texte(langue,1)) 'Sortie', nompro
277       write (ulsort,texte(langue,2)) codret
278 c
279       endif
280 c
281 #ifdef _DEBUG_HOMARD_
282       write (ulsort,texte(langue,1)) 'Sortie', nompro
283       call dmflsh (iaux)
284 #endif
285 c
286       end