Can align locals to dummies,
SUBROUTINE Soobie(A,B,Res)
IMPLICIT NONE
REAL, DIMENSION(:,:), INTENT(IN) :: A, B
REAL, DIMENSION(:,:), INTENT(OUT) :: Res
REAL, DIMENSION(SIZE(A,1),SIZE(A,2)) :: C
REAL, DIMENSION(SIZE(A,1)/2,SIZE(A,2)/2) :: D
!HPF$ PROCESSORS, DIMENSION(2,2) :: P
!HPF$ ALIGN (:,:) WITH A (:,:) :: C
!HPF$ ALIGN (:,J) WITH A(J*2-1,::2) :: D
!HPF$ DISTRIBUTE (BLOCK,BLOCK) ONTO P :: A, B, Res
...
END SUBROUTINE Soobie
Could also use descriptive distributions, more efficient, less flexible.