HP Fortran for OpenVMS

HP Fortran for OpenVMS
ACCEPT, TYPE, and REWRITE input/output state-
ments
DEFINE FILE, UNLOCK, and DELETE statements
USEROPEN subroutine invocation at file OPEN time
Support for reading nondelimited character strings as
input for character NAMELIST items
Debug statements in source
Generation of a source listing file with optional ma-
chine code representation of the executable source
Variable format expressions in a FORMAT statement
Optional run-time bounds checking of array sub-
scripts and character substrings
31-character identifiers that can include dollar sign
($) and underscore (_)
Support for executing in-line assembler code using
the ASM intrinsics (Alpha only)
Support for the supercomputer intrinsics POPCNT,
POPPAR, LEADZ, TRAILZ, and MULT_HIGH
Language elements that support the various ex-
tended range and extended precision floating point
architectural features:
32-bit VAX F_floating data type, with an 8-bit ex-
ponent and 24-bit mantissa, which provides a
range of 0.293873588E-38 to 1.7014117E38 and
a precision of typically 7 decimal digits. Calcu-
lations with F_floating data on I64 are performed
using the S_floating data type..
64-bit VAX D_floating data type, with an 8-
bit exponent and 56-bit mantissa, which pro-
vides a range of 0.2938735877055719D-38 to
1.70141183460469229D38 and a precision of typ-
ically 16 decimal digits. Calculations with D_
floating data on Alpha systems use G_floating
precision (53-bit instead of 56-bit mantissa). Cal-
culations with D_floating data on I64 are per-
formed using the T_floating data type.
64-bit VAX G_floating data type, with an 11-
bit exponent and 53-bit mantissa, which pro-
vides a range of 0.5562684646268004D-308 to
0.89884656743115785407D308 and a precision
of typically 15 decimal digits. Calculations with
G_floating data on I64 are performed using the
T_floating data type.
32-bit IEEE S_floating data type, with an 8-
bit exponent and 24-bit mantissa, which pro-
vides a range of 1.17549435E-38 (normalized) to
3.40282347E38 (the IEEE denormalized limit is
1.40129846E-45) and a precision of typically 7
decimal digits
64-bit IEEE T_floating data type, with an 11-bit
exponent and 53-bit mantissa, which provides
a range of 2.2250738585072013D-308 (normal-
ized) to 1.7976931348623158D308 (the IEEE de-
normalized limit is 4.94065645841246544D-324)
and a precision of typically 15 decimal digits
128-bit IEEE extended Alpha X_floating data type,
with a 15-bit exponent and a 113-bit mantissa,
which provides a range of approximately 6.48Q-
4966 to 1.18Q4932 and a precision of typically 33
decimal digits
The following combinations of floating types may
be specified:
F, G and X (the default on Alpha)
F, D and X (VAX)
S, T and X (IEEE) (the default on I64)
Command line control for:
The size of default INTEGER, REAL, and DOU-
BLE PRECISION data items
The levels and types of optimization to be applied
to the program
The directories to search for INCLUDE files
Inclusion or suppression of various compile-time
warnings
Inclusion or suppression of run-time checking for
various I/O and computational errors
Control over whether compilation terminates after
a specific number of errors has been found
Choosing whether executing code will be thread-
reentrant
Internal procedures can be passed as actual argu-
ments to procedures
Kind types for all of the hardware-supported data
types:
For 1-, 2-, 4-, and 8-byte LOGICAL data:
LOGICAL (KIND=1)
LOGICAL (KIND=2)
LOGICAL (KIND=4)
LOGICAL (KIND=8)
For 1-, 2-, 4-, and 8-byte INTEGER data:
INTEGER (KIND=1)
INTEGER (KIND=2)
INTEGER (KIND=4)
INTEGER (KIND=8)
For 4-, 8-, and 16-byte REAL data:
REAL (KIND=4)
REAL (KIND=8)
REAL (KIND=16)
3