/[MITgcm]/MITgcm/model/src/do_fields_blocking_exchanges.F
ViewVC logotype

Diff of /MITgcm/model/src/do_fields_blocking_exchanges.F

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

revision 1.5 by heimbach, Fri Jul 13 14:26:57 2001 UTC revision 1.25 by jmc, Tue Apr 28 18:01:14 2009 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3    
4    #include "PACKAGES_CONFIG.h"
5  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
6    
7    CBOP
8    C     !ROUTINE: DO_FIELDS_BLOCKING_EXCHANGES
9    C     !INTERFACE:
10        SUBROUTINE DO_FIELDS_BLOCKING_EXCHANGES(myThid)        SUBROUTINE DO_FIELDS_BLOCKING_EXCHANGES(myThid)
11    C     !DESCRIPTION: \bv
12  C     /==========================================================\  C     /==========================================================\
13  C     | SUBROUTINE DO_FIELDS_BLOCKING_EXCHANGES                  |  C     | SUBROUTINE DO_FIELDS_BLOCKING_EXCHANGES                  |
14  C     | o Controlling routine for exchanging edge info.          |  C     | o Controlling routine for exchanging edge info.          |
# Line 12  C     | One key trick used in UV us that Line 17  C     | One key trick used in UV us that
17  C     | arrange our time-stepping loop so that we only need one  |  C     | arrange our time-stepping loop so that we only need one  |
18  C     | edge exchange for the explicit code per timestep.        |  C     | edge exchange for the explicit code per timestep.        |
19  C     \==========================================================/  C     \==========================================================/
20    C     \ev
21    C     !USES:
22        IMPLICIT NONE        IMPLICIT NONE
   
23  C     == Global variables ===  C     == Global variables ===
24  #include "SIZE.h"  #include "SIZE.h"
25  #include "EEPARAMS.h"  #include "EEPARAMS.h"
26    #include "PARAMS.h"
27  #include "DYNVARS.h"  #include "DYNVARS.h"
28  #include "TR1.h"  #ifdef ALLOW_GENERIC_ADVDIFF
29    # include "GAD.h"
30    #endif
31    #ifdef ALLOW_CD_CODE
32    # include "CD_CODE_VARS.h"
33    #endif
34    
35    C     !INPUT/OUTPUT PARAMETERS:
36  C     == Routine arguments ==  C     == Routine arguments ==
37  C     myThid - Thread number for this instance of the routine.  C     myThid - Thread number for this instance of the routine.
38        INTEGER myThid        INTEGER myThid
39    CEOP
40    
41          IF ( .NOT.useOffLine ) THEN
42    C-    Apply Exchanges on dynamics state variable, except in Off-Line mode
43    
44          IF ( .NOT.staggerTimeStep .OR. .NOT.useMultiDimAdvec ) THEN
45           CALL EXCH_UV_XYZ_RL(uVel,vVel,.TRUE.,myThid)
46           IF ( .NOT.implicitIntGravWave )
47         & _EXCH_XYZ_RL( wVel , myThid )
48          ENDIF
49    c     IF ( exactConserv .AND. implicDiv2Dflow .NE. 0. _d 0)
50    c    & _EXCH_XY_RL( etaN , myThid )
51          IF ( .NOT.implicitIntGravWave ) THEN
52           _EXCH_XYZ_RL( theta, myThid )
53           _EXCH_XYZ_RL( salt , myThid )
54          ENDIF
55    
56    #ifdef ALLOW_GENERIC_ADVDIFF
57          IF ( tempSOM_Advection .OR. saltSOM_Advection )
58         &  CALL GAD_SOM_EXCHANGES( myThid )
59    #endif
60    
61  c     _EXCH_XYZ_R8( Gu , myThid )  #ifdef ALLOW_CD_CODE
62  c     _EXCH_XYZ_R8( Gv , myThid )  # ifdef ALLOW_AUTODIFF_TAMC
63  c     _EXCH_XYZ_R8( Gt , myThid )        CALL EXCH_3D_RL( uVelD, Nr, myThid )
64  c     _EXCH_XYZ_R8( Gs , myThid )        CALL EXCH_3D_RL( vVelD, Nr, myThid )
65  c     _EXCH_XYZ_R8( gUNm1 , myThid )  # else
66  c     _EXCH_XYZ_R8( gVNm1 , myThid )        CALL EXCH_UV_DGRID_3D_RL( uVelD,vVelD, .TRUE., Nr, myThid )
67  c     _EXCH_XYZ_R8( gTNm1 , myThid )  # endif
 c     _EXCH_XYZ_R8( gSNm1 , myThid )  
 c     _EXCH_XYZ_R8( uVel , myThid )  
 c     _EXCH_XYZ_R8( vVel , myThid )  
       CALL EXCH_UV_XYZ_RL(uVel,vVel,.TRUE.,myThid)  
       _EXCH_XYZ_R8( theta , myThid )  
       _EXCH_XYZ_R8( salt , myThid )  
       _EXCH_XYZ_R8( Tr1  , myThid )  
   
 #ifdef INCLUDE_CD_CODE  
 c     _EXCH_XYZ_R8( guCD , myThid )  
 c     _EXCH_XYZ_R8( gvCD , myThid )  
       _EXCH_XYZ_R8( uVelD , myThid )  
       _EXCH_XYZ_R8( vVelD , myThid )  
68  #endif  #endif
69          IF ( useDynP_inEos_Zc )
70         & _EXCH_XYZ_RL( totPhiHyd , myThid )
71    C-    if not useOffLine: end
72          ENDIF
73    
74    #ifdef ALLOW_PTRACERS
75          IF (usePTRACERS)
76         &  CALL PTRACERS_FIELDS_BLOCKING_EXCH(myThid)
77    #endif /* ALLOW PTRACERS */
78    
79    #ifdef ALLOW_GGL90
80          IF (useGGL90)
81         &  CALL GGL90_EXCHANGES(myThid)
82    #endif /* ALLOW_GGL90 */
83    
84        RETURN        RETURN
85        END        END
   

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

  ViewVC Help
Powered by ViewVC 1.1.22