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 none
statement has been updated to allow for some additional use related to external procedures. - The stop code in
error stop
can now be any integer or character expression. - An
out_of_range
intrinsic 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_recursive
if 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 concurrent
loop. - 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)