HPF alters two classes of Fortran 90 intrinsics:
The first category of intrinsics adds two system inquiry procedures, NUMBER_OF_PROCESSORS and PROCESSORS_SHAPE, which have been met before. They can be used in declarations but cannot be used to initialise varaibles, for example,
INTEGER, DIMENSION(NUMBER_OF_PROCESSORS()) :: A
is OK but
INTEGER, PARAMETER :: NOP = NUMBER_OF_PROCESSORS() INTEGER, DIMENSION(NOP) :: A
is not (either with or without the PARAMETER attribute). This is because, even though the two intrinsics return a value that is constant for one run of a program, the value may differ during other runs.
The second category adds one new computational intrinsic and extends two others. The first procedures is ILEN which is an elemental function which returns the number of bits needed to store its INTEGER valued argument.
The DIM= specifier in the location intrinsics behaves exactly as it does with other intrinsics.
Return to corresponding overview page