13 static MPI_Request requests[
COMPDIM * 2 * 2];
14 static int didpostrecvs[
COMPDIM*2]={0};
16 int dirstart,dirfinish;
17 if(whichdir==-1 || whichdir==1){ dirstart=
X1UP; dirfinish=
X1DN;}
18 if(whichdir==-2 || whichdir==2){ dirstart=
X2UP; dirfinish=
X2DN;}
19 if(whichdir==-3 || whichdir==3){ dirstart=
X3UP; dirfinish=
X3DN;}
34 if(whichdir==-1 || whichdir==-2 || whichdir==-3){
36 for(dir=dirstart;dir<=dirfinish;dir++){
44 else if(whichdir==1 || whichdir==2 || whichdir==3){
58 if((boundstage==
STAGEM1)||(boundstage==
STAGE0&&whichdir==1 || boundstage==
STAGE2&&whichdir==2 || boundstage==
STAGE4&&whichdir==3)){
59 for(dir=dirstart;dir<=dirfinish;dir++){
61 if(didpostrecvs[dir]==0){
62 dualfprintf(
fail_file,
"Did not post recv and tried to already pack: dir=%d\n",dir);
70 if((boundstage==
STAGEM1)||(boundstage==
STAGE1&&whichdir==1 || boundstage==
STAGE3&&whichdir==2 || boundstage==
STAGE5&&whichdir==3)){
71 for(dir=dirstart;dir<=dirfinish;dir++)
if(
dirgenset[boundvartype][dir][DIRIF]){
72 recvwait(dir,requests);
76 for(dir=dirstart;dir<=dirfinish;dir++)
if(
dirgenset[boundvartype][dir][DIRIF]) sendwait(dir,requests);
80 dualfprintf(
fail_file,
"No such whichdir=%d in boundmpiint.c\n",whichdir);
96 #define PACKLOOP_INT(i,j,k,istart,istop,jstart,jstop,kstart,kstop,di,dj,dk) FBOUNDLOOP(pl) SUPERGENLOOP(i,j,k,istart,istop,jstart,jstop,kstart,kstop,di,dj,dk)
148 if(MPIFLOWCONTROL==1){
154 ¬hingsend,0,MPI_INT,
158 ¬hingrecv,0,MPI_INT,
159 MPIid[
dirgenset[boundvartype][dir][DIROTHER]],
162 MPI_COMM_GRMHD,MPI_STATUS_IGNORE);
213 int bound_mpi_int_fakeutoprimmpiinconsisent(
int boundstage,
int finalstep,
int fakedir,
int boundvartype,
PFTYPE (*prim)[
NSTORE2][
NSTORE3][NUMPFLAGS],
int fakevalue)
250 MACP0A1(prim,i,j,k,pl)=fakevalue;
259 int bound_mpi_int(
int boundstage,
int finalstep,
int fakedir,
int boundvartype,
PFTYPE (*prim)[
NSTORE2][
NSTORE3][NUMPFLAGS])
261 int bound_mpi_int_dir(
int boundstage,
int finalstep,
int whichdir,
int boundvartype,
PFTYPE (*prim)[
NSTORE2][
NSTORE3][NUMPFLAGS]);
266 whichdir=-1; bound_mpi_int_dir(boundstage, finalstep, whichdir, boundvartype, prim);
267 whichdir=-2; bound_mpi_int_dir(boundstage, finalstep, whichdir, boundvartype, prim);
268 whichdir=-3; bound_mpi_int_dir(boundstage, finalstep, whichdir, boundvartype, prim);
271 whichdir=1; bound_mpi_int_dir(boundstage, finalstep, whichdir, boundvartype, prim);
272 whichdir=2; bound_mpi_int_dir(boundstage, finalstep, whichdir, boundvartype, prim);
273 whichdir=3; bound_mpi_int_dir(boundstage, finalstep, whichdir, boundvartype, prim);
276 whichdir=-1; bound_mpi_int_dir(boundstage, finalstep, whichdir, boundvartype, prim);
277 whichdir=1; bound_mpi_int_dir(boundstage, finalstep, whichdir, boundvartype, prim);
278 whichdir=-2; bound_mpi_int_dir(boundstage, finalstep, whichdir, boundvartype, prim);
279 whichdir=2; bound_mpi_int_dir(boundstage, finalstep, whichdir, boundvartype, prim);
280 whichdir=-3; bound_mpi_int_dir(boundstage, finalstep, whichdir, boundvartype, prim);
281 whichdir=3; bound_mpi_int_dir(boundstage, finalstep, whichdir, boundvartype, prim);