Is this a regression for access="stream",form="unformatted"?
Jerry DeLisle
jvdelisle@verizon.net
Mon Nov 5 23:43:00 GMT 2007
Dominique Dhumieres wrote:
> The following code:
>
> ! { dg-do run }
> ! PR25828 Stream IO test 7, Array writes and reads.
> ! Contributed by Jerry DeLisle <jvdelisle@verizon.net>.
> program streamtest
> implicit none
> character(1) :: lf = char(10)
> character(1) :: tchar
> integer :: i,j,k
> real(kind=4), dimension(100,100) :: anarray
> open(10, file="teststream", access="stream", form="unformatted")
> anarray = 3.14159
> write(10) anarray
> write(10, pos=1) ! This is a way to position an unformatted file
> anarray = 0.0
> read(10) anarray
> anarray = abs(anarray - 3.14159)
> if (any(anarray.gt.0.00001)) call abort()
> close(10,status="delete")
> end program streamtest
>
> used to pass. At revision 129901, it now fails with:
>
> At line 15 of file streamtest_7.f90 (unit = 10, file = 'teststream')
> Fortran runtime error: End of file
>
> Note that gfortran.dg/streamio_7.f90 passes and differs only by:
>
> write(10) anarray
> anarray = 0.0
> read(10, pos=1) anarray
>
> Is "write(10, pos=1)" really a way to position an unformatted file?
Yes
> And if yes, why is it now failing?
Because I eliminated the flush on unformatted STREAM I/O to speed things up.
So, yes this is a regression. I will revert until I have tome to think it through.
>
> TIA
>
> Dominique
>
More information about the Fortran
mailing list