RPN_COMM

(RPN_COMM_xch_halox)



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

ARGUMENTS

IN OUT On notera que halox et haloy se rapportent à la taille du tableau global.
On doit avoir  gminx <= 1-halox <= gni+ halox <= gmax


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

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

   +--+  +------+
P8 |II|  |GGHHII|  
   +--+  +------+
   +--+  +------+
P7 |HH|  |GGHHII|
   +--+  +------+
   +--+  +------+
P6 |GG|  |GGHHII|
   +--+  +------+
   +--+  +------+
P5 |FF|  |FF    |
   +--+  +------+
   +--+  +------+
P4 |EE|  |EE    |
   +--+  +------+
   +--+  +------+
P3 |DD|  |DD    |
   +--+  +------+
   +--+  +------+
P2 |CC|  |AABBCC|  
   +--+  +------+
   +--+  +------+
P1 |BB|  |AABBCC|
   +--+  +------+
   +--+  +------+
P0 |AA|  |AABBCC|
   +--+  +------+


DESCRIPTION

Routine qui prépare et envoie le tableau g à la sous-routine RPN_COMM_xch_halo et qui retourne glob, un vecteur qui contient
- Le tableau g local après échange 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 concaténation des processeurs de la rangée du processeur local (voir la documentation de RPN_COMM_xch_halo) 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