Intel® Fortran Compiler 16.0 User and Reference Guide
The ISO_FORTRAN_ENV intrinsic module provides information about the Fortran run-time environment. It takes the following form:
USE, INTRINSIC :: ISO_FORTRAN_ENV
This intrinsic module provides the following named constants you can use to get information on the Fortran environment. They are all scalars of type default integer.
Named Constant |
Definition |
---|---|
ATOMIC_INT_KIND |
Is the kind type parameter used when defining integer variables used in atomic operations. |
ATOMIC_LOGICAL_KIND |
Is the kind type parameter used when defining logical variables used in atomic operations. |
CHARACTER_KINDS |
Is the kind type parameter supported by the processor that is used when defining variables of type character. This is a default integer array constant. The rank of the array is one, its lower bound is one, and its size is the number of character kinds supported. In Intel® Fortran, its value is [1]. |
CHARACTER_STORAGE_SIZE |
Is the size of the character storage unit expressed in bits. |
ERROR_UNIT |
Identifies the preconnected external unit used for error reporting. |
FILE_STORAGE_SIZE |
Is the size of the file storage unit expressed in bits. To use this constant, compiler option assume byterecl must be enabled. |
INPUT_UNIT |
Identifies the preconnected external unit as the one specified by an asterisk in a READ statement. To use this constant, compiler option assume noold_unit_star must be enabled. |
INT8
|
Are the kind type parameters that specify an INTEGER type whose storage size is 8 bits, 16 bits, 32 bits, and 64 bits, respectively. If, for any of these constants, the processor supports more than one kind of that size, the kind value is determined by the processor. If the processor supports no kind of a particular size, that constant is equal to -2 if the processor supports a kind with larger size; otherwise, -1. In Intel Fortran, their respective values are 1, 2, 4, and 8. |
INTEGER_KINDS |
Is the kind type parameter supported by the processor that is used when defining variables of type integer. This is a default integer array constant. The rank of the array is one, its lower bound is one, and its size is the number of integer kinds supported. In Intel Fortran its value is [1, 2, 4, 8]. |
IOSTAT_END |
Is the value assigned to the variable specified in an IOSTAT= specifier if an end-of-file condition occurs during execution of an input/output statement and no error condition occurs. |
IOSTAT_EOR |
Is the value assigned to the variable specified in an IOSTAT= specifier if an end-of-record condition occurs during execution of an input/output statement and no error condition occurs. |
IOSTAT_INQUIRE_INTERNAL_UNIT |
Is the value assigned to the variable specified in an IOSTAT= specifier in an INQUIRE statement if the unit number identifies an internal unit. This is a negative value, indicating an error condition. |
LOGICAL_KINDS |
Is the kind type parameter supported by the processor that is used when defining variables of type logical. This is a default integer array constant. The rank of the array is one, its lower bound is one, and its size is the number of logical kinds supported. In Intel® Fortran its value is [1, 2, 4, 8]. |
NUMERIC_STORAGE_SIZE |
Is the size of the numeric storage unit expressed in bits. |
OUTPUT_UNIT |
Identifies the preconnected external unit as the one specified by an asterisk in a WRITE statement. To use this constant, compiler option assume noold_unit_star must be enabled. |
REAL_KINDS |
Is the kind type parameter supported by the processor that is used when defining variables of type real. This is a default integer array constant. The rank of the array is one, its lower bound is one, and its size is the number of real kinds supported. In Intel Fortran its value is [4, 8, 16]. |
REAL32
|
Are the kind type parameters that specify a real type whose storage size is 32 bits, 64 bits, and 128 bits, respectively. If, for any of these constants, the processor supports more than one kind of that size, the kind value is determined by the processor. If the processor supports no kind of a particular size, that constant is equal to -2 if the processor supports kinds of a larger size; otherwise, -1. In Intel Fortran, their respective values are 4, 8, and 16. |
STAT_LOCKED |
The value assigned to the variable specified in a STAT= specifier of a LOCK statement if the lock variable is locked by the executing image. |
STAT_LOCKED_OTHER_IMAGE |
The value assigned to the variable specified in a STAT= specifier of an UNLOCK statement if the lock variable is locked by another image. |
STAT_STOPPED_IMAGE |
The value assigned to the variable specified in a STAT= specifier of a statement if execution of the statement requires synchronization with an image that has initiated termination of execution (ALLOCATE, DEALLOCATE, LOCK, SYNC ALL, SYNC IMAGES, SYNC MEMORY, or UNLOCK. |
STAT_UNLOCKED |
The value assigned to the variable specified in a STAT= specifier of an UNLOCK statement if the lock variable is unlocked. |
The ISO_FORTRAN_ENV intrinsic module provides the following derived type:
LOCK_TYPE
This is a derived type with private components; none of the components can be allocatable or a pointer. It is an extensible type with no type parameters. It does not have the BIND (C) attribute or type parameters, and is not a sequence type. All components have default initialization.
A scalar variable of type LOCK_TYPE is a lock variable. A lock variable can have one of two states: locked or unlocked. The unlocked state is represented by the one value that is the initial value of a LOCK_TYPE variable. The locked state is represented by all other values. The value of a lock variable can be changed with the LOCK and UNLOCK statements.
A named variable of type LOCK_TYPE must be a coarray. A named variable with a noncoarray sub-component of type LOCK_TYPE must also be a coarray.
A lock variable must not appear in a variable definition context except as the lock-variable in a LOCK or UNLOCK statement, as an allocatable object, or as an actual argument in a reference to a procedure with an explicit interface where the corresponding dummy argument has INTENT (INOUT).
A variable with a subobject of type LOCK_TYPE must not appear in a variable definition context except as an allocatable object or as an actual argument in a reference to a procedure with an explicit interface where the corresponding dummy argument has INTENT (INOUT).