Differences between revisions 51 and 53 (spanning 2 versions)
Revision 51 as of 2009-12-08 09:40:01
Size: 10264
Editor: TobiasBurnus
Comment: Update of the POSIX binding item
Revision 53 as of 2010-02-23 17:58:39
Size: 10595
Editor: TobiasBurnus
Comment: Update TR 29113
Deletions are marked like this. Additions are marked like this.
Line 69: Line 69:
[[ftp://ftp.nag.co.uk/sc22wg5/N1751-N1800/N1764.txt|New (2008-12-08) interpretations, which passed the J3 ballot]] [[ftp://ftp.nag.co.uk/sc22wg5/N1751-N1800/N1764.txt|N1764: New (2008-12-08) interpretations, which passed the J3 ballot]]
[[ftp://ftp.nag.co.uk/sc22wg5/N1751-N1800/NN1805.txt|N1805: Fortran interpretations that have passed a J3 letter ballot]]
Line 81: Line 82:
 [[ftp://ftp.nag.co.uk/sc22wg5/N1751-N1800/N1761.txt|TR 29113: "Further Interoperability of Fortran with C" (Long)]] (Currently being voted on by WG5 and then via the ISO members, might still see larger changes)  [[ftp://ftp.nag.co.uk/sc22wg5/N1751-N1800/N1761.txt|TR 29113: "Further Interoperability of Fortran with C" (Long)]] (draft from November 2008). At the [[http://j3-fortran.org/doc/year/10/agenda191.txt|February 2010 meeting]] it was decided to rework the draft as outlines in [[http://j3-fortran.org/doc/year/10/10-142.txt|C Interoperability Objectives]]; the official publication is deferred to November 2011.

Fortran Standards Documents

Draft (unofficial) versions of the various recent Fortran standards and corrigenda are available from the J3 website, the WG5 website, and/or the WG5 file server, in various formats. In addition, some older Fortran standards are available from www.fortran.com. The official standards can be bought from the International Organization for Standardization (ISO) or from your national standardization organization.

Note that, of these standards, GNU Fortran currently only supports the base Fortran 95 standard (not parts 2 or 3) as amended in the two corrigenda, the Fortran 95 TR 15581 extension, the Fortran 77 standard with the MIL-STD 1753 extensions, and some portions of the Fortran 2003 standard; these standards have been highlighted in bold. The other documents are linked here for reference, but should not be taken as documentation of GNU Fortran features.

Fortran - Automatic Coding System for the IBM 704

The oldest version; dated October 15, 1956, first presented in February 1957 and first delivered in April 1957. Fortran - Programmer's Reference Manual (PDF)

Fortran 66

Fortran 66 Standard (X3.9-1966): (gif) (pdf)

Fortran 77

Fortran 77 Standard (!X3J3/90.4, ISO 1539:1980): (text) (html)

DoD Extensions to Fortran 77 (MIL-STD 1753): (html)

Fortran 90

Fortran 90 Standard ISO/IEC 1539:1991

Fortran 95

Fortran 95 Standard, final draft (ISO/IEC 1539-1:1997): (all formats), (pdf).

Fortran 95 Standard (Part 2: ISO-Varying-Strings), final draft (ISO/IEC 1539-2:2000): (pdf) (Reference implementation written in Fortran 1, 2)

(ISO Varying strings are not implemented in GNU Fortran, but Fortran 95 module exists which implements this is Fortran.)

Fortran 95 Standard (Part 3: Conditional Compilation), final draft (ISO/IEC 1539-3:1998): (pdf)

(Conditional Compilation is not supported directly by GNU Fortran but you can preprocess the files using COCO.)

Fortran 95 Floating-Point Exceptions TR, draft (ISO/IEC TR 15580:2001): (pdf)

Fortran 95 Allocatable Components TR, draft (ISO/IEC TR 15581:2001): (pdf)

Fortran 95 Corrigendum 1, draft: (pdf)

Fortran 95 Corrigendum 2, draft: (pdf)

Completed interpretations of Fortran 95

Fortran 2003

Fortran 2003 Standard, final draft (ISO/IEC 1539-1:2004(E)): (ascii), (TeX), (pdf).

Fortran 2003, Enhanced Modules TR, draft (ISO/IEC TR 19767:2005(E)): (pdf).

Fortran 2003 Corrigendum 1, draft (ISO/IEC 1539-1:2004/Cor 1:2006 (E)): (pdf)

Fortran 2003 Corrigendum 2, final draft (ISO/IEC 1539-1:2004/Cor.2:2007 (E)): (pdf)

Fortran 2003 Corrigendum 3, draft: PDF (defect reports)

Fortran 2003 Corrigendum 4: PDF

Fortran 2003 update pages (consists of corrigenda 1 and 2)

Completed interpretations of Fortran 2003

The New Features of Fortran 2003 by John Reid (non normative) and something similar by NAG

N1764: New (2008-12-08) interpretations, which passed the J3 ballot N1805: Fortran interpretations that have passed a J3 letter ballot

Fortran 2008

Final Candidate Draft (J3/09-007r3:2009/08/25, WG5 FCD 1539-1, 25 August 2009) (Non-normative coarrays description, non-normative coarray rational) (Time table, proposed newer time table)

The new features of Fortran 2008 by John Reid (non normative)

TR 29113

Other Relevant Standards

OpenMP (Open Multi-Processing)

OpenMP specifications - for gfortran relevant and supported are 2.5 and 3.0.


The IEEE standard covering Fortran 77 POSIX bindings is available online, though unfortunately only from locations with appropriate subscriptions to the IEEE server (e.g., many university networks). For those who do have such access, the link is:

POSIX Fortran 77 Language Interfaces (IEEE Std 1003.9-1992) (pdf)

Note IEEE 1003.9-1992 was withdrawn 6 February 2003. Some vendors provide their own way to access POSIX functions and make those available as module; for instance the IFPORT module of Intel or the f90_* modules of NAG. There also some compiler-independent efforts to make them accessible, e.g. Posix90 (doc), flibs' platform/files and directories, fortranposix.

ISO/IEC Project 22.24772: Guidance for Avoiding Vulnerabilities through Language Selection and Use

"The OWGV project is preparing comparative guidance spanning multiple programming languages, so that application developers will be better able to avoid the programming errors that lead to vulnerabilities in these languages and their attendant consequences. This guidance can also be used by developers to select source code evaluation tools that can discover and eliminate coding errors that lead to vulnerabilities."

IEEE 754

The IEEE Standard for Binary Floating-Point Arithmetic (IEEE 754) is the most widely-used standard for floating-point computation. Unfortunately, they are not freely available.

ISO/IEC 9899 Programming languages -- C

The C standard is relevant for two parts: (a) the interoperability features of Fortran 2003/2008/interop TR and (b) for the C Preprocessor (CPP; "Preprocessing directives"), which gfortran supports as vendor extension.

None: GFortranStandards (last edited 2018-12-07 19:32:14 by ThomasKoenig)