The main documentation of the Lowercase_Text_Utils Procedure contains additional explanation of this code listing.
function Lowercase_Text_Utils (String) result(Lowercase)
! Input variables.
type(character,*), intent(in) :: String ! String to be lowercased.
! Output variables.
type(character,255) :: Lowercase ! The lowercase version of the string.
! Internal variable.
type(integer) :: letter ! Loop counter.
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Verify requirements.
VERIFY(Valid_State(String),5) ! String is valid.
! Loop through letters, setting lowercase version.
Lowercase = ' '
do letter = 1, LEN_TRIM(String)
if (ICHAR(String(letter:letter)) .InInterval. Majuscules) then
Lowercase(letter:letter) = &
CHAR(ICHAR(String(letter:letter)) - Capitalization)
else
Lowercase(letter:letter) = String(letter:letter)
end if
end do
! Verify guarantees.
VERIFY(Valid_State(Lowercase),5) ! Lowercase is valid.
return
end function Lowercase_Text_Utils