1 subroutine inqure ( codret )
2 c ______________________________________________________________________
6 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
8 c Version originale enregistree le 18 juin 1996 sous le numero 96036
9 c aupres des huissiers de justice Simart et Lavoir a Clamart
10 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
11 c aupres des huissiers de justice
12 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
14 c HOMARD est une marque deposee d'Electricite de France
20 c ______________________________________________________________________
22 c INformation : QUestions / REponses
25 c remarque : on n'execute ce programme que si le precedent s'est
28 c ______________________________________________________________________
30 c . nom . e/s . taille . description .
31 c .____________________________________________________________________.
32 c . codret . es . 1 . code de retour des modules .
33 c . . . . en entree = celui du module d'avant .
34 c . . . . en sortie = celui du module en cours .
35 c . . . . 0 : pas de probleme .
36 c . . . . 1 : manque de temps cpu .
37 c . . . . 2x : probleme dans les memoires .
38 c . . . . 3x : probleme dans les fichiers .
39 c . . . . 5 : mauvaises options .
40 c . . . . 6 : problemes dans les noms d'objet .
41 c ______________________________________________________________________
44 c 0. declarations et dimensionnement
47 c 0.1. ==> generalites
53 parameter ( nompro = 'INQURE' )
72 c 0.4. ==> variables locales
74 integer ulsort, langue, codava
75 integer adopti, lgopti
76 integer adopts, lgopts
77 integer adetco, lgetco
78 integer nrsect, nrssse
79 integer nretap, nrsset
81 integer adinch, adinpf, adinpr, adinlg
85 integer ulfido, ulenst, ulsost
91 character*8 nohman, nocsol, nochso
96 parameter ( nbmess = 10 )
97 character*80 texte(nblang,nbmess)
99 c 0.5. ==> initialisations
100 c ______________________________________________________________________
103 c 1. les initialisations
110 c=======================================================================
111 if ( codava.eq.0 ) then
112 c=======================================================================
114 #ifdef _DEBUG_HOMARD_
115 call gmprsx (nompro, nndoad )
116 call gmprsx (nompro, nndoad//'.OptEnt' )
117 call gmprsx (nompro, nndoad//'.OptRee' )
118 call gmprsx (nompro, nndoad//'.OptCar' )
119 call gmprsx (nompro, nndoad//'.EtatCour' )
122 c 1.1. ==> le numero d'unite logique de la liste standard
124 call utulls ( ulsort, codret )
126 c 1.2. ==> la langue des messages
128 call gmadoj ( nndoad//'.OptEnt', adopti, lgopti, codret )
129 if ( codret.eq.0 ) then
130 langue = imem(adopti)
136 c 1.3. ==> l'etat courant
138 call gmadoj ( nndoad//'.EtatCour', adetco, lgetco, codret )
139 if ( codret.eq.0 ) then
140 nretap = imem(adetco) + 1
141 imem(adetco) = nretap
143 imem(adetco+1) = nrsset
144 nrsect = imem(adetco+2) + 10
145 imem(adetco+2) = nrsect
147 imem(adetco+3) = nrssse
156 c 1.4. ==> le debut des mesures de temps
160 c 1.5. ==> les messages
164 #ifdef _DEBUG_HOMARD_
165 write (ulsort,texte(langue,1)) 'Entree', nompro
169 texte(1,4) = '(/,a6,'' QUESTIONS / REPONSES'')'
170 texte(1,5) = '(27(''=''),/)'
172 texte(2,4) = '(/,a6,'' QUESTIONS / ANSWERS'')'
173 texte(2,5) = '(26(''=''),/)'
177 call utcvne ( nretap, nrsset, saux, iaux, codret )
179 write (ulsort,texte(langue,4)) saux
180 write (ulsort,texte(langue,5))
183 imem(adetco+1) = nrsset
185 c 1.7. ==> les noms d'objets a conserver
187 if ( codret.eq.0 ) then
188 call gmadoj ( nndoad//'.OptCar', adopts, lgopts, codret )
189 if ( codret.ne.0 ) then
194 c 1.8. ==> les numeros d'unite logique au terminal
196 call dmunit ( ulenst, ulsost )
198 c 1.9. ==> l'action en cours
200 action = smem(adopts+29)
202 c 1.10. ==> le numero d'unite logique du fichier de donnees correct
204 call utulfd ( action, nbiter, ulfido, codret )
207 c 2. le maillage d'entree
210 if ( codret.eq.0 ) then
212 nohman = smem(adopts+2)
217 c 3. Lecture de tous les champs presents dans le fichier
220 #ifdef _DEBUG_HOMARD_
221 write (ulsort,90002) '3. Lecture des champs ; codret', codret
224 c 3.1. ==> Recherche du type de code de calcul associe
226 if ( codret.eq.0 ) then
228 call gmliat ( nohman, 9, typcca, codret )
232 c 3.2. ==> Lecture de l'eventuelle solution
233 c Attention, c'est obligatoirement du format MED
235 c 3.2.1. ==> La solution existe-t-elle ?
237 if ( codret.eq.0 ) then
239 if ( mod(typcca-6,10).eq.0 ) then
244 call utfino ( typobs, iaux, nomfic, lnomfi,
246 > ulsort, langue, codret )
248 if ( codret.eq.0 ) then
261 c 3.2.2. ==> Une solution existe
265 c 3.2.2.1. ==> Lecture du format MED
267 if ( codret.eq.0 ) then
269 #ifdef _DEBUG_HOMARD_
270 write (ulsort,texte(langue,3)) 'ESLSMD', nompro
274 call eslsmd ( nocsol, nochso,
275 > imem(adopti+8), iaux,
276 > ulsort, langue, codret )
280 c 3.2.2.2. ==> pour le cas extrude, passage du 3D au 2D
282 if ( imem(adopti+38).ne.0 ) then
284 if ( codret.eq.0 ) then
286 #ifdef _DEBUG_HOMARD_
287 write (ulsort,texte(langue,3)) 'UTSEXT', nompro
290 call utsext ( nocsol, iaux, typcca,
291 > lgetco, imem(adetco),
292 > ulsort, langue, codret )
300 c 3.2.3. ==> S'il n'y a pas de solution, on en alloue une vide.
302 if ( codret.eq.0 ) then
304 #ifdef _DEBUG_HOMARD_
305 write (ulsort,texte(langue,3)) 'UTALSO', nompro
308 call utalso ( nocsol,
309 > iaux, iaux, iaux, iaux,
310 > adinch, adinpf, adinpr, adinlg,
311 > ulsort, langue, codret )
316 cgn call gmprsx (nompro,nocsol)
318 #ifdef _DEBUG_HOMARD_
319 write(ulsort,*) 'Fin etape 4 avec codret = ', codret
323 c 4. questions / reponses
326 if ( codret.eq.0 ) then
328 imem(adetco+3) = imem(adetco+3) + 1
330 #ifdef _DEBUG_HOMARD_
331 write (ulsort,texte(langue,3)) 'INQUR1', nompro
333 call inqur1 ( nohman, nocsol,
334 > ulfido, ulenst, ulsost,
335 > ulsort, langue, codret )
343 c 5.1. ==> message si erreur
345 if ( codret.ne.0 ) then
349 write (ulsort,texte(langue,1)) 'Sortie', nompro
350 write (ulsort,texte(langue,2)) codret
354 c 5.2. ==> fin des mesures de temps de la section
358 #ifdef _DEBUG_HOMARD_
359 write (ulsort,texte(langue,1)) 'Sortie', nompro
363 c=======================================================================
365 c=======================================================================