145 |
_RL ArDvdrFac |
_RL ArDvdrFac |
146 |
_RL fvFac |
_RL fvFac |
147 |
_RL mtFacV |
_RL mtFacV |
148 |
|
_RL sideMaskFac |
149 |
LOGICAL bottomDragTerms,harmonic,biharmonic,useVariableViscosity |
LOGICAL bottomDragTerms,harmonic,biharmonic,useVariableViscosity |
150 |
CEOP |
CEOP |
151 |
|
|
194 |
ArDvdrFac = 0. |
ArDvdrFac = 0. |
195 |
ENDIF |
ENDIF |
196 |
|
|
197 |
|
C note: using standard stencil (no mask) results in under-estimating |
198 |
|
C vorticity at a no-slip boundary by a factor of 2 = sideDragFactor |
199 |
|
IF ( no_slip_sides ) THEN |
200 |
|
sideMaskFac = sideDragFactor |
201 |
|
ELSE |
202 |
|
sideMaskFac = 0. _d 0 |
203 |
|
ENDIF |
204 |
|
|
205 |
IF ( no_slip_bottom |
IF ( no_slip_bottom |
206 |
& .OR. bottomDragQuadratic.NE.0. |
& .OR. bottomDragQuadratic.NE.0. |
207 |
& .OR. bottomDragLinear.NE.0.) THEN |
& .OR. bottomDragLinear.NE.0.) THEN |
241 |
ENDDO |
ENDDO |
242 |
|
|
243 |
CALL MOM_CALC_KE(bi,bj,k,2,uFld,vFld,KE,myThid) |
CALL MOM_CALC_KE(bi,bj,k,2,uFld,vFld,KE,myThid) |
244 |
CALL MOM_CALC_HDIV(bi,bj,k,2,uFld,vFld,hDiv,myThid) |
IF ( momViscosity) THEN |
245 |
CALL MOM_CALC_RELVORT3(bi,bj,k,uFld,vFld,hFacZ,vort3,myThid) |
CALL MOM_CALC_HDIV(bi,bj,k,2,uFld,vFld,hDiv,myThid) |
246 |
CALL MOM_CALC_TENSION(bi,bj,k,uFld,vFld,tension,myThid) |
CALL MOM_CALC_RELVORT3(bi,bj,k,uFld,vFld,hFacZ,vort3,myThid) |
247 |
CALL MOM_CALC_STRAIN(bi,bj,k,uFld,vFld,hFacZ,strain,myThid) |
CALL MOM_CALC_TENSION(bi,bj,k,uFld,vFld,tension,myThid) |
248 |
|
CALL MOM_CALC_STRAIN(bi,bj,k,uFld,vFld,hFacZ,strain,myThid) |
249 |
|
DO j=1-Oly,sNy+Oly |
250 |
|
DO i=1-Olx,sNx+Olx |
251 |
|
IF ( hFacZ(i,j).EQ.0. ) THEN |
252 |
|
vort3(i,j) = sideMaskFac*vort3(i,j) |
253 |
|
strain(i,j) = sideMaskFac*strain(i,j) |
254 |
|
ENDIF |
255 |
|
ENDDO |
256 |
|
ENDDO |
257 |
|
#ifdef ALLOW_DIAGNOSTICS |
258 |
|
IF ( useDiagnostics ) THEN |
259 |
|
CALL DIAGNOSTICS_FILL(hDiv, 'momHDiv ',k,1,2,bi,bj,myThid) |
260 |
|
CALL DIAGNOSTICS_FILL(vort3, 'momVort3',k,1,2,bi,bj,myThid) |
261 |
|
CALL DIAGNOSTICS_FILL(tension,'Tension ',k,1,2,bi,bj,myThid) |
262 |
|
CALL DIAGNOSTICS_FILL(strain, 'Strain ',k,1,2,bi,bj,myThid) |
263 |
|
ENDIF |
264 |
|
#endif |
265 |
|
ENDIF |
266 |
|
|
267 |
C--- First call (k=1): compute vertical adv. flux fVerU(kUp) & fVerV(kUp) |
C--- First call (k=1): compute vertical adv. flux fVerU(kUp) & fVerV(kUp) |
268 |
IF (momAdvection.AND.k.EQ.1) THEN |
IF (momAdvection.AND.k.EQ.1) THEN |
728 |
#ifdef ALLOW_DIAGNOSTICS |
#ifdef ALLOW_DIAGNOSTICS |
729 |
IF ( useDiagnostics ) THEN |
IF ( useDiagnostics ) THEN |
730 |
CALL DIAGNOSTICS_FILL(KE, 'momKE ',k,1,2,bi,bj,myThid) |
CALL DIAGNOSTICS_FILL(KE, 'momKE ',k,1,2,bi,bj,myThid) |
|
CALL DIAGNOSTICS_FILL(hDiv, 'momHDiv ',k,1,2,bi,bj,myThid) |
|
|
CALL DIAGNOSTICS_FILL(vort3, 'momVort3',k,1,2,bi,bj,myThid) |
|
|
CALL DIAGNOSTICS_FILL(strain,'Strain ',k,1,2,bi,bj,myThid) |
|
|
CALL DIAGNOSTICS_FILL(tension,'Tension ',k,1,2,bi,bj,myThid) |
|
731 |
CALL DIAGNOSTICS_FILL(gU(1-Olx,1-Oly,k,bi,bj), |
CALL DIAGNOSTICS_FILL(gU(1-Olx,1-Oly,k,bi,bj), |
732 |
& 'Um_Advec',k,1,2,bi,bj,myThid) |
& 'Um_Advec',k,1,2,bi,bj,myThid) |
733 |
CALL DIAGNOSTICS_FILL(gV(1-Olx,1-Oly,k,bi,bj), |
CALL DIAGNOSTICS_FILL(gV(1-Olx,1-Oly,k,bi,bj), |