Télécharger fimot2.eso

Retour à la liste

Numérotation des lignes :

  1. C FIMOT2 SOURCE GOUNAND 06/04/06 17:53:37 5371
  2. SUBROUTINE FIMOT2(MYMOT,MYLMOT,NBMOTS,
  3. $ INDMOT,
  4. $ IMPR,IRET)
  5. IMPLICIT INTEGER(I-N)
  6. IMPLICIT REAL*8 (A-H,O-Z)
  7. C***********************************************************************
  8. C NOM : FIMOT2
  9. C DESCRIPTION : Cherche le mot MYMOT dans la liste de mots MYLMOT.
  10. C Si on le trouve, on renvoie son indice dans la liste
  11. C sinon on renvoie 0
  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 APPELE PAR : PRASEM
  17. C***********************************************************************
  18. C ENTREES : MYMOT(CH*), MYLMOT(seg. MLMOTS)
  19. C SORTIES : INDMOT
  20. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  21. C***********************************************************************
  22. C VERSION : v1, 07/03/06, version initiale
  23. C HISTORIQUE : v1, 07/03/06, création
  24. C HISTORIQUE :
  25. C HISTORIQUE :
  26. C***********************************************************************
  27. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  28. C en cas de modification de ce sous-programme afin de faciliter
  29. C la maintenance !
  30. C***********************************************************************
  31. -INC CCOPTIO
  32. CHARACTER*(*) MYLMOT(*)
  33. CHARACTER*(*) MYMOT
  34. INTEGER INDMOT
  35. *
  36. INTEGER IMPR,IRET
  37. *
  38. INTEGER MLMETA
  39. INTEGER INBM
  40. INTEGER LNMOTS,LNMOT2,NBMOTS
  41. LOGICAL LFOUND
  42. *
  43. * Executable statements
  44. *
  45. IF (IMPR.GT.5) WRITE(IOIMP,*) 'Entrée dans fimot2'
  46. LNMOTS=LEN(MYLMOT(1))
  47. LNMOT2=LEN(MYMOT)
  48. IF (LNMOT2.NE.LNMOTS) THEN
  49. WRITE(IOIMP,*) 'Le mot n''a pas la même longueur'
  50. WRITE(IOIMP,*) 'que ceux de la liste...'
  51. WRITE(IOIMP,*) 'LNMOT2=',LNMOT2,' LNMOTS=',LNMOTS
  52. GOTO 9999
  53. ENDIF
  54. INBM=0
  55. LFOUND=.FALSE.
  56. 1 CONTINUE
  57. IF (.NOT.LFOUND.AND.INBM.LT.NBMOTS) THEN
  58. INBM=INBM+1
  59. LFOUND=MYMOT.EQ.MYLMOT(INBM)
  60. GOTO 1
  61. ENDIF
  62. IF (.NOT.LFOUND) THEN
  63. INDMOT=0
  64. ELSE
  65. INDMOT=INBM
  66. ENDIF
  67. *
  68. * Normal termination
  69. *
  70. IRET=0
  71. RETURN
  72. *
  73. * Format handling
  74. *
  75. *
  76. * Error handling
  77. *
  78. 9999 CONTINUE
  79. IRET=1
  80. WRITE(IOIMP,*) 'An error was detected in subroutine fimot2'
  81. RETURN
  82. *
  83. * End of subroutine FIMOT2
  84. *
  85. END
  86.  
  87.  
  88.  
  89.  
  90.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales