Intel® Fortran Compiler 17.0 Developer Guide and Reference
An initialization expression is an expression that you can use as a kind type parameter, a named constant, or to specify an initial value for an entity. It is evaluated when a program is compiled.
In an initialization expression, each operation is intrinsic and each primary is one of the following:
A constant or subobject of a constant
An array constructor where each element and each scalar integer expression of each implied-DO is an initialization expression
A structure constructor where each component specification corresponding to an allocatable component is a reference to the transformational intrinsic function NULL, and each other component specification is an initialization expression
A reference to an elemental standard intrinsic function, where each argument is an initialization expression
A reference to a transformational standard intrinsic function other than NULL, where each argument is an initialization expression
A reference to the transformational intrinsic function NULL that does not have an argument with a type parameter that is one of the following:
Assumed
Defined by an expression that is not an initialization expression
A specification inquiry where each designator or function argument is one of the following:
An initialization expression
A variable whose properties inquired about are not assumed, deferred, or defined by an expression that is not an initialization expression
A kind type parameter of the derived type being defined
A DO variable within an array constructor where each scalar integer expression of the corresponding DO loop is an initialization expression
Another initialization expression enclosed in parentheses, where each subscript, section subscript, substring starting and ending point, and type parameter value is an initialization expression
If an initialization expression invokes an inquiry function for a type parameter or an array bound of an object, the type parameter or array bound must be specified in a prior specification statement (or to the left of the inquiry function in the same statement). The previous specification cannot be in the same entity declaration.
-1 + 3 |
|
SIZE(B) |
! B is a named constant |
7_2 |
|
INT(J, 4) |
! J is a named constant |
SELECTED_INT_KIND (2) |
SUM(A) |
Not an allowed function. |
A/4.1 - K**1.2 |
Exponential does not have integer power (A and K are named constants). |
HUGE(4.0) |
Argument is not an integer. |