Directives take effect at allocation, for example,
REAL, ALLOCATABLE, DIMENSION(:,:) :: A INTEGER :: ierr !HPF$ PROCESSORS, DIMENSION(10,10) :: P !HPF$ DISTRIBUTE (BLOCK,CYCLIC) :: A ... ALLOCATE(A(100,20),stat=ierr) !---> A automatically distributed here ! block size in dim=1 is 10 elements ! ... DEALLOCATE(A) END
The blocksize is determined immediately after allocation.
Once allocated, these arrays behave in the same way as regular arrays.
For more information, click here