1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
! { dg-do run }
! PR29277 Stream IO test 11, tests formatted form.
! Contributed by Tobias Burnas.
program stream_test
implicit none
character(len=*), parameter :: rec1 = 'record1'
character(len=*), parameter :: rec2 = 'record2'
character(len=50) :: str1,str2
integer :: len, i
real :: r
open(10,form='formatted',access='stream',&
status='scratch',position='rewind')
write(10,'(a)') rec1//new_line('a')//rec2
rewind(10)
read(10,*) str1
read(10,*) str2
if(str1 /= rec1 .or. str2 /= rec2) call abort()
rewind(10)
read(10,'(a)') str1
read(10,'(a)') str2
if(str1 /= rec1 .or. str2 /= rec2) call abort()
close(10)
open(10,form='formatted',access='stream',&
status='scratch',position='rewind')
write(10,*) '123 '//trim(rec1)//' 1e-12'
write(10,*) '12345.6789'
rewind(10)
read(10,*) i,str1
read(10,*) r
if(i /= 123 .or. str1 /= rec1 .or. r /= 12345.6789) &
call abort()
close(10)
open(unit=10,form='unformatted',access='stream', &
status='scratch',position='rewind')
write(10) rec1//new_line('a')//rec2
len = len_trim(rec1//new_line('a')//rec2)
rewind(10)
read(10) str1(1:len)
if(str1 /= rec1//new_line('a')//rec2) call abort()
end program stream_test
|