This module contains definitions of integer parameters that can be used as kind numbers. Users wishing to write portable software making use of non-default kinds should USE this module and use the parameters instead of numeric values. For example, users should use LOGICAL(KIND=BYTE) instead of LOGICAL(KIND=1). The available KIND parameters are shown below; their exact meanings (i.e. the values they represent) are implementation dependent.
INTEGER,PARAMETER :: SINGLEFor REAL and COMPLEX, selects the default real or default complex kind; this is equivalent to leaving the KIND selector off entirely.
INTEGER,PARAMETER :: DOUBLESelects the double precision real kind; this is equivalent to declaring REAL entities using the DOUBLE PRECISION type specifier, to declaring COMPLEX entities using COMPLEX(KIND(0d0)), and to using the exponent letter D on literal constants.
INTEGER,PARAMETER :: QUADREAL/COMPLEX kind selector for real and complex types with approximately twice the precision of DOUBLE. This might not be available on some systems; on a system without this type, the value of this parameter will be negative.
INTEGER,PARAMETER :: REAL32REAL/COMPLEX kind selector for real and complex types that are represented using 32-bit floating-point numbers.
INTEGER,PARAMETER :: REAL64REAL/COMPLEX kind selector for real and complex types that are represented using 64-bit floating-point numbers.
INTEGER,PARAMETER :: REAL64x2REAL/COMPLEX kind selector for real and complex types that are represented using “double-double” floating-point numbers. A double-double floating-point number consists of two 64-bit values, one of which is at least DIGITS(1._REAL64) smaller than the other; this has almost twice the precision of REAL64 (except when near zero), but a smaller exponent range.
This type is not available on all systems; on a system without this type, the value of this parameter is −1.
INTEGER,PARAMETER :: REAL128
REAL/COMPLEX kind selector for real and complex types that are represented using 128-bit floating-point numbers. This will select a “true 128-bit” floating-point type if one is available, and if not it will select a “double-double” floating-point type if that is available; if no 128-bit floating-point type is available the value of this parameter is -1.
INTEGER,PARAMETER :: INT8INTEGER kind selector for integer types with at least 8 bits of precision.
INTEGER,PARAMETER :: INT16INTEGER kind selector for integer types with at least 16 bits of precision.
INTEGER,PARAMETER :: INT32INTEGER kind selector for integer types with at least 32 bits of precision.
INTEGER,PARAMETER :: INT64INTEGER kind selector for integer types with at least 64 bits of precision.
INTEGER,PARAMETER :: BYTELOGICAL kind selector for logical types occupying only one byte of memory.
INTEGER,PARAMETER :: TWOBYTELOGICAL kind selector for logical types occupying the same space as INTEGER(INT16) entities.
INTEGER,PARAMETER :: WORDLOGICAL kind selector for a 32-bit logical type.
INTEGER,PARAMETER :: LOGICAL64LOGICAL kind selector for a 64-bit logical type.
INTEGER,PARAMETER :: ASCIICHARACTER kind selector for the ASCII character set.
INTEGER,PARAMETER :: JISCHARACTER kind selector for the JIS X 0213:2004 character set.
INTEGER,PARAMETER :: UCS2CHARACTER kind selector for the UCS-2 (Unicode) character set.
INTEGER,PARAMETER :: UCS4CHARACTER kind selector for the UCS-4 (ISO 10646) character set.