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 |
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 |
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*( |
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 |
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 |