upper Function

private elemental function upper(self)

Return a string with all uppercase characters.

 type(string) :: astring
 logical      :: test_passed(1)
 astring = 'Hello WorLD!'
 test_passed(1) = astring%upper()//''=='HELLO WORLD!'
 print '(L1)', all(test_passed)

Type Bound

string

Arguments

Type IntentOptional Attributes Name
class(string), intent(in) :: self

The string.

Return Value type(string)

Upper case string.


Called by

proc~~upper~~CalledByGraph proc~upper string%upper proc~decode string%decode proc~decode->proc~upper proc~encode string%encode proc~encode->proc~upper proc~read_file read_file proc~read_file->proc~upper proc~read_lines read_lines proc~read_file->proc~read_lines proc~read_file~2 string%read_file proc~read_file~2->proc~upper proc~read_lines~2 string%read_lines proc~read_file~2->proc~read_lines~2 proc~read_line string%read_line proc~read_line->proc~upper proc~read_lines->proc~upper proc~read_lines->proc~read_line proc~write_file write_file proc~write_file->proc~upper proc~write_lines write_lines proc~write_file->proc~write_lines proc~write_file~2 string%write_file proc~write_file~2->proc~upper proc~write_lines~2 string%write_lines proc~write_file~2->proc~write_lines~2 proc~write_line string%write_line proc~write_line->proc~upper program~volatile_doctest~6 volatile_doctest program~volatile_doctest~6->proc~upper proc~glob_string string%glob_string proc~glob_string->proc~read_file~2 proc~read_lines~2->proc~read_line proc~write_lines->proc~write_line proc~write_lines~2->proc~write_line program~stringifor_test_csv_naive_parser stringifor_test_csv_naive_parser program~stringifor_test_csv_naive_parser->proc~read_file~2 program~stringifor_test_csv_naive_parser->proc~write_file program~stringifor_test_parse_large_csv stringifor_test_parse_large_csv program~stringifor_test_parse_large_csv->proc~read_file~2 program~volatile_doctest~107 volatile_doctest program~volatile_doctest~107->proc~read_file~2 program~volatile_doctest~16 volatile_doctest program~volatile_doctest~16->proc~encode program~volatile_doctest~17 volatile_doctest program~volatile_doctest~17->proc~read_file~2 program~volatile_doctest~17->proc~write_file program~volatile_doctest~32 volatile_doctest program~volatile_doctest~32->proc~decode program~volatile_doctest~44 volatile_doctest program~volatile_doctest~44->proc~read_file~2 program~volatile_doctest~44->proc~write_file~2 program~volatile_doctest~54 volatile_doctest program~volatile_doctest~54->proc~read_file program~volatile_doctest~87 volatile_doctest program~volatile_doctest~87->proc~read_line interface~glob glob interface~glob->proc~glob_string proc~glob_character string%glob_character interface~glob->proc~glob_character none~glob string%glob none~glob->proc~glob_string none~glob->proc~glob_character program~volatile_doctest~15 volatile_doctest program~volatile_doctest~15->proc~read_lines~2 proc~glob_character->none~glob program~volatile_doctest~100 volatile_doctest program~volatile_doctest~100->interface~glob program~volatile_doctest~103 volatile_doctest program~volatile_doctest~103->none~glob program~volatile_doctest~82 volatile_doctest program~volatile_doctest~82->none~glob

Source Code

   elemental function upper(self)
   !< Return a string with all uppercase characters.
   !<
   !<```fortran
   !< type(string) :: astring
   !< logical      :: test_passed(1)
   !< astring = 'Hello WorLD!'
   !< test_passed(1) = astring%upper()//''=='HELLO WORLD!'
   !< print '(L1)', all(test_passed)
   !<```
   !=> T <<<
   class(string), intent(in) :: self  !< The string.
   type(string)              :: upper !< Upper case string.
   integer                   :: n1    !< Characters counter.
   integer                   :: n2    !< Characters counter.

   if (allocated(self%raw)) then
      upper = self
      do n1=1, len(self%raw)
         n2 = index(LOWER_ALPHABET, self%raw(n1:n1))
         if (n2>0) upper%raw(n1:n1) = UPPER_ALPHABET(n2:n2)
      enddo
   endif
   endfunction upper