1 subroutine infcas ( nomail, nosolu,
2 > ulfido, ulenst, ulsost,
4 > ulsort, langue, codret )
5 c ______________________________________________________________________
9 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
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
17 c HOMARD est une marque deposee d'Electricite de France
23 c ______________________________________________________________________
25 c INformation : Fichiers Champs ASCII
27 c ______________________________________________________________________
29 c . nom . e/s . taille . description .
30 c .____________________________________________________________________.
31 c . nomail . e . char8 . nom de l'objet maillage homard iteration n .
32 c . nosolu . e . char8 . nom de l'objet solution .
33 c . ulfido . e . 1 . unite logique du fichier de donnees correct.
34 c . ulenst . e . 1 . unite logique de l'entree standard .
35 c . ulsost . e . 1 . unite logique de la sortie standard .
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 . . . . 2 : probleme dans les memoires .
44 c . . . . 3 : probleme dans les fichiers .
45 c . . . . 5 : probleme autre .
46 c ______________________________________________________________________
49 c 0. declarations et dimensionnement
52 c 0.1. ==> generalites
58 parameter ( nompro = 'INFCAS' )
61 cfonc parameter ( nbtych = 5 )
82 character*8 nomail, nosolu
84 integer ulfido, ulenst, ulsost
86 integer taetco(lgetco)
88 integer ulsort, langue, codret
90 c 0.4. ==> variables locales
93 integer nretap, nrsset
96 integer pcoono, psomar
97 integer pnp2ar, phetar, pmerar, pposif, pfacar
98 integer phettr, paretr, pnivtr
100 integer phetqu, parequ, pnivqu
101 integer ptrite, phette
103 integer adnohn, adnocn, adnoin, lgnoin
104 integer adtrhn, adtrcn, adtrin, lgtrin
105 integer adquhn, adqucn, adquin, lgquin
109 integer nbcham, nbfonc, nbprof, nblopg
110 integer aninch, aninfo, aninpr, adinlg
111 integer nrocha, nrocmp, nrotab
117 character*8 nhnoeu, nhmapo, nharet, nhtria, nhquad
118 character*8 nhtetr, nhhexa, nhpyra, nhpent
120 character*8 nhvois, nhsupe, nhsups
123 parameter ( nbmess = 10 )
124 character*80 texte(nblang,nbmess)
126 c 0.5. ==> initialisations
127 c ______________________________________________________________________
135 c=======================================================================
136 if ( codava.eq.0 ) then
137 c=======================================================================
139 c 1.1. ==> les messages
143 #ifdef _DEBUG_HOMARD_
144 write (ulsort,texte(langue,1)) 'Entree', nompro
148 texte(1,4) = '(a6,'' FICHIER ASCII POUR GRAPHIQUE'')'
149 texte(1,5) = '(35(''=''),/)'
150 texte(1,10) = '(''Lancement du trace numero'',i3)'
152 texte(2,4) = '(a6,'' ASCII FILE FOR GRAPHIC'')'
153 texte(2,5) = '(29(''=''),/)'
154 texte(2,10) = '(''Beginning of writings #'',i3)'
158 c 1.4. ==> le numero de sous-etape
161 nrsset = taetco(2) + 1
164 call utcvne ( nretap, nrsset, saux06, iaux, codret )
168 write (ulsort,texte(langue,4)) saux06
169 write (ulsort,texte(langue,5))
172 c 2. recuperation des pointeurs
175 c 2.1. ==> structure generale
177 if ( codret.eq.0 ) then
179 #ifdef _DEBUG_HOMARD_
180 write (ulsort,texte(langue,3)) 'UTNOMH', nompro
182 call utnomh ( nomail,
184 > degre, maconf, homolo, hierar,
185 > rafdef, nbmane, typcca, typsfr, maextr,
188 > nhnoeu, nhmapo, nharet,
190 > nhtetr, nhhexa, nhpyra, nhpent,
192 > nhvois, nhsupe, nhsups,
193 > ulsort, langue, codret)
198 #ifdef _DEBUG_HOMARD_
199 write (ulsort,*) '2.2. Tableaux ; codret = ', codret
202 if ( codret.eq.0 ) then
204 #ifdef _DEBUG_HOMARD_
205 write (ulsort,texte(langue,3)) 'UTAD01', nompro
208 call utad01 ( iaux, nhnoeu,
211 > pcoono, jaux, jaux, jaux,
212 > ulsort, langue, codret )
214 #ifdef _DEBUG_HOMARD_
215 write (ulsort,texte(langue,3)) 'UTAD02_ar', nompro
218 if ( degre.eq.2 ) then
221 call utad02 ( iaux, nharet,
222 > phetar, psomar, jaux, pmerar,
224 > jaux, pnp2ar, jaux,
226 > ulsort, langue, codret )
228 if ( nbtrto.ne.0 ) then
230 #ifdef _DEBUG_HOMARD_
231 write (ulsort,texte(langue,3)) 'UTAD02_tr', nompro
234 call utad02 ( iaux, nhtria,
235 > phettr, paretr, jaux, jaux,
237 > pnivtr, jaux, jaux,
239 > ulsort, langue, codret )
243 if ( nbquto.ne.0 ) then
245 #ifdef _DEBUG_HOMARD_
246 write (ulsort,texte(langue,3)) 'UTAD02_qu', nompro
249 call utad02 ( iaux, nhquad,
250 > phetqu, parequ, jaux, jaux,
252 > pnivqu, jaux, jaux,
254 > ulsort, langue, codret )
258 if ( nbteto.ne.0 ) then
260 #ifdef _DEBUG_HOMARD_
261 write (ulsort,texte(langue,3)) 'UTAD02_te', nompro
264 call utad02 ( iaux, nhtetr,
265 > phette, ptrite, jaux , jaux,
269 > ulsort, langue, codret )
275 c 2.3. ==> les voisinages
277 if ( codret.eq.0 ) then
279 #ifdef _DEBUG_HOMARD_
280 write (ulsort,texte(langue,3)) 'UTAD04', nompro
283 if ( nbteto.ne.0 ) then
286 call utad04 ( iaux, nhvois,
287 > jaux, jaux, pposif, pfacar,
289 > jaux, jaux, jaux, jaux,
294 > ulsort, langue, codret )
298 c 2.4. ===> tableaux lies a la renumerotation
300 if ( codret.eq.0 ) then
302 #ifdef _DEBUG_HOMARD_
303 write (ulsort,texte(langue,3)) 'UTRE03_no', nompro
307 call utre03 ( iaux, jaux, norenu,
308 > renoac, renoto, adnohn, adnocn,
309 > ulsort, langue, codret)
313 if ( codret.eq.0 ) then
315 #ifdef _DEBUG_HOMARD_
316 write (ulsort,texte(langue,3)) 'UTRE04_no', nompro
320 call utre04 ( iaux, jaux, norenu,
322 > ulsort, langue, codret)
326 if ( retrac.ne.0 ) then
328 if ( codret.eq.0 ) then
330 #ifdef _DEBUG_HOMARD_
331 write (ulsort,texte(langue,3)) 'UTRE03_tr', nompro
335 call utre03 ( iaux, jaux, norenu,
336 > retrac, retrto, adtrhn, adtrcn,
337 > ulsort, langue, codret)
341 if ( codret.eq.0 ) then
343 #ifdef _DEBUG_HOMARD_
344 write (ulsort,texte(langue,3)) 'UTRE04_tr', nompro
348 call utre04 ( iaux, jaux, norenu,
350 > ulsort, langue, codret)
356 if ( requac.ne.0 ) then
358 if ( codret.eq.0 ) then
360 #ifdef _DEBUG_HOMARD_
361 write (ulsort,texte(langue,3)) 'UTRE03_qu', nompro
365 call utre03 ( iaux, jaux, norenu,
366 > requac, requto, adquhn, adqucn,
367 > ulsort, langue, codret)
371 if ( codret.eq.0 ) then
373 #ifdef _DEBUG_HOMARD_
374 write (ulsort,texte(langue,3)) 'UTRE04_qu', nompro
378 call utre04 ( iaux, jaux, norenu,
380 > ulsort, langue, codret)
386 if ( codret.eq.0 ) then
388 cgn call gmprsx ( nompro, norenu//'.Nombres' )
389 call gmadoj ( norenu//'.Nombres', adnbrn, iaux, codret )
393 if ( codret.eq.0 ) then
395 #ifdef _DEBUG_HOMARD_
396 write (ulsort,texte(langue,3)) 'UTNBMH', nompro
398 call utnbmh ( imem(adnbrn),
402 > iaux, iaux, iaux, iaux,
403 > nbmapo, nbsegm, nbtria, nbtetr,
404 > nbquad, nbhexa, nbpent, nbpyra,
407 > ulsort, langue, codret )
408 #ifdef _DEBUG_HOMARD_
409 write(ulsort,90002) 'nbmapo', nbmapo
410 write(ulsort,90002) 'nbsegm', nbsegm
411 write(ulsort,90002) 'nbtria', nbtria
412 write(ulsort,90002) 'nbtetr', nbtetr
413 write(ulsort,90002) 'nbquad', nbquad
414 write(ulsort,90002) 'nbhexa', nbhexa
415 write(ulsort,90002) 'nbpent', nbpent
416 write(ulsort,90002) 'nbpyra', nbpyra
422 decanu(1) = nbtetr + nbtria
423 decanu(0) = nbtetr + nbtria + nbsegm
424 decanu(4) = nbtetr + nbtria + nbsegm + nbmapo
425 decanu(6) = nbtetr + nbtria + nbsegm + nbmapo + nbquad
426 decanu(5) = nbtetr + nbtria + nbsegm + nbmapo + nbquad + nbhexa
427 decanu(7) = nbtetr + nbtria + nbsegm + nbmapo + nbquad + nbhexa
432 c 2.5. ===> tableaux lies a la solution eventuelle
434 if ( codret.eq.0 ) then
436 #ifdef _DEBUG_HOMARD_
437 call gmprsx (nompro,nosolu)
438 call gmprsx (nompro,nosolu//'.InfoCham')
439 call gmprsx (nompro,nosolu//'.InfoPaFo')
440 call gmprsx (nompro,nosolu//'.InfoProf')
441 call gmprsx (nompro,nosolu//'.InfoLoPG')
444 #ifdef _DEBUG_HOMARD_
445 write (ulsort,texte(langue,3)) 'UTCASO', nompro
447 call utcaso ( nosolu,
448 > nbcham, nbfonc, nbprof, nblopg,
449 > aninch, aninfo, aninpr, adinlg,
450 > ulsort, langue, codret )
454 if ( codret.eq.0 ) then
456 if ( nbcham.eq.0 ) then
466 #ifdef _DEBUG_HOMARD_
467 write (ulsort,*) '3. initialisations ; codret = ', codret
473 c 4. questions - reponses pour les sorties
475 #ifdef _DEBUG_HOMARD_
476 write (ulsort,*) '4. questions - reponses ; codret = ', codret
481 if ( codret.eq.0 ) then
483 #ifdef _DEBUG_HOMARD_
484 write (ulsort,texte(langue,3)) 'INFCA1', nompro
486 call infca1 ( numfic, option,
487 > nbcham, smem(aninch),
488 > nrocha, nrocmp, nrotab,
489 > ulfido, ulenst, ulsost,
490 > ulsort, langue, codret )
494 if ( codret.eq.0 ) then
496 if ( option.eq.0 ) then
504 c 5. ecriture des valeurs
506 #ifdef _DEBUG_HOMARD_
507 write (ulsort,*) '5. ecriture des valeurs ; codret = ', codret
510 if ( codret.eq.0 ) then
512 #ifdef _DEBUG_HOMARD_
513 write (ulsort,texte(langue,3)) 'INFCA2', nompro
515 call infca2 ( numfic,
516 > nbcham, smem(aninch),
517 > nrocha, nrocmp, nrotab,
519 > imem(adnocn), imem(adtrcn), imem(adqucn),
520 > imem(adnohn), imem(adtrhn), imem(adquhn),
521 > lgnoin, lgtrin, lgquin,
522 > imem(adnoin), imem(adtrin), imem(adquin),
524 > ulsort, langue, codret )
528 if ( codret.eq.0 ) then
537 #ifdef _DEBUG_HOMARD_
538 write (ulsort,*) '6. La fin ; codret = ', codret
545 c 6.1. ==> message si erreur
547 if ( codret.ne.0 ) then
551 write (ulsort,texte(langue,1)) 'Sortie', nompro
552 write (ulsort,texte(langue,2)) codret
556 #ifdef _DEBUG_HOMARD_
557 write (ulsort,texte(langue,1)) 'Sortie', nompro
561 c=======================================================================
563 c=======================================================================