Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:36:38 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
fb5eaa30cd Jean*0001 #include "CPP_OPTIONS.h"
                0002 
                0003 CBOP
                0004 C     !ROUTINE: DO_STAGGER_FIELDS_EXCHANGES
                0005 C     !INTERFACE:
                0006       SUBROUTINE DO_STAGGER_FIELDS_EXCHANGES(myTime, myIter, myThid)
                0007 C     !DESCRIPTION: \bv
                0008 C     *==========================================================*
                0009 C     | SUBROUTINE DO_STAGGER_FIELDS_EXCHANGES
ffd0966f4f Jean*0010 C     | o Exchange edge info of Active tracers fields (U,V)
                0011 C     |   (needed when using stagger time Step + multiDimAdvec)
fb5eaa30cd Jean*0012 C     *==========================================================*
                0013 C     \ev
                0014 C     !USES:
                0015       IMPLICIT NONE
                0016 C     == Global variables ===
                0017 #include "SIZE.h"
                0018 #include "EEPARAMS.h"
                0019 #include "PARAMS.h"
                0020 #include "DYNVARS.h"
                0021 
                0022 C     !INPUT/OUTPUT PARAMETERS:
                0023 C     == Routine arguments ==
                0024 C     myTime  :: Current time in simulation
                0025 C     myIter  :: Current iteration number in simulation
                0026 C     myThid  :: Thread number for this instance of the routine.
                0027       _RL myTime
                0028       INTEGER myIter
99ff96fe93 Jean*0029       INTEGER myThid
fb5eaa30cd Jean*0030 CEOP
                0031 
73939f0406 Jean*0032       IF ( .NOT.useOffLine ) THEN
                0033 C-    Apply Exchanges on dynamics state variable, except in Off-Line mode
                0034 
99ff96fe93 Jean*0035 C- note: use less common EXCH S/R here (instead of usual ones) to
                0036 C        force TAF to also generate AD version for these rare ones
882e7446f0 Jean*0037       IF ( staggerTimeStep ) THEN
35c76859f0 Jean*0038         IF ( .NOT.applyExchUV_early )
                0039      &   CALL EXCH_UV_3D_RL( uVel, vVel, .TRUE., Nr, myThid )
                0040 c    &   CALL EXCH_UV_XYZ_RL( uVel,vVel, .TRUE., myThid )
cb7fa97db9 Jean*0041         IF ( .NOT.implicitIntGravWave )
99ff96fe93 Jean*0042      &   CALL EXCH_3D_RL( wVel, Nr, myThid )
35c76859f0 Jean*0043 c    &  _EXCH_XYZ_RL( wVel, myThid )
fb5eaa30cd Jean*0044       ENDIF
cb7fa97db9 Jean*0045 c #ifdef ALLOW_NONHYDROSTATIC
                0046       IF ( implicitIntGravWave ) THEN
bd27360393 Jean*0047 c       _EXCH_XYZ_RL( theta, myThid )
                0048 c       _EXCH_XYZ_RL( salt , myThid )
                0049         CALL EXCH_SM_3D_RL( theta, .FALSE., Nr, myThid )
                0050         CALL EXCH_SM_3D_RL( salt , .FALSE., Nr, myThid )
cb7fa97db9 Jean*0051       ENDIF
                0052 c #endif
fb5eaa30cd Jean*0053 
73939f0406 Jean*0054 C-    if not useOffLine: end
                0055       ENDIF
                0056 
fb5eaa30cd Jean*0057       RETURN
                0058       END