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

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

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

revision 1.1 by adcroft, Tue May 29 14:06:38 2001 UTC revision 1.2 by cnh, Fri Sep 21 03:55:50 2001 UTC
# Line 2  C $Header$ Line 2  C $Header$
2  C $Name$  C $Name$
3  #include "CPP_EEOPTIONS.h"  #include "CPP_EEOPTIONS.h"
4    
5    CBOP
6    
7    C     !ROUTINE: EXCH_RX_SEND_PUT_X
8    
9    C     !INTERFACE:
10        SUBROUTINE EXCH_RX_SEND_PUT_X( array,        SUBROUTINE EXCH_RX_SEND_PUT_X( array,
11       I             myOLw, myOLe, myOLs, myOLn, myNz,       I             myOLw, myOLe, myOLs, myOLn, myNz,
12       I             exchWidthX, exchWidthY,       I             exchWidthX, exchWidthY,
13       I             thesimulationMode, thecornerMode, myThid )       I             thesimulationMode, thecornerMode, myThid )
 C     /==========================================================\  
 C     | SUBROUTINE EXCH_RX_SEND_PUT_X                            |  
 C     | o "Send" or "put" X edges for RX array.                  |  
 C     |==========================================================|  
 C     | Routine that invokes actual message passing send or      |  
 C     | direct "put" of data to update X faces of an XY[R] array.|  
 C     \==========================================================/  
14        IMPLICIT NONE        IMPLICIT NONE
15    C     !DESCRIPTION:
16    C     *==========================================================*
17    C     | SUBROUTINE EXCH_RX_SEND_PUT_X                            
18    C     | o "Send" or "put" X edges for RX array.                  
19    C     *==========================================================*
20    C     | Routine that invokes actual message passing send or      
21    C     | direct "put" of data to update X faces of an XY[R] array.
22    C     *==========================================================*
23    
24    C     !USES:
25  C     == Global variables ==  C     == Global variables ==
26  #include "SIZE.h"  #include "SIZE.h"
27  #include "EEPARAMS.h"  #include "EEPARAMS.h"
28  #include "EESUPPORT.h"  #include "EESUPPORT.h"
29  #include "EXCH.h"  #include "EXCH.h"
30    
31    C     !INPUT/OUTPUT PARAMETERS:
32  C     == Routine arguments ==  C     == Routine arguments ==
33  C     array - Array with edges to exchange.  C     array :: Array with edges to exchange.
34  C     myOLw - West, East, North and South overlap region sizes.  C     myOLw :: West, East, North and South overlap region sizes.
35  C     myOLe  C     myOLe
36  C     myOLn  C     myOLn
37  C     myOLs  C     myOLs
38  C     exchWidthX - Width of data region exchanged.  C     exchWidthX :: Width of data region exchanged.
39  C     exchWidthY  C     exchWidthY
40  C     theSimulationMode - Forward or reverse mode exchange ( provides  C     theSimulationMode :: Forward or reverse mode exchange ( provides
41  C                         support for adjoint integration of code. )  C                          support for adjoint integration of code. )
42  C     theCornerMode     - Flag indicating whether corner updates are  C     theCornerMode     :: Flag indicating whether corner updates are
43  C                         needed.  C                          needed.
44  C     myThid            - Thread number of this instance of S/R EXCH...  C     myThid            :: Thread number of this instance of S/R EXCH...
45  C     eBl               - Edge buffer level  C     eBl               :: Edge buffer level
46        INTEGER myOLw        INTEGER myOLw
47        INTEGER myOLe        INTEGER myOLe
48        INTEGER myOLs        INTEGER myOLs
# Line 48  C     eBl               - Edge buffer le Line 57  C     eBl               - Edge buffer le
57        INTEGER theCornerMode        INTEGER theCornerMode
58        INTEGER myThid        INTEGER myThid
59    
60    C     !LOCAL VARIABLES:
61  C     == Local variables ==  C     == Local variables ==
62  C     I, J, K, iMin, iMax, iB    - Loop counters and extents  C     I, J, K, iMin, iMax, iB    :: Loop counters and extents
63  C     bi, bj    C     bi, bj  
64  C     biW, bjW                   - West tile indices  C     biW, bjW                   :: West tile indices
65  C     biE, bjE                   - East tile indices  C     biE, bjE                   :: East tile indices
66  C     eBl                        - Current exchange buffer level  C     eBl                        :: Current exchange buffer level
67  C     theProc, theTag, theType,  - Variables used in message building  C     theProc, theTag, theType,  :: Variables used in message building
68  C     theSize  C     theSize
69  C     westCommMode               - Working variables holding type  C     westCommMode               :: Working variables holding type
70  C     eastCommMode                 of communication a particular  C     eastCommMode                  of communication a particular
71  C                                  tile face uses.  C                                   tile face uses.
72        INTEGER I, J, K, iMin, iMax, iB        INTEGER I, J, K, iMin, iMax, iB
73        INTEGER bi, bj, biW, bjW, biE, bjE        INTEGER bi, bj, biW, bjW, biE, bjE
74        INTEGER eBl        INTEGER eBl
# Line 91  C                Write data-ready Ack fo Line 101  C                Write data-ready Ack fo
101  C                tile  C                tile
102  C                Sync. memory  C                Sync. memory
103  C        C      
104    CEOP
105    
106        DO bj=myByLo(myThid),myByHi(myThid)        DO bj=myByLo(myThid),myByHi(myThid)
107         DO bi=myBxLo(myThid),myBxHi(myThid)         DO bi=myBxLo(myThid),myBxHi(myThid)
108    

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

  ViewVC Help
Powered by ViewVC 1.1.22