/[MITgcm]/MITgcm/verification/tutorial_deep_convection/code/mom_calc_smag_3d.F
ViewVC logotype

Diff of /MITgcm/verification/tutorial_deep_convection/code/mom_calc_smag_3d.F

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

revision 1.1 by jmc, Mon Sep 30 18:19:41 2013 UTC revision 1.2 by jmc, Mon Nov 4 21:33:35 2013 UTC
# Line 17  C     !INTERFACE: Line 17  C     !INTERFACE:
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
# Line 56  C     myThid      :: my Thread Id number Line 58  C     myThid      :: my Thread Id number
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)
# Line 77  C     !LOCAL VARIABLES: Line 79  C     !LOCAL VARIABLES:
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
# Line 122  C--  ----------------------------------- Line 128  C--  -----------------------------------
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 )
# Line 141  c          *sqrt( Line 145  c          *sqrt(
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    
# Line 149  C     viscAh3d_12 = sqrt( S11+S22+S33+2* Line 153  C     viscAh3d_12 = sqrt( S11+S22+S33+2*
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 )
# Line 161  C     viscAh3d_12 = sqrt( S11+S22+S33+2* Line 166  C     viscAh3d_12 = sqrt( S11+S22+S33+2*
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    
# Line 171  C--  ----------------------------------- Line 176  C--  -----------------------------------
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)
# Line 188  C     viscAh3d_13 = sqrt( S11+S22+S33+2* Line 195  C     viscAh3d_13 = sqrt( S11+S22+S33+2*
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    
# Line 196  C     viscAh3d_23 = sqrt( S11+S22+S33+2* Line 203  C     viscAh3d_23 = sqrt( S11+S22+S33+2*
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)
# Line 208  C     viscAh3d_23 = sqrt( S11+S22+S33+2* Line 216  C     viscAh3d_23 = sqrt( S11+S22+S33+2*
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    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

  ViewVC Help
Powered by ViewVC 1.1.22