The error condition isn't detected for write, and is mis-represented as an EOF for read.
$ cat exceed-recl-direct.f program main integer i,j open (10, form="unformatted", access="direct", recl=4) write (10, rec=1, err=10) 1,2 print *,"did not detect error on write" 10 continue read (10, rec=1, err=20) i, j print *,"did not detect error on read" 20 continue end $ g77 exceed-recl-direct.f $ ./a.out $ gfortran exceed-recl-direct.f $ ./a.out did not detect error on write At line 7 of file exceed-recl-direct.f Fortran runtime error: End of file Different codepath from PR 30009, nevertheless related. -- Summary: Exceeding recl on direct access Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libfortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tkoenig at gcc dot gnu dot org OtherBugsDependingO 19292 nThis: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30056