X3J3/96-157
Page 1 of 2
Date: October 16, 1996
To: X3J3
From: Henry Zongaro
Subject: Maintenance of the Fortran 90 standard
References: X3J3/96-152, X3J3/96-112r1
I discussed the X3 ballot which was held on the withdrawal of FORTRAN 77
with a couple of people from companies who use FORTRAN 77, and one made an
interesting point - that although the syntax of Fortran 90 is a superset of
FORTRAN 77, there are at least two points on which the semantics of the two
languages differ in a manner which would cause the results of a FORTRAN 77
program to be different with a Fortran 90 processor. In particular, there are
differences in
(i) the meaning of the G edit descriptor; and
(ii) the behaviour of formatted input in the presence of an input
record that is shorter than required.
There are also situations in which Fortran 90 clarified the semantics of some
features, or pinned down the requirements of what had been processor dependent
features in FORTRAN 77. Since these are things that could have varied from
one FORTRAN 77 processor to the next, they are somewhat less interesting.
While the changes in the two features cited above are admittedly minor,
they are still differences, and as such they contradict the responses to
Issues 2 and 3 cited in X3J3/96-112r1:
"Issue 2. There are more FORTRAN 77 products and compilers than Fortran 90
ones (Unisys)
Virtually all major vendors now offer Fortran 90 compilers. 'FORTRAN 77
applications' are also Fortran 90 applications, as FORTRAN 77 is a
subset of Fortran 90, and hence 'FORTRAN 77 applications' can be used
with Fortran 90 compilers.
Issue 3. Users have not converted to Fortran 90 - the costs don't justify
the benefits (Unisys)
'FORTRAN 77 code' does not have to be converted to Fortran 90 - it
already is Fortran 90. Programmers can continue to code at the
FORTRAN 77 level and still use the growing number of increasingly robust
and efficient Fortran 90 processors."
So, although it is true that FORTRAN 77 is a subset of Fortran 90, it is
not true that every FORTRAN 77 program will have the same interpretation in
Fortran 90 as it had in FORTRAN 77.
X3 is now faced with the issue of what to do with Fortran 90 after
Fortran 95 becomes an International Standard. If X3 goes on to decide that
Fortran 90 should be withdrawn as well, it will have invalidated the
justification for withdrawing FORTRAN 77. This is because FORTRAN 77 is not
a subset of Fortran 95; several features of FORTRAN 77 have been deleted from
Fortran 95. If Fortran 90 remained a standard, it would be true that
FORTRAN 77 programs would still conform to some Fortran standard; but,
presuming that Fortran 95 will replace Fortran 90 as a standard in the U.S.,
we'll be left with the situation that some FORTRAN 77 programs will not conform
to the only existing Fortran standard.
As for the response to Issue 1 in X3J3/96-112r1, it should also be noted
that the NIST validation suite contains programs which use features which have
been deleted from Fortran 95. If X3 withdraws both FORTRAN 77 and Fortran 90,
the NIST suite will no longer be an appropriate test of a Fortran compiler. If
Fortran 90 is maintained as an archival standard, the NIST suite will at least
be appropriate for validation against that archival standard, and FORTRAN 77
programs would continue to be standard-conforming with the archival standard.
For these reasons, I would like to suggest that X3J3 vote to recommend to
X3 that Fortran 90 be maintained as an archival standard after the adoption of
Fortran 95 as a standard.