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

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

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

revision 1.166 by m_bates, Sun Sep 15 14:28:31 2013 UTC revision 1.167 by jmc, Tue Nov 5 13:34:31 2013 UTC
# Line 3  C $Name$ Line 3  C $Name$
3    
4  #include "PACKAGES_CONFIG.h"  #include "PACKAGES_CONFIG.h"
5  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
6    #ifdef ALLOW_MOM_COMMON
7    # include "MOM_COMMON_OPTIONS.h"
8    #endif
9  #ifdef ALLOW_OBCS  #ifdef ALLOW_OBCS
10  # include "OBCS_OPTIONS.h"  # include "OBCS_OPTIONS.h"
11  #endif  #endif
# Line 80  C     == Global variables === Line 83  C     == Global variables ===
83  #include "PARAMS.h"  #include "PARAMS.h"
84  #include "GRID.h"  #include "GRID.h"
85  #include "DYNVARS.h"  #include "DYNVARS.h"
86    #ifdef ALLOW_MOM_COMMON
87    # include "MOM_VISC.h"
88    #endif
89  #ifdef ALLOW_CD_CODE  #ifdef ALLOW_CD_CODE
90  # include "CD_CODE_VARS.h"  # include "CD_CODE_VARS.h"
91  #endif  #endif
# Line 116  C      |-- CALC_GRAD_PHI_SURF Line 122  C      |-- CALC_GRAD_PHI_SURF
122  C      |  C      |
123  C      |-- CALC_VISCOSITY  C      |-- CALC_VISCOSITY
124  C      |  C      |
125    C      |-- MOM_CALC_3D_STRAIN
126    C      |
127  C      |-- CALC_EDDY_STRESS  C      |-- CALC_EDDY_STRESS
128  C      |  C      |
129  C      |-- CALC_PHI_HYD  C      |-- CALC_PHI_HYD
# Line 124  C      |-- MOM_FLUXFORM Line 132  C      |-- MOM_FLUXFORM
132  C      |  C      |
133  C      |-- MOM_VECINV  C      |-- MOM_VECINV
134  C      |  C      |
135    C      |-- MOM_CALC_SMAG_3D
136    C      |-- MOM_UV_SMAG_3D
137    C      |
138  C      |-- TIMESTEP  C      |-- TIMESTEP
139  C      |  C      |
140  C      |-- MOM_U_IMPLICIT_R  C      |-- MOM_U_IMPLICIT_R
# Line 190  C                   are switched with k Line 201  C                   are switched with k
201        _RL gvDissip(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL gvDissip(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
202        _RL KappaRU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL KappaRU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
203        _RL KappaRV (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL KappaRV (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
204    #ifdef ALLOW_SMAG_3D
205    C     str11       :: strain component Vxx @ grid-cell center
206    C     str22       :: strain component Vyy @ grid-cell center
207    C     str33       :: strain component Vzz @ grid-cell center
208    C     str12       :: strain component Vxy @ grid-cell corner
209    C     str13       :: strain component Vxz @ above uVel
210    C     str23       :: strain component Vyz @ above vVel
211    C     viscAh3d_00 :: Smagorinsky viscosity @ grid-cell center
212    C     viscAh3d_12 :: Smagorinsky viscosity @ grid-cell corner
213    C     viscAh3d_13 :: Smagorinsky viscosity @ above uVel
214    C     viscAh3d_23 :: Smagorinsky viscosity @ above vVel
215    C     addDissU    :: zonal momentum tendency from 3-D Smag. viscosity
216    C     addDissV    :: merid momentum tendency from 3-D Smag. viscosity
217          _RL str11(1-OLx:sNx+OLx,1-OLy:sNy+OLy, Nr )
218          _RL str22(1-OLx:sNx+OLx,1-OLy:sNy+OLy, Nr )
219          _RL str33(1-OLx:sNx+OLx,1-OLy:sNy+OLy, Nr )
220          _RL str12(1-OLx:sNx+OLx,1-OLy:sNy+OLy, Nr )
221          _RL str13(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1)
222          _RL str23(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1)
223          _RL viscAh3d_00(1-OLx:sNx+OLx,1-OLy:sNy+OLy, Nr )
224          _RL viscAh3d_12(1-OLx:sNx+OLx,1-OLy:sNy+OLy, Nr )
225          _RL viscAh3d_13(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1)
226          _RL viscAh3d_23(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1)
227          _RL addDissU(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
228          _RL addDissV(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
229    #elif ( defined ALLOW_NONHYDROSTATIC )
230          _RL str13(1), str23(1), str33(1)
231          _RL viscAh3d_00(1), viscAh3d_13(1), viscAh3d_23(1)
232    #endif
233    
       INTEGER iMin, iMax  
       INTEGER jMin, jMax  
234        INTEGER bi, bj        INTEGER bi, bj
235        INTEGER i, j        INTEGER i, j
236        INTEGER k, km1, kp1, kUp, kDown        INTEGER k, km1, kp1, kUp, kDown
237          INTEGER iMin, iMax
238          INTEGER jMin, jMax
239          PARAMETER( iMin = 0 , iMax = sNx+1 )
240          PARAMETER( jMin = 0 , jMax = sNy+1 )
241    
242  #ifdef ALLOW_DIAGNOSTICS  #ifdef ALLOW_DIAGNOSTICS
243        LOGICAL dPhiHydDiagIsOn        LOGICAL dPhiHydDiagIsOn
# Line 349  cph) Line 391  cph)
391          ENDDO          ENDDO
392    
393  C--     Start computation of dynamics  C--     Start computation of dynamics
         iMin = 0  
         iMax = sNx+1  
         jMin = 0  
         jMax = sNy+1  
394    
395  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
396  CADJ STORE wVel (:,:,:,bi,bj) =  CADJ STORE wVel (:,:,:,bi,bj) =
# Line 403  C--     Calculate the total vertical vis Line 441  C--     Calculate the total vertical vis
441          ENDIF          ENDIF
442  #endif /* INCLUDE_CALC_DIFFUSIVITY_CALL */  #endif /* INCLUDE_CALC_DIFFUSIVITY_CALL */
443    
444    #ifdef ALLOW_SMAG_3D
445            IF ( useSmag3D ) THEN
446              CALL MOM_CALC_3D_STRAIN(
447         O         str11, str22, str33, str12, str13, str23,
448         I         bi, bj, myThid )
449            ENDIF
450    #endif /* ALLOW_SMAG_3D */
451    
452  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
453  CADJ STORE KappaRU(:,:,:)  CADJ STORE KappaRU(:,:,:)
454  CADJ &     = comlev1_bibj, key=idynkey, byte=isbyte  CADJ &     = comlev1_bibj, key=idynkey, byte=isbyte
# Line 571  CADJ &     = comlev1_bibj_k, key=kkey, b Line 617  CADJ &     = comlev1_bibj_k, key=kkey, b
617  #endif  #endif
618             ENDIF             ENDIF
619    
620    #ifdef ALLOW_SMAG_3D
621               IF ( useSmag3D ) THEN
622                 CALL MOM_CALC_SMAG_3D(
623         I         str11, str22, str33, str12, str13, str23,
624         O         viscAh3d_00, viscAh3d_12, viscAh3d_13, viscAh3d_23,
625         I         smag3D_hLsC, smag3D_hLsW, smag3D_hLsS, smag3D_hLsZ,
626         I         k, bi, bj, myThid )
627                 CALL MOM_UV_SMAG_3D(
628         I         str11, str22, str12, str13, str23,
629         I         viscAh3d_00, viscAh3d_12, viscAh3d_13, viscAh3d_23,
630         O         addDissU, addDissV,
631         I         iMin,iMax,jMin,jMax, k, bi, bj, myThid )
632                 DO j= jMin,jMax
633                  DO i= iMin,iMax
634                   guDissip(i,j) = guDissip(i,j) + addDissU(i,j)
635                   gvDissip(i,j) = gvDissip(i,j) + addDissV(i,j)
636                  ENDDO
637                 ENDDO
638               ENDIF
639    #endif /* ALLOW_SMAG_3D */
640    
641             CALL TIMESTEP(             CALL TIMESTEP(
642       I         bi,bj,iMin,iMax,jMin,jMax,k,       I         bi,bj,iMin,iMax,jMin,jMax,k,
643       I         dPhiHydX,dPhiHydY, phiSurfX, phiSurfY,       I         dPhiHydX,dPhiHydY, phiSurfX, phiSurfY,
# Line 659  C--   Step forward W field in N-H algori Line 726  C--   Step forward W field in N-H algori
726           CALL TIMER_START('CALC_GW          [DYNAMICS]',myThid)           CALL TIMER_START('CALC_GW          [DYNAMICS]',myThid)
727           CALL CALC_GW(           CALL CALC_GW(
728       I                 bi,bj, KappaRU, KappaRV,       I                 bi,bj, KappaRU, KappaRV,
729         I                 str13, str23, str33,
730         I                 viscAh3d_00, viscAh3d_13, viscAh3d_23,
731       I                 myTime, myIter, myThid )       I                 myTime, myIter, myThid )
732          ENDIF          ENDIF
733          IF ( nonHydrostatic.OR.implicitIntGravWave )          IF ( nonHydrostatic.OR.implicitIntGravWave )

Legend:
Removed from v.1.166  
changed lines
  Added in v.1.167

  ViewVC Help
Powered by ViewVC 1.1.22