| 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), |