/[MITgcm]/MITgcm/eesupp/src/exch_xy_rx.template
ViewVC logotype

Diff of /MITgcm/eesupp/src/exch_xy_rx.template

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

revision 1.1 by adcroft, Wed Mar 28 19:48:51 2001 UTC revision 1.2 by adcroft, Tue May 29 14:01:36 2001 UTC
# Line 0  Line 1 
1    C $Header$
2    C $Name$
3    
4    #include "CPP_EEOPTIONS.h"
5    
6          SUBROUTINE EXCH_XY_RX(
7         U                       phi,
8         I                       myThid )
9    C     /==========================================================\
10    C     | SUBROUTINE EXCH_XY_RX                                    |
11    C     | o Handle exchanges for _RX   , two-dimensional arrays.   |
12    C     |==========================================================|
13    C     | Do true shared-memory data transfers and "messaging"     |
14    C     | tranfers for blocking case of data transfers.            |
15    C     | Applications call this routine using                     |
16    C     |  CALL EXCH..( x, myThid )                                |
17    C     | where x is a two-dimensional array with overlaps.        |
18    C     | This routine does true-shared-memory copies for blocks   |
19    C     | within a thread. It will also do MPI meesaging between   |
20    C     | different processes.                                     |
21    C     \==========================================================/
22          IMPLICIT NONE
23    
24    C     === Global data ===
25    #include "SIZE.h"
26    #include "EEPARAMS.h"
27    #include "EESUPPORT.h"
28    
29    C     === Routine arguments ===
30    C     phi    - Array with overlap regions are to be exchanged
31    C     myThid - My thread id.
32          _RX phi(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
33          INTEGER myThid
34    
35    C     == Local variables ==
36    C     OL[wens]       - Overlap extents in west, east, north, south.
37    C     exchWidth[XY]  - Extent of regions that will be exchanged.
38          INTEGER OLw, OLe, OLn, OLs, exchWidthX, exchWidthY, myNz
39    
40          OLw        = OLx
41          OLe        = OLx
42          OLn        = OLy
43          OLs        = OLy
44          exchWidthX = OLx
45          exchWidthY = OLy
46          myNz       = 1
47    C     ** NOTE ** The exchange routine we use here does not
48    C                require the preceeding and following barriers.
49    C                However, the slow, simple exchange interface
50    C                that is calling it here is meant to ensure
51    C                that threads are synchronised before exchanges
52    C                begine.
53          IF (useCubedSphereExchange) THEN
54           CALL EXCH_RX_CUBE( phi,
55         I            OLw, OLe, OLs, OLn, myNz,
56         I            exchWidthX, exchWidthY,
57         I            FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
58          ELSE
59           CALL EXCH_RX( phi,
60         I            OLw, OLe, OLs, OLn, myNz,
61         I            exchWidthX, exchWidthY,
62         I            FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
63          ENDIF
64    
65          RETURN
66          END

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

  ViewVC Help
Powered by ViewVC 1.1.22