Examples of declarative statements:
!HPF$ PROCESSORS, DIMENSION(16) :: P !HPF$ TEMPLATE, & !HPF$ DIMENSION(4,4) :: T1, T2 !HPF$ DISTRIBUTE :: A !HPF$ DISTRIBUTE X(BLOCK) !HPF$ DISTRIBUTE (CYCLIC) :: Y1, Y2 !HPF$ DISTRIBUTE (BLOCK,*) ONTO P :: A
Note: all HPF names must be different to Fortran 90 names.
There are two different declaration styles: the FORTRAN 77 style and the Fortran 90 style. It is recommended that the Fortran 90 style be used. There are one or two instances where the FORTRAN 77 style of declaration leads to ambiguous code; using the Fortran 90 declaration will alleviate the need to remember the specific cases that cannot be expressed in FORTRAN 77 syntax.
Most directives are concerned with data distribution - the INDEPENDENT directive (and its NEW clause) are the only executable directives. Most implementations currently (Jun '96) parse, but do not act upon, the INDEPENDENT directive.
A directive
is continued in the same way as a Fortran 90 statement but the continued line
must also begin with the directive origin (!HPF$
).