Download fimots.eso

Back to the list

   1 : C FIMOTS    SOURCE    CHAT      05/01/13    00:00:46     5004           
   2 :       SUBROUTINE FIMOTS(MYMOT,MYLMOT,
   3 :      $     INDMOT,
   4 :      $     IMPR,IRET)
   5 :       IMPLICIT INTEGER(I-N)
   6 :       IMPLICIT REAL*8 (A-H,O-Z)
   7 : C***********************************************************************
   8 : C NOM         : FIMOTS
   9 : C PROJET      : Noyau linéaire NLIN
  10 : C DESCRIPTION : Cherche le mot MYMOT dans la liste de mots MYLMOT.
  11 : C               Si on le trouve, on renvoie son indice dans la liste
  12 : C               sinon erreur...
  13 : C LANGAGE     : ESOPE
  14 : C AUTEUR      : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  15 : C               mél : gounand@semt2.smts.cea.fr
  16 : C***********************************************************************
  17 : C APPELE PAR       : PRASEM
  18 : C***********************************************************************
  19 : C ENTREES            : MYMOT(CH*), MYLMOT(seg. MLMOTS)
  20 : C SORTIES            : INDMOT
  21 : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  22 : C***********************************************************************
  23 : C VERSION    : v1, 12/08/99, version initiale
  24 : C HISTORIQUE : v1, 12/08/99, création
  25 : C HISTORIQUE :
  26 : C HISTORIQUE :
  27 : C***********************************************************************
  28 : C Prière de PRENDRE LE TEMPS de compléter les commentaires
  29 : C en cas de modification de ce sous-programme afin de faciliter
  30 : C la maintenance !
  31 : C***********************************************************************
  32 : -INC CCOPTIO
  33 : -INC SMLMOTS
  34 :       POINTEUR MYLMOT.MLMOTS
  35 :       CHARACTER*(*) MYMOT
  36 :       INTEGER INDMOT
  37 : *
  38 :       INTEGER IMPR,IRET
  39 : *
  40 :       INTEGER MLMETA
  41 :       INTEGER INBM
  42 :       INTEGER LNMOTS,LNMOT2,NBMOTS
  43 :       LOGICAL LFOUND
  44 : *     
  45 : * Executable statements
  46 : *
  47 :       IF (IMPR.GT.5) WRITE(IOIMP,*) 'Entrée dans fimots'
  47 :       CALL OOOETA(MYLMOT,MLMETA)
  48 :       IF (MLMETA.NE.1) SEGACT MYLMOT
  49 :       LNMOTS=MYLMOT.MOTS(/1)
  50 :       LNMOT2=LEN(MYMOT)
  51 :       IF (LNMOT2.NE.LNMOTS) THEN
  52 :          WRITE(IOIMP,*) 'Le mot n''a pas la même longueur'
  53 :          WRITE(IOIMP,*) 'que ceux de la liste...'
  54 :          WRITE(IOIMP,*) 'LNMOT2=',LNMOT2,' LNMOTS=',LNMOTS
  55 :          GOTO 9999
  56 :       ENDIF
  57 :       NBMOTS=MYLMOT.MOTS(/2)
  58 :       INBM=0
  59 :       LFOUND=.FALSE.
  60 :  1    CONTINUE
  61 :       IF (.NOT.LFOUND.AND.INBM.LT.NBMOTS) THEN
  62 :          INBM=INBM+1
  63 :          LFOUND=MYMOT.EQ.MYLMOT.MOTS(INBM)
  64 :          GOTO 1
  65 :       ENDIF
  66 :       IF (.NOT.LFOUND) THEN
  67 :          WRITE(IOIMP,*) 'On n''a pas trouvé le mot ',MYMOT
  68 :          WRITE(IOIMP,*) 'dans la liste de mots ',MYLMOT
  69 :          GOTO 9999
  70 :       ENDIF
  71 :       INDMOT=INBM
  72 :       IF (MLMETA.NE.1) SEGDES MYLMOT
  73 : *
  74 : * Normal termination
  75 : *
  76 :       IRET=0
  77 :       RETURN
  78 : *
  79 : * Format handling
  80 : *
  81 : *
  82 : * Error handling
  83 : *
  84 :  9999 CONTINUE
  85 :       IRET=1
  86 :       WRITE(IOIMP,*) 'An error was detected in subroutine fimots'
  87 :       RETURN
  88 : *
  89 : * End of subroutine FIMOTS
  90 : *
  91 :       END
  92 : 
  93 :  
  94 :  

© Cast3M 2003 - All rights reserved.
Disclaimer