55 lines
1.5 KiB
Fortran
55 lines
1.5 KiB
Fortran
! { dg-do run }
|
|
! Test of gfortran list directed read> check delimiters are correctly
|
|
! treated. Written in f77 so that g77 will run for comparison.
|
|
!
|
|
! f , e and i edit reads are terminated separately by read_real.c
|
|
!
|
|
! PThomas Jan 2005
|
|
! BDavis
|
|
program list_read_4
|
|
integer i(10),l(10),k,j
|
|
real x(10),y(10)
|
|
! expected results
|
|
data y / 1.0,2.0,3.0,-1.0,-1.0,-1.0,4.0,4.0,99.0,99.0 /
|
|
data l /1,2,3,-1,-1,-1,4,4,99,99/
|
|
! put them in a file
|
|
open (10,status="scratch")
|
|
write (10,*) " 1.0, 2.0 , 3.0,, 2* , 2*4.0 , 5*99.0"
|
|
write (10,*) " 1.0e0, 2.0e0 , 3.0e0,, 2* , 2*4.0e0 , 5*99.0e0"
|
|
write (10,*) " 1, 2 , 3,, 2* , 2*4 , 5*99"
|
|
write (10,*) " 1, 2 , 3,, 2* , 2*4 , 5*99"
|
|
rewind (10)
|
|
!
|
|
do k = 1,10
|
|
x(k) = -1.0
|
|
enddo
|
|
read (10,*,iostat=ier) x
|
|
if (ier.ne.0) call abort
|
|
do k = 1,10
|
|
if (x(k).ne.y(k)) call abort
|
|
x(k) = -1
|
|
end do
|
|
READ(10,*,iostat=ier) x
|
|
if (ier.ne.0) call abort
|
|
do k = 1,10
|
|
if (x(k).ne.y(k)) call abort
|
|
x(k) = -1
|
|
end do
|
|
READ(10,*,iostat=ier) x
|
|
if (ier.ne.0) call abort
|
|
do k = 1,10
|
|
if (x(k).ne.y(k)) call abort
|
|
x(k) = -1
|
|
end do
|
|
! integer
|
|
do k = 1,10
|
|
i(k) = -1
|
|
end do
|
|
READ(10,*,iostat=ier) (i(j),j=1,10)
|
|
if (ier.ne.0) call abort
|
|
do k = 1,10
|
|
if (i(k).ne.y(k)) call abort
|
|
i(k) = -1
|
|
end do
|
|
end
|