Erik W. Kruyt wrote:
> I run into some inconsistencies and limitations of Fortran 95 which I would
> like to suggest to change/improve in Fortran 2000.
The period for proposals for the requirements for Fortran 200x ended in
February 1997. Some of the changes Erik Kruyt proposes have already been
added to the current draft. Some have been proposed but not accepted.
One has already been done.
> 1. In free source form one or more blanks shall be used to separate adjacent
> keywords except in the following cases.
> I suggest to add ELSE WHERE because END WHERE and ELSE IF are also in that
> list.
This change isn't in the current draft, but it's so small it might be
added, if anybody on the committee proposes it and volunteers to do the
editorial work. On the other hand, since the schedule slipped two years
recently, partly due to this kind of thing, and partly due to several
members of J3 resigning (mostly due to lack of employer support), there
is a lot of resistance to adding anything to the work list.
> 2. It would be convenient to allow the name of an assumed size array in a
> data transfer input list. Why is this disallowed?
One can put a _section_ of an assumed-size array in a data transfer list,
but not the whole array (denoted by its name alone, with no subscript
section list), because the standard doesn't require the upper bound of
the last dimension to be known. Some would consider it to be a compiler
bug if UBOUND worked for the last dimension of an assumed-size array.
> 3. It would be convenient to be able to specify ADVANCE='NO' also for list
> directed I/O. Why was this excluded?
This was proposed for the Fortran 200x draft, but not accepted.
> 4. DELIM= can only be specified in an OPEN statement. I should like to be
> able to specify it (also) in the control info list of a READ statement.
See item 1.
> 5. Why is it not possible to specify UNIT=* in an OPEN statement? This to
> specify DELIM= for standard input as you cannot specify it in the
> control-info list of a READ (see previous point).
Unit numbers for standard input, standard output and standard error will
be available in Fortran 200x. See section 13.17.1 of the current draft.
The current working draft of the Fortran 2000 standard is at
ftp://ftp.dfrc.nasa.gov/pub/x3j3/ncsa/doc/year/99/99-007r2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|