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