2599
Comment: Added links to the various draft standards available.

11860
Update TR29113 link

Deletions are marked like this.  Additions are marked like this. 
Line 3:  Line 3: 
Draft (unofficial) versions of the various Fortran standards and corrigenda are available from the [http://j3fortran.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.  <<TableOfContents()>> 
Line 5:  Line 5: 
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, and some portions of the Fortran 2003 standard. The other documents are linked here for reference, but should not be taken as documentation of GNU Fortran features.  Draft (unofficial) versions of the various recent Fortran standards and corrigenda are available from the [[http://j3fortran.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.comwww.fortran.com]]. The official standards can be bought from the [[http://www.iso.org/iso/en/CombinedQueryResult.CombinedQueryResult?queryString=FortranInternational Organization for Standardization (ISO)]] or from your national standardization organization. In particular, [[http://webstore.ansi.org/FindStandards.aspx?SearchString=FortranANSI's webshop]] often sells the standard for much less than ISO. 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 ''yynnnn'' (e.g. 04007) or with an additional r''n'' suffix indicating the revision (e.g. 97007r2) are available from [[http://j3fortran.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 MILSTD 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 == The oldest version; dated October 15, 1956, first presented in February 1957 and first delivered in April 1957. [[http://www.fhjena.de/~kleine/history/languages/FortranAutomaticCodingSystemForTheIBM704.pdfFortran  Programmer's Reference Manual (PDF)]] == Fortran 66 == Fortran 66 Standard (X3.91966): [[ftp://ftp.nag.co.uk/sc22wg5/ARCHIVE/Fortran66.pdf(pdf)]][[http://www.fortran.com/fortran/fortran_66.zip(gif)]] [[http://www.fhjena.de/~kleine/history/languages/ansix3dot91966Fortran66.pdf(pdf 2)]] == Fortran 77 == '''Fortran 77 Standard (!X3J3/90.4, [[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=6127ISO 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 (MILSTD 1753):''' [[ftp://ftp.nag.co.uk/sc22wg5/ARCHIVE/mil_std_1753.html(html)]] [[http://www.fortran.com/fortran/mil_std_1753.html(html 2)]] == Fortran 90 == '''Fortran 90 Standard [[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=17366ISO/IEC 1539:1991]]:''' [[ftp://ftp.nag.co.uk/sc22wg5/N001N1100/N692.pdf(pdf)]] 
Line 9:  Line 31: 
Fortran 95 Standard, final draft (ISO/IEC 15391:1997): [http://j3fortran.org/doc/standing/007%20Draft%20Revision%20to%20Fortran%20Standards%20Document/97007r2/ (all formats)], [http://j3fortran.org/doc/standing/007%20Draft%20Revision%20to%20Fortran%20Standards%20Document/97007r2/pdf/97007r2.pdf (pdf)].  '''Fortran 95 Standard, final draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=39691ISO/IEC 15391:1997]]):''' [[http://j3fortran.org/doc/standing/archive/007/97007r2/(all formats)]], [[http://j3fortran.org/doc/standing/archive/007/97007r2/pdf/97007r2.pdf(pdf)]]. 
Line 11:  Line 33: 
Fortran 95 Standard (Part 2: ISOVaryingStrings), final draft (ISO/IEC 15392:2000): [ftp://ftp.nag.co.uk/sc22wg5/N1351N1400/N1375.pdf (pdf)]  Fortran 95 Standard (Part 2: ISOVaryingStrings), final draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=26934ISO/IEC 15392:2000]]): [[ftp://ftp.nag.co.uk/sc22wg5/N1351N1400/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.f952]]) 
Line 13:  Line 36: 
Fortran 95 Standard (Part 3: Conditional Compilation), final draft (ISO/IEC 15393:1998): [ftp://ftp.nag.co.uk/sc22wg5/N1301N1350/N1306.pdf (pdf)]  (ISO Varying strings are not implemented in GNU Fortran, but a [[http://www.nag.co.uk/sc22wg5/IS15392.htmlFortran 95 module]] exists which implements this is Fortran.) 
Line 15:  Line 38: 
Fortran 95 FloatingPoint Exceptions TR (TR 15580): [ftp://ftp.nag.co.uk/sc22wg5/N1351N1400/N1378.pdf (pdf)]  Fortran 95 Standard (Part 3: Conditional Compilation), final draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=29926ISO/IEC 15393:1998]]): [[ftp://ftp.nag.co.uk/sc22wg5/N1301N1350/N1306.pdf(pdf)]] 
Line 17:  Line 40: 
Fortran 95 Allocatable Components TR (TR 15581): [ftp://ftp.nag.co.uk/sc22wg5/N1351N1400/N1379.pdf (pdf)]  (Conditional Compilation is not supported directly by GNU Fortran but you can preprocess the files using [[http://www.daniellnagle.com/coco.htmlCOCO]]. Note: The WG5 "convenor [...] asked SC22 at its September [2010] plenary to request a JTC1 country ballot for withdrawal".) 
Line 19:  Line 42: 
Fortran 95 Corrigendum 1: [ftp://ftp.nag.co.uk/sc22wg5/N1401N1450/N1421.pdf (pdf)]  Fortran 95 FloatingPoint Exceptions TR, draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=34370ISO/IEC TR 15580:2001]]): [[ftp://ftp.nag.co.uk/sc22wg5/N1351N1400/N1378.pdf(pdf)]] 
Line 21:  Line 44: 
Fortran 95 Corrigendum 2: [ftp://ftp.nag.co.uk/sc22wg5/N1451N1500/N1472.pdf (pdf)]  '''Fortran 95 Allocatable Components TR, draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=34367ISO/IEC TR 15581:2001]]):''' [[ftp://ftp.nag.co.uk/sc22wg5/N1351N1400/N1379.pdf(pdf)]] 
Line 23:  Line 46: 
'''Fortran 95 Corrigendum 1, draft:''' [[ftp://ftp.nag.co.uk/sc22wg5/N1401N1450/N1421.pdf(pdf)]] '''Fortran 95 Corrigendum 2, draft:''' [[ftp://ftp.nag.co.uk/sc22wg5/N1451N1500/N1472.pdf(pdf)]] [[http://j3fortran.org/doc/standing/links/015.txtCompleted interpretations of Fortran 95]] 

Line 26:  Line 54: 
Fortran 2003 Standard, final draft (ISO/IEC 15391:2004(E)): [http://www.j3fortran.org/doc/year/04/04007.txt (ascii)], [http://www.j3fortran.org/doc/year/04/04007.tex.tar (TeX)], [http://www.j3fortran.org/doc/year/04/04007.pdf (pdf)].  '''Fortran 2003 Standard, final draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=39691ISO/IEC 15391:2004(E)]]):''' [[http://www.j3fortran.org/doc/year/04/04007.txt(ascii)]], [[http://www.j3fortran.org/doc/year/04/04007.tex.tar(TeX)]], [[http://www.j3fortran.org/doc/year/04/04007.pdf(pdf)]]. 
Line 28:  Line 56: 
Fortran 2003, Enhanced Modules TR (ISO/IEC TR 19767:2005(E)): [ftp://ftp.nag.co.uk/sc22wg5/N1601N1650/N1602.pdf (pdf)].  Fortran 2003, Enhanced Modules TR, draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=37995ISO/IEC TR 19767:2005(E)]]): [[ftp://ftp.nag.co.uk/sc22wg5/N1601N1650/N1602.pdf(pdf)]]. 
Line 30:  Line 58: 
Fortran 2003 Corregendum 1: [ftp://ftp.nag.co.uk/sc22wg5/N1601N1650/N1636.pdf (pdf)].  '''Fortran 2003 Corrigendum 1, draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=43930ISO/IEC 15391:2004/Cor 1:2006 (E)]]):''' [[ftp://ftp.nag.co.uk/sc22wg5/N1601N1650/N1636.pdf(pdf)]] '''Fortran 2003 Corrigendum 2, final draft ([[http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=45447ISO/IEC 15391:2004/Cor.2:2007 (E)]]):''' [[ftp://ftp.nag.co.uk/sc22wg5/N1651N1700/N1665.pdf(pdf)]] '''Fortran 2003 Corrigendum 3, draft''': [[ftp://ftp.nag.co.uk/sc22wg5/N1701N1750/N1731.pdfPDF]] ([[ftp://ftp.nag.co.uk/sc22wg5/N1701N1750/N1730.txtdefect reports]]) '''Fortran 2003 Corrigendum 4''': [[ftp://ftp.nag.co.uk/sc22wg5/N1751N1800/N1784.pdfPDF]] '''Fortran 2003 Corrigendum 5''': [[ftp://ftp.nag.co.uk/sc22wg5/N1801N1850/N1815.pdfPDF]] '''Fortran 2003 Corrigenda 1 to 5''': combination of the corrigenda about  [[ftp://ftp.nag.co.uk/sc22wg5/N1801N1850/N1823.pdfPDF]] '''[[http://www.j3fortran.org/doc/year/08/08018r1.pdfFortran 2003 update pages]]''' (consists of corrigenda 1 and 2) 
Line 33:  Line 73: 
[[http://j3fortran.org/doc/standing/links/016.txtCompleted interpretations of Fortran 2003]] [[ftp://ftp.nag.co.uk/sc22wg5/N1601N1650/N1648.pdfThe New Features of Fortran 2003]] by John Reid (non normative) and [[http://nag.com/nagware/NP/doc/nag_f2003.pdfsomething similar by NAG]] [[ftp://ftp.nag.co.uk/sc22wg5/N1751N1800/N1764.txtN1764: New (20081208) interpretations, which passed the J3 ballot]] [[ftp://ftp.nag.co.uk/sc22wg5/N1801N1850/N1805.txtN1805: Fortran interpretations that have passed a J3 letter ballot]] == Fortran 2008 == [[ftp://ftp.nag.co.uk/sc22wg5/N1801N1850/N1830.pdfFortran 2008 standard]] (FDIS, 20100607; published 20101006 as [[http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=50459ISO/IEC FDIS 15391:2010]]) ([[ftp://ftp.nag.co.uk/sc22wg5/N1801N1850/N1824.pdfNonnormative coarrays description]], [[ftp://ftp.nag.co.uk/sc22wg5/N1701N1750/N1702.pdfnonnormative coarray rational]]) [[ftp://ftp.nag.co.uk/sc22wg5/N1801N1850/N1828.pdfThe new features of Fortran 2008]] by John Reid (non normative) === TR 29113 Further Interoperability of Fortran with C === * [[ftp://ftp.nag.co.uk/sc22wg5/N1801N1850/N1843.txtSchedule]] * [[ftp://ftp.nag.co.uk/sc22wg5/N1801N1850/N1845.pdfWorking draft 8th November 2010]] * [[http://j3fortran.org/pipermail/interoptr/2011April/000582.htmlWorking draft 11th April 2011]] === TR on further coarray features === * [[ftp://ftp.nag.co.uk/sc22wg5/N1801N1850/N1812.txtSchedule]] * [[ftp://ftp.nag.co.uk/sc22wg5/N1801N1850/N1835.txtRequirements for TR of further coarray features]] (10 September 2010) * [[http://j3fortran.org/doc/meeting/192/10166.pdfEarly draft]] (February 2010) 

Line 34:  Line 99: 
== OpenMP (Open MultiProcessing) == [[http://openmp.org/wp/openmpspecifications/OpenMP specifications]]  for gfortran relevant and supported are 2.5 and 3.0. 

Line 39:  Line 108: 
POSIX Fortran 77 Language Interfaces (IEEE Std 1003.91992) [http://ieeexplore.ieee.org/iel1/2891/4710/00182910.pdf?isnumber= (pdf)]  POSIX Fortran 77 Language Interfaces (IEEE Std 1003.91992) [[http://ieeexplore.ieee.org/iel1/2891/4710/00182910.pdf?isnumber=(pdf)]] Note IEEE 1003.91992 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/enus/fortran/lin/compiler_f/bldaps_for/common/bldaps_portrout.htmIFPORT]] module of Intel or the [[http://www.nag.co.uk/nagware/np/r52_doc/f90_* modules of NAG]]. There also some compilerindependent efforts to make them accessible, e.g. [[http://savannah.nongnu.org/projects/posix90/Posix90]] ([[http://www.nongnu.org/posix90/doc]]), [[http://flibs.sf.netflibs' platform/files and directories]], [[http://sourceforge.net/projects/fortranposix/fortranposix]]. == ISO/IEC Project 22.24772: Guidance for Avoiding Vulnerabilities through Language Selection and Use == "The [[http://www.aitcnet.org/isai/index.htmlOWGV 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." * [[http://www.aitcnet.org/isai/DocLog/220thru239/22WG23N0238/n0238.pdfDraft N0238]] (20091107) * == IEEE 754 == The [[http://www.ieee.org/web/standards/home/IEEE]] Standard for Binary FloatingPoint Arithmetic (IEEE 754) is the most widelyused standard for floatingpoint computation. Unfortunately, they are not freely available. * [[http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?tp=&isnumber=1316&arnumber=30711&punumber=2355IEEE 7541985]] Standard for Binary FloatingPoint Arithmetic * [[http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?tp=&isnumber=1121&arnumber=27840&punumber=2502IEEE 8541987]] Standard for RadixIndependent FloatingPoint Arithmetic * '''[[http://ieeexplore.ieee.org/servlet/opac?punumber=4610933IEEE 7542008 IEEE Standard for FloatingPoint Arithmetic]]''' * [[http://www.validlab.com/754R/drafts/archive/20061004.pdfLatest publicly available draft of IEEE 7542008]] (4 October 2006) The IEEE 7542008 standard is currently being adopted as [[http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=57469ISO/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. * [[http://www.openstd.org/JTC1/SC22/WG14/'''JTC1/SC22/WG14'''  C]] (C drafts are also available there) 
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 yynnnn (e.g. 04007) or with an additional rn suffix indicating the revision (e.g. 97007r2) are available from http://j3fortran.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 MILSTD 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
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.91966): (pdf)(gif) (pdf 2)
Fortran 77
Fortran 77 Standard (!X3J3/90.4, ISO 1539:1980): (text) (text 2) (html)
DoD Extensions to Fortran 77 (MILSTD 1753): (html) (html 2)
Fortran 90
Fortran 90 Standard ISO/IEC 1539:1991: (pdf)
Fortran 95
Fortran 95 Standard, final draft (ISO/IEC 15391:1997): (all formats), (pdf).
Fortran 95 Standard (Part 2: ISOVaryingStrings), final draft (ISO/IEC 15392:2000): (pdf) (Reference implementation written in Fortran 1, 2)
(ISO Varying strings are not implemented in GNU Fortran, but a Fortran 95 module exists which implements this is Fortran.)
Fortran 95 Standard (Part 3: Conditional Compilation), final draft (ISO/IEC 15393:1998): (pdf)
(Conditional Compilation is not supported directly by GNU Fortran but you can preprocess the files using COCO. Note: The WG5 "convenor [...] asked SC22 at its September [2010] plenary to request a JTC1 country ballot for withdrawal".)
Fortran 95 FloatingPoint 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 15391: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 15391:2004/Cor 1:2006 (E)): (pdf)
Fortran 2003 Corrigendum 2, final draft (ISO/IEC 15391:2004/Cor.2:2007 (E)): (pdf)
Fortran 2003 Corrigendum 3, draft: PDF (defect reports)
Fortran 2003 Corrigendum 4: PDF
Fortran 2003 Corrigendum 5: PDF
Fortran 2003 Corrigenda 1 to 5: combination of the corrigenda about  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 (20081208) interpretations, which passed the J3 ballot
N1805: Fortran interpretations that have passed a J3 letter ballot
Fortran 2008
Fortran 2008 standard (FDIS, 20100607; published 20101006 as ISO/IEC FDIS 15391:2010) (Nonnormative coarrays description, nonnormative coarray rational)
The new features of Fortran 2008 by John Reid (non normative)
TR 29113 Further Interoperability of Fortran with C
TR on further coarray features
Requirements for TR of further coarray features (10 September 2010)
Early draft (February 2010)
Other Relevant Standards
OpenMP (Open MultiProcessing)
OpenMP specifications  for gfortran relevant and supported are 2.5 and 3.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.91992) (pdf)
Note IEEE 1003.91992 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 compilerindependent 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."
Draft N0238 (20091107)
IEEE 754
The IEEE Standard for Binary FloatingPoint Arithmetic (IEEE 754) is the most widelyused standard for floatingpoint computation. Unfortunately, they are not freely available.
IEEE 7541985 Standard for Binary FloatingPoint Arithmetic
IEEE 8541987 Standard for RadixIndependent FloatingPoint Arithmetic
Latest publicly available draft of IEEE 7542008 (4 October 2006)
The IEEE 7542008 standard is currently being 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.
'''JTC1/SC22/WG14'''  C (C drafts are also available there)