/[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.4 by jmc, Sun Aug 3 02:49:35 2003 UTC revision 1.5 by adcroft, Wed Jun 2 13:23:55 2004 UTC
# Line 30  C     == Routine arguments == Line 30  C     == Routine arguments ==
30        INTEGER myThid        INTEGER myThid
31    
32  C     == Local variables ==  C     == Local variables ==
33        LOGICAL upwindVort3, use_original_hFac        LOGICAL use_original_hFac
34        INTEGER I,J        INTEGER I,J
35        _RL vBarXY,vort3u        _RL vBarXY,vort3u,Zp,Zm
36        _RS epsil        _RS epsil
       PARAMETER ( upwindVort3      =.FALSE. )  
37        PARAMETER ( use_original_hFac=.FALSE. )        PARAMETER ( use_original_hFac=.FALSE. )
38    
39        epsil = 1. _d -9        epsil = 1. _d -9
# Line 47  C     == Local variables == Line 46  C     == Local variables ==
46       &      +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)
47       &      +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)
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 (upwindVort3) 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)
52            ELSE            ELSE
# Line 57  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
60             Zm=0.5*(
61         &       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) )
63             Zp=0.5*(
64         &       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) )
66             IF (upwindVorticity) THEN
67              IF ( (Zm+Zp) .GT.0.) THEN
68               vort3u=Zm*r_hFacZ(i, j )*omega3(i, j )
69              ELSE
70               vort3u=Zp*r_hFacZ(i,j+1)*omega3(i,j+1)
71              ENDIF
72             ELSE
73              Zm=Zm*r_hFacZ(i, j )*omega3(i, j )
74              Zp=Zp*r_hFacZ(i,j+1)*omega3(i,j+1)
75              vort3u=0.5*( Zm + Zp )
76             ENDIF
77             vBarXY=1.
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*(
# Line 65  c--      test a different formulation (r Line 83  c--      test a different formulation (r
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 (upwindVort3) THEN           IF (upwindVorticity) THEN
87            IF (vBarXY.GT.0.) THEN            IF (vBarXY.GT.0.) THEN
88             vort3u=omega3(i,j)             vort3u=omega3(i,j)
89            ELSE            ELSE
# Line 76  c--      test a different formulation (r Line 94  c--      test a different formulation (r
94           ENDIF           ENDIF
95          ENDIF          ENDIF
96    
97            IF (useJamartWetpoints)
98         &   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)
100         &                +hFacS( j ,i+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

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

  ViewVC Help
Powered by ViewVC 1.1.22