Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Fortran
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Modern Fortran== The language defined by the twenty-first century standards, in particular because of its incorporation of [[object-oriented programming]] support and subsequently [[Coarray Fortran]], is often referred to as 'Modern Fortran', and the term is increasingly used in the literature.<ref>{{cite web |last1=Lionel |first1=Steve |title=Doctor Fortran in "It's a Modern Fortran World" |url=https://stevelionel.com/drfortran/2013/12/30/doctor-fortran-in-its-a-modern-fortran-world/ |website=Intel (was DEC) Fortran forum discussion group |date=December 30, 2013 |publisher=Intel |access-date=April 11, 2022}}</ref> ===Fortran 2003=== ''Fortran 2003,'' officially published as ISO/IEC 1539-1:2004, was a major revision introducing many new features.<ref>{{cite web|title=Fortran 2003β Last Working Draft|url=http://www.j3-fortran.org/doc/year/04/04-007.txt|publisher=Gnu.Org|access-date=May 10, 2014}}</ref> A comprehensive summary of the new features of Fortran 2003 is available at the Fortran Working Group ([[ISO/IEC JTC1/SC22]]/WG5) official Web site.<ref>{{cite web |title=WG5 Completes Processing Fortran 2003 and the TR |website=nag.co.uk |date=May 14, 2004 |url=http://www.nag.co.uk/sc22wg5/ |archive-url=https://web.archive.org/web/20040805025908/http://www.nag.co.uk/sc22wg5/ |archive-date=August 5, 2004 |access-date=April 3, 2023 }}. It may also be downloaded as a PDF file at {{cite web |title=The New Features of Fortran 2003 |url=https://wg5-fortran.org/N1551-N1600/N1579.pdf |archive-url=https://web.archive.org/web/20180115012047/https://wg5-fortran.org/N1551-N1600/N1579.pdf |archive-date=January 15, 2018 |url-status=live |access-date=April 3, 2023 }}</ref> From that article, the major enhancements for this revision include: * Derived type enhancements: parameterized derived types, improved control of accessibility, improved structure constructors, and finalizers * [[Object-oriented programming]] support: type extension and [[Inheritance (object-oriented programming)|inheritance]], [[Type polymorphism|polymorphism]], dynamic type allocation, and type-bound procedures, providing complete support for [[abstract data type]]s * Data manipulation enhancements: allocatable components (incorporating TR 15581), deferred type parameters, [[volatile variable|{{code|VOLATILE}} attribute]], explicit type specification in array constructors and allocate statements, pointer enhancements, extended initialization expressions, and enhanced intrinsic procedures * Input/output enhancements: [[Asynchronous I/O|asynchronous]] transfer, stream access, user specified transfer operations for derived types, user specified control of rounding during format conversions, named constants for preconnected units, the {{code|FLUSH}} statement, regularization of keywords, and access to error messages * [[Function pointer|Procedure pointers]] * Support for [[IEEE 754-2008|IEEE floating-point arithmetic]] and [[floating-point arithmetic|floating-point]] [[exception handling]] (incorporating TR 15580) * Interoperability with the C programming language * Support for international usage: access to [[Universal Character Set|ISO 10646]] 4-byte characters and choice of decimal or comma in numeric formatted input/output * Enhanced integration with the host operating system: access to [[Command-line interface|command-line]] arguments, [[environment variable]]s, and processor error messages An important supplement to Fortran 2003 was the [[International Organization for Standardization|ISO technical report]] ''TR-19767: Enhanced module facilities in Fortran.'' This report provided ''sub-modules,'' which make Fortran modules more similar to [[Modula-2]] modules. They are similar to [[Ada (programming language)|Ada]] private child sub-units. This allows the specification and implementation of a module to be expressed in separate program units, which improves packaging of large libraries, allows preservation of trade secrets while publishing definitive interfaces, and prevents compilation cascades. ===Fortran 2008=== ISO/IEC 1539-1:2010, informally known as Fortran 2008, was approved in September 2010.<ref>{{cite web|title=N1836, Summary of Voting/Table of Replies on ISO/IEC FDIS 1539-1, Information technology β Programming languages β Fortran β Part 1: Base language|url=https://wg5-fortran.org/N1801-N1850/N1836.pdf |archive-url=https://web.archive.org/web/20180115003040/https://wg5-fortran.org/N1801-N1850/N1836.pdf |archive-date=January 15, 2018 |url-status=live}}</ref><ref>{{cite web|title=Fortran 2008 β Last Working Draft|url=http://www.j3-fortran.org/doc/year/10/10-007.pdf |archive-url=https://web.archive.org/web/20140512222210/http://www.j3-fortran.org/doc/year/10/10-007.pdf |archive-date=May 12, 2014 |url-status=live|publisher=Gnu.Org|access-date=May 10, 2014}}</ref> As with Fortran 95, this is a minor upgrade, incorporating clarifications and corrections to Fortran 2003, as well as introducing some new capabilities. The new capabilities include: * Sub-modules β additional structuring facilities for modules; supersedes ISO/IEC TR 19767:2005 * [[Coarray Fortran]] β a parallel execution model * The [[Scalable parallelism|DO CONCURRENT]] construct β for loop iterations with no interdependencies * The CONTIGUOUS attribute β to specify storage layout restrictions * The [[Dynamic scoping|BLOCK construct]] β can contain declarations of objects with construct scope * [[Recursive data type|Recursive allocatable components]] β as an alternative to recursive pointers in derived types The Final Draft international Standard (FDIS) is available as document N1830.<ref>N1830, Information technology β Programming languages β Fortran β Part 1: Base language [ftp://ftp.nag.co.uk/sc22wg5/N1801-N1850/N1830.pdf]{{dead link|date=January 2016}}</ref> A supplement to Fortran 2008 is the [[International Organization for Standardization]] (ISO) Technical Specification (TS) 29113 on ''Further Interoperability of Fortran with C'',<ref>{{cite ISO standard |csnumber=45136 |title=ISO/IEC TS 29113:2012 β Information technology β Further interoperability of Fortran with C}}</ref><ref>{{cite web|url=https://wg5-fortran.org/N1901-N1950/N1917.pdf |archive-url=https://web.archive.org/web/20180115013236/https://wg5-fortran.org/N1901-N1950/N1917.pdf |archive-date=January 15, 2018 |url-status=live|title=Draft of the Technical Specification (TS) 29113|website=wg5-fortran.org}}</ref> which has been submitted to ISO in May 2012 for approval. The specification adds support for accessing the array descriptor from C and allows ignoring the type and rank of arguments. ===Fortran 2018=== The Fortran 2018 revision of the language was earlier referred to as Fortran 2015.<ref name="Fortran2018name">{{cite web|url=https://software.intel.com/en-us/blogs/2017/11/20/doctor-fortran-in-eighteen-is-the-new-fifteen|title=Doctor Fortran in "Eighteen is the new Fifteen"|publisher=Software.intel.com|access-date=November 20, 2017}}</ref> It was a significant revision and was released on November 28, 2018.<ref name="F2018">{{cite web|url=https://wg5-fortran.org/f2018.html|publisher=ISO|title=Fortran 2018|access-date=November 30, 2018}}</ref> Fortran 2018 incorporates two previously published Technical Specifications: * ISO/IEC TS 29113:2012 Further Interoperability with C<ref name="TS29113">{{cite web|url=https://wg5-fortran.org/N1901-N1950/N1942.pdf |archive-url=https://web.archive.org/web/20171201033143/https://wg5-fortran.org/N1901-N1950/N1942.pdf |archive-date=December 1, 2017 |url-status=live|title=Further Interoperability with C|publisher=ISO|access-date=November 20, 2017}}</ref> * ISO/IEC TS 18508:2015 Additional Parallel Features in Fortran<ref name="TS18508">{{cite web|url=http://isotc.iso.org/livelink/livelink?func=ll&objId=17288706&objAction=Open|title=Additional Parallel Features in Fortran|publisher=ISO|access-date=November 20, 2017}}</ref> Additional changes and new features include support for ISO/IEC/IEEE 60559:2011 (the version of the [[IEEE 754|IEEE floating-point standard]] before the latest minor revision IEEE {{not a typo|754β2019}}), hexadecimal input/output, IMPLICIT NONE enhancements and other changes.<ref name="F2015newfeat">{{cite web|url=http://isotc.iso.org/livelink/livelink?func=ll&objId=19044944&objAction=Open|publisher=ISO|title=The New Features of Fortran 2015|access-date=June 23, 2017}}</ref><ref name="Fortran2015Closes">{{cite web|url=https://software.intel.com/en-us/blogs/2015/09/04/doctor-fortran-in-one-door-closes|title=Doctor Fortran in "One Door Closes"|publisher=Software.intel.com|access-date=September 21, 2015}}</ref><ref name="Fortran2015">{{cite web|url=http://software.intel.com/en-us/blogs/2013/08/08/doctor-fortran-goes-dutch-fortran-2015|title=Doctor Fortran Goes Dutch: Fortran 2015|publisher=Software.intel.com|access-date=November 19, 2014 | url-status = dead | archive-url = https://web.archive.org/web/20170401092649/software.intel.com/en-us/blogs/2013/08/08/doctor-fortran-goes-dutch-fortran-2015 | archive-date = 2017-04-01 | quote = The ISO Fortran Standards Committee held its annual meeting in Delft, [...] }} </ref><ref> {{cite manual |url=http://j3-fortran.org/doc/year/18/18-007r1.pdf |title=Fortran 2018 Interpretation Document |date=October 9, 2018}} </ref> Fortran 2018 deleted the arithmetic IF statement. It also deleted non-block DO constructs - loops which do not end with an END DO or CONTINUE statement. These had been an obsolescent part of the language since Fortran 90. New obsolescences are: COMMON and EQUIVALENCE statements and the BLOCK DATA program unit, labelled DO loops, specific names for intrinsic functions, and the FORALL statement and construct. ===Fortran 2023=== Fortran 2023 (ISO/IEC 1539-1:2023) was published in November 2023, and can be purchased from the ISO.<ref>{{cite web |title=Fortran 2023 |url=https://wg5-fortran.org/f2023.html |website=wg5-fortran.org |access-date=November 30, 2023}}</ref> Fortran 2023 is a minor extension of Fortran 2018 that focuses on correcting errors and omissions in Fortran 2018. It also adds some small features, including an [[enumerated type]] capability.
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Fortran
(section)
Add topic