FSG Home page
Joining the Group
Progress with Fortran 2000 as at April 1998
The Fortran 95 standard was finally published in November 1997 although the technical work had essentially been completed early in 1996. During 1995 and 1996 countries participating in the ISO Working Group on Fortran, whose full title is ISO IEC/JTC1/SC22/WG5, had been collecting requirements for the next revision. Whereas Fortran 95 had been conceived as a minor revision of Fortran 90, Fortran 2000 was to have more wide-ranging extensions. In the event, time and resource constraints limited the design quite severely. Even then, the current schedule envisages the committee draft being completed in August 2000 and the standard not being formally approved until November 2002.
The system of working for the past ten years has been that the ISO group specifies the requirements and it delegates detailed development to `development bodies', which are typically but not necessarily based in one country for practical reasons. The `primary development body' so far has always been the NCITS committee J3, better known under its former name X3J3. Development bodies for smaller projects, such as for the three technical reports mentioned below, have been subsets of WG5 members; two project editors were based in the UK and one in Germany.
In February 1997 WG5 sifted the countries' proposals: it specified the items in table 1 to be mandatory requirements for Fortran 2000 and those in table 2 to be minor technical enhancements to be implemented as resources permitted. The current working rule is that MTEs completed by February 1999 will be incorporated in Fortran 2000. Detailed work had started earlier on three high priority items (allocatable components, floating point exception handling and interoperability with C). These were not passed to the primary development body but were made the subject of ISO Technical Reports, worked on by subgroups of WG5 members. The intention was that these reports could be published ahead of the standard and their proposals possibly incorporated into later versions of Fortran 95 compilers, thus giving earlier access to these features. Interoperability with C turned out to be both a far greater problem than had been envisaged and so intrinsic to the language design that it was not really amenable to being treated as a separable item. It was therefore decided at the July 1997 meeting of WG5 to abandon the technical report route and to ask J3 to develop interoperability as an ordinary mandatory requirement.
In addition a separate part, Part 3, of the Fortran Standard is being developed to provide conditional compilation facilities in a Fortran-like manner. This is has recently passed its first ballot within ISO and is scheduled to become a standard in the first part of 1999.
J3 has been instructed by WG5 to develop the interval arithmetic proposals as a separate part of the standard if it should find that otherwise the standard would be significantly delayed.
Part 2 of the standard, Varying Length Character Strings in Fortran, is being revised so that the non-normative sample implementation (in Fortran 90) may take advantage of the newer features in Fortran 95. However, this has revealed a problem with derived type assignment which is to be corrected in Fortran 2000.
An R number is the reference used by the J3 committee; a TR number is the ISO technical report number.
B and M numbers are the references used by the J3 committee; B items have lower priority than M and are promoted to have M numbers when work starts on them.
Much information about standards is available on
the world wide web, on the understanding that the material is to used
for technical development and not for commercial purposes.
Links updated August 2001 and October 2009.
Details of current Fortran standardization activities can be found in WG5's own World Wide Web pages.
Comments on this or any other of the Group's pages should be sent by email to the FSG Web Editor.
|TOP OF PAGE | FSG HOME | CONTACT DETAILS | STANDARDIZATION||© Copyright The British Computer Society|