Richard Maine wrote:
> My understanding is that the restriction on list-directed
> internal I/O was at least partly motivated by concern about
> protecting the user from him/her-self in that one might not
> trivially know how big a buffer would be needed for list-directed
> output - since the compiler is deciding the formatting details,
> while its the user defining the buffer.
This is one of several reasons that I proposed to allow END= in a
WRITE statement. If the buffer is an assumed-size array, one may not
be able to detect writing past the end, but that problem already exists
for END= in a READ statement with an internal file. This is not
different from run-time subscript checking probably not working
for such arrays.
The other reasons included to detect writing past the end of a tape,
and writing past the end of a pre-allocated disk area (on systems
that do such things). This seems to be another of the "more difficult
to prohibit than to allow" category, but it is _not_ scheduled to be
removed in Fortran 2000.
--
What fraction of Americans believe | Van Snyder
Wrestling is real and NASA is fake? | [log in to unmask]
Any alleged opinions are my own and have not been approved or disapproved
by JPL, CalTech, NASA, Dan Goldin, Bill Clinton, the Pope, or anybody else.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|