Intel® Fortran Compiler 16.0 User and Reference Guide
Fortran 2003 is fully supported, including the following features:
Parameterized derived types with KIND and LENGTH type parameters and the %KIND and %LEN type parameter designators
A polymorphic dummy argument that has the attribute INTENT(OUT) becomes UNDEFINED or it will have DEFAULT INITIALIZATION applied.
User-Defined Derived-Type I/O
A polymorphic SOURCE= specifier for ALLOCATE
Bounds specification and bounds remapping list on a pointer assignment
FINAL routines
GENERIC, OPERATOR, and ASSIGNMENT overloading in type-bound procedures
Enumerators
Type extension (not polymorphic)
Type-bound procedures
Allocatable scalar variables (not deferred-length character)
ERRMSG keyword for ALLOCATE and DEALLOCATE
SOURCE= keyword for ALLOCATE
Character arguments for MAX, MIN, MAXVAL, MINVAL, MAXLOC, and MINLOC
Intrinsic modules IEEE_EXCEPTIONS, IEEE_ARITHMETIC and IEEE_FEATURES
ASSOCIATE construct
DO CONCURRENT construct
PROCEDURE declaration
Procedure pointers
ABSTRACT INTERFACE
PASS and NOPASS attributes
CONTIGUOUS attribute
Structure constructors with component names and default initialization
Array constructors with type and character length specifications
I/O keywords BLANK, DECIMAL, DELIM, ENCODING, IOMSG, PAD, ROUND, SIGN, and SIZE
Format edit descriptors DC, DP, RD, RC, RN, RP, RU, and RZ
The COUNT_RATE argument to the SYSTEM_CLOCK intrinsic may be a REAL of any kind.
NAMELIST I/O for internal files
Intrinsic functions EXTENDS_TYPE_OF and SAME_TYPE_AS
SELECT TYPE construct
CLASS declaration
PUBLIC types with PRIVATE components and PRIVATE types with PUBLIC components
RECORDTYPE setting STREAM_CRLF
A file can be opened for stream access (ACCESS='STREAM')
Specifier POS can be specified in an INQUIRE, READ, or WRITE statement
BIND attribute and statement
Language binding can be specified in a FUNCTION or SUBROUTINE statement, or when defining a derived type
IS_IOSTAT_END intrinsic function
IS_IOSTAT_EOR intrinsic function
INTRINSIC and NONINTRINSIC can be specified for modules in USE statements
ASYNCHRONOUS attribute and statement
VALUE attribute and statement
Specifier ASYNCHRONOUS can be specified in an OPEN, INQUIRE, READ, or WRITE statement
An ID can be specified for a pending data transfer operation
FLUSH statement
WAIT statement
IMPORT statement
NEW_LINE intrinsic function
SELECTED_CHAR_KIND intrinsic function
Intrinsic modules ISO_C_BINDING and ISO_FORTRAN_ENV
Specifiers ID and PENDING can be specified in an INQUIRE statement
User-defined operators can be renamed in USE statements
MOVE_ALLOC intrinsic subroutine
PROTECTED attribute and statement
Pointer objects can have the INTENT attribute
GET_COMMAND intrinsic
GET_COMMAND_ARGUMENT intrinsic
COMMAND_ARGUMENT_COUNT intrinsic
GET_ENVIRONMENT_VARIABLE intrinsic
Allocatable components of derived types
Allocatable dummy arguments
Allocatable function results
VOLATILE attribute and statement
Names of length up to 63 characters
Statements up to 256 lines
A named PARAMETER constant may be part of a complex constant
In all I/O statements, the following numeric values can be of any kind: UNIT=, IOSTAT=
The following OPEN numeric values can be of any kind: RECL=
The following READ and WRITE numeric values can be of any kind: REC=, SIZE=
The following INQUIRE numeric values can be of any kind: NEXTREC=, NUMBER=, RECL=, SIZE=
Recursive I/O is allowed when the new I/O being started is internal I/O that does not modify any internal file other than its own
IEEE infinities and Nans are displayed by formatted output as specified by Fortran 2003
In an I/O format, the comma after a P edit descriptor is optional when followed by a repeat specifier
The following intrinsics take an optional KIND= argument: ACHAR, COUNT, IACHAR, ICHAR, INDEX, LBOUND, LEN, LEN_TRIM, MAXLOC, MINLOC, SCAN, SHAPE, SIZE, UBOUND, VERIFY
Square brackets [ ] are permitted to delimit array constructors instead of (/ /)
The Fortran character set has been extended to contain the 8-bit ASCII characters ~ \ [ ] ` ^ { } | # @