<< >> Title Contents Index Home Help

3 Restrictions


This section lists Fortran 90 and HPF features that are not supported in PGHPF 3.0.

3.1 Internal Procedures and Recursion

Internal procedures and recursion are not supported in the Solaris/SPARC translator and HP Exemplar versions of PGHPF 3.0. In both cases, PGHPF still generates F77-style output for those platforms.

3.2 Fortran 90 Pointers

* Objects with the POINTER attribute cannot be DYNAMIC

* COMPLEX objects cannot have the TARGET attribute when compiling for the IBM RS6000/SP

* Objects with the TARGET attribute cannot have CYCLIC or CYCLIC(N) distributions. It may not be possible to detect this at compile-time in all cases, for example when a CYCLIC actual argument is passed to a dummy with the TARGET attribute

* A scalar POINTER cannot be associated with a distributed array element. For example

integer, pointer :: p
integer, target :: a(10),b(10)
!hpf$ distribute (block) :: a
p=> a(1) ! unsupported
p => b(1) ! supported
end

* A POINTER dummy variable cannot be used to declare other variables such as automatic arrays using the lbound(), ubound() and size() intrinsics. For example:

subroutine sub(p)
integer, pointer, dimensions(:,:) :: p
integer, dimension(lbound(p,1): &
+ubound(p,1),size(p,2)) :: a ! does not work

3.3 Fortran 90 Derived Types

* The DATA statement does not work with arrays of derived type. As a work-around, use entity-style initialization

* In the Solaris/SPARC translator and HP Exemplar versions of PGHPF 3.0, the following Fortran 90 intrinsic procedures do not work with variables or arrays of derived type:


Table 3-1 - Restricted F90 Intrinsics

CSHIFT


PACK


SPREAD


UNPACK


EOSHIFT


RESHAPE


TRANSFER



LBOUND


SHAPE


TRANSPOSE



MERGE


SIZE


UBOUND



* In the Solaris/SPARC translator and HP Exemplar versions of PGHPF 3.0, the following HPF Library and intrinsic procedures do not work with variables or arrays of derived type:


Table 3-2 - Restricted HPF Library Routines

COPY_PREFIX


COPY_SCATTER


HPF_ALIGNMENT


COPY_SUFFIX


HPF_DISTRIBUTE


HPF_TEMPLATE


3.4 Named Constants

Named multi-dimensional array constants cannot be subscripted to yield a constant value. For example, given the declaration:

   
INTEGER, PARAMETER, DIMENSION(2,2) ::
& X = RESHAPE((/1,2,3,4/),(/2,2/))

the following will not work:

   
INTEGER, PARAMETER :: Y = X(1,2) ! Will not work

Because of this restriction, named multi-dimensional array constants cannot be used in:

* Values in CASE statements

* KIND parameters in declaration statements

* KIND arguments to intrinsics

* Initial values in parameter statements or type declaration statements

3.5 HPF Library

The HPF_LIBRARY routines GRADE_UP, GRADE_DOWN, SORT_UP and SORT_DOWN require a DIM argument. These routines do not support cyclic distributions of the selected dimension.

3.6 PURE Procedures

The PGHPF 3.0 implementation of PURE conforms to the HPF 2.0 language specification, with the following exception: in PURE subroutines PGHPF will not generate any communication for distributed COMMON variables or distributed MODULE variables. The user is advised to pass distributed COMMON variables as arguments to a PURE subroutine, or use non-distributed COMMON variables.

3.7 Optional Arguments

An F90 optional argument cannot be used as an align-target for any variable that is not also optional. If an alignee is present, then the align-target must also be present.

3.8 DISTRIBUTE and ALIGN

The following compile-time warning message:

PGHPF-W-301 - Non-replicated mapping for character/struct/union array, char_table, ignored (file.F: lineno)

indicates that PGHPF 3.0 ignores the distribution directives applied to character arrays, arrays subject to SEQUENCE directives, and NAMELIST arrays.

3.9 INDEPENDENT loops

At present, only INDEPENDENT loops containing FORTRAN 77 constructs can be parallelized. In particular, the presence of array assignments, WHERE statements, FORALL statements, and ALLOCATE statements will eliminate INDEPENDENT loops from consideration for parallelization.


<< >> Title Contents Index Home Help