/[MITgcm]/MITgcm/pkg/mom_vecinv/mom_vi_hdissip.F
ViewVC logotype

Diff of /MITgcm/pkg/mom_vecinv/mom_vi_hdissip.F

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

revision 1.3 by jmc, Tue Oct 30 23:11:51 2001 UTC revision 1.4 by adcroft, Sat Feb 7 16:27:19 2004 UTC
# Line 56  c       Zpj=dxV(i+1, j ,bi,bj)*hFacZ(i+1 Line 56  c       Zpj=dxV(i+1, j ,bi,bj)*hFacZ(i+1
56          Zij=                   hFacZ( i , j )*vort3( i , j )          Zij=                   hFacZ( i , j )*vort3( i , j )
57          Zpj=                   hFacZ(i+1, j )*vort3(i+1, j )          Zpj=                   hFacZ(i+1, j )*vort3(i+1, j )
58    
59    C This bit scales the harmonic dissipation operator to be proportional
60    C to the grid-cell area over the time-step. viscAh is then non-dimensional
61    C and should be less than 1/8, for example viscAh=0.01
62            if (viscAhGrid*deltaTmom.NE.0.) then
63              Dij=Dij*
64         &     min(viscAh+viscAhGrid*rA ( i , j ,bi,bj)/deltaTmom,viscAhMax)
65              Dim=Dim*
66         &     min(viscAh+viscAhGrid*rA ( i ,j-1,bi,bj)/deltaTmom,viscAhMax)
67              Dmj=Dmj*
68         &     min(viscAh+viscAhGrid*rA (i-1, j ,bi,bj)/deltaTmom,viscAhMax)
69              Zij=Zij*
70         &     min(viscAh+viscAhGrid*rAz( i , j ,bi,bj)/deltaTmom,viscAhMax)
71              Zip=Zip*
72         &     min(viscAh+viscAhGrid*rAz( i ,j+1,bi,bj)/deltaTmom,viscAhMax)
73              Zpj=Zpj*
74         &     min(viscAh+viscAhGrid*rAz(i+1, j ,bi,bj)/deltaTmom,viscAhMax)
75              uD2 = (
76         &               cosFacU(j,bi,bj)*( Dij-Dmj )*recip_DXC(i,j,bi,bj)
77         &      -recip_hFacW(i,j,k,bi,bj)*( Zip-Zij )*recip_DYG(i,j,bi,bj) )
78              vD2 = (
79         &       recip_hFacS(i,j,k,bi,bj)*( Zpj-Zij )*recip_DXG(i,j,bi,bj)
80         &                                           *cosFacV(j,bi,bj)
81         &                               +( Dij-Dim )*recip_DYC(i,j,bi,bj) )
82            else
83  c       uD2 = recip_rAw(i,j,bi,bj)*(  c       uD2 = recip_rAw(i,j,bi,bj)*(
84  c    &    recip_hFacW(i,j,k,bi,bj)*viscAh*( (Dij-Dmj)*cosFacU(j,bi,bj) )  c    &    recip_hFacW(i,j,k,bi,bj)*viscAh*( (Dij-Dmj)*cosFacU(j,bi,bj) )
85  c    &   -recip_hFacW(i,j,k,bi,bj)*viscAh*( Zip-Zij ) )  c    &   -recip_hFacW(i,j,k,bi,bj)*viscAh*( Zip-Zij ) )
86  c       uD2 = recip_rAw(i,j,bi,bj)*(  c       uD2 = recip_rAw(i,j,bi,bj)*(
87  c    &                             viscAh*( (Dij-Dmj)*cosFacU(j,bi,bj) )  c    &                             viscAh*( (Dij-Dmj)*cosFacU(j,bi,bj) )
88  c    &   -recip_hFacW(i,j,k,bi,bj)*viscAh*( Zip-Zij ) )  c    &   -recip_hFacW(i,j,k,bi,bj)*viscAh*( Zip-Zij ) )
89          uD2 = viscAh*(            uD2 = viscAh*(
90       &               cosFacU(j,bi,bj)*( Dij-Dmj )*recip_DXC(i,j,bi,bj)       &               cosFacU(j,bi,bj)*( Dij-Dmj )*recip_DXC(i,j,bi,bj)
91       &      -recip_hFacW(i,j,k,bi,bj)*( Zip-Zij )*recip_DYG(i,j,bi,bj) )       &      -recip_hFacW(i,j,k,bi,bj)*( Zip-Zij )*recip_DYG(i,j,bi,bj) )
   
