aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/list_read_1.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/list_read_1.f90')
-rw-r--r--gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/list_read_1.f9054
1 files changed, 54 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/list_read_1.f90 b/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/list_read_1.f90
new file mode 100644
index 000000000..0a20b4bde
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/list_read_1.f90
@@ -0,0 +1,54 @@
+! pr 14942, list directed io
+ program d
+ implicit none
+ integer i, j, m, n, nin, k
+ real x(3,4)
+ data x / 1,1,1,2,2,2,3,3,3,4,4,4 /
+ real y(3,4)
+ data y / 1,1,1,2,2,2,3,3,3,4,4,4 /
+ logical debug ! set me true to see the output
+ debug = .FALSE.
+ nin = 1
+ n = 4
+ open(unit = nin)
+ write(nin,*) n
+ do I = 1,3
+ write(nin,*)(x(i,j), j=1, n)
+ end do
+ m = 3
+ n = 4
+ write(nin,*) m,n
+ do I = 1,3
+ write(nin,*)(x(i,j), j=1, n)
+ enddo
+ close(nin)
+! ok, the data file is written
+ open(unit = nin)
+ read(nin, fmt = *) n
+ if (debug ) write(*,'(A,I2)') 'n = ', n
+ do i = 1, 3
+ do K = 1,n
+ x(i,k) = -1
+ enddo
+ read(nin, fmt = *) (x(i,j), j=1, n)
+ if (debug) write(*, *) (x(i,j), j=1, n)
+ do K = 1,n
+ if (x(i,k).ne.y(i,k)) call abort
+ end do
+ end do
+ m = 0
+ n = 0
+ read(nin, fmt = *) m, n
+ if (debug) write(*,'(A,I2,2X,A,I2)') 'm = ', m, 'n = ', n
+ do i = 1, m
+ do K = 1,n
+ x(i,k) = -1
+ enddo
+ read(nin, fmt = *) (x(i,j), j=1, n)
+ if (debug) write(*, *) (x(i,j), j=1, n)
+ do K = 1,n
+ if (x(i,k).ne.y(i,k)) call abort
+ end do
+ end do
+ close(nin, status='delete')
+ end program d