RPN_COMM

(RPN_COMM_dist)


SUBROUTINE RPN_COMM_dist (garr,gmini,gmaxi,gminj,
     %          gmaxj,nig,njg,nk,ghalox,ghaloy,size,
     %          larr,mini,maxi,minj,maxj,halox,haloy,
     %          periodx,periody,status)

ARGUMENTS

garr Global array sending data integer, real or real*8I
gmini,gmaxi,gminj,gmaxj Size of garr integerI
nig,njg Domain size integerI
nk Z axis size integerI
ghalox,ghaloy Halo size of garr for x and y axis integerI
size 1 for integer and real, 2 for real*8, etc. integerI
larr Local array that will get data integer, real ou real*8O
mini,maxi,minj,maxj Size of larr integerI
halox,haloy Halo size of larr for x and y axis integerI
periodx,periody Global periodicity over x and y axis logicalI
ierr ierr (0 if ok, non-0 if error) integerI


+---------+       +-+ +-+ +-+
|         |       |3| |4| |5|
| On P0   |   ->  +-+ +-+ +-+
|         |       +-+ +-+ +-+
|         |       |0| |1| |2|
+---------+       +-+ +-+ +-+


DESCRIPTION


Distribution of the global data towards sub-domains, local to each PE. The global array on PE 0 is divised and the corresponding data is sent to each processors. If halox/y is non-zero, then the halos will be filled with corresponding values of the global domain.

If the domain is periodic, the halos will be filled accordingly without considering the global halo.

If halox/y > ghalox/y (and no periodicity), then only the PEs on the boundary of the topology will have their outmost part (points outside the global domain) filled with a halo of width ghalox/y


EXAMPLE

call RPN_COMM_dist (garr,gmini,gmaxi,gminj,
     %          gmaxj,nig,njg,nk,ghalox,ghaloy,size,
     %          larr,mini,maxi,minj,maxj,halox,haloy,
     %          periodx,periody,status)


SEE ALSO

RPN_COMM_* 

Return to RPN Libraries home page