Compiler Version Number |
14 |
8.4.0 |
9.x |
|
16.1.5 |
19.0 |
6.2 |
8.8 |
6.0 |
18.10 |
5.0 |
Submodules |
N |
Y |
Y (201) |
N |
Y |
Y |
N |
N |
N |
Y |
|
Coarrays |
N |
Y |
Y (301) |
N |
N |
Y |
N |
N |
Y |
N |
|
Performance enhancements |
Absoft |
Cray |
GNU |
HP |
IBM |
Intel |
NAG |
Oracle |
PathScale |
PGI |
Flang |
---|
do concurrent |
N |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
Y |
|
Contiguous attribute |
N |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
Y |
|
Data Declaration |
Absoft |
Cray |
GNU |
HP |
IBM |
Intel |
NAG |
Oracle |
PathScale |
PGI |
Flang |
---|
Maximum rank + corank = 15 |
N |
Y |
Y (701) |
N |
Y |
Y |
Y |
N |
N |
N |
|
Long integers |
Y (100) |
Y |
Y |
N |
Y |
Y |
Y |
Y |
? |
Y |
|
Allocatable components of recursive type |
N |
Y |
Y |
N |
Y |
Y |
N |
Y |
N |
N |
|
Implied-shape array |
N |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
N |
|
Pointer initialization |
N |
Y |
Y |
N |
Y |
Y |
N |
N |
N |
Y (600) |
|
Data statement restrictions lifted |
? |
Y |
N |
? |
N |
Y |
N |
N |
N |
N |
|
Kind of a forall index |
N |
Y |
N |
N |
Y |
Y |
Y |
N |
N |
N |
|
Type statement for intrinsic types |
? |
Y |
Y |
? |
Y |
Y |
Y |
N |
N |
N |
|
Declaring type-bound procedures |
? |
Y |
Y |
? |
Y |
Y |
Y |
N |
N |
N |
|
Value attribute is permitted for any nonallocatable nonpointer noncoarray |
? |
Y |
Y |
? |
P (108) |
Y |
? |
N |
? |
N |
|
In a pure procedure the intent of an argument need not be specified if it has the value attribute |
? |
Y |
Y |
? |
Y |
Y |
Y |
N |
? |
N |
|
Accessing data objects |
Absoft |
Cray |
GNU |
HP |
IBM |
Intel |
NAG |
Oracle |
PathScale |
PGI |
Flang |
---|
Simply contiguous arrays rank remapping to rank>1 target |
N |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
Y |
|
Omitting an ALLOCATABLE component in a structure constructor |
? |
Y |
N |
? |
Y |
Y |
Y |
N |
N |
N |
|
Multiple allocations with SOURCE= |
? |
Y |
Y |
? |
Y |
Y |
N |
N |
? |
N |
|
Copying the properties of an object in an ALLOCATE statement |
? |
Y |
N (201) |
? |
Y |
Y |
Y |
N |
N |
Y |
|
MOLD= specifier for ALLOCATE |
? |
Y |
Y |
? |
Y |
Y |
Y |
Y |
N |
Y |
|
Copying bounds of source array in ALLOCATE |
? |
Y |
N (210) |
? |
Y |
Y |
Y |
Y |
N |
Y |
|
Polymorphic assignment |
N |
Y |
Y |
N |
Y |
Y |
Y |
Y |
N |
N |
|
Accessing real and imaginary parts |
N |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
Y |
|
Pointer function reference is a variable |
N |
Y |
P (201) |
N |
N |
Y |
N |
N |
N |
N |
|
Elemental dummy argument restrictions lifted |
? |
Y |
Y |
? |
N |
Y |
N |
N |
? |
Y |
|
Input/Output |
Absoft |
Cray |
GNU |
HP |
IBM |
Intel |
NAG |
Oracle |
PathScale |
PGI |
Flang |
---|
Finding a unit when opening a file (newunit=u) |
N |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
Y |
Y |
g0 edit descriptor |
N |
Y |
Y |
N |
N |
Y |
Y |
N |
N |
N |
|
Unlimited format item |
N |
Y |
Y |
N |
N |
Y |
Y |
N |
N |
N |
|
Recursive I/O |
N |
Y |
Y |
N |
N |
Y |
Y |
Y |
Y |
Y |
|
Execution control |
Absoft |
Cray |
GNU |
HP |
IBM |
Intel |
NAG |
Oracle |
PathScale |
PGI |
Flang |
---|
The BLOCK construct |
N |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
N |
|
Exit statement |
N |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
Y |
|
Stop code |
N |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
Y |
|
ERROR STOP |
? |
? |
Y |
? |
Y |
Y |
? |
? |
? |
N |
N |
Intrinsic procedures for bit processsing |
Absoft |
Cray |
GNU |
HP |
IBM |
Intel |
NAG |
Oracle |
PathScale |
PGI |
Flang |
---|
Bit sequence comparison |
Y |
Y |
Y |
N |
N |
Y |
Y |
N |
N |
N |
|
Combined shifting |
Y |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
N |
|
Counting bits |
Y |
Y |
Y |
N |
Y |
Y |
Y |
N |
P (212) |
P (214) |
|
Masking bits |
N |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
N |
|
Shifting bits |
Y |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
N |
|
Merging bits |
Y |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
N |
|
Bit transformational functions |
N |
Y |
Y |
N |
N |
Y |
Y |
N |
N |
N |
|
Intrinsic procedures and modules |
Absoft |
Cray |
GNU |
HP |
IBM |
Intel |
NAG |
Oracle |
PathScale |
PGI |
Flang |
---|
Storage size |
N |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
Y |
Y |
Optional argument RADIX added to SELECTED REAL KIND |
N |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
N |
|
Extensions to trigonometric hyperbolic intrinsics |
Y |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
Y |
|
Bessel functions |
Y |
Y |
Y |
N |
N |
Y |
Y |
N |
N |
Y |
|
Error and gamma functions |
Y |
Y |
Y |
N |
Y |
Y |
Y |
N |
P |
Y |
|
Euclidean vector norms |
N |
Y |
Y |
N |
N |
Y |
Y |
N |
N |
Y |
|
Parity |
N |
Y |
Y |
N |
N |
Y |
Y |
Y |
N |
N |
|
Execute command line |
Y |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
Y |
N |
Optional back argument added to maxloc and minloc |
N |
Y |
Y |
N |
Y |
Y |
N |
N |
N |
N |
|
Find location in an array |
? |
Y |
Y |
N |
Y |
Y |
N |
N |
N |
Y |
|
String comparison |
? |
Y |
Y |
? |
N |
Y |
Y |
Y |
N |
Y |
|
Constants |
N |
Y |
P (203) |
N |
Y |
Y |
Y |
N |
N |
Y |
|
COMPILER_VERSION |
N |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
Y |
N |
COMPILER_OPTIONS |
N |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
Y |
N |
Function for C sizeof |
? |
Y |
Y |
? |
Y |
Y |
N |
N |
? |
Y |
|
Added optional argument for IEEE_SELECTED_REAL_KIND |
? |
Y |
Y |
? |
Y |
Y |
Y |
N |
? |
Y |
|
Programs and procedures |
Absoft |
Cray |
GNU |
HP |
IBM |
Intel |
NAG |
Oracle |
PathScale |
PGI |
Flang |
---|
Save attribute for module and submodule data |
? |
Y |
Y |
? |
Y |
Y |
Y |
Y |
N |
Y |
|
Empty contains section |
Y |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
N |
|
Form of end statement for internal and module procedures |
? |
Y |
Y |
? |
Y |
Y |
Y |
N |
N |
Y |
|
Internal procedure as an actual argument |
N |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
Y |
|
Null pointer or unallocated allocatable as absent dummy arg. |
N |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
Y |
|
Non-pointer actual for pointer dummy argument |
? |
Y |
N |
? |
Y |
Y |
Y |
Y |
? |
N |
|
Generic resolution by procedureness |
N |
Y |
N |
N |
Y |
Y |
Y |
N |
N |
Y |
|
Generic resolution by pointer vs. allocatable |
N |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
N |
|
Impure elemental procedures |
N |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
Y |
|
Entry statement becomes obsolescent |
Y |
Y |
Y |
N |
Y |
Y |
Y |
N |
N |
Y |
|
Source form |
Absoft |
Cray |
GNU |
HP |
IBM |
Intel |
NAG |
Oracle |
PathScale |
PGI |
Flang |
---|
Semicolon at line start |
Y |
Y |
Y |
? |
Y |
Y |
Y |
N |
Y |
Y |
|