1 : C PRFAL SOURCE CHAT 07/10/29 21:25:58 5940 2 : SUBROUTINE PRFAL(FACOUR, 3 : $ IMPR,IRET) 4 : IMPLICIT REAL*8 (A-H,O-Z) 5 : IMPLICIT INTEGER (I-N) 6 : C*********************************************************************** 7 : C NOM : PRFAL 8 : C PROJET : Noyau linéaire NLIN 9 : C DESCRIPTION : Imprime un segment décrivant une famille d'éléments 10 : C de référence. 11 : C LANGAGE : ESOPE 12 : C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF) 13 : C mél : gounand@semt2.smts.cea.fr 14 : C*********************************************************************** 15 : C APPELES : OOOETA (état d'un segment) 16 : C APPELE PAR : INFALS 17 : C*********************************************************************** 18 : C ENTREES : FACOUR (type FALRF) : famille d'éléments de 19 : C référence. 20 : C ENTREES/SORTIES : - 21 : C SORTIES : - 22 : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé 23 : C*********************************************************************** 24 : C VERSION : v1, 17/08/99, version initiale 25 : C HISTORIQUE : v1, 17/08/99, création 26 : C HISTORIQUE : 27 : C HISTORIQUE : 28 : C*********************************************************************** 29 : C Prière de PRENDRE LE TEMPS de compléter les commentaires 30 : C en cas de modification de ce sous-programme afin de faciliter 31 : C la maintenance ! 32 : C*********************************************************************** 33 : -INC CCOPTIO 34 : -INC CCGEOME 35 : CBEGININCLUDE SELREF 36 : SEGMENT ELREF 37 : CHARACTER*(LNNOM) NOMLRF 38 : CHARACTER*(LNFORM) FORME 39 : CHARACTER*(LNTYPL) TYPEL 40 : CHARACTER*(LNESP) ESPACE 41 : INTEGER DEGRE 42 : REAL*8 XCONOD(NDIMEL,NBNOD) 43 : INTEGER NPQUAF(NBDDL) 44 : INTEGER NUMCMP(NBDDL) 45 : INTEGER QUENOD(NBDDL) 46 : INTEGER ORDDER(NDIMEL,NBDDL) 47 : POINTEUR MBPOLY.POLYNS 48 : ENDSEGMENT 49 : SEGMENT ELREFS 50 : POINTEUR LISEL(0).ELREF 51 : ENDSEGMENT 52 : CENDINCLUDE SELREF 53 : POINTEUR ELCOUR.ELREF 54 : CBEGININCLUDE SFALRF 55 : SEGMENT FALRF 56 : CHARACTER*(LNNFA) NOMFA 57 : INTEGER NUQUAF(NBLRF) 58 : POINTEUR ELEMF(NBLRF).ELREF 59 : ENDSEGMENT 60 : SEGMENT FALRFS 61 : POINTEUR LISFA(0).FALRF 62 : ENDSEGMENT 63 : CENDINCLUDE SFALRF 64 : POINTEUR FACOUR.FALRF 65 : * 66 : INTEGER IMPR,IRET 67 : * 68 : INTEGER IBLRF,NBLRF 69 : INTEGER FALETA 70 : * 71 : * Executable statements 72 : * 73 : * On veut laisser FACOUR dans le même état (actif, inactif) qu'avant 74 : * l'appel à PRFAL. 74 : CALL OOOETA(FACOUR,FALETA) 75 : IF (FALETA.NE.1) SEGACT FACOUR 76 : WRITE(IOIMP,*) 'Segment FALRF de pointeur',FACOUR 77 : IF (IMPR.GT.1) THEN 78 : WRITE(IOIMP,*) 'Nom : ',FACOUR.NOMFA 79 : IF (IMPR.GT.2) THEN 80 : NBLRF=FACOUR.NUQUAF(/1) 81 : SEGACT FACOUR.ELEMF(*) 82 : WRITE(IOIMP,4005) 'QUAF','Elément fini' 83 : DO 1 IBLRF=1,NBLRF 84 : ELCOUR=FACOUR.ELEMF(IBLRF) 85 : WRITE(IOIMP,4005) NOMS(FACOUR.NUQUAF(IBLRF)), 86 : $ ELCOUR.NOMLRF 87 : 1 CONTINUE 88 : SEGDES FACOUR.ELEMF(*) 89 : ENDIF 90 : ENDIF 91 : IF (FALETA.NE.1) SEGDES FACOUR 92 : C NBLRF=FACOUR.NUQUAF(/1) 93 : C SEGACT FACOUR.ELEMF(*) 94 : C DO 1 IBLRF=1,NBLRF 95 : C ELCOUR=FACOUR.ELEMF(IBLRF) 96 : C WRITE(IOIMP,4004) FACOUR.NOMFA, 97 : C $ NOMS(FACOUR.NUQUAF(IBLRF)), 98 : C $ ELCOUR.NOMLRF 99 : C 1 CONTINUE 100 : C SEGDES FACOUR.ELEMF(*) 101 : * 102 : * Normal termination 103 : * 104 : IRET=0 105 : RETURN 106 : * 107 : * Format handling 108 : * 109 : 4004 FORMAT (A15,' ',A15,' ',A15) 110 : 4005 FORMAT (A14,' <-> ',A14) 111 : * 112 : * Error handling 113 : * 114 : 9999 CONTINUE 115 : IRET=1 116 : WRITE(IOIMP,*) 'An error was detected in subroutine prfal' 117 : RETURN 118 : * 119 : * End of subroutine prfal 120 : * 121 : END 122 : 123 : 124 : 125 :
© Cast3M 2003 - All rights reserved.
Disclaimer