Transform upper case letters in "Str1" into lower case letters, result is "Str2", but only up the the equal sign.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | Str1 |
Input string |
||
| character(len=*), | intent(out) | :: | Str2 |
Output string, lower case letters only |
SUBROUTINE LowCase(Str1,Str2) ! MODULES IMPLICIT NONE !----------------------------------------------------------------------------------------------------------------------------------- ! INPUT VARIABLES CHARACTER(LEN=*),INTENT(IN) :: Str1 !! Input string !----------------------------------------------------------------------------------------------------------------------------------- ! OUTPUT VARIABLES CHARACTER(LEN=*),INTENT(OUT) :: Str2 !! Output string, lower case letters only !----------------------------------------------------------------------------------------------------------------------------------- ! LOCAL VARIABLES INTEGER :: iLen,nLen,Upper CHARACTER(LEN=*),PARAMETER :: lc='abcdefghijklmnopqrstuvwxyz' CHARACTER(LEN=*),PARAMETER :: UC='ABCDEFGHIJKLMNOPQRSTUVWXYZ' !=================================================================================================================================== Str2=Str1 nLen=LEN_TRIM(Str1) DO iLen=1,nLen IF(Str1(iLen:iLen).EQ.'=') EXIT ! Transformation stops at "=" Upper=INDEX(UC,Str1(iLen:iLen)) IF (Upper > 0) Str2(iLen:iLen) = lc(Upper:Upper) END DO END SUBROUTINE LowCase