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 |
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 |
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 |
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 |
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 |
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) = |
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 |
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, |
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 ) |