volatile_doctest Program

Uses

  • program~~volatile_doctest~1357~~UsesGraph program~volatile_doctest~1357 volatile_doctest module~stringifor_string_t~2 stringifor_string_t program~volatile_doctest~1357->module~stringifor_string_t~2 iso_fortran_env iso_fortran_env module~stringifor_string_t~2->iso_fortran_env module~befor64~3 befor64 module~stringifor_string_t~2->module~befor64~3 module~face~3 face module~stringifor_string_t~2->module~face~3 module~penf~6 penf module~stringifor_string_t~2->module~penf~6 module~befor64~3->module~penf~6 module~befor64_pack_data_m befor64_pack_data_m module~befor64~3->module~befor64_pack_data_m module~face~3->iso_fortran_env module~penf_allocatable_memory~2 penf_allocatable_memory module~penf~6->module~penf_allocatable_memory~2 module~penf_b_size~2 penf_b_size module~penf~6->module~penf_b_size~2 module~penf_global_parameters_variables~3 penf_global_parameters_variables module~penf~6->module~penf_global_parameters_variables~3 module~penf_stringify~4 penf_stringify module~penf~6->module~penf_stringify~4 module~befor64_pack_data_m->module~penf~6 module~penf_allocatable_memory~2->iso_fortran_env module~penf_allocatable_memory~2->module~penf_global_parameters_variables~3 module~penf_allocatable_memory~2->module~penf_stringify~4 module~penf_b_size~2->module~penf_global_parameters_variables~3 module~penf_stringify~4->iso_fortran_env module~penf_stringify~4->module~penf_b_size~2 module~penf_stringify~4->module~penf_global_parameters_variables~3

Calls

program~~volatile_doctest~1357~~CallsGraph program~volatile_doctest~1357 volatile_doctest proc~chars string%chars program~volatile_doctest~1357->proc~chars proc~read_line string%read_line program~volatile_doctest~1357->proc~read_line proc~read_line->proc~chars proc~upper~2 string%upper proc~read_line->proc~upper~2

Variables

Type Attributes Name Initial
type(string) :: astring
type(string) :: line(3)
integer :: iostat
character(len=99) :: iomsg
integer :: scratch
integer :: l
logical :: test_passed(6)

Source Code

program volatile_doctest
use stringifor_string_t
 type(string) :: astring
 type(string) :: line(3)
 integer :: iostat
 character(len=99) :: iomsg
 integer :: scratch
 integer :: l
 logical :: test_passed(6)
 line(1) = ' Hello World!   '
 line(2) = 'How are you?  '
 line(3) = '   All say: "Fine thanks"'
 open(newunit=scratch, status='SCRATCH')
 write(scratch, "(A)") line(1)%chars()
 write(scratch, "(A)") line(2)%chars()
 write(scratch, "(A)") line(3)%chars()
 rewind(scratch)
 l = 0
 iostat = 0
 do
 l = l + 1
 call astring%read_line(unit=scratch, iostat=iostat, iomsg=iomsg)
 if (iostat/=0.and..not.is_iostat_eor(iostat)) then
 exit
 else
 test_passed(l) = (astring==line(l))
 endif
 enddo
 close(scratch)
 open(newunit=scratch, status='SCRATCH', form='UNFORMATTED', access='STREAM')
 write(scratch) line(1)%chars()//new_line('a')
 write(scratch) line(2)%chars()//new_line('a')
 write(scratch) line(3)%chars()//new_line('a')
 rewind(scratch)
 l = 0
 iostat = 0
 do
 l = l + 1
 call astring%read_line(unit=scratch, iostat=iostat, iomsg=iomsg, form='UnfORMatteD')
 if (iostat/=0.and..not.is_iostat_eor(iostat)) then
 exit
 else
 test_passed(l+3) = (astring==line(l))
 endif
 enddo
 close(scratch)
 print '(L1)', all(test_passed)
endprogram volatile_doctest