Next:
Data Alignment and Up: High Performance Fortran Previous: Interaction of Communication

Syntax of Directives

HPF directives are consistent with Fortran 90 syntax in the following sense: if any HPF directive were to be adopted as part of a future Fortran standard, the only change necessary to convert an HPF program would be to replace the directive-origin with blanks.

                                                     
H201	hpf-directive-line	is 	directive-origin hpf-directive
 
H202	directive-origin	is 	!HPF$
				or 	CHPF$
				or 	*HPF$

H203	hpf-directive		is 	specification-directive
				or 	executable-directive

H204	specification-directive	is	processors-directive
				os	align-directive
				or	distribute-directive
				or	dynamic-directive
				or	inherit-directive
				or	template-directive
				or	combined-directive
				or	sequence-directive

H205	executable-directive	is	realign-directive
				or	redistribute-directive
				or	independent-directive

Constraint:	An hpf-directive-line cannot be commentary following
		another statement on the same line.

Constraint:	A specification-directive may appear only
		where a declaration-construct may appear.

Constraint:	An executable-directive may appear only where an
		executable-construct may appear.

Constraint:	An hpf-directive-line follows the rules of either
		Fortran 90 free form (3.3.1.1) or fixed form (3.3.2.1)
		comment lines, depending on the source form of the
		surrounding Fortran 90 source form in that
		program unit. (3.3)

An hpf-directive is case insensitive and conforms to the rules for blanks in free source form (3.3.1), even in an HPF program otherwise in fixed source form. However an HPF-conforming processor is not required to diagnose extra or missing blanks in an HPF directive. Note that, due to Fortran 90 rules, the directive-origin in free source form must be the characters !HPF$. HPF directives may be continued, in which case each continued line also begins with a directive-origin. No statements may be interspersed within a continued HPF-directive. HPF directive lines must not appear within a continued statement. HPF directive lines may include trailing commentary.

In either source form, the blanks in the adjacent keywords END FORALL and NO SEQUENCE are optional.

An example of an HPF directive continuation in free source form is:

!HPF$ ALIGN ANTIDISESTABLISHMENTARIANISM(I,J,K) &
!HPF$WITH ORNITHORHYNCHUS_ANATINUS(J,K,I)

An example of an HPF directive continuation in fixed source form follows. Observe that column 6 must be blank, except when signifying continuation.

!HPF$ ALIGN ANTIDISESTABLISHMENTARIANISM(I,J,K)
!HPF$*WITH ORNITHORHYNCHUS_ANATINUS(J,K,I)

This example shows an HPF directive continuation which is ``universal'' in that it can be treated as either fixed source form or free source form. Note that the ``&'' in the first line is in column 73.

!HPF$ ALIGN ANTIDISESTABLISHMENTARIANISM(I,J,K)&
!HPF$&WITH ORNITHORHYNCHUS_ANATINUS(J,K,I)

paula@erc.msstate.edu
Thu Dec 8 16:17:11 CST 1994