fifal
C FIFAL SOURCE GOUNAND 21/06/02 21:15:54 11022 $ MYFAL, $ IMPR,IRET) IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER (I-N) C*********************************************************************** C NOM : FIFAL C PROJET : Noyau linéaire NLIN C DESCRIPTION : Cherche une famille d'éléments par son nom. 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 : OOOETA (état d'un segment) C APPELE PAR : KEEF C*********************************************************************** C ENTREES : * NMFAL (type CH*(*)) : nom de famille C d'éléments finis (cf. NOMFA dans l'include C SFALRF). C * MYFALS (type FALRFS) : segment de description C des familles d'éléments de références. C SORTIES : * MYFAL (type FALRF) : C*********************************************************************** C VERSION : v1, 24/03/00, version initiale C HISTORIQUE : v1, 24/03/00, création 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 PPARAM -INC CCOPTIO -INC TNLIN *-INC SFALRF POINTEUR MYFALS.FALRFS POINTEUR FACOUR.FALRF POINTEUR MYFAL.FALRF * INTEGER IMPR,IRET * CHARACTER*(*) NMFAL INTEGER LNMFAL INTEGER MPSETA INTEGER IFALS,NFALS LOGICAL LFOUND * * Executable statements * IF (IMPR.GT.6) WRITE(IOIMP,*) 'Entrée dans fifal' LFOUND=.FALSE. LNMFAL=LEN(NMFAL) * On veut laisser MYFALS dans le même état (actif, inactif) qu'avant * l'appel à FIFAL. CALL OOOETA(MYFALS,MPSETA,IMOD) IF (MPSETA.NE.1) SEGACT MYFALS NFALS=MYFALS.LISFA(/1) IFALS=0 * Boucle 1 : repeat...until 1 CONTINUE IFALS=IFALS+1 FACOUR=MYFALS.LISFA(IFALS) SEGACT FACOUR IF (LEN(FACOUR.NOMFA).EQ.LNMFAL) THEN IF (FACOUR.NOMFA.EQ.NMFAL) THEN LFOUND=.TRUE. ENDIF ENDIF SEGDES FACOUR IF (.NOT.LFOUND.AND.IFALS.LT.NFALS) GOTO 1 IF (LFOUND) THEN MYFAL=FACOUR ELSE WRITE(IOIMP,*) 'On n''a pas trouvé ',NMFAL, $ 'dans les familles d''éléments finis' GOTO 9999 ENDIF IF (MPSETA.NE.1) SEGDES MYFALS * * Normal termination * IRET=0 RETURN * * Format handling * * * Error handling * 9999 CONTINUE IRET=1 WRITE(IOIMP,*) 'An error was detected in subroutine fifal' RETURN * * End of subroutine fifal * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales