Télécharger chcass.eso

Retour à la liste

Numérotation des lignes :

chcass
  1. C CHCASS SOURCE GOUNAND 14/05/28 21:15:04 8056
  2. SUBROUTINE CHCASS(MENT,ICASS,MSOR)
  3. IMPLICIT REAL*8 (A-H,O-Z)
  4. IMPLICIT INTEGER (I-N)
  5. C***********************************************************************
  6. C NOM : CHCASS
  7. C DESCRIPTION : Change la casse d'un mot
  8. C icass = 0 passage en minuscule
  9. C icass = 1 passage en majuscule
  10. C MENT et MSOR peuvent être identiques.
  11. C
  12. C
  13. C LANGAGE : ESOPE
  14. C AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  15. C mél : gounand@semt2.smts.cea.fr
  16. C***********************************************************************
  17. C***********************************************************************
  18. C HISTORIQUE : 24/01/2014 : création
  19. C HISTORIQUE :
  20. C HISTORIQUE :
  21. C***********************************************************************
  22. CHARACTER*(*) MENT,MSOR
  23. CHARACTER*26 MINUSC,MAJUSC
  24. DATA MINUSC/'abcdefghijklmnopqrstuvwxyz'/
  25. DATA MAJUSC/'ABCDEFGHIJKLMNOPQRSTUVWXYZ'/
  26. *
  27. * Executable statements
  28. *
  29. LENT=LEN(MENT)
  30. LSOR=LEN(MSOR)
  31. LN=MIN(LENT,LSOR)
  32. IF(ICASS.EQ.1) THEN
  33. DO IN=1,LN
  34. ICAR=INDEX(MINUSC,MENT(IN:IN))
  35. IF (ICAR.NE.0) THEN
  36. MSOR(IN:IN)=MAJUSC(ICAR:ICAR)
  37. ELSE
  38. MSOR(IN:IN)=MENT(IN:IN)
  39. ENDIF
  40. ENDDO
  41. ELSE
  42. DO IN=1,LN
  43. ICAR=INDEX(MAJUSC,MENT(IN:IN))
  44. IF (ICAR.NE.0) THEN
  45. MSOR(IN:IN)=MINUSC(ICAR:ICAR)
  46. ELSE
  47. MSOR(IN:IN)=MENT(IN:IN)
  48. ENDIF
  49. ENDDO
  50. ENDIF
  51. RETURN
  52. *
  53. * End of subroutine CHCASS
  54. *
  55. END
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  

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