- About us
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.
|Allocatable components||TR15581||Approved by ISO ballot 04/98 subject to minor editing|
|Derived type I/O||R.1||complete|
|Floating point exception handling||TR15580||Approved by ISO ballot 04/98|
|Interoperability with C||R.9||target 08/98|
|Interval arithmetic||R.4||target 11/98|
|Parameterized derived types||R.5||target 05/98|
An R number is the reference used by the J3 committee; a TR number is the ISO technical report number.
|Minor Technical Enhancement||Reference||Progress|
|Access to status error messages||B.6||exploratory work only|
|Allow PUBLIC entities of PRIVATE||M.20||complete|
|Command line arguments (later with environmental variables separated to be new item)||M.18a||complete|
|Environmental variables||M.18b||target 11/98|
|Derived type encapsulation (later renamed derived type assignment fix)||M.16||target 08/98|
|Enhanced complex constants||M.17||complete|
|Extend max/min intrinsics to character||M.5||complete|
|Extended initialization expressions||M.6||complete|
|Generic rate_count in system_clock||M.3||complete|
|IEEE I/O rounding inquiry intrinsics||B.7||exploratory work only|
|Increased statement length||M.1||complete|
|Intent for pointer arguments||M.2||complete|
|Mixed case syntax elements||M.7||complete|
|Named scratch files||M.10||complete|
|Passing specific/generic names||already in Fortran 95|
|PUBLIC and PRIVATE derived type components||B.3||exploratory work only|
|Renaming defined operators||M.15||target 11/98|
|Specifying pointer lower bounds||M.4||complete|
|Stream I/O||B.4||exploratory work only|
|VOLATILE attribute||M.19||target 05/98|
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. ISO has a web site at http://www.iso.org/iso/home.htm, which amongst other things lists the ISO standards and shows the committee structure. WG5's site is at http://www.nag.co.uk/sc22wg5/. Information about J3 is to be found at http://www.j3-fortran.org/.
Secretary, BCS Fortran Specialist Group
21 April 1998
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.