A specification statement is a nonexecutable statement that declares the attributes of data objects. In Fortran 95/90, 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 specifies the properties (for example: data type, rank, and extent) of data objects.
ALLOCATABLE attribute and statement
Specifies a list of array names that are allocatable (have a deferred-shape).
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.
Defines one or more contiguous areas, or blocks, of physical storage (called common blocks).
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.
EXTERNAL attribute and statement
Allows external (user-supplied) procedures to be used as arguments to other subprograms.
Overrides the implicit data type of names.
INTENT attribute and statement
Specifies the intended use of a dummy argument.
INTRINSIC attribute and statement
Allows intrinsic procedures to be used as arguments to subprograms.
Associates a name with a list of variables. This group name can be referenced in some input/output operations.
OPTIONAL attribute and statement
Allows a procedure reference to omit arguments.
PARAMETER attribute and statement
Defines a named constant.
POINTER attribute and statement
Specifies that an object is a pointer.
PRIVATE and PUBLIC and attributes and statements
Declare the accessibility of entities in a module.
PROTECTED attribute and statement
Specifies limitations on the use of module entities.
Causes the definition and status of objects to be retained after the subprogram in which they are declared completes execution.
TARGET attribute and statement
Specifies a pointer target.
Specifies a type of argument association for a dummy argument.
VOLATILE attribute and statement
Prevents optimizations from being performed on specified objects.