]> SALOME platform Git repositories - modules/homard.git/blob - src/tool/Decision/debila.F
Salome HOME
Homard executable
[modules/homard.git] / src / tool / Decision / debila.F
1       subroutine debila ( nomail,
2      >                    lgopti, taopti, lgopts, taopts,
3      >                    lgetco, taetco,
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 - BILAn
26 c                --          ----
27 c ______________________________________________________________________
28 c .        .     .        .                                            .
29 c .  nom   . e/s . taille .           description                      .
30 c .____________________________________________________________________.
31 c . nomail . e   .  ch8   . nom de l'objet contenant le maillage       .
32 c . lgopti . e   .   1    . longueur du tableau des options            .
33 c . taopti . e   . lgopti . tableau des options                        .
34 c . lgopts . e   .   1    . longueur du tableau des options caracteres .
35 c . taopts . e   . lgopts . tableau des options caracteres             .
36 c . lgetco . e   .   1    . longueur du tableau de l'etat courant      .
37 c . taetco . e   . lgetco . tableau de l'etat courant                  .
38 c . ulsort . e   .   1    . numero d'unite logique de la liste standard.
39 c . langue . e   .    1   . langue des messages                        .
40 c .        .     .        . 1 : francais, 2 : anglais                  .
41 c . codret . es  .    1   . code de retour des modules                 .
42 c .        .     .        . 0 : pas de probleme                        .
43 c .        .     .        . 1 : encore des incoherences de conformites .
44 c .        .     .        . 2 : probleme de memoire                    .
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 = 'DEBILA' )
58 c
59 #include "nblang.h"
60 c
61 c 0.2. ==> communs
62 c
63 #include "gmenti.h"
64 c
65 #include "nombqu.h"
66 #include "nombtr.h"
67 #include "nombhe.h"
68 #include "nombpe.h"
69 #include "envca1.h"
70 c
71 c 0.3. ==> arguments
72 c
73       character*8 nomail
74 c
75       integer lgopti
76       integer taopti(lgopti)
77 c
78       integer lgopts
79       character*8 taopts(lgopts)
80 c
81       integer lgetco
82       integer taetco(lgetco)
83 c
84       integer ulsort, langue, codret
85 c
86 c 0.4. ==> variables locales
87 c
88       integer nretap, nrsset
89       integer iaux, jaux
90 c
91       integer phetar
92       integer phettr, paretr
93       integer phetqu, parequ
94       integer phethe, pquahe
95       integer phetpe, pfacpe
96 c
97       integer pdecar, pdecfa
98 c
99       integer codre0, codre1, codre2
100 c
101       character*6 saux
102       character*8 ntrav1, ntrav2
103       character*8 norenu
104       character*8 nhnoeu, nhmapo, nharet, nhtria, nhquad
105       character*8 nhtetr, nhhexa, nhpyra, nhpent
106       character*8 nhelig
107       character*8 nhvois, nhsupe, nhsups
108 c
109       integer nbmess
110       parameter ( nbmess = 10 )
111       character*80 texte(nblang,nbmess)
112 c
113 c 0.5. ==> initialisations
114 c ______________________________________________________________________
115 c
116 c====
117 c 1. messages
118 c====
119 c
120 #include "impr01.h"
121 c
122 #ifdef _DEBUG_HOMARD_
123       write (ulsort,texte(langue,1)) 'Entree', nompro
124       call dmflsh (iaux)
125 #endif
126 c
127       texte(1,4) = '(/,a6,'' CONTROLE DES DECISIONS'')'
128       texte(1,5) = '(29(''=''),/)'
129       texte(1,10) = '(''Code retour de '',a6,'' ='',i4,/)'
130 c
131       texte(2,4) = '(/,a6,'' CONTROL OF DECISIONS'')'
132       texte(2,5) = '(27(''=''),/)'
133       texte(2,10) = '(''Error code from '',a6,'' ='',i4,/)'
134 c
135 c 1.4. ==> le numero de sous-etape
136 c
137       nretap = taetco(1)
138       nrsset = taetco(2) + 1
139       taetco(2) = nrsset
140 c
141       call utcvne ( nretap, nrsset, saux, iaux, codret )
142 c
143 c 1.5. ==> le titre
144 c
145       write (ulsort,texte(langue,4)) saux
146       write (ulsort,texte(langue,5))
147 c
148 #include "impr03.h"
149 c
150 c====
151 c 2. recuperation des pointeurs, initialisations
152 c====
153 c
154 c 2.1. ==> structure generale
155 c
156       if ( codret.eq.0 ) then
157 c
158       call utnomh ( nomail,
159      >                sdim,   mdim,
160      >               degre, maconf, homolo, hierar,
161      >              rafdef, nbmane, typcca, typsfr, maextr,
162      >              mailet,
163      >              norenu,
164      >              nhnoeu, nhmapo, nharet,
165      >              nhtria, nhquad,
166      >              nhtetr, nhhexa, nhpyra, nhpent,
167      >              nhelig,
168      >              nhvois, nhsupe, nhsups,
169      >              ulsort, langue, codret)
170 c
171       endif
172 c
173 c 2.2. ==> tableaux
174 c
175       if ( codret.eq.0 ) then
176 c
177       call gmadoj ( nharet//'.HistEtat', phetar, iaux, codret )
178 c
179       if ( nbtrto.ne.0 ) then
180         iaux = 2
181 #ifdef _DEBUG_HOMARD_
182       write (ulsort,texte(langue,3)) 'UTAD02_tr', nompro
183 #endif
184         call utad02 ( iaux, nhtria,
185      >                phettr, paretr, jaux, jaux,
186      >                  jaux,   jaux,   jaux,
187      >                  jaux,   jaux,   jaux,
188      >                  jaux,   jaux,   jaux,
189      >                ulsort, langue, codret )
190       endif
191 c
192       if ( nbquto.ne.0 ) then
193         iaux = 2
194 #ifdef _DEBUG_HOMARD_
195       write (ulsort,texte(langue,3)) 'UTAD02_qu', nompro
196 #endif
197         call utad02 ( iaux, nhquad,
198      >                phetqu, parequ, jaux, jaux,
199      >                  jaux,   jaux,   jaux,
200      >                  jaux,   jaux,   jaux,
201      >                  jaux,   jaux,   jaux,
202      >                ulsort, langue, codret )
203       endif
204 c
205       if ( nbheto.ne.0 ) then
206 c
207 #ifdef _DEBUG_HOMARD_
208       write (ulsort,texte(langue,3)) 'UTAD02_he', nompro
209 #endif
210         iaux = 2
211         call utad02 (   iaux, nhhexa,
212      >                phethe, pquahe,   jaux, jaux,
213      >                  jaux,   jaux,   jaux,
214      >                  jaux,   jaux,   jaux,
215      >                  jaux,   jaux,   jaux,
216      >                ulsort, langue, codret )
217 c
218       endif
219 c
220       if ( nbpecf.ne.0 ) then
221 c
222         iaux = 2
223 #ifdef _DEBUG_HOMARD_
224       write (ulsort,texte(langue,3)) 'UTAD02_pe', nompro
225 #endif
226         call utad02 ( iaux, nhpent,
227      >                phetpe, pfacpe, jaux  ,   jaux,
228      >                  jaux,   jaux,   jaux,
229      >                  jaux,   jaux,   jaux,
230      >                  jaux,   jaux,   jaux,
231      >                ulsort, langue, codret )
232 c
233       endif
234 c
235       ntrav1 = taopts(11)
236       call gmadoj ( ntrav1, pdecar, iaux, codre1 )
237       ntrav2 = taopts(12)
238       call gmadoj ( ntrav2, pdecfa, iaux, codre2 )
239 c
240       codre0 = min ( codre1, codre2 )
241       codret = max ( abs(codre0), codret,
242      >               codre1, codre2 )
243 c
244       endif
245 c
246 c====
247 c 3. bilan des decisions
248 c====
249 #ifdef _DEBUG_HOMARD_
250         write (ulsort,90002) '3. bilan des decisions ; codret', codret
251 #endif
252 c
253       if ( codret.eq.0 ) then
254 c
255 #ifdef _DEBUG_HOMARD_
256         write (ulsort,texte(langue,3)) 'DEBIL1', nompro
257 #endif
258 c
259         call debil1
260      >        ( taopti(30),
261      >          imem(pdecfa), imem(pdecar),
262      >          imem(phetar),
263      >          imem(phettr), imem(paretr),
264      >          imem(phetqu), imem(parequ),
265      >          imem(phethe), imem(pquahe),
266      >          imem(phetpe), imem(pfacpe),
267      >          ulsort, langue, codret )
268 c
269 #ifdef _DEBUG_HOMARD_
270         write (ulsort,texte(langue,10)) 'DEBIL1', codret
271 #endif
272 c
273       endif
274 c
275 c====
276 c 4. la fin
277 c    en mode normal, on imprime seulement s'il y a un pb de memoire
278 c====
279 c
280 #ifdef _DEBUG_HOMARD_
281       if ( codret.ne.-1789 ) then
282 #else
283       if ( codret.eq.2 ) then
284 #endif
285 c
286       write (ulsort,texte(langue,1)) 'Sortie', nompro
287       write (ulsort,texte(langue,2)) codret
288 c
289       endif
290 c
291       end