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 first 8 bytes of each element are used. Those 8 bytes are
interpreted according to the format for REAL*8 floating 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 first 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










