Download fifal.eso

Back to the list

   1 : C FIFAL     SOURCE    GOUNAND   05/12/21    21:20:41     5281           
   2 :       SUBROUTINE FIFAL(NMFAL,MYFALS,
   3 :      $     MYFAL,
   4 :      $     IMPR,IRET)
   5 :       IMPLICIT REAL*8 (A-H,O-Z)
   6 :       IMPLICIT INTEGER (I-N)
   7 : C***********************************************************************
   8 : C NOM         : FIFAL
   9 : C PROJET      : Noyau linéaire NLIN
  10 : C DESCRIPTION : Cherche une famille d'éléments par son nom.
  11 : C
  12 : C LANGAGE     : ESOPE
  13 : C AUTEUR      : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  14 : C               mél : gounand@semt2.smts.cea.fr
  15 : C***********************************************************************
  16 : C APPELES          : OOOETA (état d'un segment)
  17 : C APPELE PAR       : KEEF
  18 : C***********************************************************************
  19 : C ENTREES            : * NMFAL  (type CH*(*)) : nom de famille
  20 : C                        d'éléments finis (cf. NOMFA dans l'include
  21 : C                        SFALRF). 
  22 : C                      * MYFALS (type FALRFS) : segment de description 
  23 : C                        des familles d'éléments de références.
  24 : C SORTIES            : * MYFAL  (type FALRF)  :
  25 : C***********************************************************************
  26 : C VERSION    : v1, 24/03/00, version initiale
  27 : C HISTORIQUE : v1, 24/03/00, création
  28 : C HISTORIQUE :
  29 : C***********************************************************************
  30 : C Prière de PRENDRE LE TEMPS de compléter les commentaires
  31 : C en cas de modification de ce sous-programme afin de faciliter
  32 : C la maintenance !
  33 : C***********************************************************************
  34 : -INC CCOPTIO
  35 : CBEGININCLUDE SFALRF
  36 :       SEGMENT FALRF
  37 :       CHARACTER*(LNNFA) NOMFA
  38 :       INTEGER NUQUAF(NBLRF)
  39 :       POINTEUR ELEMF(NBLRF).ELREF
  40 :       ENDSEGMENT
  41 :       SEGMENT FALRFS
  42 :       POINTEUR LISFA(0).FALRF
  43 :       ENDSEGMENT
  44 : CENDINCLUDE SFALRF
  45 :       POINTEUR MYFALS.FALRFS
  46 :       POINTEUR FACOUR.FALRF
  47 :       POINTEUR MYFAL.FALRF
  48 : *
  49 :       INTEGER IMPR,IRET
  50 : *
  51 :       CHARACTER*(*) NMFAL
  52 :       INTEGER LNMFAL
  53 :       INTEGER MPSETA
  54 :       INTEGER IFALS,NFALS
  55 :       LOGICAL LFOUND
  56 : *     
  57 : * Executable statements
  58 : *
  59 :       IF (IMPR.GT.6) WRITE(IOIMP,*) 'Entrée dans fifal'
  60 :       LFOUND=.FALSE.
  61 :       LNMFAL=LEN(NMFAL)
  62 : * On veut laisser MYFALS dans le même état (actif, inactif) qu'avant
  63 : * l'appel à FIFAL.
  63 :       CALL OOOETA(MYFALS,MPSETA)
  64 :       IF (MPSETA.NE.1) SEGACT MYFALS
  65 :       NFALS=MYFALS.LISFA(/1)
  66 :       IFALS=0
  67 : * Boucle 1 : repeat...until
  68 :  1    CONTINUE
  69 :       IFALS=IFALS+1
  70 :       FACOUR=MYFALS.LISFA(IFALS)
  71 :       SEGACT FACOUR
  72 :       IF (LEN(FACOUR.NOMFA).EQ.LNMFAL) THEN
  73 :          IF (FACOUR.NOMFA.EQ.NMFAL) THEN
  74 :             LFOUND=.TRUE.
  75 :          ENDIF
  76 :       ENDIF
  77 :       SEGDES FACOUR
  78 :       IF (.NOT.LFOUND.AND.IFALS.LT.NFALS) GOTO 1
  79 :       IF (LFOUND) THEN
  80 :          MYFAL=FACOUR
  81 :       ELSE
  82 :          WRITE(IOIMP,*) 'On n''a pas trouvé ',NMFAL,
  83 :      $        'dans les familles d''éléments finis'
  84 :          GOTO 9999
  85 :       ENDIF
  86 :       IF (MPSETA.NE.1) SEGDES MYFALS
  87 : *
  88 : * Normal termination
  89 : *
  90 :       IRET=0
  91 :       RETURN
  92 : *
  93 : * Format handling
  94 : *
  95 : *
  96 : * Error handling
  97 : *
  98 :  9999 CONTINUE
  99 :       IRET=1
 100 :       WRITE(IOIMP,*) 'An error was detected in subroutine fifal'
 101 :       RETURN
 102 : *
 103 : * End of subroutine fifal
 104 : *
 105 :       END
 106 : 
 107 :  

© Cast3M 2003 - All rights reserved.
Disclaimer