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

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

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

revision 1.7 by adcroft, Tue Jul 20 17:46:38 2004 UTC revision 1.11 by jmc, Sun Mar 30 21:46:48 2008 UTC
# Line 3  C $Name$ Line 3  C $Name$
3    
4  #include "MOM_VECINV_OPTIONS.h"  #include "MOM_VECINV_OPTIONS.h"
5    
6        SUBROUTINE MOM_VI_U_CORIOLIS(        SUBROUTINE MOM_VI_U_CORIOLIS(
7       I        bi,bj,k,       I        bi,bj,k,
8       I        vFld,omega3,hFacZ,r_hFacZ,       I        vFld,omega3,hFacZ,r_hFacZ,
9       O        uCoriolisTerm,       O        uCoriolisTerm,
# Line 36  C     == Local variables == Line 36  C     == Local variables ==
36        _RS epsil        _RS epsil
37        PARAMETER ( use_original_hFac=.FALSE. )        PARAMETER ( use_original_hFac=.FALSE. )
38    
39        epsil = 1. _d -9        epsil = 1. _d -9
40    
41        DO J=1-Oly,sNy+Oly-1        DO J=1-Oly,sNy+Oly-1
42         DO I=2-Olx,sNx+Olx         DO I=2-Olx,sNx+Olx
43          IF ( use_original_hFac ) THEN          IF ( use_original_hFac ) THEN
44           vBarXY=0.25*(           vBarXY=0.25*(
45       &       vFld( i , j )*dxG( i , j ,bi,bj)*hFacS( i , j ,k,bi,bj)       &      (vFld( i , j )*dxG( i , j ,bi,bj)*_hFacS( i , j ,k,bi,bj)
46       &      +vFld( i ,j+1)*dxG( i ,j+1,bi,bj)*hFacS( i ,j+1,k,bi,bj)       &      +vFld(i-1, j )*dxG(i-1, j ,bi,bj)*_hFacS(i-1, j ,k,bi,bj))
47       &      +vFld(i-1, j )*dxG(i-1, j ,bi,bj)*hFacS(i-1, j ,k,bi,bj)       &     +(vFld( i ,j+1)*dxG( i ,j+1,bi,bj)*_hFacS( i ,j+1,k,bi,bj)
48       &      +vFld(i-1,j+1)*dxG(i-1,j+1,bi,bj)*hFacS(i-1,j+1,k,bi,bj))       &      +vFld(i-1,j+1)*dxG(i-1,j+1,bi,bj)*_hFacS(i-1,j+1,k,bi,bj)))
49           IF (upwindVorticity) THEN           IF (upwindVorticity) THEN
50            IF (vBarXY.GT.0.) THEN            IF (vBarXY.GT.0.) THEN
51             vort3u=omega3(I,J)*r_hFacZ(i,j)             vort3u=omega3(I,J)*r_hFacZ(i,j)
# Line 56  C     == Local variables == Line 56  C     == Local variables ==
56             vort3u=0.5*(omega3(i,j)*r_hFacZ(i,j)             vort3u=0.5*(omega3(i,j)*r_hFacZ(i,j)
57       &                +omega3(i,j+1)*r_hFacZ(i,j+1))       &                +omega3(i,j+1)*r_hFacZ(i,j+1))
58           ENDIF           ENDIF
59          ELSEIF ( SadournyCoriolis ) THEN          ELSEIF ( selectVortScheme.EQ.2 ) THEN
60           Zm=0.5*(           Zm=0.5*(
61       &       vFld( i , j )*dxG( i , j ,bi,bj)*hFacS( i , j ,k,bi,bj)       &       vFld( i , j )*dxG( i , j ,bi,bj)*_hFacS( i , j ,k,bi,bj)
62       &      +vFld(i-1, j )*dxG(i-1, j ,bi,bj)*hFacS(i-1, j ,k,bi,bj) )       &      +vFld(i-1, j )*dxG(i-1, j ,bi,bj)*_hFacS(i-1, j ,k,bi,bj) )
63           Zp=0.5*(           Zp=0.5*(
64       &       vFld( i ,j+1)*dxG( i ,j+1,bi,bj)*hFacS( i ,j+1,k,bi,bj)       &       vFld( i ,j+1)*dxG( i ,j+1,bi,bj)*_hFacS( i ,j+1,k,bi,bj)
65       &      +vFld(i-1,j+1)*dxG(i-1,j+1,bi,bj)*hFacS(i-1,j+1,k,bi,bj) )       &      +vFld(i-1,j+1)*dxG(i-1,j+1,bi,bj)*_hFacS(i-1,j+1,k,bi,bj) )
66           IF (upwindVorticity) THEN           IF (upwindVorticity) THEN
67            IF ( (Zm+Zp) .GT.0.) THEN            IF ( (Zm+Zp) .GT.0.) THEN
68             vort3u=Zm*r_hFacZ(i, j )*omega3(i, j )             vort3u=Zm*r_hFacZ(i, j )*omega3(i, j )
# Line 78  C     == Local variables == Line 78  C     == Local variables ==
78          ELSE          ELSE
79  c--      test a different formulation (relatively to hFac)  c--      test a different formulation (relatively to hFac)
80           vBarXY=0.5*(           vBarXY=0.5*(
81       &       vFld( i , j )*dxG( i , j ,bi,bj)*hFacZ(i,j)       &      (vFld( i , j )*dxG( i , j ,bi,bj)*hFacZ(i,j)
82       &      +vFld(i-1, j )*dxG(i-1, j ,bi,bj)*hFacZ(i,j)       &      +vFld(i-1, j )*dxG(i-1, j ,bi,bj)*hFacZ(i,j)  )
83       &      +vFld( i ,j+1)*dxG( i ,j+1,bi,bj)*hFacZ(i,j+1)       &     +(vFld( i ,j+1)*dxG( i ,j+1,bi,bj)*hFacZ(i,j+1)
84       &      +vFld(i-1,j+1)*dxG(i-1,j+1,bi,bj)*hFacZ(i,j+1)       &      +vFld(i-1,j+1)*dxG(i-1,j+1,bi,bj)*hFacZ(i,j+1))
85       &              )/MAX( epsil, hFacZ(i,j)+hFacZ(i,j+1) )       &              )/MAX( epsil, hFacZ(i,j)+hFacZ(i,j+1) )
86           IF (upwindVorticity) THEN           IF (upwindVorticity) THEN
87            IF (vBarXY.GT.0.) THEN            IF (vBarXY.GT.0.) THEN
88             vort3u=omega3(i,j)             vort3u=omega3(i,j)
# Line 90  c--      test a different formulation (r Line 90  c--      test a different formulation (r
90             vort3u=omega3(i,j+1)             vort3u=omega3(i,j+1)
91            ENDIF            ENDIF
92           ELSE           ELSE
93             vort3u=0.5*(omega3(i,j)+omega3(i,j+1))             vort3u=0.5*(omega3(i,j)+omega3(i,j+1))
94           ENDIF           ENDIF
95          ENDIF          ENDIF
96    
97          IF (useJamartMomAdv)          IF (useJamartMomAdv)
98       &   vBarXY = vBarXY * 4. _d 0 * hFacW(i,j,k,bi,bj)       &   vBarXY = vBarXY * 4. _d 0 * hFacW(i,j,k,bi,bj)
99       &   * MAX( epsil, hFacS( i , j ,k,bi,bj)+hFacS(i-1, j ,k,bi,bj)       &   / MAX( epsil,(_hFacS(i, j ,k,bi,bj)+_hFacS(i-1, j ,k,bi,bj))
100       &                +hFacS( j ,i+1,k,bi,bj)+hFacS(i-1,j+1,k,bi,bj) )       &               +(_hFacS(i,j+1,k,bi,bj)+_hFacS(i-1,j+1,k,bi,bj)) )
101    
102          uCoriolisTerm(i,j)=          uCoriolisTerm(i,j)=
103       &   +vort3u*vBarXY*recip_dxC(i,j,bi,bj)*_maskW(i,j,k,bi,bj)       &   +vort3u*vBarXY*recip_dxC(i,j,bi,bj)*_maskW(i,j,k,bi,bj)
104  cph *note* put these comments after end of continued line  cph *note* put these comments after end of continued line
105  cph        to ensure TAMC compatibility  cph        to ensure TAMC compatibility
106  C high order vorticity advection term  C high order vorticity advection term

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.11

  ViewVC Help
Powered by ViewVC 1.1.22