C FILFAL SOURCE CHAT 07/10/29 21:19:44 5940 SUBROUTINE FILFAL(FAL,MYLRFS,CQUAF,CEF,IMPR,IRET) IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER (I-N) C*********************************************************************** C NOM : FILFAL C PROJET : Noyau linéaire NLIN C DESCRIPTION : Remplit l'indice d'un segment décrivant une famille C d'éléments de référence. C C LANGAGE : ESOPE C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF) C mél : gounand@semt2.smts.cea.fr C*********************************************************************** C APPELES : FICH4, FILRF (recherche dans une liste) C APPELE PAR : INFALS C*********************************************************************** C ENTREES : * MYLRFS (type ELREFS) : segment de description C des éléments de références. C * CQUAF (type CH*(*)) :nom d'un élément QUAF. C * CEF (type CH*(*)) :nom d'un élément fini C (cf. NOMLRF dans SELREF.INC) C ENTREES/SORTIES : * FAL (type FALRF) : famille courante. C SORTIES : - C TRAVAIL : * MYLRF (type ELREF) : élément fini courant. C * NUMER (type ENTIER) : numéro correspondant à C CQUAF dans le tableau NOMS (cf. include C CCOPTIO) C CODE RETOUR (IRET) : = 0 si tout s'est bien passé C*********************************************************************** C VERSION : v1, 24/03/00, version initiale C HISTORIQUE : v1, 24/03/00, création C HISTORIQUE : C HISTORIQUE : C*********************************************************************** C Prière de PRENDRE LE TEMPS de compléter les commentaires C en cas de modification de ce sous-programme afin de faciliter C la maintenance ! C*********************************************************************** -INC CCOPTIO -INC CCGEOME CBEGININCLUDE SELREF SEGMENT ELREF CHARACTER*(LNNOM) NOMLRF CHARACTER*(LNFORM) FORME CHARACTER*(LNTYPL) TYPEL CHARACTER*(LNESP) ESPACE INTEGER DEGRE REAL*8 XCONOD(NDIMEL,NBNOD) INTEGER NPQUAF(NBDDL) INTEGER NUMCMP(NBDDL) INTEGER QUENOD(NBDDL) INTEGER ORDDER(NDIMEL,NBDDL) POINTEUR MBPOLY.POLYNS ENDSEGMENT SEGMENT ELREFS POINTEUR LISEL(0).ELREF ENDSEGMENT CENDINCLUDE SELREF POINTEUR MYLRFS.ELREFS POINTEUR MYLRF.ELREF CBEGININCLUDE SFALRF SEGMENT FALRF CHARACTER*(LNNFA) NOMFA INTEGER NUQUAF(NBLRF) POINTEUR ELEMF(NBLRF).ELREF ENDSEGMENT SEGMENT FALRFS POINTEUR LISFA(0).FALRF ENDSEGMENT CENDINCLUDE SFALRF INTEGER LNNFA,NBLRF POINTEUR FAL.FALRF * CHARACTER*(*) CQUAF,CEF * INTEGER IMPR,IRET * INTEGER NUMER * * Executable statements * IF (IMPR.GT.6) WRITE(IOIMP,*) 'Entrée dans filfal' * On ajuste la dimension du segment pour rajouter une paire * d'éléments LNNFA=FAL.NOMFA(/1) NBLRF=FAL.NUQUAF(/1)+1 SEGADJ,FAL * Numéro de l'élément géométrique dans NOMS * NOMS(1:NOMBR) sont les noms des types d'éléments géométriques, * cf. include CCGEOME CALL FICH4(CQUAF,NOMS,NOMBR, $ NUMER, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 FAL.NUQUAF(NBLRF)=NUMER * Numéro de l'élément fini dans le segment ELREFS CALL FILRF(CEF,MYLRFS, $ MYLRF, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 FAL.ELEMF(NBLRF)=MYLRF * * Normal termination * IRET=0 RETURN * * Format handling * * * Error handling * 9999 CONTINUE IRET=1 WRITE(IOIMP,*) 'An error was detected in subroutine filfal' RETURN * * End of subroutine filfal * END