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 Tableau global qui sera distribué integer, real ou real*8I
gmini,gmaxi,gminj,gmaxj Dimensions de garr integerI
nig,njg Taille du domaine global de calcul integerI
nk Taille de l'axe Z integerI
ghalox,ghaloy Taille du halo du tableau garr integerI
size 1 pour integer et real, 2 pour real*8, etc. integerI
larr Tableaux locaux qui recevront les donné integer, real ou real*8O
mini,maxi,minj,maxj Taille de larr integerI
halox,haloy Taille du halo de larr integerI
periodx,periody Périodicité globale sur l'axe x et y logicalI
ierr ierr (0 if ok, non-0 if error) integerI


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


DESCRIPTION


Distribution d'un domaine global vers des sous-domaines locaux. Le tableau global sur le processeur 0 est fractionné vers les autres processeurs. Si halox ou haloy est non nul, alors les halos spécifiés seront remplis avec les valeurs correspondantes du tableau global.

Si on a la périodicité dans une direction, les halos locaux seront remplis en conséquence, sans utiliser le halo global.

Si halox/y > ghalox/y (et pas de périodicité en x/y), alors on se limitera pour les processeurs limitrophes à remplir un halo de largeur ghalox/y.
 


EXEMPLE

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)


VOIR AUSSI

RPN_COMM_* 

Return to RPN Libraries home page