Télécharger fimots.eso

Retour à la liste

Numérotation des lignes :

  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'
  48. CALL OOOETA(MYLMOT,MLMETA)
  49. IF (MLMETA.NE.1) SEGACT MYLMOT
  50. LNMOTS=MYLMOT.MOTS(/1)
  51. LNMOT2=LEN(MYMOT)
  52. IF (LNMOT2.NE.LNMOTS) THEN
  53. WRITE(IOIMP,*) 'Le mot n''a pas la même longueur'
  54. WRITE(IOIMP,*) 'que ceux de la liste...'
  55. WRITE(IOIMP,*) 'LNMOT2=',LNMOT2,' LNMOTS=',LNMOTS
  56. GOTO 9999
  57. ENDIF
  58. NBMOTS=MYLMOT.MOTS(/2)
  59. INBM=0
  60. LFOUND=.FALSE.
  61. 1 CONTINUE
  62. IF (.NOT.LFOUND.AND.INBM.LT.NBMOTS) THEN
  63. INBM=INBM+1
  64. LFOUND=MYMOT.EQ.MYLMOT.MOTS(INBM)
  65. GOTO 1
  66. ENDIF
  67. IF (.NOT.LFOUND) THEN
  68. WRITE(IOIMP,*) 'On n''a pas trouvé le mot ',MYMOT
  69. WRITE(IOIMP,*) 'dans la liste de mots ',MYLMOT
  70. GOTO 9999
  71. ENDIF
  72. INDMOT=INBM
  73. IF (MLMETA.NE.1) SEGDES MYLMOT
  74. *
  75. * Normal termination
  76. *
  77. IRET=0
  78. RETURN
  79. *
  80. * Format handling
  81. *
  82. *
  83. * Error handling
  84. *
  85. 9999 CONTINUE
  86. IRET=1
  87. WRITE(IOIMP,*) 'An error was detected in subroutine fimots'
  88. RETURN
  89. *
  90. * End of subroutine FIMOTS
  91. *
  92. END
  93.  
  94.  
  95.  
  96.  

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