Technical data

Alignment, Size, and Value Ranges
25
The following notes provide details on some of the items in Table 2-1.
Table 2-2 lists the approximate valid ranges for REAL and DOUBLE.
Note: When the compiler encounters a REAL*16 declaration, it issues a
warning message. REAL*16 items are allocated 16 bytes of storage per
element, but only the rst 8 bytes of each element are used. Those 8 bytes are
interpreted according to the format for REAL*8 oating numbers.
When the compiler encounters a REAL*16 constant in a source
program, the compiler issues a warning message. The constant is
treated as a double precision (REAL*8) constant. REAL*16 constants
have the same form as double precision constants, except the exponent
indicator is Q instead of D.
Table 2-1 states that DOUBLE PRECISION variables always align on a
double-word boundary. However, Fortran permits these variables to
align on a word boundary if a COMMON statement or equivalencing
requires it.
Forcing INTEGER, LOCICAL, REAL, and COMPLEX variables to
align on a halfword boundary is not allowed, except as permitted by
the align8, align16, and align32 command line options. See
Chapter 1, Compiling, Linking, and Running Programs..
A COMPLEX data item is an ordered pair of real numbers; a
double-complex data item is an ordered pair of double-precision
numbers. In each case, the rst number represents the real part and the
second represents the imaginary part.
LOGICAL data items denote only the logical values TRUE and FALSE
(written as .TRUE. or .FALSE.). However, to provide VMS
compatibility, LOGICAL*1 variables can be assigned all values in the
range 128 to 127.
Table 2-2 Valid Ranges for REAL and DOUBLE Data Types
Range REAL DOUBLE
Maximum 3.40282356 * 10
38
1.7976931348623158 * 10
308
Minimum normalized 1.17549424 * 10
-38
2.2250738585072012 * 10
-308
Minimum denormalized 1.40129846 * 10
-46
2.2250738585072012 * 10
-308