HP Fortran Programmer Guide (766160-001, March 2014)

The HP Fortran version of the TIMEintrinsic takes a CHARACTER* argument; it will not accept an
integer. Other intrinsics are similarly affected.
Procedure calls and definitions
When defining a procedure or making a procedure call, HP Fortran makes the following
requirements, which HP FORTRAN 77™ overlooks:
Function references must include the parentheses for the argument list, even when no arguments
are supplied. For example, if foois a user-defined function returning CHARACTER*10, HP
FORTRAN 77 permitsLEN(foo) and returns 10. HP Fortran requires LEN(foo()).
The argument list must not contain any extraneous commas, which HP FORTRAN 77 allows
as “placeholders” for missing arguments. For example, the following is acceptable to f77 but
not f90:
call foo (a,)
To specify optional arguments in HP Fortran, use the OPTIONAL statement.
The SYSTEM INTRINSIC directive, by which HP FORTRAN 77 determines interfaces, is not
supported by HP Fortran.
In HP Fortran, recursive procedures must be so declared with the RECURSIVEkeyword; HP
FORTRAN 77 allows recursive procedures by default.
Data types and constants
The following HP FORTRAN 77™ extensions for data types and constants are not supported by
HP Fortran:
Double precision as the default storage for floating-point constants; see “Floating-point
constants” (page 132).
I andJ integer suffixes. To express the HP FORTRAN 77™ constant 10I(or I*2) in HP
Fortran™, use 10_2; for 10J(orJ*4), use 10_4.
Use of the 8#n and 16#n for octal and hex constants, respectively. In HP Fortran, use O"n"
for octal constants and Z"n" for hexadecimal constants.
BOZ constants (that is, constants in binary, octal, or hexadecimal format) in
COMPLEXexpressions.
Non-integer array bounds and character length specifiers
Constant expressions that contain the **(exponentiation) operator, as in PARAMETER
(RV=1**1.2).
Use of thePARAMETER statement without parentheses, as in
PARAMETER i = 1
In free format, f90 treats this statement as an error. In fixed format, f90treats it as an
assignment, identical to:
PARAMETERi = 1
In HP Fortran, use PARAMETER (i=1) instead.
Use of theDATA statement to initialize integers with strings, as in:
DATA i /"abcd"/
Use of COMPLEX(16)temporaries. For example, given the declarations:
COMPLEX(KIND=8) :: foo
REAL(KIND=16) :: bar
Incompatibilities with HP FORTRAN 77 133