diff options
author | allen <allen@b61c5cb5-eaca-4651-9a7a-d64986f99364> | 2000-04-03 21:45:12 +0000 |
---|---|---|
committer | allen <allen@b61c5cb5-eaca-4651-9a7a-d64986f99364> | 2000-04-03 21:45:12 +0000 |
commit | 3d5d36496a7f8df6d1b28c823cc739faa9c9e3fd (patch) | |
tree | 58e63914497efef396898189e43981a8d27346df /src/pGF_FinishRecv.c | |
parent | 39c59ca314108602de8128628d5d517327418375 (diff) |
Removing old files with pGFs
git-svn-id: http://svn.cactuscode.org/arrangements/CactusPUGH/PUGH/trunk@192 b61c5cb5-eaca-4651-9a7a-d64986f99364
Diffstat (limited to 'src/pGF_FinishRecv.c')
-rw-r--r-- | src/pGF_FinishRecv.c | 230 |
1 files changed, 0 insertions, 230 deletions
diff --git a/src/pGF_FinishRecv.c b/src/pGF_FinishRecv.c deleted file mode 100644 index e34e9bf..0000000 --- a/src/pGF_FinishRecv.c +++ /dev/null @@ -1,230 +0,0 @@ - /*@@ - @file pGF_FinishRecv.c - @date Thu Apr 3 11:37:28 1997 - @author Paul Walker - @desc - The routine which finalize the MPI recieves for a grid - function. Critically linked with @seefile pGF_PostRecv.c - and @seefile pGF_PostSend.c - @enddesc - @version $Header$ - @@*/ - -#include <stdio.h> - -#include "cctk.h" -#include "pugh.h" - -void pGF_FinishRecv3(pGH *GH,pGF *GF,int dir); -void pGF_FinishRecv1(pGH *GH,pGF *GF,int dir); - -static char *rcsid = "$Header$"; - - /*@@ - @routine pGF_FinishRecv - @date Thu Apr 3 11:38:07 1997 - @author Paul Walker - @desc - This routine finalizes the MPI communication through a face. - It is crucially linked with @seeroutine pGF_PostRecv and - @seeroutine pGF_PostSend. - <p> - <b>Important!</b> - This routine does <b>not</b> wait on the recieves. - Before it is called, you must do the MPI_Wait or - else you will not get the right answer. for an - example of this, see @seeroutine SyncGroupGF or - @seeroutine SyncGroupGF - @enddesc - @calledby SyncGroupGF - @history - @hdate Nov 4 1998 @hauthor Gabrielle Allen - @hdesc Allow for forced synchronization of all GFs with storage - @endhistory -@@*/ - -void pGF_FinishRecv(pGH *GH, pGF *GF, int dir) -{ -#ifdef MPI - - /* Return if GF has no storage */ - if (!(GF->storage)) return; - - /* Return if communication not required and no forced synchronisation */ - if (!(GH->forceSync || GF->docomm[dir])) return; - - if (GH->neighbors[GH->myproc][dir] >= 0) - { - /* Here wait one at a time, so the others can arrive while - we copy the data back in... */ - -#ifdef DEBUG_PRINT - printf ("FINISHRECV: GF %s Side %d Proc %d request %d\n", - GF->name,dir,GH->myproc,GF->rreq[dir]); -#endif - - if (GH->dim == 3) - { - pGF_FinishRecv3(GH,GF,dir); - } - else if (GH->dim == 1) - { - pGF_FinishRecv1(GH,GF,dir); - } - else - { - CCTK_WARN(0,"PUGH does not support this dimension grid"); - } - - } - -#endif -} - -void pGF_FinishRecv3(pGH *GH,pGF *GF,int dir) -{ - int istart,iend,jstart,jend,kstart,kend; - int ii,jj,kk,xx; - CCTK_CHAR *char_data; - CCTK_INT *int_data; - CCTK_REAL *real_data; - CCTK_COMPLEX *complex_data; - - /* Copy buffer onto GF Storage */ - istart = GH->ghosts[GF->stagger][0][dir][0]; - iend = GH->ghosts[GF->stagger][1][dir][0]; - jstart = GH->ghosts[GF->stagger][0][dir][1]; - jend = GH->ghosts[GF->stagger][1][dir][1]; - kstart = GH->ghosts[GF->stagger][0][dir][2]; - kend = GH->ghosts[GF->stagger][1][dir][2]; - - /* Great now copy. Note ordering is just link in PostSend */ - xx=0; - switch (GF->vtype) - { - case CCTK_VARIABLE_CHAR: - char_data = (CCTK_CHAR *) GF->data; - for (kk=kstart; kk<kend; kk++) - { - for (jj=jstart; jj<jend; jj++) - { - for (ii=istart; ii<iend; ii++) - { - char_data [DATINDEX (GH,ii,jj,kk)] = - ((CCTK_CHAR *) GF->recv_buffer[dir]) [xx++]; - } - } - } - break; - - case CCTK_VARIABLE_INT: - int_data = (CCTK_INT *) GF->data; - for (kk=kstart; kk<kend; kk++) - { - for (jj=jstart; jj<jend; jj++) - { - for (ii=istart; ii<iend; ii++) - { - int_data [DATINDEX (GH,ii,jj,kk)] = - ((CCTK_INT *) GF->recv_buffer[dir]) [xx++]; - } - } - } - break; - - case CCTK_VARIABLE_REAL: - real_data = (CCTK_REAL *) GF->data; - for (kk=kstart; kk<kend; kk++) - { - for (jj=jstart; jj<jend; jj++) - { - for (ii=istart; ii<iend; ii++) - { - real_data [DATINDEX (GH,ii,jj,kk)] = - ((CCTK_REAL *) GF->recv_buffer[dir]) [xx++]; - } - } - } - break; - - case CCTK_VARIABLE_COMPLEX: - complex_data = (CCTK_COMPLEX *) GF->data; - for (kk=kstart; kk<kend; kk++) - { - for (jj=jstart; jj<jend; jj++) - { - for (ii=istart; ii<iend; ii++) - { - complex_data [DATINDEX (GH,ii,jj,kk)] = - ((CCTK_COMPLEX *) GF->recv_buffer[dir]) [xx++]; - } - } - } - break; - - default: - CCTK_WARN (1, "Unsupported variable type in pGF_FinishRecv3"); - return; - } -} - - - -void pGF_FinishRecv1(pGH *GH,pGF *GF,int dir) -{ - int istart,iend; - int ii,xx; - CCTK_CHAR *char_data; - CCTK_INT *int_data; - CCTK_REAL *real_data; - CCTK_COMPLEX *complex_data; - - /* Copy buffer onto GF Storage */ - istart = GH->ghosts[GF->stagger][0][dir][0]; - iend = GH->ghosts[GF->stagger][1][dir][0]; - - /* Great now copy. Note ordering is just link in PostSend */ - xx=0; - switch (GF->vtype) - { - case CCTK_VARIABLE_CHAR: - char_data = (CCTK_CHAR *) GF->data; - for (ii=istart; ii<iend; ii++) - { - char_data [ii] = - ((CCTK_CHAR *) GF->recv_buffer[dir]) [xx++]; - } - break; - - case CCTK_VARIABLE_INT: - int_data = (CCTK_INT *) GF->data; - for (ii=istart; ii<iend; ii++) - { - int_data [ii] = - ((CCTK_INT *) GF->recv_buffer[dir]) [xx++]; - } - break; - - case CCTK_VARIABLE_REAL: - real_data = (CCTK_REAL *) GF->data; - for (ii=istart; ii<iend; ii++) - { - real_data [ii] = - ((CCTK_REAL *) GF->recv_buffer[dir]) [xx++]; - } - break; - - case CCTK_VARIABLE_COMPLEX: - complex_data = (CCTK_COMPLEX *) GF->data; - for (ii=istart; ii<iend; ii++) - { - complex_data [ii] = - ((CCTK_COMPLEX *) GF->recv_buffer[dir]) [xx++]; - } - break; - - default: - CCTK_WARN (1, "Unsupported variable type in pGF_FinishRecv3"); - return; - } -} |