The table below lists the intrinsic data types provided by the NAG Fortran Compiler together with their kind numbers. There are three possible schemes for the intrinsic kind type parameters: the default mode of operation (which may be specified explicitly by the -kind=sequential option), the “byte” numbering scheme (specified by the -kind=byte option) and the “unique” numbering scheme (specified by the -kind=unique).
Type | KIND Number | KIND Number | KIND Number | Name | Description |
Name | (sequential) | (byte) | (unique) | ||
REAL | 1 | 4 | 301 | REAL32 * | Single precision floating-point |
REAL | 2 | 8 | 302 | REAL64 * | Double precision floating-point |
REAL | 3 | 16 | 303 | REAL128 * | Quad precision floating-point |
REAL | 16 | 2 | 304 | REAL16 * | Half precision floating-point |
COMPLEX | 1 | 4 | 301 | REAL32 * | Single precision complex |
COMPLEX | 2 | 8 | 302 | REAL64 * | Double precision complex |
COMPLEX | 3 | 16 | 303 | REAL128 * | Quadruple precision complex |
COMPLEX | 16 | 2 | 304 | REAL16 * | Half precision complex |
LOGICAL | 1 | 1 | 201 | BYTE | Single byte logical |
LOGICAL | 2 | 2 | 202 | TWOBYTE | Double byte logical |
LOGICAL | 3 | 4 | 203 | WORD | Default logical |
LOGICAL | 4 | 8 | 204 | LOGICAL64 | Eight byte logical |
INTEGER | 1 | 1 | 101 | INT8 * | 8-bit integer |
INTEGER | 2 | 2 | 102 | INT16 * | 16-bit integer |
INTEGER | 3 | 4 | 103 | INT32 * | 32-bit (default) integer |
INTEGER | 4 | 8 | 104 | INT64 * | 64-bit integer |
CHARACTER | 1 | 1 | 646 | ASCII | ASCII or ISO 8859-1 character |
CHARACTER | 2 | 2 | 213 | JIS | JIS X 0213 character |
CHARACTER | 3 | 3 | 5323 | UCS2 | Unicode (UCS-2) character |
CHARACTER | 4 | 4 | 10646 | UCS4 | ISO 10646 (UCS-4) character |
The Name column of the table indicates the name provided by the intrinsic
module F90_KIND
; the ones marked
*
are also provided by the
standard intrinsic module ISO_FORTRAN_ENV
.
Using these names avoids the portability problems that arise if the kind numbers
are hard-coded.
Note that on all machines except Sun Solaris with the SunPro C compiler, quadruple precision is actually “double double” precision; this provides nearly twice the precision of Double precision but with a reduced exponent range.