/[MITgcm]/MITgcm/eesupp/src/gather_2d.F
ViewVC logotype

Diff of /MITgcm/eesupp/src/gather_2d.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.2 by dimitri, Tue Feb 18 05:33:53 2003 UTC revision 1.5 by jmc, Sat Nov 5 00:51:06 2005 UTC
# Line 1  Line 1 
1    C $Header$
2    C $Name$
3    
4  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
5    
6        SUBROUTINE GATHER_2D( global, local, myThid )        SUBROUTINE GATHER_2D( global, local, myThid )
# Line 12  C     global,local - working arrays used Line 15  C     global,local - working arrays used
15        Real*8  global(Nx,Ny)        Real*8  global(Nx,Ny)
16        _RL     local(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL     local(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
17    
18          INTEGER iG,jG, i, j, bi, bj
19  #ifdef ALLOW_USE_MPI  #ifdef ALLOW_USE_MPI
       COMMON /GlobalLo/ mpi_myXGlobalLo, mpi_myYGlobalLo  
       INTEGER mpi_myXGlobalLo(nPx*nPy)  
       INTEGER mpi_myYGlobalLo(nPx*nPy)  
   
20        _RL     temp(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL     temp(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
21        INTEGER istatus(MPI_STATUS_SIZE), ierr        INTEGER istatus(MPI_STATUS_SIZE), ierr
22        INTEGER idest, itag, npe, ready_to_receive        INTEGER lbuff, idest, itag, npe, ready_to_receive
23        INTEGER iP, jP, iG,jG, i, j, bi, bj, lbuff  #endif /* ALLOW_USE_MPI */
24    
25  C--   Make everyone wait except for master thread.  C--   Make everyone wait except for master thread.
26        _BARRIER        _BARRIER
27        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
28    
29    #ifndef ALLOW_USE_MPI
30    
31          DO bj=1,nSy
32             DO bi=1,nSx
33                DO j=1,sNy
34                   DO i=1,sNx
35                      iG = myXGlobalLo-1+(bi-1)*sNx+i
36                      jG = myYGlobalLo-1+(bj-1)*sNy+j
37                      global(iG,jG) = local(i,j,bi,bj)
38                   ENDDO
39                ENDDO
40             ENDDO
41          ENDDO
42    
43    #else /* ALLOW_USE_MPI */
44    
45        lbuff = (sNx+2*OLx)*nSx*(sNy+2*OLy)*nSy        lbuff = (sNx+2*OLx)*nSx*(sNy+2*OLy)*nSy
46        idest = 0        idest = 0
47        itag  = 0        itag  = 0
# Line 38  C--   Process 0 fills-in its local data Line 55  C--   Process 0 fills-in its local data
55              DO bi=1,nSx              DO bi=1,nSx
56                 DO j=1,sNy                 DO j=1,sNy
57                    DO i=1,sNx                    DO i=1,sNx
                      iP = (bi-1)*sNx+i  
                      jP = (bj-1)*sNy+j  
58                       iG = mpi_myXGlobalLo(npe+1)-1+(bi-1)*sNx+i                       iG = mpi_myXGlobalLo(npe+1)-1+(bi-1)*sNx+i
59                       jG = mpi_myYGlobalLo(npe+1)-1+(bj-1)*sNy+j                       jG = mpi_myYGlobalLo(npe+1)-1+(bj-1)*sNy+j
60                       global(iG,jG) = local(i,j,bi,bj)                       global(iG,jG) = local(i,j,bi,bj)
# Line 60  C--   Process 0 gathers the local arrays Line 75  C--   Process 0 gathers the local arrays
75                 DO bi=1,nSx                 DO bi=1,nSx
76                    DO j=1,sNy                    DO j=1,sNy
77                       DO i=1,sNx                       DO i=1,sNx
                         iP = (bi-1)*sNx+i  
                         jP = (bj-1)*sNy+j  
78                          iG = mpi_myXGlobalLo(npe+1)-1+(bi-1)*sNx+i                          iG = mpi_myXGlobalLo(npe+1)-1+(bi-1)*sNx+i
79                          jG = mpi_myYGlobalLo(npe+1)-1+(bj-1)*sNy+j                          jG = mpi_myYGlobalLo(npe+1)-1+(bj-1)*sNy+j
80                          global(iG,jG) = temp(i,j,bi,bj)                          global(iG,jG) = temp(i,j,bi,bj)
# Line 81  C--   All proceses except 0 wait to be p Line 94  C--   All proceses except 0 wait to be p
94    
95        ENDIF        ENDIF
96    
97    #endif /* ALLOW_USE_MPI */
98    
99        _END_MASTER( myThid )        _END_MASTER( myThid )
100        _BARRIER        _BARRIER
101    
 #endif /* ALLOW_USE_MPI */  
102        RETURN        RETURN
103        END        END

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.5

  ViewVC Help
Powered by ViewVC 1.1.22