Fortran 2003 status

The following table describes the Fortan 2003 support status for Arm Fortran Compiler.

Fortran 2003 feature Support status
ISO TR 15580 IEEE Arithmetic Yes
ISO TR 15581 Allocatable Enhancements
Dummy arrays
Function results
Structure components

Data enhancements and object orientation
Parameterized derived types Yes
Procedure pointers Yes
Finalization Yes
Procedures bound by name to a type Yes
The PASS attribute Yes
Procedures bound to a type as operators Yes
Type extension Yes
Overriding a type-bound procedure Yes
Enumerations Yes
ASSOCIATE construct Yes
Polymorphic entities Yes
SELECT TYPE construct Yes
Deferred bindings and abstract types Yes
Allocatable scalars Yes
Allocatable character length Yes
Miscellaneous enhancements
Structure constructor changes Yes
Generic procedure interfaces with the same name as a type Yes
The allocate statement
Type spec
Source specifier
Errmsg specifier

Assignment to an allocatable array Yes Only under a flag option -Mallocatable=03
Transferring an allocation Yes
More control of access from a module Yes
Renaming operators on the USE statement Yes
Pointer assignment Yes
Pointer INTENT Yes
The VOLATILE attribute Yes One or more issues are observed with this feature
The IMPORT statement Yes
Intrinsic modules Yes
Access to the computing environment Yes
Support for international character sets Only selected_char_kind is supported
Lengths of names and statements
names = 63
statements = 256

Binary, octal and hex constants Yes
Array constructor syntax Yes
Specification and initialization expressions Yes A few intrinsics which are not commonly used are not supported
Complex constants Yes
Changes to intrinsic functions Yes
Controlling IEEE underflow Yes
Another IEEE class value Yes
I/O enhancements
Derived type I/O Yes One or more issues are observed with this feature
Asynchronous I/O Yes One or more issues are observed with this feature
FLUSH statement Yes
IOMSG= specifier Yes
Stream access input/output Yes
ROUND= specifier Yes Not supported for write
DECIMAL= specifier Yes
SIGN= specifier Yes processor_defined does not work for open
Kind type parameters of integer specifiers Yes
Recursive input/output Yes
Intrinsic function for newline character Yes
Input and output of IEEE exceptional values Yes Read does not work for NaN(s)
Comma after a P edit descriptor Yes
Interoperability with
Interoperability of intrinsic types Yes
Interoperability with C pointers Yes
Interoperability of derived types Yes
Interoperability of variables Yes
Interoperability of procedures Yes
Interoperability of global data Yes