The New Features of Fortran 2015

The glacially slow pace of Fortran language development continues! The next standard, Fortran 2015, mainly consists of updates for Fortran/C interoperability and new coarray features such as teams. In addition, there are a bunch of minor changes and discrepancy fixes. A few of the new features are:
- The venerable
implicit nonestatement has been updated to allow for some additional use related to external procedures. - The stop code in
error stopcan now be any integer or character expression. - An
out_of_rangeintrinsic was added to allow for testing whether a real or integer value can be safely converted to a different real or integer type and kind. - You can now declare the kind of the loop variable inside an implied do loop. For example:
iarray = [(2*i, integer :: i=1,n)]. - All procedures are now recursive by default. This is an interesting change. Ever since recursion was added to the language in Fortran 90, a procedure has had to be explicitly declared as
recursive. Now, you have to usenon_recursiveif you don't want to allow a procedure to be used recursively. - Some new syntax to indicate the locality status of variables within a
do concurrentloop. - There are a lot of new IEEE intrinsic routines for some reason.
Fortran 2015 is expected to be published in 2018.
See also
- J. Reid, The new features of Fortran 2015, ISO/IEC JTC1/SC22/WG5 N2127, June 23, 2017 [Note: this link is weird, it downloads to my Mac as a '.pdf.flv' file. Just remove the '.flv' extension, it's just a pdf]
- S. Lionel, Doctor Fortran in "Are We There Yet?", August 6, 2017
- JTC1/SC22/WG5 (New website for the home of Fortran standards)