Intel® Fortran Compiler 17.0 Developer Guide and Reference
Intel® Fortran expects numeric data to be in native little endian order, in which the least-significant, right-most zero bit (bit 0) or byte has a lower address than the most-significant, left-most bit (or byte). For information on using nonnative big endian and VAX* floating-point formats, see Supported Native and Nonnative Numeric Formats.
The symbol :A in any figure specifies the address of the byte containing bit 0, which is the starting address of the represented data element.
The following table lists the intrinsic data types used by Intel® Fortran, the storage required, and valid ranges. For information on declaring Fortran intrinsic data types, see Type Declarations. For example, the declaration INTEGER(4) is the same as INTEGER(KIND=4) and INTEGER*4.
Data Type |
Storage |
Description |
---|---|---|
BYTE |
1 byte (8 bits) |
A signed integer data type equivalent to INTEGER(1). |
INTEGER |
See INTEGER(2), INTEGER(4), and INTEGER(8) |
A signed integer, either INTEGER(2), INTEGER(4), or INTEGER(8). The size is controlled by the integer-size compiler option. |
INTEGER(1) |
1 byte (8 bits) |
A signed integer value from -128 to 127. |
INTEGER(2) |
2 bytes (16 bits) |
A signed integer value from -32,768 to 32,767. |
INTEGER(4) |
4 bytes (32 bits) |
A signed integer value from -2,147,483,648 to 2,147,483,647. |
INTEGER(8) |
8 bytes (64 bits) |
A signed integer value from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807. |
REAL |
See REAL(4), REAL(8), and REAL(16) |
A real floating-point value, either REAL(4), REAL(8), or REAL(16). The size is controlled by the real-size compiler option. |
DOUBLE PRECISION |
See REAL(8) and REAL(16) |
A double precision floating-point value, either REAL(8) or REAL(16). The size is controlled by the double-size compiler option. |
REAL(4) |
4 bytes (32 bits) |
A single-precision real floating-point value in IEEE binary32 format ranging from 1.17549435E-38 to 3.40282347E38. Values between 1.17549429E-38 and 1.40129846E-45 are denormalized (subnormal). |
REAL(8) |
8 bytes (64 bits) |
A double-precision real floating-point value in IEEE binary64 format ranging from 2.2250738585072013D-308 to 1.7976931348623158D308. Values between 2.2250738585072008D-308 and 4.94065645841246544D-324 are denormalized (subnormal). |
REAL(16) |
16 bytes (128 bits) |
An extended-precision real floating-point value in IEEE binary128 format ranging from 6.4751751194380251109244389582276465524996Q-4966 to 1.189731495357231765085759326628007016196477Q4932. |
COMPLEX |
See COMPLEX(4), COMPLEX(8), and COMPLEX(16) |
A complex floating-point value in a pair of real and imaginary parts that are either REAL(4), REAL(8), or REAL(16). The size is controlled by the real-size compiler option. |
DOUBLE COMPLEX |
See COMPLEX(8) and COMPLEX(16) |
A double complex floating-point value in a pair of real and imaginary parts that are either REAL(8) or REAL(16). The size is controlled by the double-size compiler option. |
COMPLEX(4) |
8 bytes (64 bits) |
A single-precision complex floating-point value in a pair of IEEE binary32 format parts: real and imaginary. The real and imaginary parts each range from 1.17549435E-38 to 3.40282347E38. Values between 1.17549429E-38 and 1.40129846E-45 are denormalized (subnormal). |
COMPLEX(8) |
16 bytes (128 bits) |
A double-precision complex floating-point value in a pair of IEEE binary64 format parts: real and imaginary. The real and imaginary parts each range from 2.2250738585072013D-308 to 1.7976931348623158D308. Values between 2.2250738585072008D-308 and 4.94065645841246544D-324 are denormalized (subnormal). |
COMPLEX(16) |
32 bytes (256 bits) |
An extended-precision complex floating-point value in a pair of IEEE binary128 format parts: real and imaginary. The real and imaginary parts each range from 6.4751751194380251109244389582276465524996Q-4966 to 1.189731495357231765085759326628007016196477Q4932. |
LOGICAL |
See LOGICAL(2), LOGICAL(4), and LOGICAL(8) |
A logical value, either LOGICAL(2), LOGICAL(4), or LOGICAL(8). The size is controlled by the integer-size compiler option. |
LOGICAL(1) |
1 byte (8 bits) |
A logical value of .TRUE. or .FALSE. |
LOGICAL(2) |
2 bytes (16 bits) |
A logical value of .TRUE. or .FALSE. |
LOGICAL(4) |
4 bytes (32 bits) |
A logical value of .TRUE. or .FALSE. |
LOGICAL(8) |
8 bytes (64 bits) |
A logical value of .TRUE. or .FALSE. |
CHARACTER |
1 byte (8 bits) per character |
Character data represented by character code convention. Declarations for Character Types can be in the form CHARACTER(LEN=n) or CHARACTER*n, where n is the number of bytes or n is (*) to indicate passed-length format. |
HOLLERITH |
1 byte (8 bits) per Hollerith character |
A Hollerith constant. |
In addition, you can define Binary Constants.