Table E-1 lists the Compaq Fortran 77 data types and valid numeric ranges.
Data Type | Description |
---|---|
BYTE | A signed integer data type equivalent to INTEGER*1. |
INTEGER | A signed integer whose size is controlled by the INTEGER_SIZE compiler option (see Section E.4). |
INTEGER*1 | A signed integer value whose range is -128 to 127 (-2**7 to 2**7-1). The range for an unsigned value is 0 to 255 (2**8-1).[1] |
INTEGER*2 | A signed integer value whose range is -32,768 to 32,767 (-2**15 to 2**15-1). The range for an unsigned value is 0 to 65535 (2**16-1).[1] |
INTEGER*4 | A signed integer value whose range is -2,147,483,648 to 2,147,483,647 (-2**31 to 2**31-1). The range for an unsigned value is 0 to 4,294,967,295 (2**32-1).[1] |
INTEGER*8 | A signed integer value whose range is -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 (-2**63 to 2**63-1). The range for an unsigned value is 0 to 18446744073709551615 (2**64-1).[1] |
LOGICAL | A logical value whose size is controlled by the INTEGER_SIZE compiler option (see Section E.4). |
LOGICAL*1 | A logical value of .TRUE. or .FALSE..[2] |
LOGICAL*2 | A logical value of .TRUE. or .FALSE..[2] |
LOGICAL*4 | A logical value of .TRUE. or .FALSE..[2] |
LOGICAL*8 | A logical value of .TRUE. or .FALSE..[2] |
REAL | A real floating-point number whose size is controlled by the REAL_SIZE compiler option (see Section E.4). |
REAL*4 | A single-precision real floating-point
value whose range depends on its format.
The range for an S_floating[5] value is 1.17549435E-38 to 3.40282347E38. Values between 1.17549429E-38 and 1.40129846E-45 are denormalized.[4] You cannot write a constant for a denormalized number. The range for an F_floating[5] value is approximately 0.293873588E-38 to 1.7014117E38. |
DOUBLE PRECISION
REAL*8 |
A double-precision real floating-point value
whose range depends on its format.
The range for a T_floating[3] value is 2.2250738585072013D-308 to 1.7976931348623158D308. Values between 2.2250738585072008D-308 and 4.94065645841246544D-324 are denormalized.[4] You cannot write a constant for a denormalized number. The range for a D_floating[5] value is approximately 0.2938735877055719D-38 to 1.70141183460469229D38. The range for a G_floating[5] value is approximately 0.5562684646268004D-308 to 0.89884656743115785407D308. |
REAL*16 (VMS, U*X) | An
extended-precision real floating-point value whose range depends
on its format.
The range for an X_floating[3] value is approximately 6.4751751194380251109244389582276465524996Q-4966 to 1.189731495357231765085759326628007016196477Q4932. The range for an H_floating[6] value is approximately 0.84*10**-4932 through 0.59*10**4932. |
COMPLEX | A complex floating-point number whose size is controlled by the REAL_SIZE compiler option (see Section E.4). |
COMPLEX*8 | A single-precision complex floating-point value whose real and imaginary parts consist of REAL*4 numbers. For the ranges, see REAL*4 in this table. |
DOUBLE COMPLEX COMPLEX*16 |
A double-precision complex floating-point value whose real and imaginary parts consist of REAL*8 numbers. For the ranges, see REAL*8 in this table. |
CHARACTER | A character datum represented by character code convention. Character declarations can be in the form CHARACTER*len, where len is the number of bytes, or CHARACTER*(*), indicating passed-length format. |
HOLLERITH | A Hollerith constant. |
[1] This range is allowed for assignment to variables of this type, but the data type is treated as signed in arithmetic operations. [2] Logical data type ranges correspond to their comparable integer data type ranges. For example, in LOGICAL*2 L, the range for L is the same as the range for INTEGER*2 integers. [3] Alpha only [4] For more information on floating-point underflow, see your user manual. [5] VMS only [6] VAX only |
For details on data type storage requirements, see Table 2-1.