Intel® Fortran Compiler 17.0 Developer Guide and Reference
A specification statement is a nonexecutable statement that declares the attributes of data objects. In Fortran 2003 and Standard Fortran, many of the attributes that can be defined in specification statements can also be optionally specified in type declaration statements.
The following are specification statements:
Explicitly specify the properties (for example: data type, rank, and extent) for data objects or functions.
ALLOCATABLE attribute and statement
Specifies that an array is an allocatable array with a deferred shape. The shape of an allocatable array is determined when an ALLOCATE statement is executed, dynamically allocating space for the array.
ASYNCHRONOUS attribute and statement
Specifies that a variable can be used for asynchronous input and output.
AUTOMATIC and STATIC attributes and statements
Control the storage allocation of variables in subprograms.
Specifies that an object is interoperable with C and has external linkage.
CODIMENSION attribute and statement
Specifies that an entity is a coarray.
Defines one or more contiguous areas, or blocks, of physical storage (called common blocks) that can be accessed by any of the scoping units in an executable program. COMMON statements also define the order in which variables and arrays are stored in each common block, which can prevent misaligned data items.
CONTIGUOUS attribute and statement
Specifies that the target of a pointer or an assumed-sized array is contiguous.
Assigns initial values to variables before program execution.
DIMENSION attribute and statement
Specifies that an object is an array, and defines the shape of the array.
Specifies that a storage area is shared by two or more objects in a program unit. This causes total or partial storage association of the objects that share the storage area.
EXTERNAL attribute and statement
Allows an external or dummy procedure to be used as an actual argument.
Overrides the default implicit typing rules for names.
INTENT attribute and statement
Specifies the intended use of one or more dummy arguments.
INTRINSIC attribute and statement
Allows the specific name of an intrinsic procedure to be used as an actual argument. Certain specific function names cannot be used. For more information, see Intrinsic Functions Not Allowed as Actual Arguments.
Associates a name with a list of variables. This group name can be referenced in some input/output operations.
OPTIONAL attribute and statement
Allows dummy arguments to be omitted in a procedure reference.
PARAMETER attribute and statement
Defines a named constant.
POINTER attribute and statement
Specifies that an object or a procedure is a pointer (a dynamic variable).
PRIVATE and PUBLIC and attributes and statements
Specifies the accessibility of entities in a module. (These attributes are also called accessibility attributes.)
PROTECTED attribute and statement
Specifies limitations on the use of module entities.
Causes the values and definition of objects to be retained after execution of a RETURN or END statement in a subprogram.
TARGET attribute and statement
Specifies that an object can become the target of a pointer.
Specifies a type of argument association for a dummy argument.
VOLATILE attribute and statement
Specifies that the value of an object is entirely unpredictable, based on information local to the current program unit.