C CHCASS    SOURCE    GOUNAND   14/05/28    21:15:04     8056
      SUBROUTINE CHCASS(MENT,ICASS,MSOR)
      IMPLICIT REAL*8 (A-H,O-Z)
      IMPLICIT INTEGER (I-N)
C***********************************************************************
C NOM         : CHCASS
C DESCRIPTION : Change la casse d'un mot
C               icass = 0 passage en minuscule
C               icass = 1 passage en majuscule
C               MENT et MSOR peuvent être identiques.
C
C
C LANGAGE     : ESOPE
C AUTEUR      : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
C               mél : gounand@semt2.smts.cea.fr
C***********************************************************************
C***********************************************************************
C HISTORIQUE : 24/01/2014 : création
C HISTORIQUE :
C HISTORIQUE :
C***********************************************************************
      CHARACTER*(*) MENT,MSOR
      CHARACTER*26 MINUSC,MAJUSC
      DATA MINUSC/'abcdefghijklmnopqrstuvwxyz'/
      DATA MAJUSC/'ABCDEFGHIJKLMNOPQRSTUVWXYZ'/
*
* Executable statements
*
      LENT=LEN(MENT)
      LSOR=LEN(MSOR)
      LN=MIN(LENT,LSOR)
      IF(ICASS.EQ.1) THEN
         DO IN=1,LN
            ICAR=INDEX(MINUSC,MENT(IN:IN))
            IF (ICAR.NE.0) THEN
               MSOR(IN:IN)=MAJUSC(ICAR:ICAR)
            ELSE
               MSOR(IN:IN)=MENT(IN:IN)
            ENDIF
         ENDDO
      ELSE
         DO IN=1,LN
            ICAR=INDEX(MAJUSC,MENT(IN:IN))
            IF (ICAR.NE.0) THEN
               MSOR(IN:IN)=MINUSC(ICAR:ICAR)
            ELSE
               MSOR(IN:IN)=MENT(IN:IN)
            ENDIF
         ENDDO
      ENDIF
      RETURN
*
* End of subroutine CHCASS
*
      END








