General Page
XL Fortran started adding support for the Fortran 2008 standard in version 14.1 of the compiler. This document lists the Fortran 2008 features currently supported by XL Fortran. The feature names follow the ones provided by John Reid in his "The new features of Fortran 2008" paper. The format follows the one used by Ian Chivers and Jane Sleightholme in their Fortran Forum article, "Compiler Support for the Fortran 2003 and 2008 Standards". (Here is a link to a recent version.)
Fortran 2008 feature | Supported? | Notes | First added in |
Submodules | Y | 15.1 | |
Coarrays | N | ||
Performance enhancements | |||
DO CONCURRENT | Y | 15.1.3 | |
CONTIGUOUS attribute | Y | 14.1 | |
Simply contiguous arrays | Y | 14.1 | |
Data declaration | |||
Maximum rank | Y | Was available before as an IBM extension | 14.1 |
Long integers | Y | Was available before as an IBM extension | 14.1 |
Allocatable components of recursive type | Y | 16.1.1.5 | |
Implied-shape arrays | Y | 14.1 | |
Pointer initialization | Y | 16.1.1.5 | |
Data statement restrictions lifted | N | ||
Kind of a FORALL index | Y | 15.1 | |
TYPE statement for intrinsic types | Y | 14.1 | |
Declaring type-bound procedures | Y | 14.1 | |
Extensions to the VALUE attribute | P |
Partial support in 15.1, More support added in 15.1.3. |
15.1.3 |
Data usage | |||
Omitting an allocatable component in a structure constructor | Y | 16.1.1.5 | |
Multiple allocations with SOURCE= | Y | 15.1.3 | |
Copying the properties of an object in an allocate statement | Y | 14.1 | |
Polymorphic assignment | Y | 15.1.3 | |
Accessing real and imaginary parts | Y | 14.1 | |
Pointer functions | N | ||
Elemental dummy argument restrictions lifted | N | ||
Input / Output | |||
Finding a unit when opening a file | Y | 14.1 | |
G0 edit descriptor | N | ||
Unlimited format item | N | ||
Recursive input/output | N | ||
Execution control | |||
The BLOCK construct | Y | 14.1 | |
EXIT statement | Y | 14.1 | |
Stop code | Y | 14.1 | |
ERROR STOP | Y | 14.1 | |
Intrinsic procedures and modules | |||
Bit sequence comparison | N | ||
Combined shifting | Y | 15.1 | |
Counting bits | Y | 14.1 | |
Masking bits | Y | 15.1 | |
Shifting bits | Y | 15.1 | |
Merging bits | Y | 15.1 | |
Bit transformational functions | N | ||
Storage size | Y | 15.1.1 | |
Optional argument RADIX added to SELECTED_REAL_KIND | Y | 14.1 | |
Extensions to trigonometric and hyperbolic intrinsic functions | Y | 14.1 | |
Bessel functions | N | ||
Error and gamma functions | Y | 14.1 | |
Euclidean vector norms | N | ||
Parity | N | ||
Execute command line | Y | 14.1 | |
Optional argument BACK added to MAXLOC and MINLOC | Y | 15.1 | |
Find location in an array | Y | 15.1 | |
String comparison | N | ||
Constants | Y | 14.1 | |
Compiler information | Y | 14.1 | |
Function for C sizeof | Y | 14.1 | |
Additional optional argument for IEEE_SELECTED_REAL_KIND | Y | 14.1 | |
Programs and procedures | |||
Save attribute for module and submodule data | Y | 14.1 | |
Empty contains section | Y | 14.1 | |
Form of end statement for an internal or module procedure | Y | 14.1 | |
Internal procedure as an actual argument or pointer target | Y | 14.1 | |
Null pointer or unallocated allocatable as an absent dummy argument | Y | 14.1 | |
Non-pointer actual for pointer dummy arguments (automatic targetting) | Y | 14.1 | |
Generic resolution by pointer / allocatable or data / procedure | Y | 15.1 | |
Elemental procedures that are not pure | Y | 15.1 | |
Entry statement becomes obsolescent | Y | 14.1 | |
Source form | |||
Semicolon at line start | Y | Was available before as an IBM extension | 14.1 |
[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSB259","label":"XL Fortran Advanced Edition for Linux"},"Component":"","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF016","label":"Linux"}],"Version":"All Versions","Edition":"","Line of Business":{"code":"LOB57","label":"Power"}}]
Was this topic helpful?
Document Information
Modified date:
24 February 2022
UID
ibm11138846