There is a wealth of alignment syntax. There are a number of different ways of expressing the same thing. It can be confusing. The ALIGN statement can be written in two ways.
The attributed (Fortran 90) style of declaration is recommended as it allows concise yet clear alignment:
!HPF$ ALIGN (:,:) WITH T(:,:) :: A, B, C
is equivalent to
!HPF$ ALIGN A(:,:) WITH T(:,:) !HPF$ ALIGN B(:,:) WITH T(:,:) !HPF$ ALIGN C(:,:) WITH T(:,:)
which is more long-winded. This statement aligns A, B and C with T. T is known as the align-target and is now the only object that can be distributed. A, B and C can be thought of as ``hanging off'' T; if T is distributed then so are A, B and C. (Note in this case T can be an array or a TEMPLATE [see later if covered in this course]). The effect here is that A(i,j), B(i,j) and C(i,j) will reside on the same processor as T(i,j).
The colons : in the align statement imply shape conformance ( cf Fortran 90). If A, B, C and T are not the same size and shape then the program is erroneous.
Other alignment syntax will be presented later.
Return to corresponding overview page