> Van Snyder wrote:
> >
> > During tge time when several Fortran 66 compilers had implemented END=,
> > but Fortran 77 had not yet been published, it was possible to put
> > several logical files consecutively, separated by endfiles. This was
> > useful on tapes. The current Fortran semantics for endfile appear to
> > be oriented to files on disk, so the functionality of putting multiple
> > files on one tape, separated by endfiles, is no longer available. In
> > fact, it seems there are no Fortran systems for Unix that allow write,
> > read and rewind(!) statements to refer to tapes.
and Walt Brainerd wrote:
> I don't understand this. First, Fortran I/O is very strongly modeled on
> tapes, not disks (see "REWIND"), IMHO. An implementation always could
> (and still can) allow more writing after the endfile by extending the
> standard, which was what was done before all this was in the language.
> So I don't see what has changed.
1. Several Fortran 66 compilers provided the functionality of writing
after an endfile, or of reading after detecting one, without a close
or rewind intervening. This functionality never got standardized.
2. Notwithstanding that Fortran I/O is strongly modeled on tapes, I know
of no Unix implementation of Fortran that supports I/O operations
on a unit connected to a tape.
3. In Unix Fortran implementations that don't understand tapes (maybe
all of them?), it is simplest to represent the endfile mark by the
size entry in the directory. Doing something else that would allow
read or write after sensing/creating an endfile mark, e.g. a way to
write it in the data, would be more complicated. Thus few (no?)
Fortran implementations on Unix systems extend the standard to
allow this.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|