/[MITgcm]/MITgcm/pkg/mom_common/mom_calc_visc.F
ViewVC logotype

Diff of /MITgcm/pkg/mom_common/mom_calc_visc.F

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

revision 1.10 by jmc, Thu Sep 22 00:21:23 2005 UTC revision 1.13 by baylor, Mon Sep 26 15:27:11 2005 UTC
# Line 1  Line 1 
 C $Header$  
 C $Name$  
1    
2  #include "MOM_COMMON_OPTIONS.h"  #include "MOM_COMMON_OPTIONS.h"
3    
# Line 8  C $Name$ Line 6  C $Name$
6       I        bi,bj,k,       I        bi,bj,k,
7       O        viscAh_Z,viscAh_D,viscA4_Z,viscA4_D,       O        viscAh_Z,viscAh_D,viscA4_Z,viscA4_D,
8       O        harmonic,biharmonic,useVariableViscosity,       O        harmonic,biharmonic,useVariableViscosity,
9       I        hDiv,vort3,tension,strain,KE,hfacZ,       I        hDiv,vort3,tension,strain,KE,hFacZ,
10       I        myThid)       I        myThid)
11    
12        IMPLICIT NONE        IMPLICIT NONE
# Line 72  C     == Global variables == Line 70  C     == Global variables ==
70  #include "GRID.h"  #include "GRID.h"
71  #include "EEPARAMS.h"  #include "EEPARAMS.h"
72  #include "PARAMS.h"  #include "PARAMS.h"
73    #ifdef ALLOW_EXCH2
74    #include "W2_EXCH2_TOPOLOGY.h"
75    #include "W2_EXCH2_PARAMS.h"
76    #endif /* ALLOW_EXCH2 */
77    
78  C     == Routine arguments ==  C     == Routine arguments ==
79        INTEGER bi,bj,k        INTEGER bi,bj,k
# Line 92  C     == Local variables == Line 94  C     == Local variables ==
94        INTEGER I,J        INTEGER I,J
95        _RL smag2fac, smag4fac        _RL smag2fac, smag4fac
96        _RL viscAhRe_max, viscA4Re_max        _RL viscAhRe_max, viscA4Re_max
97        _RL Alin,Alinmin,grdVrt,grdDiv        _RL Alin,grdVrt,grdDiv
98        _RL recip_dt,L2,L3,L4,L5,L2rdt,L4rdt        _RL recip_dt,L2,L3,L4,L5,L2rdt,L4rdt
99        _RL Uscl,U4scl        _RL Uscl,U4scl
100        _RL viscAh_ZMax(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL viscAh_ZMax(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
# Line 116  C     == Local variables == Line 118  C     == Local variables ==
118        _RL viscA4_ZSmg(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL viscA4_ZSmg(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
119        _RL viscA4_DSmg(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL viscA4_DSmg(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
120        LOGICAL calcLeith,calcSmag        LOGICAL calcLeith,calcSmag
121          LOGICAL northWestCorner, northEastCorner,
122         &        southWestCorner, southEastCorner
123    #ifdef ALLOW_EXCH2
124          INTEGER myTile
125    #endif /* ALLOW_EXCH2 */
126    
127    C     Special stuff for Cubed Sphere
128          southWestCorner = .FALSE.
129          southEastCorner = .FALSE.
130          northWestCorner = .FALSE.
131          northEastCorner = .FALSE.
132          IF (useCubedSphereExchange) THEN
133    #ifdef ALLOW_EXCH2
134           myTile = W2_myTileList(bi)
135           IF ( exch2_isWedge(myTile) .EQ. 1 .AND.
136         &      exch2_isSedge(myTile) .EQ. 1 ) THEN
137            southWestCorner = .TRUE.
138           ENDIF
139           IF ( exch2_isEedge(myTile) .EQ. 1 .AND.
140         &      exch2_isSedge(myTile) .EQ. 1 ) THEN
141            southEastCorner = .TRUE.
142           ENDIF
143           IF ( exch2_isEedge(myTile) .EQ. 1 .AND.
144         &      exch2_isNedge(myTile) .EQ. 1 ) THEN
145            northEastCorner = .TRUE.
146           ENDIF
147           IF ( exch2_isWedge(myTile) .EQ. 1 .AND.
148         &      exch2_isNedge(myTile) .EQ. 1 ) THEN
149            northWestCorner = .TRUE.
150           ENDIF
151    #else
152           southWestCorner = .TRUE.
153           southEastCorner = .TRUE.
154           northWestCorner = .TRUE.
155           northEastCorner = .TRUE.
156    #endif /* ALLOW_EXCH2 */
157          ENDIF
158    
159        useVariableViscosity=        useVariableViscosity=
160       &      (viscAhGrid.NE.0.)       &      (viscAhGrid.NE.0.)
# Line 188  C     - Viscosity Line 227  C     - Viscosity
227  CCCCCCCCCCCCCCC Divergence Point CalculationsCCCCCCCCCCCCCCCCCCCC  CCCCCCCCCCCCCCC Divergence Point CalculationsCCCCCCCCCCCCCCCCCCCC
228    
229  C These are (powers of) length scales  C These are (powers of) length scales
230           L2=2. _d 0/((recip_DXF(I,J,bi,bj)**2+recip_DYF(I,J,bi,bj)**2))           IF (useAreaViscLength) THEN
231              L2=rA(i,j,bi,bj)
232             ELSE
233              L2=2. _d 0/((recip_DXF(I,J,bi,bj)**2+recip_DYF(I,J,bi,bj)**2))
234             ENDIF
235           L3=(L2**1.5)           L3=(L2**1.5)
236           L4=(L2**2)           L4=(L2**2)
237           L5=(L2**2.5)           L5=(L2**2.5)
238    
239           L2rdt=0.25 _d 0*recip_dt*L2           L2rdt=0.25 _d 0*recip_dt*L2
240    
241           L4rdt=recip_dt/( 6. _d 0*(recip_DXF(I,J,bi,bj)**4           IF (useAreaViscLength) THEN
242              L4rdt=0.125 _d 0*recip_dt*rA(i,j,bi,bj)**2
243             ELSE
244              L4rdt=recip_dt/( 6. _d 0*(recip_DXF(I,J,bi,bj)**4
245       &                            +recip_DYF(I,J,bi,bj)**4)       &                            +recip_DYF(I,J,bi,bj)**4)
246       &                   +8. _d 0*((recip_DXF(I,J,bi,bj)       &                   +8. _d 0*((recip_DXF(I,J,bi,bj)
247       &                             *recip_DYF(I,J,bi,bj))**2) )       &                             *recip_DYF(I,J,bi,bj))**2) )
248             ENDIF
249    
250  C Velocity Reynolds Scale  C Velocity Reynolds Scale
251           Uscl=sqrt(KE(i,j)*L2)*viscAhRe_max           Uscl=sqrt(KE(i,j)*L2)*viscAhRe_max
# Line 295  C  BiHarmonic on Div.u points Line 342  C  BiHarmonic on Div.u points
342    
343  CCCCCCCCCCCCC Vorticity Point CalculationsCCCCCCCCCCCCCCCCCC  CCCCCCCCCCCCC Vorticity Point CalculationsCCCCCCCCCCCCCCCCCC
344  C These are (powers of) length scales  C These are (powers of) length scales
345           L2=2. _d 0/((recip_DXV(I,J,bi,bj)**2+recip_DYU(I,J,bi,bj)**2))           IF (useAreaViscLength) THEN
346              L2=rAz(i,j,bi,bj)
347             ELSE
348              L2=2. _d 0/((recip_DXV(I,J,bi,bj)**2+recip_DYU(I,J,bi,bj)**2))
349             ENDIF
350    
351           L3=(L2**1.5)           L3=(L2**1.5)
352           L4=(L2**2)           L4=(L2**2)
353           L5=(L2**2.5)           L5=(L2**2.5)
354    
355           L2rdt=0.25 _d 0*recip_dt*L2           L2rdt=0.25 _d 0*recip_dt*L2
356           L4rdt=recip_dt/           IF (useAreaViscLength) THEN
357       &     ( 6. _d 0*(recip_DXF(I,J,bi,bj)**4+recip_DYF(I,J,bi,bj)**4)            L4rdt=0.125 _d 0*recip_dt*RaZ(i,j,bi,bj)**2
358       &      +8. _d 0*((recip_DXF(I,J,bi,bj)*recip_DYF(I,J,bi,bj))**2))           ELSE
359              L4rdt=recip_dt/
360         &     ( 6. _d 0*(recip_DXV(I,J,bi,bj)**4+recip_DYU(I,J,bi,bj)**4)
361         &      +8. _d 0*((recip_DXV(I,J,bi,bj)*recip_DYU(I,J,bi,bj))**2))
362             ENDIF
363    
364  C Velocity Reynolds Scale  C Velocity Reynolds Scale
365           Uscl=sqrt(0.25 _d 0*(KE(i,j)+KE(i,j+1)+KE(i+1,j)+KE(i+1,j+1))           Uscl=sqrt(0.25 _d 0*(KE(i,j)+KE(i,j+1)+KE(i+1,j)+KE(i+1,j+1))

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.13

  ViewVC Help
Powered by ViewVC 1.1.22