1 subroutine vcindi ( lgopti, taopti, lgopts, taopts,
3 > ulsort, langue, codret)
4 c ______________________________________________________________________
8 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
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
16 c HOMARD est une marque deposee d'Electricite de France
22 c ______________________________________________________________________
24 c aVant adaptation - Conversion d'INDIcateur
26 c ______________________________________________________________________
28 c . nom . e/s . taille . description .
29 c .____________________________________________________________________.
30 c . lgopti . e . 1 . longueur du tableau des options entieres .
31 c . taopti . e . lgopti . tableau des options entieres .
32 c . lgopts . e . 1 . longueur du tableau des options caracteres .
33 c . taopts . e . lgopts . tableau des options caracteres .
34 c . lgetco . e . 1 . longueur du tableau de l'etat courant .
35 c . taetco . e . lgetco . tableau de l'etat courant .
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 . . . . 0 : pas de probleme .
41 c . . . . 5 : mauvais type de code de calcul associe .
42 c ______________________________________________________________________
45 c 0. declarations et dimensionnement
48 c 0.1. ==> generalites
54 parameter ( nompro = 'VCINDI' )
82 integer taopti(lgopti)
85 character*8 taopts(lgopts)
88 integer taetco(lgetco)
90 integer ulsort, langue, codret
92 c 0.4. ==> variables locales
96 integer rvnoac, adnohn, adnoin, adnosu
97 integer rvarac, adarhn, adarin, adarsu
98 integer rvtrac, adtrhn, adtrin, adtrsu
99 integer rvquac, adquhn, adquin, adqusu
100 integer rvteac, adtehn, adtein, adtesu
101 integer rvheac, adhehn, adhein, adhesu
102 integer rvpyac, adpyhn, adpyin, adpysu
103 integer rvpeac, adpehn, adpein, adpesu
105 integer adinca, adindi, nbtafo, nbenmx, nbpg, tyelho
106 integer ncmpin, nucomp(100)
107 integer adlipr, nbvapr
109 integer nbcomp, nbtvch
110 integer adnocp, adcaca
114 integer codre1, codre2
116 integer nretap, nrsset
117 integer iaux, jaux, kaux
119 integer nbvpen, nbvpyr, nbvhex, nbvtet
120 integer nbvqua, nbvtri, nbvare, nbvnoe
121 integer adpoin, adtail, adtabl
124 character*8 typobs, nocind, nohind, nomail
127 character*8 nhnoeu, nhmapo, nharet, nhtria, nhquad
128 character*8 nhtetr, nhhexa, nhpyra, nhpent
130 character*8 nhvois, nhsupe, nhsups
135 logical nomaut, afaire
138 parameter ( nbmess = 20 )
139 character*80 texte(nblang,nbmess)
141 c 0.5. ==> initialisations
143 data motaux / 'ValeursR' /
144 c ______________________________________________________________________
148 c=======================================================================
149 if ( codava.eq.0 ) then
150 c=======================================================================
158 #ifdef _DEBUG_HOMARD_
159 write (ulsort,texte(langue,1)) 'Entree', nompro
163 texte(1,4) = '(/,a6,'' CONVERSION DE L''''INDICATEUR'')'
164 texte(1,5) = '(33(''=''),/)'
165 texte(1,6) = '(''Impossible de trouver le nom de la composante'')'
166 texte(1,7) = '(''Nombre de composantes dans le champ :'',i4)'
167 texte(1,8) = '(''Nombre de tableaux dans le champ :'',i4)'
168 texte(1,9) = '(/,''Examen du tableau numero'',i4)'
169 texte(1,10) = '(''. Norme L2 des composantes.'')'
170 texte(1,11) = '(''. Norme infinie des composantes.'')'
171 texte(1,12) = '(''. Valeur relative de la composante.'')'
172 texte(1,13) = '(''. Valeur absolue de la composante.'')'
173 texte(1,15) = '(''Cette combinaison est impossible.'')'
174 texte(1,17) = '(''Plusieurs champs sont presents pour les '',a)'
175 texte(1,18) = '(''Il faut choisir un instant unique.'')'
177 texte(2,4) = '(/,a6,'' INDICATOR CONVERSION'')'
178 texte(2,5) = '(27(''=''),/)'
179 texte(2,6) = '(''The name of the component cannot be found.'')'
180 texte(2,7) = '(''Number of components in the field:'',i4)'
181 texte(2,8) = '(''Number of arrays in the field :'',i4)'
182 texte(2,9) = '(/,''Exam of array #'',i4)'
183 texte(2,10) = '(''. L2 norm of components.'')'
184 texte(2,11) = '(''. Infinite norm of components.'')'
185 texte(2,12) = '(''. Relative value for the component.'')'
186 texte(2,13) = '(''. Absolute value for the component.'')'
187 texte(2,15) = '(''This situation cannot be solved.'')'
188 texte(2,17) = '(''More than one field are defined over the '',a)'
189 texte(2,18) = '(''A single time-step should be selected.'')'
193 c 1.4. ==> le numero de sous-etape
196 nrsset = taetco(2) + 1
199 call utcvne ( nretap, nrsset, saux, iaux, codret )
203 write (ulsort,texte(langue,4)) saux
204 write (ulsort,texte(langue,5))
207 c 2. les structures de base
210 c 2.1. ==> le maillage homard a l'iteration n
212 if ( codret.eq.0 ) then
216 call utosno ( typobs, nomail, iaux, ulsort, langue, codret )
220 c 2.2. ==> structure generale
222 if ( codret.eq.0 ) then
224 #ifdef _DEBUG_HOMARD_
225 write (ulsort,texte(langue,3)) 'UTNOMH', nompro
227 call utnomh ( nomail,
229 > degre, maconf, homolo, hierar,
230 > rafdef, nbmane, typcca, typsfr, maextr,
233 > nhnoeu, nhmapo, nharet,
235 > nhtetr, nhhexa, nhpyra, nhpent,
237 > nhvois, nhsupe, nhsups,
238 > ulsort, langue, codret)
239 cgn call gmprsx ( nompro, nhtria//'.InfoSupp' )
240 cgn call gmprsx ( nompro, norenu//'.PeCalcul' )
241 cgn call gmprsx ( nompro, nhquad//'.InfoSupp' )
242 cgn call gmprsx ( nompro, norenu//'.HeCalcul' )
246 c 2.3. ==> l'indicateur du code de calcul
250 c 2.4. ==> l'indicateur au format homard
251 c le nom est donne par l'utilisateur ou il est construit
252 c en tant qu'objet temporaire
254 if ( codret.eq.0 ) then
258 call utosno ( typobs, nohind, iaux, ulsort, langue, codre1 )
260 if ( codre1.eq.0 ) then
262 elseif ( codre1.eq.2 ) then
265 write (ulsort,texte(langue,6))
270 c 2.5. ==> les eventuels elements elimines
272 if ( codret.eq.0 ) then
274 call gmliat ( nhelig, 1, nbelig, codret )
279 c 3. recuperation des pointeurs associes a l'indicateur en entree
280 c et aux renumerotations
282 #ifdef _DEBUG_HOMARD_
283 write (ulsort,90002) '3. recuperation ; codret', codret
286 c 3.1. ==> renumerotation
288 if ( codret.eq.0 ) then
292 #ifdef _DEBUG_HOMARD_
293 write (ulsort,texte(langue,3)) 'UTRE03_no', nompro
295 call utre03 ( iaux, jaux, norenu,
296 > rvnoac, kaux, adnohn, kaux,
297 > ulsort, langue, codret)
301 if ( codret.eq.0 ) then
305 #ifdef _DEBUG_HOMARD_
306 write (ulsort,texte(langue,3)) 'UTRE03_ar', nompro
308 call utre03 ( iaux, jaux, norenu,
309 > rvarac, kaux, adarhn, kaux,
310 > ulsort, langue, codret)
314 if ( nbtrto.gt.0 ) then
316 if ( codret.eq.0 ) then
320 #ifdef _DEBUG_HOMARD_
321 write (ulsort,texte(langue,3)) 'UTRE03_tr', nompro
323 call utre03 ( iaux, jaux, norenu,
324 > rvtrac, kaux, adtrhn, kaux,
325 > ulsort, langue, codret)
331 if ( nbteto.gt.0 ) then
333 if ( codret.eq.0 ) then
337 #ifdef _DEBUG_HOMARD_
338 write (ulsort,texte(langue,3)) 'UTRE03_te', nompro
340 call utre03 ( iaux, jaux, norenu,
341 > rvteac, kaux, adtehn, kaux,
342 > ulsort, langue, codret)
348 if ( nbquto.gt.0 ) then
350 if ( codret.eq.0 ) then
354 #ifdef _DEBUG_HOMARD_
355 write (ulsort,texte(langue,3)) 'UTRE03_qu', nompro
357 call utre03 ( iaux, jaux, norenu,
358 > rvquac, kaux, adquhn, kaux,
359 > ulsort, langue, codret)
365 if ( nbpyto.gt.0 ) then
367 if ( codret.eq.0 ) then
371 #ifdef _DEBUG_HOMARD_
372 write (ulsort,texte(langue,3)) 'UTRE03_py', nompro
374 call utre03 ( iaux, jaux, norenu,
375 > rvpyac, kaux, adpyhn, kaux,
376 > ulsort, langue, codret)
382 if ( nbheto.gt.0 ) then
384 if ( codret.eq.0 ) then
388 #ifdef _DEBUG_HOMARD_
389 write (ulsort,texte(langue,3)) 'UTRE03_he', nompro
391 call utre03 ( iaux, jaux, norenu,
392 > rvheac, kaux, adhehn, kaux,
393 > ulsort, langue, codret)
399 if ( nbpeto.gt.0 ) then
401 if ( codret.eq.0 ) then
405 #ifdef _DEBUG_HOMARD_
406 write (ulsort,texte(langue,3)) 'UTRE03_pe', nompro
408 call utre03 ( iaux, jaux, norenu,
409 > rvpeac, kaux, adpehn, kaux,
410 > ulsort, langue, codret)
416 #ifdef _DEBUG_HOMARD_
417 write (ulsort,90002) 'rvnoac', rvnoac
418 write (ulsort,90002) 'rvarac', rvarac
419 write (ulsort,90002) 'rvtrac', rvtrac
420 write (ulsort,90002) 'rvquac', rvquac
421 write (ulsort,90002) 'rvteac', rvteac
422 write (ulsort,90002) 'rvheac', rvheac
423 write (ulsort,90002) 'rvpeac', rvpeac
424 write (ulsort,90002) 'rvpyac', rvpyac
427 #ifdef _DEBUG_HOMARD_
428 call gmprsx (nompro, norenu )
429 call gmprot (nompro, norenu//'.NoHOMARD', 1, 30 )
430 call gmprot (nompro, norenu//'.ArHOMARD', 1, min(100,rvarac) )
431 if ( rvtrac.ne.0 ) then
432 call gmprot (nompro, norenu//'.TrHOMARD', 1, min(100,rvtrac) )
434 if ( rvquac.ne.0 ) then
435 call gmprot (nompro, norenu//'.QuHOMARD', 1, min(100,rvquac) )
437 if ( rvteac.ne.0 ) then
438 call gmprot (nompro, norenu//'.TeHOMARD', 1, min(100,rvteac) )
440 if ( rvpyac.ne.0 ) then
441 call gmprot (nompro, norenu//'.PYHOMARD', 1, min(100,rvpyac) )
443 if ( rvheac.ne.0 ) then
444 call gmprot (nompro, norenu//'.HeHOMARD', 1, min(100,rvheac) )
446 if ( rvpeac.ne.0 ) then
447 call gmprot (nompro, norenu//'.PeHOMARD', 1, min(100,rvpeac) )
449 call gmprsx (nompro, norenu//'.HeHOMARD' )
450 call gmprsx (nompro, norenu//'.PeHOMARD' )
451 call gmprsx (nompro, norenu//'.InfoSupE' )
452 call gmprsx (nompro, norenu//'.InfoSupE.Tab1' )
453 call gmprsx (nompro, norenu//'.InfoSupE.Tab3' )
454 call gmprsx (nompro, norenu//'.InfoSupE.Tab9' )
457 c 3.2. ==> les caracteristiques de l'indicateur
458 #ifdef _DEBUG_HOMARD_
459 write (ulsort,90002) '3.2. caract. indic ; codret', codret
462 if ( codret.eq.0 ) then
464 #ifdef _DEBUG_HOMARD_
465 call gmprsx (nompro, nocind )
466 call gmprsx (nompro, nocind//'.InfoCham' )
467 call gmprsx (nompro, nocind//'.InfoPaFo' )
468 call gmprsx (nompro, nocind//'.InfoProf' )
469 call gmprsx (nompro, nocind//'.InfoLoPG' )
470 call gmprsx (nompro, '%%%%%%11' )
471 call gmprsx (nompro, '%%%%%%11.Nom_Comp' )
472 call gmprsx (nompro, '%%%%%%11.Cham_Ent' )
473 call gmprsx (nompro, '%%%%%%11.Cham_Ree' )
474 call gmprsx (nompro, '%%%%%%11.Cham_Car' )
475 call gmprsx (nompro, '%%%%%%13' )
476 call gmprsx (nompro, '%%%%%%13.ValeursR' )
477 call gmprsx (nompro, '%%%%%%14' )
478 call gmprsx (nompro, '%%%%%%14.ValeursR' )
481 #ifdef _DEBUG_HOMARD_
482 write (ulsort,texte(langue,3)) 'VCIND0', nompro
485 call vcind0 ( nocind,
486 > nocham, nbcomp, nbtvch, adnocp, adcaca,
487 > ulsort, langue, codret )
489 #ifdef _DEBUG_HOMARD_
490 write (ulsort,texte(langue,7)) nbcomp
491 write (ulsort,texte(langue,8)) nbtvch
496 c 3.3. ==> allocation de l'objet
497 #ifdef _DEBUG_HOMARD_
498 write (ulsort,90002) '3.3. allocation ; codret', codret
499 write (ulsort,*) 'nomaut =', nomaut
502 if ( codret.eq.0 ) then
505 call gmalot ( nohind, 'HOM_Indi', 0, iaux, codret )
507 call gmaloj ( nohind, 'HOM_Indi', 0, iaux, codret )
512 if ( codret.eq.0 ) then
516 c 3.4. ==> noms des composantes retenues, si le champ contient
517 c plus d'une composante
518 #ifdef _DEBUG_HOMARD_
519 write (ulsort,90002) '3.4. nom des composantes ; codret', codret
522 if ( nbcomp.gt.1 ) then
524 if ( codret.eq.0 ) then
528 #ifdef _DEBUG_HOMARD_
529 write (ulsort,texte(langue,3)) 'UTMCLS', nompro
531 call utmcls ( typobs, iaux, oblist, jaux,
532 > ulsort, langue, codre0 )
536 #ifdef _DEBUG_HOMARD_
537 if ( codret.eq.0 ) then
538 call gmprsx (nompro, oblist )
539 call gmprsx (nompro, oblist//'.Pointeur' )
540 call gmprsx (nompro, oblist//'.Taille' )
541 call gmprsx (nompro, oblist//'.Table' )
545 if ( codret.eq.0 ) then
548 #ifdef _DEBUG_HOMARD_
549 write (ulsort,texte(langue,3)) 'UTADPT', nompro
551 call utadpt ( oblist, iaux,
553 > adpoin, adtail, adtabl,
554 > ulsort, langue, codret )
560 c 3.5. ==> Controle des composantes dans le champ
561 #ifdef _DEBUG_HOMARD_
562 write (ulsort,90002) '3.5. Controle ; codret', codret
565 if ( codret.eq.0 ) then
567 #ifdef _DEBUG_HOMARD_
568 write (ulsort,texte(langue,3)) 'VCIND1', nompro
570 call vcind1 ( nbcomp, smem(adnocp+8),
571 > ncmpin, imem(adpoin), imem(adtail), smem(adtabl),
573 > ulsort, langue, codret )
577 if ( codret.eq.0 ) then
579 if ( ncmpin.gt.1 ) then
580 write (ulsort,texte(langue,10+taopti(8)))
581 if ( taopti(8).eq.2 ) then
582 write (ulsort,texte(langue,7)) ncmpin
583 write (ulsort,texte(langue,10+taopti(8)))
584 write (ulsort,texte(langue,15))
588 if ( taopti(8).eq.2 ) then
589 write (ulsort,texte(langue,12))
591 write (ulsort,texte(langue,13))
600 #ifdef _DEBUG_HOMARD_
601 write (ulsort,90002) '4. conversion ; codret', codret
603 c 4.0. ==> Au depart, on fait comme si aucune indicateur n'etait present
604 c a priori, on met des adresses valant 1 pour que quand il n'y
605 c a pas de tableaux on garde la coherence de passage
606 c d'arguments avec imem
634 do 40 , nrotv = 1 , nbtvch
638 #ifdef _DEBUG_HOMARD_
639 write (ulsort,texte(langue,9)) nrotv
642 c 4.1 ==> adresse de l'indicateur du code de calcul
643 c type de l'element au sens HOMARD
645 if ( codret.eq.0 ) then
647 #ifdef _DEBUG_HOMARD_
648 write (ulsort,texte(langue,3)) 'VCIND2', nompro
651 call vcind2 ( nrpass,
653 > adinca, nbtafo, nbenmx, nbpg, tyelho,
655 > ulsort, langue, codret )
659 #ifdef _DEBUG_HOMARD_
660 write (ulsort,90002) 'tyelho', tyelho
663 c 4.2. ==> allocation de l'objet
664 c remarque : on ne traite que les reels
665 #ifdef _DEBUG_HOMARD_
666 write (ulsort,90002) '4.2. Allocation ; codret', codret
669 c 4.2.0. ==> prealable
671 if ( codret.eq.0 ) then
673 do 420 , iaux = -1 , 7
681 if ( codret.eq.0 ) then
682 if ( rvnoac.ne.0 .and.
683 > tyelho.eq.tyhnoe ) then
686 if ( nbvnoe.ne.0 ) then
687 codret = 1000 + typenh
690 #ifdef _DEBUG_HOMARD_
691 write (ulsort,texte(langue,3)) 'UTALIH_no', nompro
693 call utalih ( nohind, typenh, nbnoto, ncmpin, motaux,
695 > ulsort, langue, codret)
696 nbvent(typenh) = rvnoac
706 if ( codret.eq.0 ) then
707 if ( rvarac.ne.0 .and.
708 > ( tyelho.eq.tyhse1 .or. tyelho.eq.tyhse2 ) ) then
711 if ( nbvare.ne.0 ) then
712 codret = 1000 + typenh
715 #ifdef _DEBUG_HOMARD_
716 write (ulsort,texte(langue,3)) 'UTALIH_ar', nompro
718 call utalih ( nohind, typenh, nbarto, ncmpin, motaux,
720 > ulsort, langue, codret)
721 nbvent(typenh) = rvarac
729 c 4.2.3. ==> triangles
731 if ( codret.eq.0 ) then
732 if ( rvtrac.ne.0 .and.
733 > ( tyelho.eq.tyhtr1 .or. tyelho.eq.tyhtr2 .or.
734 > tyelho.eq.tyhtr3 ) ) then
737 if ( nbvtri.ne.0 ) then
738 codret = 1000 + typenh
741 #ifdef _DEBUG_HOMARD_
742 write (ulsort,texte(langue,3)) 'UTALIH_tr', nompro
744 call utalih ( nohind, typenh, nbtrto, ncmpin, motaux,
746 > ulsort, langue, codret)
747 nbvent(typenh) = rvtrac
755 c 4.2.4. ==> quadrangles
757 if ( codret.eq.0 ) then
758 if ( rvquac.ne.0 .and.
759 > ( tyelho.eq.tyhqu1 .or. tyelho.eq.tyhqu2 .or.
760 > tyelho.eq.tyhqu3 ) ) then
763 if ( nbvqua.ne.0 ) then
764 codret = 1000 + typenh
767 #ifdef _DEBUG_HOMARD_
768 write (ulsort,texte(langue,3)) 'UTALIH_qu', nompro
770 call utalih ( nohind, typenh, nbquto, ncmpin, motaux,
772 > ulsort, langue, codret)
773 nbvent(typenh) = rvquac
781 c 4.2.5. ==> tetraedres
783 if ( codret.eq.0 ) then
784 if ( rvteac.ne.0 .and.
785 > ( tyelho.eq.tyhte1 .or. tyelho.eq.tyhte2 ) ) then
788 if ( nbvtet.ne.0 ) then
789 codret = 1000 + typenh
792 #ifdef _DEBUG_HOMARD_
793 write (ulsort,texte(langue,3)) 'UTALIH_te', nompro
795 call utalih ( nohind, typenh, nbteto, ncmpin, motaux,
797 > ulsort, langue, codret)
798 nbvent(typenh) = rvteac
806 c 4.2.6. ==> pyramides
808 if ( codret.eq.0 ) then
809 if ( rvpyac.ne.0 .and. nbelig.eq.0 .and.
810 > ( tyelho.eq.tyhpy1 .or. tyelho.eq.tyhpy2 ) ) then
813 if ( nbvpyr.ne.0 ) then
814 codret = 1000 + typenh
817 #ifdef _DEBUG_HOMARD_
818 write (ulsort,texte(langue,3)) 'UTALIH_py', nompro
820 call utalih ( nohind, typenh, nbpyto, ncmpin, motaux,
822 > ulsort, langue, codret)
824 nbvent(typenh) = rvpyac
832 c 4.2.7. ==> hexaedres
834 if ( codret.eq.0 ) then
835 if ( rvheac.ne.0 .and.
836 > ( tyelho.eq.tyhhe1 .or. tyelho.eq.tyhhe2 .or.
837 > tyelho.eq.tyhhe3 ) ) then
840 if ( nbvhex.ne.0 ) then
841 codret = 1000 + typenh
844 #ifdef _DEBUG_HOMARD_
845 write (ulsort,texte(langue,3)) 'UTALIH_he', nompro
847 call utalih ( nohind, typenh, nbheto, ncmpin, motaux,
849 > ulsort, langue, codret)
851 nbvent(typenh) = rvheac
859 c 4.2.8. ==> pentaedres
861 if ( codret.eq.0 ) then
862 if ( rvpeac.ne.0 .and.
863 > ( tyelho.eq.tyhpe1 .or. tyelho.eq.tyhpe2 ) ) then
866 if ( nbvpen.ne.0 ) then
867 codret = 1000 + typenh
870 #ifdef _DEBUG_HOMARD_
871 write (ulsort,texte(langue,3)) 'UTALIH_pe', nompro
873 call utalih ( nohind, typenh, nbpeto, ncmpin, motaux,
875 > ulsort, langue, codret)
877 nbvent(typenh) = rvpeac
885 c 4.3. ==> Si l'indicateur est exprime par points de Gauss, on le
886 c rapporte par maille
887 #ifdef _DEBUG_HOMARD_
888 write (ulsort,90002) '4.3. points de Gauss ; codret', codret
891 if ( codret.eq.0 ) then
893 if ( nbpg.gt.1 ) then
897 #ifdef _DEBUG_HOMARD_
898 write (ulsort,texte(langue,3)) 'VCIND3', nompro
900 call vcind3 ( nbtafo, nbenmx, rmem(adinca), nbpg,
903 > ulsort, langue, codret)
915 c 4.4. ==> conversion de l'indicateur en fonction de son type
916 #ifdef _DEBUG_HOMARD_
917 write (ulsort,90002) '4.4. en fct du type ; codret', codret
918 write (ulsort,99001) 'afaire', afaire
921 if ( codret.eq.0 ) then
925 #ifdef _DEBUG_HOMARD_
926 write (ulsort,texte(langue,3)) 'VCINRR', nompro
928 call vcinrr ( nbvent,
929 > imem(adnosu), rmem(adnoin),
930 > imem(adarsu), rmem(adarin),
931 > imem(adtrsu), rmem(adtrin),
932 > imem(adqusu), rmem(adquin),
933 > imem(adtesu), rmem(adtein),
934 > imem(adhesu), rmem(adhein),
935 > imem(adpysu), rmem(adpyin),
936 > imem(adpesu), rmem(adpein),
937 > nbvapr, imem(adlipr),
938 > nbtafo, nbenmx, rmem(adindi),
948 > ulsort, langue, codret)
954 c 4.5. ==> menage eventuel
955 #ifdef _DEBUG_HOMARD_
956 write (ulsort,90002) '4.5. Menage ; codret', codret
959 if ( codret.eq.0 ) then
961 if ( nbpg.gt.1 .and. afaire ) then
963 call gmlboj ( ntrava , codret )
969 nbvnoe = nbvnoe + nbvent(-1)
970 nbvare = nbvare + nbvent(1)
971 nbvtri = nbvtri + nbvent(2)
972 nbvqua = nbvqua + nbvent(4)
973 nbvtet = nbvtet + nbvent(3)
974 nbvpyr = nbvpyr + nbvent(5)
975 nbvhex = nbvhex + nbvent(6)
976 nbvpen = nbvpen + nbvent(7)
983 #ifdef _DEBUG_HOMARD_
984 write (ulsort,90002) '5. menage ; codret', codret
987 if ( codret.eq.0 ) then
989 call gmsgoj ( nocind, codre1 )
990 if ( nbcomp.gt.1 ) then
991 call gmsgoj ( oblist, codre2 )
996 codre0 = min ( codre1, codre2 )
997 codret = max ( abs(codre0), codret,
1002 #ifdef _DEBUG_HOMARD_
1003 if ( codret.eq.0 ) then
1005 call gmprsx(nompro, nohind)
1007 call gmprsx(nompro, nohind//'.Noeud')
1008 call gmprot (nompro, nohind//'.Noeud.Support' , 1, 10 )
1009 call gmprot (nompro, nohind//'.Noeud.'//motaux , 1, 10 )
1010 if ( nbnoto.gt.10 ) then
1011 call gmprot (nompro, nohind//'.Noeud.Support',nbnoto-9,nbnoto)
1012 call gmprot (nompro, nohind//'.Noeud.'//motaux,nbnoto-9,nbnoto)
1015 call gmprot (nompro, nohind//'.Arete.'//motaux , 1, 10 )
1016 if ( nbarto.gt.10 ) then
1017 call gmprot (nompro, nohind//'.Arete.'//motaux,nbarto-9,nbarto)
1020 if ( nbtrto.gt.0 ) then
1021 call gmprot (nompro, nohind//'.Trian.'//motaux , 1, 10 )
1022 if ( nbtrto.gt.10 ) then
1023 call gmprot (nompro, nohind//'.Trian.'//motaux,nbtrto-9,nbtrto)
1027 if ( nbquto.gt.0 ) then
1028 if ( nbquto.gt.50 ) then
1029 call gmprot (nompro, nohind//'.Quadr.'//motaux , 1, 50 )
1030 call gmprot (nompro, nohind//'.Quadr.'//motaux,nbquto-49,nbquto)
1032 call gmprsx (nompro, nohind//'.Quadr.Support' )
1033 call gmprsx (nompro, nohind//'.Quadr.'//motaux )
1037 if ( nbteto.gt.0 ) then
1038 call gmprot (nompro, nohind//'.Tetra.'//motaux , 1, 10 )
1039 if ( nbteto.gt.10 ) then
1040 call gmprot (nompro, nohind//'.Tetra.'//motaux,nbteto-9,nbteto)
1044 if ( nbelig.eq.0 .and. nbpyto.gt.0 ) then
1045 call gmprot (nompro, nohind//'.Pyram.'//motaux , 1, 10 )
1046 if ( nbpyto.gt.10 ) then
1047 call gmprot (nompro, nohind//'.Pyram.'//motaux,nbpyto-9,nbpyto)
1051 if ( nbheto.gt.0 ) then
1052 call gmprot (nompro, nohind//'.Hexae.'//motaux , 1, 10 )
1053 if ( nbheto.gt.10 ) then
1054 call gmprot (nompro, nohind//'.Hexae.'//motaux,nbheto-9,nbheto)
1058 if ( nbpeto.gt.0 ) then
1059 call gmprot (nompro, nohind//'.Penta.'//motaux , 1, 10 )
1060 if ( nbpeto.gt.10 ) then
1061 call gmprot (nompro, nohind//'.Penta.'//motaux,nbpeto-9,nbpeto)
1072 if ( codret.ne.0 ) then
1076 write (ulsort,texte(langue,1)) 'Sortie', nompro
1077 write (ulsort,texte(langue,2)) codret
1078 if ( codret.ge.999 ) then
1079 typenh = codret - 1000
1080 write (ulsort,texte(langue,17)) mess14(langue,3,typenh)
1081 write (ulsort,texte(langue,18))
1086 #ifdef _DEBUG_HOMARD_
1087 write (ulsort,texte(langue,1)) 'Sortie', nompro
1091 c=======================================================================
1093 c=======================================================================