The Fortran 95 language is defined in the document ISO/IEEC 1539-1 First edition 1997-12-15, "Information technology - Programming languages - Fortran - Part 1: Base language". In the USA (and I expect most other places in the world) this document can be obtained in a hardcopy version from the ANSI-ISO-IEC Catalogue . (Warning the price is high. In mid 1998 the cost was $195 US.) Electronic versions of the Fortran 90 and Fortran 95 standards are available from Unicomp . (aka Fortran Market) through their products page. Note that the Unicomp Fortran Information directory is a good general site for Fortran related information.
While the standard is the ultimate reference for a language implementor, it is usually not the only useful reference. A language standard typically describes, with a minimum of redundancy, the syntax and semantics of the language. It rarely addresses such issues as how the semantics might be implemented, why the language has certain constructs, how those constructs are used in practice, what are typical mistakes in using the language, some of the detailed relationships between constructs, etc. This is perhaps best provided by an annotated reference manual, but no such manual exists for Fortran. The closest approximation to such a manual for Fortran is J. C. Adams, et al, "Fortran 95 Handbook: Complete ANSI/ISO Reference", The MIT Press, Cambridge Massachusetts, 1997, ISBN 0-262-51096-0. While the whole volume is useful, of particular interest to the early stages of a Fortran implementation is Appendix B, which reproduces the standard's syntax and constraints with additional cross references that make it easier (than the standard's format) to compare with the implementation. Appendix B was prepared electronically from the standard and I have yet to find any problems. However, while Adams et al's description of the syntax and constraints appears to be more useful than that of the standard, an implementor should be aware that the constraints embody only part of the semantics, and other aspects of the semantics are more easily (and correctly) determined from the standard.
Also of interest are documents describing the details of Fortran analysis. The most widely available such documents appear to be Waite's documents available with the Eli system, Loveman's description of DEC's Fortran 90/HPF implementation, and Craig Burley's description of the G77 implementation, particularly the section on "the GNU Fortran Language".
The Fortran standard is the joint product of two committees. The ISO/IEC joint technical committee JTC1/SC22/WG5 (site based in the UK) is in charge of the international standard. Partly for historical reasons, and partly because of the difficulty of organizing efforts at an international level, most of the detailed work on the standard is delegated to the ANSI (a USA standards organization) NCITS subcommittee J3 . (If the reader is interested in Fortran standardization, I suggest joining the mailing lists of J3 and SC22WG5, and, if you have an average of 10 hours of work free and can afford to travel in the US for three or four weeks a year, joining J3 itself. The committees are in particular need of experts on object orientation and C interfacing.) Although their relationship is better now, WG5 and J3 had a difficult relationship during much of the Fortran 90 standardization effort, as discussed by the late Brian Meek (in the UK) in "The Fortran (not the foresight) saga: the light and the dark" . I recommend other articles by Brian Meek to anyone interested in programming language standardization.
Both J3 and WG5 maintain ftp directories where additional information about the standards, particularly Fortran 200X activities, can be obtained. Because J3 meets more frequently and does the more detailed work, their directory generally has the most detail. Of particular interest for the interpretation of Fortran standards is document 006 at the J3 site which lists corrections to the standard. WG5's directories are at NAG in the UK .
In addition to the base languages discussed above the standards committees have developed some extensions to the "language" in separate documents:
Although no longer an official standard, I suspect that more people still use Fortran 77 than either of Fortran 90 or 95. The Fortran 77 standard is now publicly available in both html and text file versions from the standards documents page at Fortran market. along with the most controversial Fortran 77 interpretation , a jpeg file, an interpretation that has been reaffirmed for both Fortran 90 and 95. MIL-STD-1753, which appeared after the Fortran 77 standard was submitted for publication and served as a defacto part of that standard, can be found at NASA Goddard SFC .
Additional information on Fortran standardization can be found in two separate issues of the journal "Computer Standards and Interfaces", published by Elsevier Science
In addition to the nationally recognized standards, a consortium, the High Performance Fortran Forum, has defined a standard of its own, HPF. As a superset of Fortran 90 HPF 2.0 is a particularly large and complicated language. Information on HPF can be obtain from sites both in the USA and in Europe .
The size of the Fortran 90 and Fortran 95 languages has been a source of dissatisfaction within the Fortran community. As a result two different subsets of Fortran 90 (incompatible with Fortran 77) are currently available developed by former members of the Fortran 90 standardization committees:
both subsets are available in free (gratis) versions. The F and ELF are not quite mutually compatible, with F being significantly more restrictive. To my taste something approaching the union of the two languages, with most of the additions of F95, would be a good languages, but F and ELF, as they are now, are too restrictive.
Local links:
Return to W.B. Clodius's personal home page