HP Fortran for OpenVMS

HP Fortran for OpenVMS
ELEMENTAL user-defined subprograms (a restricted
form of a pure procedure)
Pointer initialization (initial value)
The NULL intrinsic to nullify a pointer
Derived-type structure initialization
CPU_TIME intrinsic subroutine
KIND argument to CEILING and FLOOR intrinsics
Nested WHERE constructs, masked ELSEWHERE
statement, and named WHERE constructs
Comments allowed in namelist input
Generic identifier in END INTERFACE statements
Minimal width field editing using a numeric edit de-
scriptor with 0 width
Detection of Obsolescent and/or Deleted features
listed in the Fortran 95 standard. HP Fortran flags
these obsolescent and deleted features, but fully sup-
ports them.
HP Fortran includes the following features and enhance-
ments:
CDD (Common Data Dictionary) support and DML
(Data Manipulation Language) support, formerly only
available in the old Fortran 77 (/old_f77) compiler, are
now available in the Fortran 90/95 compiler
Full support for 64-bit address space, including 64-bit
static space
Support for providing cross-reference information to
the DEC Source Code Analyzer component of DEC-
set for OpenVMS
Support for linking against static and shared libraries
Support for creating shareable code to be put into a
shared library
Support for stack-based storage
Support for dynamic memory allocation
Support for reading and writing binary data files in
nonnative formats, including IEEE® (little-endian and
big-endian), VAX, IBM® System\360, and CRA
integer and floating point formats
User control over IEEE floating point exception han-
dling, reporting, and resulting values
Control for memory boundary alignment of items in
COMMON and fields in structures and warnings for
unaligned data
Directives to control listing page titles and subtitles,
object file identification field, COMMON and record
field alignment, and some attributes of COMMON
blocks
Ability to CALL an external function subprogram
7200 Character Statement Length
Free form unlimited line length
Mixing Subroutines/Functions in Generic Interfaces
Composite data declarations using STRUCTURE,
END STRUCTURE, and RECORD statements, and
access to record components through field refer-
ences
Explicit specification of storage allocation units for
data types such as:
INTEGER*4
LOGICAL*4
REAL*4
REAL*8
COMPLEX*8
Support for 64-bit signed integers using INTEGER*8
and LOGICAL*8
Support for 128-bit floating-point real numbers (reals)
using REAL*16 and COMPLEX*32
A set of data types:
BYTE
LOGICAL*1, LOGICAL*2, LOGICAL*4, LOGI-
CAL*8
INTEGER*1, INTEGER*2, INTEGER*4, INTE-
GER*8
REAL*4, REAL*8, REAL*16
COMPLEX*8, COMPLEX*16, DOUBLE COM-
PLEX, COMPLEX*32
POINTER (CRAY style)
Data statement style initialization in type declaration
statements
AUTOMATIC and STATIC statements
Bit constants to initialize LOGICAL, REAL, and INTE-
GER values and participate in arithmetic and logical
expressions
Built-in functions %LOC, %REF, %VAL, and %DE-
SCR
VOLATILE statement
Bit manipulation functions
Binary, hexadecimal, and octal constants and Z and
O format edit descriptors applicable to all data types
I/O unit numbers that can be any nonnegative INTE-
GER*4 value
Variable amounts of data can be read from and writ-
ten to ˆSTREAM˜ files, which contain no record de-
limiters
ENCODE and DECODE statements
2