volatile_doctest Program

Uses

  • program~~volatile_doctest~17~~UsesGraph program~volatile_doctest~17 volatile_doctest module~stringifor stringifor program~volatile_doctest~17->module~stringifor module~stringifor_string_t stringifor_string_t module~stringifor->module~stringifor_string_t penf penf module~stringifor->penf module~stringifor_string_t->penf befor64 befor64 module~stringifor_string_t->befor64 face face module~stringifor_string_t->face iso_fortran_env iso_fortran_env module~stringifor_string_t->iso_fortran_env

Calls

program~~volatile_doctest~17~~CallsGraph program~volatile_doctest~17 volatile_doctest none~join string%join program~volatile_doctest~17->none~join proc~read_file~2 string%read_file program~volatile_doctest~17->proc~read_file~2 proc~split string%split program~volatile_doctest~17->proc~split proc~write_file write_file program~volatile_doctest~17->proc~write_file proc~join_characters string%join_characters none~join->proc~join_characters proc~join_strings string%join_strings none~join->proc~join_strings proc~chars string%chars proc~read_file~2->proc~chars proc~read_lines~2 string%read_lines proc~read_file~2->proc~read_lines~2 proc~upper string%upper proc~read_file~2->proc~upper proc~partition string%partition proc~split->proc~partition proc~unique string%unique proc~split->proc~unique proc~write_file->proc~chars proc~write_file->proc~upper proc~write_lines write_lines proc~write_file->proc~write_lines proc~read_line string%read_line proc~read_lines~2->proc~read_line proc~replace string%replace proc~unique->proc~replace proc~write_line string%write_line proc~write_lines->proc~write_line proc~read_line->proc~chars proc~read_line->proc~upper proc~replace_one_occurrence string%replace_one_occurrence proc~replace->proc~replace_one_occurrence proc~write_line->proc~chars proc~write_line->proc~upper proc~end_with string%end_with proc~write_line->proc~end_with

Variables

Type Attributes Name Initial
type(string) :: astring
type(string) :: anotherstring
type(string), allocatable :: strings(:)
type(string) :: line(3)
integer :: iostat
character(len=99) :: iomsg
integer :: scratch
integer :: l
logical :: test_passed(8)

Source Code

program volatile_doctest
use stringifor
 type(string) :: astring
 type(string) :: anotherstring
 type(string), allocatable :: strings(:)
 type(string) :: line(3)
 integer :: iostat
 character(len=99) :: iomsg
 integer :: scratch
 integer :: l
 logical :: test_passed(8)
 line(1) = ' Hello World!   '
 line(2) = 'How are you?  '
 line(3) = '   All say: "Fine thanks"'
 anotherstring = anotherstring%join(array=line, sep=new_line('a'))
 call write_file(file='write_file_test.tmp', lines=line, iostat=iostat, iomsg=iomsg)
 call astring%read_file(file='write_file_test.tmp', iostat=iostat, iomsg=iomsg)
 call astring%split(tokens=strings, sep=new_line('a'))
 test_passed(1) = (size(strings, dim=1)==size(line, dim=1))
 do l=1, size(strings, dim=1)
 test_passed(l+1) = (strings(l)==line(l))
 enddo
 call write_file(file='write_file_test.tmp', lines=line, form='unformatted', iostat=iostat, iomsg=iomsg)
 call astring%read_file(file='write_file_test.tmp', form='unformatted', iostat=iostat, iomsg=iomsg)
 call astring%split(tokens=strings, sep=new_line('a'))
 test_passed(5) = (size(strings, dim=1)==size(line, dim=1))
 do l=1, size(strings, dim=1)
 test_passed(l+5) = (strings(l)==line(l))
 enddo
 open(newunit=scratch, file='write_file_test.tmp')
 close(scratch, status='DELETE')
 print '(L1)', all(test_passed)
endprogram volatile_doctest