# Fortran Wiki iso_fortran_env

## Description

iso_fortran_env is an intrinsic module that provides the following constants, derived types, and intrinsic procedures relating to the Fortran environment:

## Standard

Fortran 2003, extended in Fortran 2008 and TS 18508

## Named Constants

atomic_int_kind
Default-kind integer constant to be used as kind parameter when defining integer variables used in atomic operations. (Fortran 2008 or later.)
atomic_logical_kind
Default-kind integer constant to be used as kind parameter when defining logical variables used in atomic operations. (Fortran 2008 or later.)
character_kinds
Default-kind integer constant array of rank one containing the supported kind parameters of the character type. (Fortran 2008 or later.)
character_storage_size
the size, in bits, of the character storage unit. (Fortran 2003 or later.)
error_unit
the unit number used for error reporting (stderr). (Fortran 2003 or later.)
file_storage_size
the size, in bits, of the file storage unit. (Fortran 2003 or later.)
input_unit
the unit number used for input (stdin). (Fortran 2003 or later.)
int8, int16, int32, int64
Kind type parameters to specify an integer type with a storage size of 16, 32, and 64 bits. It is negative if a target platform does not support the particular kind. (Fortran 2008 or later.)
integer_kinds
Default-kind integer constant array of rank one containing the supported kind parameters of the integer type. (Fortran 2008 or later.)
iostat_end
the value that is assigned to the iostat= specifier if an end-of-file condition occurs during a read statement. (Fortran 2003 or later.)
iostat_eor
the value that is assigned to the iostat= specifier if an end-of-record condition occurs during a read statement. (Fortran 2003 or later.)
iostat_inquire_internal_unit
Scalar default-integer constant, used by inquire for the iostat= specifier to denote an that a unit number identifies an internal unit. (Fortran 2008 or later.)
numeric_storage_size
the size, in bits, of the numeric storage unit. (Fortran 2003 or later.)
logical_kinds
Default-kind integer constant array of rank one containing the supported kind parameters of the logical type. (Fortran 2008 or later.)
output_unit
the unit number used for output (stdout). (Fortran 2003 or later.)
real32, real64, real128
Kind type parameters to specify a REAL type with a storage size of 32, 64, and 128 bits. It is negative if a target platform does not support the particular kind. (Fortran 2008 or later.)
real_kinds
Default-kind integer constant array of rank one containing the supported kind parameters of the real type. (Fortran 2008 or later.)
stat_locked
Scalar default-integer constant used as stat= return value by lock to denote that the lock variable is locked by the executing image. (Fortran 2008 or later.)
stat_locked_other_image
Scalar default-integer constant used as stat= return value by unlock to denote that the lock variable is locked by another image. (Fortran 2008 or later.)
stat_stopped_image
Positive, scalar default-integer constant used as stat= return value if the argument in the statement requires synchronisation with an image, which has initiated the termination of the execution. (Fortran 2008 or later.)
stat_failed_image
Positive, scalar default-integer constant used as stat= return value if the argument in the statement requires communication with an image, which has is in the failed state. (TS 18508 or later.)
stat_unlocked
Scalar default-integer constant used as stat= return value by unlock to denote that the lock variable is unlocked. (Fortran 2008 or later.)

## Derived Types

The module also provides the following derived type:

lock-type
Derived type with private components to be use with the LOCK and UNLOCK statement. A variable of its type has to be always declared as coarray and may not appear in a variable-definition context. (Fortran 2008 or later.)

## Intrinsic Procedures

The module also provides the following intrinsic procedures: compiler_options and compiler_version.