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

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

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

revision 1.2 by baylor, Thu Mar 10 03:45:11 2005 UTC revision 1.3 by baylor, Thu Apr 14 14:22:51 2005 UTC
# Line 38  C     == Local variables == Line 38  C     == Local variables ==
38        _RL viscA_s(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL viscA_s(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
39        _RL ASmag, smagfac        _RL ASmag, smagfac
40        _RL vg2Min, vg2Max, AlinMax, AlinMin        _RL vg2Min, vg2Max, AlinMax, AlinMin
41          _RL lenA2, lenAz2
42    
43        IF (deltaTmom.NE.0.) THEN        IF (deltaTmom.NE.0.) THEN
44         vg2Min=viscAhGridMin/deltaTmom         vg2Min=viscAhGridMin/deltaTmom
# Line 52  C     - Calculate Smagorinsky Coefficien Line 53  C     - Calculate Smagorinsky Coefficien
53        DO j=2-Oly,sNy+Oly-1        DO j=2-Oly,sNy+Oly-1
54         DO i=2-Olx,sNx+Olx-1         DO i=2-Olx,sNx+Olx-1
55          IF (viscC2smag.NE.0.) THEN          IF (viscC2smag.NE.0.) THEN
56           Asmag=smagfac*rA(i,j,bi,bj)  C    Geometric Mean is used as length scale
57             lenA2=(2*rA(i,j,bi,bj)/
58         &      (dxF(I,J,bi,bj)+dyF(I,J,bi,bj)))**2
59    
60             Asmag=smagfac*lenA2
61       &    *sqrt(tension(i,j)**2       &    *sqrt(tension(i,j)**2
62       &          +0.25*(strain(i+1, j )**2+strain( i ,j+1)**2       &          +0.25*(strain(i+1, j )**2+strain( i ,j+1)**2
63       &                +strain(i-1, j )**2+strain( i ,j-1)**2))       &                +strain(i-1, j )**2+strain( i ,j-1)**2))
64           viscA_t(i,j)=min(viscAhMax,max(viscAt,Asmag))           viscA_t(i,j)=min(viscAhMax,max(viscAt,Asmag))
65    
66           IF (vg2Max.GT.0.) THEN           IF (vg2Max.GT.0.) THEN
67              AlinMax=vg2Max*(rA ( i , j ,bi,bj))              AlinMax=vg2Max*lenA2
68              viscA_t(i,j)=min(AlinMax,viscA_t(i,j))              viscA_t(i,j)=min(AlinMax,viscA_t(i,j))
69           ENDIF           ENDIF
70           AlinMin=vg2Min*(rA ( i , j ,bi,bj))           AlinMin=vg2Min*lenA2
71           viscA_t(i,j)=max(AlinMin,viscA_t(i,j))           viscA_t(i,j)=max(AlinMin,viscA_t(i,j))
72    
73           Asmag=smagfac*rAz(i,j,bi,bj)  C    Geometric Mean is used as length scale
74             lenAz2=(2*rAz(i,j,bi,bj)/
75         &       (dxV(I,J,bi,bj)+dyU(I,J,bi,bj)))**2
76             Asmag=smagfac*lenAz2
77       &    *sqrt(strain(i,j)**2       &    *sqrt(strain(i,j)**2
78       &          +0.25*(tension( i , j )**2+tension( i ,j+1)**2       &          +0.25*(tension( i , j )**2+tension( i ,j+1)**2
79       &                +tension(i+1, j )**2+tension(i+1,j+1)**2))       &                +tension(i+1, j )**2+tension(i+1,j+1)**2))
80           viscA_s(i,j)=min(viscAhMax,max(viscAs,Asmag))           viscA_s(i,j)=min(viscAhMax,max(viscAs,Asmag))
81    
82           IF (vg2Max.GT.0.) THEN           IF (vg2Max.GT.0.) THEN
83              AlinMax=vg2Max*(rAz( i , j ,bi,bj))              AlinMax=vg2Max*lenAz2
84              viscA_s(i,j)=min(AlinMax,viscA_s(i,j))              viscA_s(i,j)=min(AlinMax,viscA_s(i,j))
85           ENDIF           ENDIF
86           AlinMin=vg2Min*(rAz( i , j ,bi,bj))           AlinMin=vg2Min*lenAz2
87           viscA_s(i,j)=max(AlinMin,viscA_s(i,j))           viscA_s(i,j)=max(AlinMin,viscA_s(i,j))
88    
89          ELSE          ELSE

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

  ViewVC Help
Powered by ViewVC 1.1.22