Differences between revisions 45 and 139 (spanning 94 versions)
Revision 45 as of 2009-05-26 09:00:16
Size: 9367
Editor: TobiasBurnus
Comment: Fortran 2003 Corrigendum 4: New version
Revision 139 as of 2016-12-15 13:36:19
Size: 15494
Editor: JanusWeil
Comment: add link to latest F15 draft (and some formatting fixes)
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
<<TableOfContents()>>
Line 3: Line 4:
Draft (unofficial) versions of the various recent Fortran standards and corrigenda are available from the [[http://j3-fortran.org/|J3 website]], the [[http://www.nag.co.uk/sc22wg5/|WG5 website]], and/or the [[ftp://ftp.nag.co.uk/sc22wg5/|WG5 file server]], in various formats. In addition, some older Fortran standards are available from [[http://www.fortran.com|www.fortran.com]]. The official standards can be bought from the [[http://www.iso.org/iso/en/CombinedQueryResult.CombinedQueryResult?queryString=Fortran|International Organization for Standardization (ISO)]] or from your national standardization organization. Draft (unofficial) versions of the various recent Fortran standards and corrigenda are available from the [[http://j3-fortran.org/|J3 website]], the [[http://www.nag.co.uk/sc22wg5/|WG5 website]], and/or the [[ftp://ftp.nag.co.uk/sc22wg5/|WG5 file server]], in various formats. In addition, some older Fortran standards are available from [[http://www.fortran.com|www.fortran.com]]. The official standards can be bought from the [[http://www.iso.org/iso/en/CombinedQueryResult.CombinedQueryResult?queryString=Fortran|International Organization for Standardization (ISO)]] or from your national standardization organization. In particular, [[http://webstore.ansi.org/FindStandards.aspx?SearchString=Fortran|ANSI's webshop]] often sells the standard for much less than ISO.
Line 5: Line 6:
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. Documents of the format N''nnnn'' (e.g. N1830) are available from on the [[ftp://ftp.nag.co.uk/sc22wg5/|FTP server of WG5]], documents of the form ''yy-nnnn'' (e.g. 04-007) or with an additional r''n'' suffix indicating the revision (e.g. 97-007r2) are available from http://j3-fortran.org/doc/ in the "year" subdirectory.

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 and 2008 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.
Line 9: Line 12:
The oldest version; dated October 15, 1956, first presented in February 1957 and first delivered in April 1957.
[[http://www.fh-jena.de/~kleine/history/languages/FortranAutomaticCodingSystemForTheIBM704.pdf|Fortran - Programmer's Reference Manual (PDF)]]
 * The oldest version; dated October 15, 1956, first presented in February 1957 and first delivered in April 1957. [[http://www.fh-jena.de/~kleine/history/languages/FortranAutomaticCodingSystemForTheIBM704.pdf|Fortran - Programmer's Reference Manual (PDF)]]
Line 14: Line 16:
Fortran 66 Standard (X3.9-1966): [[http://www.fortran.com/fortran/fortran_66.zip|(gif)]] [[http://www.fh-jena.de/~kleine/history/languages/ansi-x3dot9-1966-Fortran66.pdf|(pdf)]]  * Fortran 66 Standard (X3.9-1966): [[ftp://ftp.nag.co.uk/sc22wg5/ARCHIVE/Fortran66.pdf|(pdf)]][[http://www.fortran.com/fortran/fortran_66.zip|(gif)]] [[http://www.fh-jena.de/~kleine/history/languages/ansi-x3dot9-1966-Fortran66.pdf|(pdf 2)]]
Line 18: Line 20:
'''Fortran 77 Standard (!X3J3/90.4, [[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=6127|ISO 1539:1980]]):''' [[http://www.fortran.com/fortran/F77_std/f77_std.html|(text)]] [[http://www.fortran.com/fortran/F77_std/rjcnf.html|(html)]]

'''DoD Extensions to Fortran 77 (MIL-STD 1753):''' [[http://www.fortran.com/fortran/mil_std_1753.html|(html)]]
 * '''Fortran 77 Standard (!X3J3/90.4, [[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=6127|ISO 1539:1980]]):''' [[ftp://ftp.nag.co.uk/sc22wg5/ARCHIVE/Fortran77.html|(text)]] [[http://www.fortran.com/fortran/F77_std/f77_std.html|(text 2)]] [[http://www.fortran.com/fortran/F77_std/rjcnf.html|(html)]]
 * '''DoD Extensions to Fortran 77 (MIL-STD 1753):''' [[ftp://ftp.nag.co.uk/sc22wg5/ARCHIVE/mil_std_1753.html|(html)]] [[http://www.fortran.com/fortran/mil_std_1753.html|(html 2)]]
Line 23: Line 24:
'''Fortran 90 Standard [[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=17366|ISO/IEC 1539:1991]]'''
 *
'''Fortran 90 Standard [[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=17366|ISO/IEC 1539:1991]]:''' [[ftp://ftp.nag.co.uk/sc22wg5/N001-N1100/N692.pdf|(pdf)]]
Line 27: Line 29:
'''Fortran 95 Standard, final draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=39691|ISO/IEC 1539-1:1997]]):''' [[http://j3-fortran.org/doc/standing/archive/007/97-007r2/|(all formats)]], [[http://j3-fortran.org/doc/standing/archive/007/97-007r2/pdf/97-007r2.pdf|(pdf)]].

Fortran 95 Standard (Part 2: ISO-Varying-Strings), final draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=26934|ISO/IEC 1539-2:2000]]): [[ftp://ftp.nag.co.uk/sc22wg5/N1351-N1400/N1375.pdf|(pdf)]]
(Reference implementation written in Fortran [[ftp://ftp.nag.co.uk/sc22wg5/ISO_VARYING_STRING/|1]], [[http://www.fortran.com/iso_varying_string.f95|2]])

(ISO Varying strings are not implemented in GNU Fortran, but [[http://www.nag.co.uk/sc22wg5/IS1539-2.html|Fortran 95 module]] exists which implements this is Fortran.)

Fortran 95 Standard (Part 3: Conditional Compilation), final draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=29926|ISO/IEC 1539-3:1998]]): [[ftp://ftp.nag.co.uk/sc22wg5/N1301-N1350/N1306.pdf|(pdf)]]

(Conditional Compilation is not supported directly by GNU Fortran but you can preprocess the files using [[http://users.erols.com/dnagle/coco.html|COCO]].)

Fortran 95 Floating-Point Exceptions TR, draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=34370|ISO/IEC TR 15580:2001]]): [[ftp://ftp.nag.co.uk/sc22wg5/N1351-N1400/N1378.pdf|(pdf)]]

'''Fortran 95 Allocatable Components TR, draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=34367|ISO/IEC TR 15581:2001]]):''' [[ftp://ftp.nag.co.uk/sc22wg5/N1351-N1400/N1379.pdf|(pdf)]]

'''Fortran 95 Corrigendum 1, draft:''' [[ftp://ftp.nag.co.uk/sc22wg5/N1401-N1450/N1421.pdf|(pdf)]]

'''Fortran 95 Corrigendum 2, draft:''' [[ftp://ftp.nag.co.uk/sc22wg5/N1451-N1500/N1472.pdf|(pdf)]]

[[http://j3-fortran.org/doc/standing/links/015.txt|Completed interpretations of Fortran 95]]
 * '''Fortran 95 Standard, final draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=39691|ISO/IEC 1539-1:1997]]):''' [[http://j3-fortran.org/doc/standing/archive/007/97-007r2/|(all formats)]], [[http://j3-fortran.org/doc/standing/archive/007/97-007r2/pdf/97-007r2.pdf|(pdf)]].
 * Fortran 95 Standard (Part 2: ISO-Varying-Strings), final draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=26934|ISO/IEC 1539-2:2000]]): [[ftp://ftp.nag.co.uk/sc22wg5/N1351-N1400/N1375.pdf|(pdf)]] (Reference implementation written in Fortran [[ftp://ftp.nag.co.uk/sc22wg5/ISO_VARYING_STRING/|1]], [[http://www.fortran.com/iso_varying_string.f95|2]] - and a [[ftp://ftp.nag.co.uk/sc22wg5/N1901-N1950/N1913.txt|Fortran 2003/2008 version of it]])
 * (ISO Varying strings are not implemented in GNU Fortran, but a [[http://www.nag.co.uk/sc22wg5/IS1539-2.html|Fortran 95 module]] exists which implements this is Fortran.)
 * Fortran 95 Standard (Part 3: Conditional Compilation), final draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=29926|ISO/IEC 1539-3:1998]]): [[ftp://ftp.nag.co.uk/sc22wg5/N1301-N1350/N1306.pdf|(pdf)]]
 * (Conditional Compilation is not supported directly by GNU Fortran but you can preprocess the files using [[http://www.daniellnagle.com/coco.html|COCO]]. Note: The WG5 "convenor [...] asked SC22 at its September [2010] plenary to request a JTC1 country ballot for withdrawal".)
 * Fortran 95 Floating-Point Exceptions TR, draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=34370|ISO/IEC TR 15580:2001]]): [[ftp://ftp.nag.co.uk/sc22wg5/N1351-N1400/N1378.pdf|(pdf)]]
 * '''Fortran 95 Allocatable Components TR, draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=34367|ISO/IEC TR 15581:2001]]):''' [[ftp://ftp.nag.co.uk/sc22wg5/N1351-N1400/N1379.pdf|(pdf)]]
 * '''Fortran 95 Corrigendum 1, draft:''' [[ftp://ftp.nag.co.uk/sc22wg5/N1401-N1450/N1421.pdf|(pdf)]]
 * '''Fortran 95 Corrigendum 2, draft:''' [[ftp://ftp.nag.co.uk/sc22wg5/N1451-N1500/N1472.pdf|(pdf)]]
 * [[http://j3-fortran.org/doc/standing/links/015.txt|Completed interpretations of Fortran 95]]
Line 50: Line 42:
'''Fortran 2003 Standard, final draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=39691|ISO/IEC 1539-1:2004(E)]]):''' [[http://www.j3-fortran.org/doc/year/04/04-007.txt|(ascii)]], [[http://www.j3-fortran.org/doc/year/04/04-007.tex.tar|(TeX)]], [[http://www.j3-fortran.org/doc/year/04/04-007.pdf|(pdf)]].

Fortran 2003, Enhanced Modules TR, draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=37995|ISO/IEC TR 19767:2005(E)]]): [[ftp://ftp.nag.co.uk/sc22wg5/N1601-N1650/N1602.pdf|(pdf)]].

'''Fortran 2003 Corrigendum 1, draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=43930|ISO/IEC 1539-1:2004/Cor 1:2006 (E)]]):''' [[ftp://ftp.nag.co.uk/sc22wg5/N1601-N1650/N1636.pdf|(pdf)]]

'''Fortran 2003 Corrigendum 2, final draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=45447|ISO/IEC 1539-1:2004/Cor.2:2007 (E)]]):''' [[ftp://ftp.nag.co.uk/sc22wg5/N1651-N1700/N1665.pdf|(pdf)]]

'''Fortran 2003 Corrigendum 3, draft''': [[ftp://ftp.nag.co.uk/sc22wg5/N1701-N1750/N1731.pdf|PDF]] ([[ftp://ftp.nag.co.uk/sc22wg5/N1701-N1750/N1730.txt|defect reports]])

'''Fortran 2003 Corrigendum 4''': [[ftp://ftp.nag.co.uk/sc22wg5/N1751-N1800/N1784.pdf|PDF]]

'''[[http://www.j3-fortran.org/doc/year/08/08-018r1.pdf|Fortran 2003 update pages]]''' (consists of corrigenda 1 and 2)


[[http://j3-fortran.org/doc/standing/links/016.txt|Completed interpretations of Fortran 2003]]

[[ftp://ftp.nag.co.uk/sc22wg5/N1601-N1650/N1648.pdf|The New Features of Fortran 2003]] by John Reid (non normative) and [[http://nag.com/nagware/NP/doc/nag_f2003.pdf|something similar by NAG]]

[[ftp://ftp.nag.co.uk/sc22wg5/N1751-N1800/N1764.txt|New (2008-12-08) interpretations, which passed the J3 ballot]]
 * '''Fortran 2003 Standard, final draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=39691|ISO/IEC 1539-1:2004(E)]]):''' [[http://www.j3-fortran.org/doc/year/04/04-007.txt|(ascii)]], [[http://www.j3-fortran.org/doc/year/04/04-007.tex.tar|(TeX)]], [[http://www.j3-fortran.org/doc/year/04/04-007.pdf|(pdf)]].
 * Fortran 2003, Enhanced Modules TR, draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=37995|ISO/IEC TR 19767:2005(E)]]): [[ftp://ftp.nag.co.uk/sc22wg5/N1601-N1650/N1602.pdf|(pdf)]].
 * '''Fortran 2003 Corrigendum 1, draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=43930|ISO/IEC 1539-1:2004/Cor 1:2006 (E)]]):''' [[ftp://ftp.nag.co.uk/sc22wg5/N1601-N1650/N1636.pdf|(pdf)]]
 * '''Fortran 2003 Corrigendum 2, final draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=45447|ISO/IEC 1539-1:2004/Cor.2:2007 (E)]]):''' [[ftp://ftp.nag.co.uk/sc22wg5/N1651-N1700/N1665.pdf|(pdf)]]
 * '''Fortran 2003 Corrigendum 3, draft''': [[ftp://ftp.nag.co.uk/sc22wg5/N1701-N1750/N1731.pdf|PDF]] ([[ftp://ftp.nag.co.uk/sc22wg5/N1701-N1750/N1730.txt|defect reports]])
 * '''Fortran 2003 Corrigendum 4''': [[ftp://ftp.nag.co.uk/sc22wg5/N1751-N1800/N1784.pdf|PDF]]
 * '''Fortran 2003 Corrigendum 5''': [[ftp://ftp.nag.co.uk/sc22wg5/N1801-N1850/N1815.pdf|PDF]]
 * '''Fortran 2003 Corrigenda 1 to 5''': combination of the corrigenda about - [[ftp://ftp.nag.co.uk/sc22wg5/N1801-N1850/N1823.pdf|PDF]]
 *
'''[[http://www.j3-fortran.org/doc/year/08/08-018r1.pdf|Fortran 2003 update pages]]''' (consists of corrigenda 1 and 2)
 * [[http://j3-fortran.org/doc/standing/links/016.txt|Completed interpretations of Fortran 2003]]
 * [[ftp://ftp.nag.co.uk/sc22wg5/N1601-N1650/N1648.pdf|The New Features of Fortran 2003]] by John Reid (non normative) and [[http://nag.com/nagware/NP/doc/nag_f2003.pdf|something similar by NAG]]
 * [[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/N1801-N1850/N1805.txt|N1805: Fortran interpretations that have passed a J3 letter ballot]]
Line 73: Line 58:
[[ftp://ftp.nag.co.uk/sc22wg5/N1751-N1800/N1776.pdf|Candidate Draft]] (J3/08-007r*, WG5 CD 1539-1, 25 March 2009)
([[ftp://ftp.nag.co.uk/sc22wg5/N1751-N1800/N1772.pdf|Non normative coarrays description]], [[ftp://ftp.nag.co.uk/sc22wg5/N1701-N1750/N1702.pdf|non-normative coarray rational]]) ([[ftp://ftp.nag.co.uk/sc22wg5/N1651-N1700/N1693.txt|Time table]], [[ftp://ftp.nag.co.uk/sc22wg5/N1751-N1800/N1781.txt|proposed newer time table]])
 [[http://www.j3-fortran.org/doc/year/08/08-272.html|J3 reply to CD comments]]
 [[ftp://ftp.nag.co.uk/sc22wg5/N1751-N1800/N1760.txt|WG5 responses to CD comments]] (augments and supercedes J3's reply)
 * [[http://www.j3-fortran.org/doc/year/10/10-007.pdf|Fortran 2008 (latest draft)]] (nearly FDIS, 2010-04-27; published 2010-10-06 as [[http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=50459|ISO/IEC 1539-1:2010]]) ([[ftp://ftp.nag.co.uk/sc22wg5/N1801-N1850/N1824.pdf|Non-normative coarrays description]], [[ftp://ftp.nag.co.uk/sc22wg5/N1701-N1750/N1702.pdf|non-normative coarray rational]])
 * [[ftp://ftp.nag.co.uk/sc22wg5/N1801-N1850/N1828.pdf|The new features of Fortran 2008]] by John Reid (non normative)
 * [[ftp://ftp.nag.co.uk/sc22wg5/N1901-N1950/N1903.pdf|Draft Technical Corrigendum 1]] (N1903, [[http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=61544|ISO/IEC 1539-1:2010/Cor 1:2012]] [freely downloadable]) ([[ftp://ftp.nag.co.uk/sc22wg5/N1901-N1950/N1902.pdf|Version with WG5 comments]], [[ftp://ftp.nag.co.uk/sc22wg5/N1901-N1950/N1907.txt|defect report]])
 * [[ftp://ftp.nag.co.uk/sc22wg5/N1951-N2000/N1958.pdf|Draft Technical Corrigendum 2]] (N1958; [[http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=63511|ISO/IEC 1539-1:2010/Cor 2:2013]]; [[ftp://ftp.nag.co.uk/sc22wg5/N1951-N2000/N1957.pdf|with WG5 comments]]; [[ftp://ftp.nag.co.uk/sc22wg5/N1951-N2000/N1959.txt|defect report]])
 * [[ftp://ftp.nag.co.uk/sc22wg5/N2001-N2050/N2003.pdf|Draft Technical Corrigendum 3]] (N2003; [[http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=65983|ISO/IEC 1539-1:2010/CD Cor 3]]; [[ftp://ftp.nag.co.uk/sc22wg5/N2001-N2050/N2002.pdf|with WG5 comments]]; [[ftp://ftp.nag.co.uk/sc22wg5/N2001-N2050/N2004.txt|defect report]])
 * [[ftp://ftp.nag.co.uk/sc22wg5/N2001-N2050/N2005.pdf|Combined Technical Corrigenda 1 to 3 for Fortran 2008 (N2005)]]
Line 78: Line 65:
[[ftp://ftp.nag.co.uk/sc22wg5/N1701-N1750/N1729.pdf|The new features of Fortran 2008]] by John Reid (non normative) === TS 29113 Further Interoperability of Fortran with C ===
Line 80: Line 67:
=== TR 29113 ===
 [[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)
Note: ISO [[http://j3-fortran.org/doc/meeting/196/11-242.txt|changed it from Technical Report (TR) to Technical Specification (TS)]]

 * [[ftp://ftp.nag.co.uk/sc22wg5/N1901-N1950/N1942.pdf|N1942]] (draft FDTS as sent to SC22, 11 October 2012)
 * ISO page for [[http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=45136|ISO/IEC TS 29113:2012]]

=== TS 18508 Additional Parallel Features in Fortran ===

 * [[http://isotc.iso.org/livelink/livelink?func=ll&objId=17064344&objAction=Openn|Draft]] (N2048, 9th March 2015)
 * ISO page for [[http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=62702|ISO/IEC NP TS 18508]]
 * [[ftp://ftp.nag.co.uk/sc22wg5/N1951-N2000/N1981.txt|Requirements for further coarray features]] (N1981, November 2013)
 * [[ftp://ftp.nag.co.uk/sc22wg5/N1951-N2000/N1979.txt|Schedule]]

== Fortran 2015 (?) ==

 * [[http://j3-fortran.org/doc/year/16/16-007r1.pdf|Working draft]] (J3/16-007r1, 1st May 2016)
 * [[http://j3-fortran.org/doc/year/15/15-007.pdf|Early working draft]] (J3/15-007, 24nd December 2014) – mostly consists of F2008 plus TS29113, corrigenda and newly added deprecated features
Line 84: Line 85:
== OpenMP (Open Multi-Processing) ==
[[http://openmp.org/wp/openmp-specifications/|OpenMP specifications]] - for gfortran relevant and [[openmp|supported]] are 2.5, 3.0, 3.1 and 4.0.

== OpenACC (Open Accelerator) ==
[[http://www.openacc.org/|OpenACC Specifications]] - for gfortran relevant and [[OpenACC|supported]] are 1.0 and 2.0.
Line 86: Line 92:
Line 91: Line 96:
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 [[http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/fortran/lin/compiler_f/bldaps_for/common/bldaps_portrout.htm|IFPORT]] module of Intel or the [[http://www.nag.co.uk/nagware/np/r52_doc/|f90_* modules of NAG]]. There also some compiler-independent efforts to make them accessible, e.g. [[http://savannah.nongnu.org/projects/posix90/|Posix90]] ([[http://www.nongnu.org/posix90/|doc]]), [[http://flibs.sf.net|flibs' platform/files and directories]], [[http://sourceforge.net/projects/fortranposix/|fortranposix]].
Line 93: Line 99:
"The [[http://www.aitcnet.org/isai/index.html|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." "The [[http://grouper.ieee.org/groups/plv/|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."
Line 95: Line 101:
 * [[http://www.aitcnet.org/isai/_Mtg_10/_Mtg_9/22-OWGV-N-0138/n0138.pdf|Draft N0138]] (2008-08-18)  * [[http://standards.iso.org/ittf/PubliclyAvailableStandards/c061457_ISO_IEC_TR_24772_2013.zip|ISO/IEC TR 24772:2013 (free ZIP file)]] ([[http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html|listed as freely available ISO standard]]; see also [[http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=61457|ISO/IEC TR 24772:2013]])
 * [[http://grouper.ieee.org/groups/plv/DocLog/400-499/460-489/22-WG23-N-0461/n0461.pdf|Draft N0461]] (2013-08-14; Revised Baseline draft Ed. 3) - with Fortran Annex
 * [[http://grouper.ieee.org/groups/plv/DocLog/400-499/460-489/22-WG23-N-0463/n0468.pdf|ISO/IEC IS 17960 Code Signing for Source Code]] (draft, 2013-10-10)
Line 105: Line 113:
The IEEE 754-2008 standard has been adopted as [[http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=57469|ISO/IEC/IEEE 60559:2011]]
Line 109: Line 119:

== ISO/IEC 14882 Programming languages -- C++ ==

 * [[http://www.open-std.org/JTC1/SC22/WG21/|'''JTC1/SC22/WG21''' - C++]] (C++ drafts available, at least for C++98)

== ISO/IEC 8652 Programming languages -- Ada ==

 * [[http://www.ada-auth.org/standards/ada12.html|Ada 2012 language reference page]] (ISO/IEC 8652:2012(E), [[http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=61507|ISO page]])
 * Note the section "B.5 Interfacing with Fortran" in the appendix of Ada 2012.

== Message Passing Interface (MPI) ==

 * [[http://www.mpi-forum.org/|Homepage]]
 * [[https://svn.mpi-forum.org/trac/mpi-forum-web|Committee Wiki]], [[http://lists.mpi-forum.org/|Mailing lists]]

== Unified Parallel C (UPC) ==

 * [[http://upc.gwu.edu/|UPC spec page]]
 * GCC's UPC: [[http://www.gccupc.org/|GCCUPC homepage]], see also `gupc` branch and [[http://gcc.gnu.org/projects/gupc.html|GUPS page]]

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. In particular, ANSI's webshop often sells the standard for much less than ISO.

Documents of the format Nnnnn (e.g. N1830) are available from on the FTP server of WG5, documents of the form yy-nnnn (e.g. 04-007) or with an additional rn suffix indicating the revision (e.g. 97-007r2) are available from http://j3-fortran.org/doc/ in the "year" subdirectory.

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 and 2008 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

Fortran 66

Fortran 77

Fortran 90

Fortran 95

Fortran 2003

Fortran 2008

TS 29113 Further Interoperability of Fortran with C

Note: ISO changed it from Technical Report (TR) to Technical Specification (TS)

TS 18508 Additional Parallel Features in Fortran

Fortran 2015 (?)

  • Working draft (J3/16-007r1, 1st May 2016)

  • Early working draft (J3/15-007, 24nd December 2014) – mostly consists of F2008 plus TS29113, corrigenda and newly added deprecated features

Other Relevant Standards

OpenMP (Open Multi-Processing)

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

OpenACC (Open Accelerator)

OpenACC Specifications - for gfortran relevant and supported are 1.0 and 2.0.

POSIX

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.

The IEEE 754-2008 standard has been adopted as ISO/IEC/IEEE 60559:2011

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.

ISO/IEC 14882 Programming languages -- C++

ISO/IEC 8652 Programming languages -- Ada

Message Passing Interface (MPI)

Unified Parallel C (UPC)

None: GFortranStandards (last edited 2016-12-15 13:36:19 by JanusWeil)