17 |
|
|
18 |
C !DESCRIPTION: |
C !DESCRIPTION: |
19 |
C Calculate Smagorinsky 3-D (harmonic) viscosities |
C Calculate Smagorinsky 3-D (harmonic) viscosities |
20 |
|
C at current level k (for viscAh3d_00 & viscAh3d_12) |
21 |
|
C and at level k+1 (for viscAh3d_13 & viscAh3d_23) |
22 |
|
|
23 |
C !USES: |
C !USES: |
24 |
IMPLICIT NONE |
IMPLICIT NONE |
58 |
INTEGER myThid |
INTEGER myThid |
59 |
|
|
60 |
C !OUTPUT PARAMETERS: |
C !OUTPUT PARAMETERS: |
61 |
C viscAh3d_00 :: strain magnitude @ grid-cell center |
C viscAh3d_00 :: Smagorinsky viscosity @ grid-cell center |
62 |
C viscAh3d_12 :: strain magnitude @ grid-cell corner |
C viscAh3d_12 :: Smagorinsky viscosity @ grid-cell corner |
63 |
C viscAh3d_13 :: strain magnitude @ above uVel |
C viscAh3d_13 :: Smagorinsky viscosity @ above uVel |
64 |
C viscAh3d_23 :: strain magnitude @ above vVel |
C viscAh3d_23 :: Smagorinsky viscosity @ above vVel |
65 |
_RL viscAh3d_00(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL viscAh3d_00(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
66 |
_RL viscAh3d_12(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL viscAh3d_12(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
67 |
_RL viscAh3d_13(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1) |
_RL viscAh3d_13(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1) |
79 |
_RL S13(1-OLx:sNx+OLx,1-OLy:sNy+OLy,3) |
_RL S13(1-OLx:sNx+OLx,1-OLy:sNy+OLy,3) |
80 |
_RL S23(1-OLx:sNx+OLx,1-OLy:sNy+OLy,3) |
_RL S23(1-OLx:sNx+OLx,1-OLy:sNy+OLy,3) |
81 |
|
|
82 |
|
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
83 |
|
|
84 |
|
twoThird = 2. _d 0 / 3. _d 0 |
85 |
|
|
86 |
n = 1 |
n = 1 |
87 |
DO kp=k-1,k+1 |
DO kp=k-1,k+1 |
88 |
IF ( kp.GE.1 .AND. kp.LE.Nr ) THEN |
IF ( kp.GE.1 .AND. kp.LE.Nr ) THEN |
128 |
|
|
129 |
C Current level k --> n=2 |
C Current level k --> n=2 |
130 |
n = 2 |
n = 2 |
131 |
|
tmpFac = smag3D_coeff*twoRL*SQRT(twoRL)*drF(k)**twoThird |
132 |
|
|
133 |
C viscAh3d_00 = sqrt( S11+S22+S33+2*(S12+S13+S23) ) @ grid-cell center |
C viscAh3d_00 = sqrt( S11+S22+S33+2*(S12+S13+S23) ) @ grid-cell center |
134 |
|
|
|
twoThird = 2. _d 0 / 3. _d 0 |
|
|
tmpFac = smag3D_coeff * drF(k)**twoThird * SQRT(twoRL) |
|
135 |
DO j=1-OLy,sNy+OLy-1 |
DO j=1-OLy,sNy+OLy-1 |
136 |
DO i=1-OLx,sNx+OLx-1 |
DO i=1-OLx,sNx+OLx-1 |
137 |
c viscAh3d_00( i , j , k ) = tmpFac*smag3D_hLsC(i,j,bi,bj)*SQRT( |
viscAh3d_00( i , j , k ) = |
138 |
c *sqrt( |
& smag3D_hLsC( i , j , bi , bj )*tmpFac*SQRT( |
|
viscAh3d_00( i , j , k ) = sqrt( |
|
139 |
& S11( i , j , n ) |
& S11( i , j , n ) |
140 |
& + S22( i , j , n ) |
& + S22( i , j , n ) |
141 |
& + S33( i , j , n ) |
& + S33( i , j , n ) |
145 |
& +S13( i , j ,n+1)+S13(i+1, j ,n+1) ) |
& +S13( i , j ,n+1)+S13(i+1, j ,n+1) ) |
146 |
& + 0.5*( S23( i , j , n )+S23( i ,j+1, n ) |
& + 0.5*( S23( i , j , n )+S23( i ,j+1, n ) |
147 |
& +S23( i , j ,n+1)+S23( i ,j+1,n+1) ) |
& +S23( i , j ,n+1)+S23( i ,j+1,n+1) ) |
148 |
& ) |
& ) |
149 |
ENDDO |
ENDDO |
150 |
ENDDO |
ENDDO |
151 |
|
|
153 |
|
|
154 |
DO j=2-OLy,sNy+OLy |
DO j=2-OLy,sNy+OLy |
155 |
DO i=2-OLx,sNx+OLx |
DO i=2-OLx,sNx+OLx |
156 |
viscAh3d_12( i , j , k ) = sqrt( |
viscAh3d_12( i , j , k ) = |
157 |
|
& smag3D_hLsZ( i , j , bi , bj )*tmpFac*SQRT( |
158 |
& 0.25*( S11(i-1, j , n )+S11( i , j , n ) |
& 0.25*( S11(i-1, j , n )+S11( i , j , n ) |
159 |
& +S11(i-1,j-1, n )+S11( i ,j-1, n ) ) |
& +S11(i-1,j-1, n )+S11( i ,j-1, n ) ) |
160 |
& + 0.25*( S22(i-1, j , n )+S22( i , j , n ) |
& + 0.25*( S22(i-1, j , n )+S22( i , j , n ) |
166 |
& +S13( i ,j-1,n+1)+S13( i , j ,n+1) ) |
& +S13( i ,j-1,n+1)+S13( i , j ,n+1) ) |
167 |
& + 0.5 *( S23(i-1, j , n )+S23( i , j , n ) |
& + 0.5 *( S23(i-1, j , n )+S23( i , j , n ) |
168 |
& +S23(i-1, j ,n+1)+S23( i , j ,n+1) ) |
& +S23(i-1, j ,n+1)+S23( i , j ,n+1) ) |
169 |
& ) |
& ) |
170 |
ENDDO |
ENDDO |
171 |
ENDDO |
ENDDO |
172 |
|
|
176 |
|
|
177 |
C Next level k+1 --> n=3 |
C Next level k+1 --> n=3 |
178 |
n = 3 |
n = 3 |
179 |
|
tmpFac = smag3D_coeff*twoRL*SQRT(twoRL)*drC(k+1)**twoThird |
180 |
|
|
181 |
C viscAh3d_13 = sqrt( S11+S22+S33+2*(S12+S13+S23) ) @ above uVel |
C viscAh3d_13 = sqrt( S11+S22+S33+2*(S12+S13+S23) ) @ above uVel |
182 |
|
|
183 |
DO j=1-OLy,sNy+OLy-1 |
DO j=1-OLy,sNy+OLy-1 |
184 |
DO i=2-OLx,sNx+OLx |
DO i=2-OLx,sNx+OLx |
185 |
viscAh3d_13( i , j ,k+1) = sqrt( |
viscAh3d_13( i , j ,k+1) = |
186 |
|
& smag3D_hLsW( i , j , bi , bj )*tmpFac*SQRT( |
187 |
& 0.25*( S11(i-1, j ,n-1)+S11( i , j ,n-1) |
& 0.25*( S11(i-1, j ,n-1)+S11( i , j ,n-1) |
188 |
& +S11(i-1, j , n )+S11( i , j , n ) ) |
& +S11(i-1, j , n )+S11( i , j , n ) ) |
189 |
& + 0.25*( S22(i-1, j ,n-1)+S22( i , j ,n-1) |
& + 0.25*( S22(i-1, j ,n-1)+S22( i , j ,n-1) |
195 |
& + 2.0 * S13( i , j , n ) |
& + 2.0 * S13( i , j , n ) |
196 |
& + 0.5 *( S23(i-1,j+1, n )+S23( i ,j+1, n ) |
& + 0.5 *( S23(i-1,j+1, n )+S23( i ,j+1, n ) |
197 |
& +S23(i-1, j , n )+S23( i , j , n ) ) |
& +S23(i-1, j , n )+S23( i , j , n ) ) |
198 |
& ) |
& ) |
199 |
ENDDO |
ENDDO |
200 |
ENDDO |
ENDDO |
201 |
|
|
203 |
|
|
204 |
DO j=2-OLy,sNy+OLy |
DO j=2-OLy,sNy+OLy |
205 |
DO i=1-OLx,sNx+OLx-1 |
DO i=1-OLx,sNx+OLx-1 |
206 |
viscAh3d_23( i , j ,k+1) = sqrt( |
viscAh3d_23( i , j ,k+1) = |
207 |
|
& smag3D_hLsS( i , j , bi , bj )*tmpFac*SQRT( |
208 |
& 0.25*( S11( i ,j-1,n-1)+S11( i , j ,n-1) |
& 0.25*( S11( i ,j-1,n-1)+S11( i , j ,n-1) |
209 |
& +S11( i ,j-1, n )+S11( i , j , n ) ) |
& +S11( i ,j-1, n )+S11( i , j , n ) ) |
210 |
& + 0.25*( S22( i ,j-1,n-1)+S22( i , j ,n-1) |
& + 0.25*( S22( i ,j-1,n-1)+S22( i , j ,n-1) |
216 |
& + 0.5 *( S13( i , j , n )+S13(i+1, j , n ) |
& + 0.5 *( S13( i , j , n )+S13(i+1, j , n ) |
217 |
& +S13( i ,j-1, n )+S13(i+1,j-1, n ) ) |
& +S13( i ,j-1, n )+S13(i+1,j-1, n ) ) |
218 |
& + 2.0 * S23( i , j , n ) |
& + 2.0 * S23( i , j , n ) |
219 |
& ) |
& ) |
220 |
ENDDO |
ENDDO |
221 |
ENDDO |
ENDDO |
222 |
|
|