RPN_COMM

(RPN_COMM_adj_halox)


        SUBROUTINE
RPN_COMM_adj_halox(larray,minx,maxx,miny,maxy,
     %             ni,nj,nk,halox,haloy,periodx,periody,
     %             glob,gminx,gmaxx,gminy,gmaxy,gni,npol_row)

ARGUMENTS

larray Tableau contenant la tuile locale real or integer O
minx,maxx, miny, maxy Dimensions de larray(nk pour l'axe z) integer I
ni,nj,nk Dimensions du problème local integer I
halox,haloy Largeur du halo en x et y integer I
periodx,periody Periodicité pour x et y logical I
glob Tableau contenant l'équivalent en espace d'une rangée de PE real or integer I
gminx, gmaxx, gminy, gmaxy Dimensions de glob (nk pour l'axe z) integer I
gni Taille du problème global selon x integer I
npol_row Nombre de rangées de processeurs aux pôles (cas semi-lag) integer I
On doit avoir  gminx <= 1-halox <= gni+ halox <= gmaxx

Cas 9 processeurs 3X3, npol_row=1 (voir les additions comme étant matricielles)

glob en entrée         larray en sortie (avec échange adjoint de halo)

   +------+  +--+
P8 |IIIIII|  |OO|  (OO=II+HH+GG)
   +------+  +--+
   +------+  +--+
P7 |HHHHHH|  |NN|  (NN=II+HH+GG)
   +------+  +--+
   +------+  +--+
P6 |GGGGGG|  |MM|  (MM=II+HH+GG)
   +------+  +--+
   +------+  +--+                Problème global
P5 |FF    |  |FF|             en entrée   en sortie
   +------+  +--+             +--------+  +--------+
   +------+  +--+             |GG HH II|  |MM NN OO|
P4 |EE    |  |EE|             |        |  |        |
   +------+  +--+             |DD EE FF|  |DD EE FF|
   +------+  +--+             |        |  |        |
P3 |DD    |  |DD|             |AA BB CC|  |JJ KK LL|
   +------+  +--+             +--------+  +--------+
   +------+  +--+
P2 |CCCCCC|  |LL|  (LL=AA+BB+CC)
   +------+  +--+
   +------+  +--+
P1 |BBBBBB|  |KK|  (KK=AA+BB+CC)
   +------+  +--+
   +------+  +--+
P0 |AAAAAA|  |JJ|  (JJ=AA+BB+CC)
   +------+  +--+


DESCRIPTION

Routine qui prépare et envoie le tableau glob à la sous-routine RPN_COMM_adj_halo et qui retourne larray, un vecteur qui contient
- Le tableau g local après échange adjoint de halo si le processeur concerné n'est pas dans la région où se fait l'échange semi-lagrangien
- Un tableau qui contient la somme des éléments correspondants de chaque tableau local si le processeur se situe dans la région semi-lagragienne (pe_mex < npol_row ou pe_mex >= pe_nx-npol_row)

EXEMPLE

call rpn_comm_xch_halo(tableau,minx,maxx,miny,maxy,ni,nj,nk,1,1,periodx, periody,gni,npol_row) 

VOIR AUSSI

RPN_COMM_xch_halo
RPN_COMM_* 

Return to RPN Libraries home page