Recall an earlier example,
PROGRAM Warty IMPLICIT NONE REAL, DIMENSION(4) :: C REAL, DIMENSION(8) :: D REAL, DIMENSION(2) :: E !HPF$ TEMPLATE, DIMENSION(8) :: T !HPF$ ALIGN D(:) WITH T(:) !HPF$ ALIGN C(:) WITH T(::2) !HPF$ ALIGN E(:) WITH T(::4) !HPF$ DISTRIBUTE (BLOCK) :: T C = 1; D = 2 E = D(::4) + C(::2) END PROGRAM Warty
this time the directives use an intermediate template.
For more information, click here