summaryrefslogtreecommitdiff
path: root/Utilib/src/XDRCAS.f
blob: eb686a9a01fd04023a89b00410a450d2ac190490 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
*DECK XDRCAS
      SUBROUTINE XDRCAS(DIR,TEXT)
*
*-----------------------------------------------------------------------
*
* CONVERT A LOWER-CASE CHARACTER VARIABLE TO UPPER CASE OR
* UPPER CASE CHARACTER VARIABLE TO LOWER-CASE
*
* INPUT/OUTPUT VARIABLE:
*  DIR  : DIRECTION OF CONVERSION
*         ='LOWTOUP' FOR LOWER TO UPPER
*         ='UPTOLOW' FOR UPPER TO LOWER
*  TEXT : CHARACTER VARIABLE TO BE CONVERTED.
*
*-----------------------------------------------------------------------
*
      CHARACTER    DIR*(*),TEXT*(*)
C----
C  LOCAL PARAMETERS
C----
      PARAMETER   (NCAR=26)
      INTEGER      LENTEX,ITEX,ICAR
      CHARACTER    LOWCAS(NCAR)*1,UPCAS(NCAR)*1
      SAVE         LOWCAS,UPCAS
      DATA LOWCAS /'a','b','c','d','e','f','g','h','i','j','k','l','m',
     >             'n','o','p','q','r','s','t','u','v','w','x','y','z'/
      DATA UPCAS  /'A','B','C','D','E','F','G','H','I','J','K','L','M',
     >             'N','O','P','Q','R','S','T','U','V','W','X','Y','Z'/
      LENTEX=LEN(TEXT)
      IF(DIR.EQ.'LOWTOUP') THEN
        DO 100 ITEX=1,LENTEX
          DO 110 ICAR=1,NCAR
            IF(TEXT(ITEX:ITEX).EQ.LOWCAS(ICAR)) THEN
              TEXT(ITEX:ITEX)=UPCAS(ICAR)
              GO TO 115
            ENDIF
 110      CONTINUE
 115      CONTINUE
 100    CONTINUE
      ELSE IF (DIR.EQ.'UPTOLOW') THEN
        DO 200 ITEX=1,LENTEX
          DO 210 ICAR=1,NCAR
            IF(TEXT(ITEX:ITEX).EQ.UPCAS(ICAR)) THEN
              TEXT(ITEX:ITEX)=LOWCAS(ICAR)
              GO TO 215
            ENDIF
 210      CONTINUE
 215      CONTINUE
 200    CONTINUE
      ENDIF
      RETURN
      END