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
- g
Vecteur contenant le tableau local et son halo
real
- minx,maxx,miny,maxy Dimensions totales du vecteur g (nk
pour axe z) integer
- ni,nj,nk
Dimensions du tableau local
integer
- halox,haloy Largeur du halo
en x et en y de glob
integer
- periodx,periody Présence
(ou absence) de périodicité en x ou en y
logical
- gminx,gmaxx,gminy,gmaxy Dimensions totales
du vecteur glob (nk pour axe z) integer
- gni
Taille du tableau global (=taille du problème) en x integer
- npol_row
Nombre de rangées de processeurs (cas semi-lag)
integer
OUT
- glob
Vecteur contenant une rangée du tableau global
real
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