It is much simpler but less efficient to use prescriptive distributions.
SUBROUTINE Zubbie(x,y,z)
!HPF$ TEMPLATE, DIMENSION(4,6) :: T
!HPF$ PROCESSORS, DIMENSION(2,2) :: P
REAL, INTENT(INOUT), DIMENSION(:,:) :: x, y
REAL, INTENT(INOUT), DIMENSION(:,:) :: z
!HPF$ DISTRIBUTE (BLOCK,BLOCK) ONTO P :: x, y, z
...
may generate,
For more information, click here