| ! { 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 |