Each intrinsic data type (INTEGER, REAL, COMPLEX, LOGICAL and CHARACTER) has a KIND parameter associated with it. The actual values which the KIND parameter for each intrinsic type can take are implementation-dependent. The Fortran standard specifies that these values must be INTEGER, that there must be at least two REAL KINDs and two COMPLEX KINDs (corresponding in each case to default REAL and DOUBLE PRECISION), and that there must be at least one KIND for each of the INTEGER, CHARACTER and LOGICAL data types.
KIND=1 1-byte
INTEGER
KIND=2 2-byte INTEGER
KIND=4 4-byte INTEGER
default KIND
KIND=8 8-byte INTEGER
KIND=4 4-byte
REAL default
KIND
KIND=8 8-byte REAL
equivalent to DOUBLE PRECISION
KIND=16 16-byte REAL
KIND=4 4-byte
REAL & imaginary
parts default KIND
KIND=8 8-byte REAL
& imaginary parts equivalent to
DOUBLE COMPLEX
KIND=16 16-byte REAL
and imaginary parts equivalent to
COMPLEX*32
KIND=1 1-byte
LOGICAL
KIND=2 2-byte LOGICAL
KIND=4 4-byte LOGICAL
default KIND
KIND=8 8-byte LOGICAL
KIND=1 1-byte CHARACTER default KIND
Except for COMPLEX, the KIND numbers match the size of the type in bytes. For COMPLEX the KIND number is the KIND number of the REAL or imaginary part.
An include file (f90_kinds.f90) providing symbolic definitions, for use when defining KIND type parameters, is included as part of the standard Intel® Fortran release.