92  c       vD2 = recip_rAs(i,j,bi,bj)*(  c       vD2 = recip_rAs(i,j,bi,bj)*(
93  c    &    recip_hFacS(i,j,k,bi,bj)*viscAh*( (Zpj-Zij)*cosFacV(j,bi,bj) )  c    &    recip_hFacS(i,j,k,bi,bj)*viscAh*( (Zpj-Zij)*cosFacV(j,bi,bj) )
94  c    &   +recip_hFacS(i,j,k,bi,bj)*viscAh*( Dij-Dim ) )  c    &   +recip_hFacS(i,j,k,bi,bj)*viscAh*( Dij-Dim ) )
# Line 76  c    &   +                         viscA Line 99  c    &   +                         viscA
99       &       recip_hFacS(i,j,k,bi,bj)*( Zpj-Zij )*recip_DXG(i,j,bi,bj)       &       recip_hFacS(i,j,k,bi,bj)*( Zpj-Zij )*recip_DXG(i,j,bi,bj)
100       &                                           *cosFacV(j,bi,bj)       &                                           *cosFacV(j,bi,bj)
101       &                               +( Dij-Dim )*recip_DYC(i,j,bi,bj) )       &                               +( Dij-Dim )*recip_DYC(i,j,bi,bj) )
102            endif
103    
104  c       Dim=dyF( i ,j-1,bi,bj)*hFacC( i ,j-1,k,bi,bj)*dStar( i ,j-1)  c       Dim=dyF( i ,j-1,bi,bj)*hFacC( i ,j-1,k,bi,bj)*dStar( i ,j-1)
105  c       Dij=dyF( i , j ,bi,bj)*hFacC( i , j ,k,bi,bj)*dStar( i , j )  c       Dij=dyF( i , j ,bi,bj)*hFacC( i , j ,k,bi,bj)*dStar( i , j )
# Line 88  c       Dmj=dyF(i-1, j ,bi,bj)*hFacC(i-1 Line 112  c       Dmj=dyF(i-1, j ,bi,bj)*hFacC(i-1
112          Zij=dxV( i , j ,bi,bj)*hFacZ( i , j )*zStar( i , j )          Zij=dxV( i , j ,bi,bj)*hFacZ( i , j )*zStar( i , j )
113          Zpj=dxV(i+1, j ,bi,bj)*hFacZ(i+1, j )*zStar(i+1, j )          Zpj=dxV(i+1, j ,bi,bj)*hFacZ(i+1, j )*zStar(i+1, j )
114    
115    C This bit scales the harmonic dissipation operator to be proportional
116    C to the grid-cell area over the time-step. viscAh is then non-dimensional
117    C and should be less than 1/8, for example viscAh=0.01
118            if (viscAhGrid*deltaTmom.NE.0.) then
119              Dij = Dij * min(
120         &         viscA4+viscA4Grid*(rA ( i , j ,bi,bj)**2)/deltaTmom,
121         &         viscA4Max)
122              Dim = Dim * min(
123         &         viscA4+viscA4Grid*(rA ( i ,j-1,bi,bj)**2)/deltaTmom,
124         &         viscA4Max)
125              Dmj = Dmj * min(
126         &         viscA4+viscA4Grid*(rA (i-1, j ,bi,bj)**2)/deltaTmom,
127         &         viscA4Max)
128              Zij = Zij * min(
129         &         viscA4+viscA4Grid*(rAz( i , j ,bi,bj)**2)/deltaTmom,
130         &         viscA4Max)
131              Zip = Zip * min(
132         &         viscA4+viscA4Grid*(rAz( i ,j+1,bi,bj)**2)/deltaTmom,
133         &         viscA4Max)
134              Zpj = Zpj * min(
135         &         viscA4+viscA4Grid*(rAz(i+1, j ,bi,bj)**2)/deltaTmom,
136         &         viscA4Max)
137              uD4 = recip_rAw(i,j,bi,bj)*(
138         &                             ( (Dij-Dmj)*cosFacU(j,bi,bj) )
139         &   -recip_hFacW(i,j,k,bi,bj)*( Zip-Zij ) )
140              vD4 = recip_rAs(i,j,bi,bj)*(
141         &    recip_hFacS(i,j,k,bi,bj)*( (Zpj-Zij)*cosFacV(j,bi,bj) )
142         &   +                         ( Dij-Dim ) )
143            else
144  c       uD4 = recip_rAw(i,j,bi,bj)*(  c       uD4 = recip_rAw(i,j,bi,bj)*(
145  c    &    recip_hFacW(i,j,k,bi,bj)*viscA4*( (Dij-Dmj)*cosFacU(j,bi,bj) )  c    &    recip_hFacW(i,j,k,bi,bj)*viscA4*( (Dij-Dmj)*cosFacU(j,bi,bj) )
146  c    &   -recip_hFacW(i,j,k,bi,bj)*viscA4*( Zip-Zij ) )  c    &   -recip_hFacW(i,j,k,bi,bj)*viscA4*( Zip-Zij ) )
147          uD4 = recip_rAw(i,j,bi,bj)*(            uD4 = recip_rAw(i,j,bi,bj)*(
148       &                             viscA4*( (Dij-Dmj)*cosFacU(j,bi,bj) )       &                             viscA4*( (Dij-Dmj)*cosFacU(j,bi,bj) )
149       &   -recip_hFacW(i,j,k,bi,bj)*viscA4*( Zip-Zij ) )       &   -recip_hFacW(i,j,k,bi,bj)*viscA4*( Zip-Zij ) )
150    
151  c       vD4 = recip_rAs(i,j,bi,bj)*(  c       vD4 = recip_rAs(i,j,bi,bj)*(
152  c    &    recip_hFacS(i,j,k,bi,bj)*viscA4*( (Zpj-Zij)*cosFacV(j,bi,bj) )  c    &    recip_hFacS(i,j,k,bi,bj)*viscA4*( (Zpj-Zij)*cosFacV(j,bi,bj) )
153  c    &   +recip_hFacS(i,j,k,bi,bj)*viscA4*( Dij-Dim ) )  c    &   +recip_hFacS(i,j,k,bi,bj)*viscA4*( Dij-Dim ) )
154          vD4 = recip_rAs(i,j,bi,bj)*(            vD4 = recip_rAs(i,j,bi,bj)*(
155       &    recip_hFacS(i,j,k,bi,bj)*viscA4*( (Zpj-Zij)*cosFacV(j,bi,bj) )       &    recip_hFacS(i,j,k,bi,bj)*viscA4*( (Zpj-Zij)*cosFacV(j,bi,bj) )
156       &   +                         viscA4*( Dij-Dim ) )       &   +                         viscA4*( Dij-Dim ) )
157            endif
158    
159          uDissip(i,j) = uD2 - uD4          uDissip(i,j) = uD2 - uD4
160          vDissip(i,j) = vD2 - vD4          vDissip(i,j) = vD2 - vD4

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

  ViewVC Help
Powered by ViewVC 1.1.22