streamio_10.f90   [plain text]


! { dg-do run }
! PR25093 Stream IO test 10
! Contributed by Jerry DeLisle <jvdelisle@gcc.gnu.org>.
! Test case derived from that given in PR by Steve Kargl.
program stream_io_10
  implicit none
  integer :: a(4), b(4)
  integer(kind=8) :: thepos
  a = (/ 1, 2, 3, 4 /)
  b = a
  open(10, file="teststream", access="stream")
  write(10) a
  inquire(10, pos=thepos)
  if (thepos.ne.17) call abort()

  read(10, pos=1)
  inquire(10, pos=thepos)
  if (thepos.ne.1) call abort()

  write(10, pos=15)
  inquire(10, pos=thepos)
  if (thepos.ne.15) call abort()

  read(10, pos=3)
  inquire(10, pos=thepos)
  if (thepos.ne.3) call abort()

  write(10, pos=1)
  inquire(10, pos=thepos)
  if (thepos.ne.1) call abort()

  a = 0
  read(10) a
  if (any(a /= b)) call abort()

  close(10, status="delete")
end program stream_io_10