C.3.3 Uppercase_Text_Utils Procedure

The main documentation of the Uppercase_Text_Utils Procedure contains additional explanation of this code listing.

  function Uppercase_Text_Utils (String) result(Uppercase)

    ! Input variables.

    type(character,*), intent(in) :: String         ! String to be uppercased.

    ! Output variables.

    type(character,255) :: Uppercase    ! The uppercase 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 uppercase version.

    Uppercase = ' '
    do letter = 1, LEN_TRIM(String)
      if (ICHAR(String(letter:letter)) .InInterval. Minuscules) then
        Uppercase(letter:letter) = &
          CHAR(ICHAR(String(letter:letter)) + Capitalization)
      else
        Uppercase(letter:letter) = String(letter:letter)
      end if
    end do

    ! Verify guarantees.

    VERIFY(Valid_State(Uppercase),5)  ! Uppercase is valid.

    return
  end function Uppercase_Text_Utils



Michael L. Hall