237 |
|
|
238 |
CALL MOM_CALC_HDIV(bi,bj,k,2,uFld,vFld,hDiv,myThid) |
CALL MOM_CALC_HDIV(bi,bj,k,2,uFld,vFld,hDiv,myThid) |
239 |
|
|
240 |
CALL MOM_VI_CALC_RELVORT3(bi,bj,k,uFld,vFld,hFacZ,vort3,myThid) |
CALL MOM_CALC_RELVORT3(bi,bj,k,uFld,vFld,hFacZ,vort3,myThid) |
241 |
|
|
242 |
c CALL MOM_VI_CALC_ABSVORT3(bi,bj,k,vort3,omega3,myThid) |
IF (useAbsVorticity) |
243 |
|
& CALL MOM_CALC_ABSVORT3(bi,bj,k,vort3,omega3,myThid) |
244 |
|
|
245 |
IF (momViscosity) THEN |
IF (momViscosity) THEN |
246 |
C Calculate del^2 u and del^2 v for bi-harmonic term |
C Calculate del^2 u and del^2 v for bi-harmonic term |
247 |
IF (viscA4.NE.0. .OR. viscA4Grid.NE.0.) THEN |
IF (viscA4.NE.0. |
248 |
|
& .OR. viscA4Grid.NE.0. |
249 |
|
& .OR. viscC4leith.NE.0. |
250 |
|
& ) THEN |
251 |
CALL MOM_VI_DEL2UV(bi,bj,k,hDiv,vort3,hFacZ, |
CALL MOM_VI_DEL2UV(bi,bj,k,hDiv,vort3,hFacZ, |
252 |
O del2u,del2v, |
O del2u,del2v, |
253 |
& myThid) |
& myThid) |
254 |
CALL MOM_CALC_HDIV(bi,bj,k,2,del2u,del2v,dStar,myThid) |
CALL MOM_CALC_HDIV(bi,bj,k,2,del2u,del2v,dStar,myThid) |
255 |
CALL MOM_VI_CALC_RELVORT3( |
CALL MOM_CALC_RELVORT3( |
256 |
& bi,bj,k,del2u,del2v,hFacZ,zStar,myThid) |
& bi,bj,k,del2u,del2v,hFacZ,zStar,myThid) |
257 |
ENDIF |
ENDIF |
258 |
C Calculate dissipation terms for U and V equations |
C Calculate dissipation terms for U and V equations |
259 |
C in terms of vorticity and divergence |
C in terms of vorticity and divergence |
260 |
IF (viscAh.NE.0. .OR. viscA4.NE.0. .OR. |
IF (viscAh.NE.0. .OR. viscA4.NE.0. |
261 |
& viscAhGrid.NE.0. .OR. viscA4Grid.NE.0. ) THEN |
& .OR. viscAhGrid.NE.0. .OR. viscA4Grid.NE.0. |
262 |
|
& .OR. viscC2leith.NE.0. .OR. viscC4leith.NE.0. |
263 |
|
& ) THEN |
264 |
CALL MOM_VI_HDISSIP(bi,bj,k,hDiv,vort3,hFacZ,dStar,zStar, |
CALL MOM_VI_HDISSIP(bi,bj,k,hDiv,vort3,hFacZ,dStar,zStar, |
265 |
O uDiss,vDiss, |
O uDiss,vDiss, |
266 |
& myThid) |
& myThid) |
403 |
c ENDIF |
c ENDIF |
404 |
|
|
405 |
C-- Horizontal Coriolis terms |
C-- Horizontal Coriolis terms |
406 |
IF (useCoriolis .AND. .NOT.useCDscheme) THEN |
IF (useCoriolis .AND. .NOT.useCDscheme |
407 |
CALL MOM_VI_CORIOLIS(bi,bj,k,uFld,vFld,omega3,hFacZ,r_hFacZ, |
& .AND. .NOT. useAbsVorticity) THEN |
408 |
|
CALL MOM_VI_CORIOLIS(bi,bj,k,uFld,vFld,hFacZ,r_hFacZ, |
409 |
& uCf,vCf,myThid) |
& uCf,vCf,myThid) |
410 |
DO j=jMin,jMax |
DO j=jMin,jMax |
411 |
DO i=iMin,iMax |
DO i=iMin,iMax |
421 |
|
|
422 |
IF (momAdvection) THEN |
IF (momAdvection) THEN |
423 |
C-- Horizontal advection of relative vorticity |
C-- Horizontal advection of relative vorticity |
424 |
c CALL MOM_VI_U_CORIOLIS(bi,bj,K,vFld,omega3,r_hFacZ,uCf,myThid) |
IF (useAbsVorticity) THEN |
425 |
CALL MOM_VI_U_CORIOLIS(bi,bj,k,vFld,vort3,hFacZ,r_hFacZ, |
CALL MOM_VI_U_CORIOLIS(bi,bj,K,vFld,omega3,hFacZ,r_hFacZ, |
426 |
& uCf,myThid) |
& uCf,myThid) |
427 |
|
ELSE |
428 |
|
CALL MOM_VI_U_CORIOLIS(bi,bj,k,vFld,vort3,hFacZ,r_hFacZ, |
429 |
|
& uCf,myThid) |
430 |
|
ENDIF |
431 |
c CALL MOM_VI_U_CORIOLIS_C4(bi,bj,K,vFld,vort3,r_hFacZ,uCf,myThid) |
c CALL MOM_VI_U_CORIOLIS_C4(bi,bj,K,vFld,vort3,r_hFacZ,uCf,myThid) |
432 |
DO j=jMin,jMax |
DO j=jMin,jMax |
433 |
DO i=iMin,iMax |
DO i=iMin,iMax |
434 |
gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+uCf(i,j) |
gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+uCf(i,j) |
435 |
ENDDO |
ENDDO |
436 |
ENDDO |
ENDDO |
437 |
c CALL MOM_VI_V_CORIOLIS(bi,bj,K,uFld,omega3,r_hFacZ,vCf,myThid) |
IF (useAbsVorticity) THEN |
438 |
CALL MOM_VI_V_CORIOLIS(bi,bj,k,uFld,vort3,hFacZ,r_hFacZ, |
CALL MOM_VI_V_CORIOLIS(bi,bj,K,uFld,omega3,hFacZ,r_hFacZ, |
439 |
& vCf,myThid) |
& vCf,myThid) |
440 |
|
ELSE |
441 |
|
CALL MOM_VI_V_CORIOLIS(bi,bj,k,uFld,vort3,hFacZ,r_hFacZ, |
442 |
|
& vCf,myThid) |
443 |
|
ENDIF |
444 |
c CALL MOM_VI_V_CORIOLIS_C4(bi,bj,K,uFld,vort3,r_hFacZ,vCf,myThid) |
c CALL MOM_VI_V_CORIOLIS_C4(bi,bj,K,uFld,vort3,r_hFacZ,vCf,myThid) |
445 |
DO j=jMin,jMax |
DO j=jMin,jMax |
446 |
DO i=iMin,iMax |
DO i=iMin,iMax |
515 |
CALL WRITE_LOCAL_RL('Du','I10',1,uDiss,bi,bj,k,myIter,myThid) |
CALL WRITE_LOCAL_RL('Du','I10',1,uDiss,bi,bj,k,myIter,myThid) |
516 |
CALL WRITE_LOCAL_RL('Dv','I10',1,vDiss,bi,bj,k,myIter,myThid) |
CALL WRITE_LOCAL_RL('Dv','I10',1,vDiss,bi,bj,k,myIter,myThid) |
517 |
CALL WRITE_LOCAL_RL('Z3','I10',1,vort3,bi,bj,k,myIter,myThid) |
CALL WRITE_LOCAL_RL('Z3','I10',1,vort3,bi,bj,k,myIter,myThid) |
518 |
c CALL WRITE_LOCAL_RL('W3','I10',1,omega3,bi,bj,k,myIter,myThid) |
CALL WRITE_LOCAL_RL('W3','I10',1,omega3,bi,bj,k,myIter,myThid) |
519 |
CALL WRITE_LOCAL_RL('KE','I10',1,KE,bi,bj,k,myIter,myThid) |
CALL WRITE_LOCAL_RL('KE','I10',1,KE,bi,bj,k,myIter,myThid) |
520 |
CALL WRITE_LOCAL_RL('D','I10',1,hdiv,bi,bj,k,myIter,myThid) |
CALL WRITE_LOCAL_RL('D','I10',1,hdiv,bi,bj,k,myIter,myThid) |
521 |
ENDIF |
ENDIF |