264 |
ENDIF |
ENDIF |
265 |
ENDIF |
ENDIF |
266 |
|
|
|
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
|
|
c include 'mom_vecinv.inc' |
|
|
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
|
|
|
|
267 |
C---- Zonal momentum equation starts here |
C---- Zonal momentum equation starts here |
268 |
|
|
269 |
C-- Vertical flux (fVer is at upper face of "u" cell) |
C-- Vertical flux (fVer is at upper face of "u" cell) |
329 |
c ENDDO |
c ENDDO |
330 |
c ENDIF |
c ENDIF |
331 |
|
|
|
C-- Set du/dt on boundaries to zero |
|
|
DO j=jMin,jMax |
|
|
DO i=iMin,iMax |
|
|
gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)*_maskW(i,j,k,bi,bj) |
|
|
ENDDO |
|
|
ENDDO |
|
|
|
|
332 |
|
|
333 |
C---- Meridional momentum equation starts here |
C---- Meridional momentum equation starts here |
334 |
|
|
395 |
c ENDDO |
c ENDDO |
396 |
c ENDIF |
c ENDIF |
397 |
|
|
|
C-- Set dv/dt on boundaries to zero |
|
|
DO j=jMin,jMax |
|
|
DO i=iMin,iMax |
|
|
gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)*_maskS(i,j,k,bi,bj) |
|
|
ENDDO |
|
|
ENDDO |
|
|
|
|
398 |
C-- Horizontal Coriolis terms |
C-- Horizontal Coriolis terms |
399 |
CALL MOM_VI_MASK_VORT3(bi,bj,k,hFacZ,r_hFacZ,vort3,myThid) |
CALL MOM_VI_MASK_VORT3(bi,bj,k,hFacZ,r_hFacZ,vort3,myThid) |
400 |
c CALL MOM_VI_CALC_ABSVORT3(bi,bj,k,vort3,omega3,myThid) |
c CALL MOM_VI_CALC_ABSVORT3(bi,bj,k,vort3,omega3,myThid) |
401 |
CALL MOM_VI_CORIOLIS(bi,bj,k,uFld,vFld,omega3,hFacZ,r_hFacZ, |
IF (useCoriolis) THEN |
402 |
& uCf,vCf,myThid) |
CALL MOM_VI_CORIOLIS(bi,bj,k,uFld,vFld,omega3,hFacZ,r_hFacZ, |
403 |
DO j=jMin,jMax |
& uCf,vCf,myThid) |
404 |
DO i=iMin,iMax |
DO j=jMin,jMax |
405 |
gU(i,j,k,bi,bj) = (gU(i,j,k,bi,bj)+uCf(i,j)) |
DO i=iMin,iMax |
406 |
& *_maskW(i,j,k,bi,bj) |
gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+uCf(i,j) |
407 |
gV(i,j,k,bi,bj) = (gV(i,j,k,bi,bj)+vCf(i,j)) |
gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)+vCf(i,j) |
408 |
& *_maskS(i,j,k,bi,bj) |
ENDDO |
409 |
ENDDO |
ENDDO |
410 |
ENDDO |
ENDIF |
411 |
c CALL MOM_VI_U_CORIOLIS(bi,bj,K,vFld,omega3,r_hFacZ,uCf,myThid) |
|
412 |
CALL MOM_VI_U_CORIOLIS(bi,bj,K,vFld,vort3,hFacZ,r_hFacZ, |
IF (momAdvection) THEN |
413 |
& uCf,myThid) |
C-- Horizontal advection of relative vorticity |
414 |
c CALL MOM_VI_U_CORIOLIS_C4(bi,bj,K,vFld,vort3,r_hFacZ,uCf,myThid) |
c CALL MOM_VI_U_CORIOLIS(bi,bj,K,vFld,omega3,r_hFacZ,uCf,myThid) |
415 |
DO j=jMin,jMax |
CALL MOM_VI_U_CORIOLIS(bi,bj,K,vFld,vort3,hFacZ,r_hFacZ, |
416 |
DO i=iMin,iMax |
& uCf,myThid) |
417 |
gU(i,j,k,bi,bj) = (gU(i,j,k,bi,bj)+uCf(i,j)) |
c CALL MOM_VI_U_CORIOLIS_C4(bi,bj,K,vFld,vort3,r_hFacZ,uCf,myThid) |
418 |
& *_maskW(i,j,k,bi,bj) |
DO j=jMin,jMax |
419 |
|
DO i=iMin,iMax |
420 |
|
gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+uCf(i,j) |
421 |
|
ENDDO |
422 |
ENDDO |
ENDDO |
423 |
ENDDO |
c CALL MOM_VI_V_CORIOLIS(bi,bj,K,uFld,omega3,r_hFacZ,vCf,myThid) |
424 |
c CALL MOM_VI_V_CORIOLIS(bi,bj,K,uFld,omega3,r_hFacZ,vCf,myThid) |
CALL MOM_VI_V_CORIOLIS(bi,bj,K,uFld,vort3,hFacZ,r_hFacZ, |
|
CALL MOM_VI_V_CORIOLIS(bi,bj,K,uFld,vort3,hFacZ,r_hFacZ, |
|
425 |
& vCf,myThid) |
& vCf,myThid) |
426 |
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) |
427 |
DO j=jMin,jMax |
DO j=jMin,jMax |
428 |
DO i=iMin,iMax |
DO i=iMin,iMax |
429 |
gV(i,j,k,bi,bj) = (gV(i,j,k,bi,bj)+vCf(i,j)) |
gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)+vCf(i,j) |
430 |
& *_maskS(i,j,k,bi,bj) |
ENDDO |
431 |
ENDDO |
ENDDO |
|
ENDDO |
|
432 |
|
|
433 |
IF (momAdvection) THEN |
C-- Vertical shear terms (-w*du/dr & -w*dv/dr) |
434 |
C-- Vertical shear terms (Coriolis) |
CALL MOM_VI_U_VERTSHEAR(bi,bj,K,uVel,wVel,uCf,myThid) |
435 |
CALL MOM_VI_U_VERTSHEAR(bi,bj,K,uVel,wVel,uCf,myThid) |
DO j=jMin,jMax |
436 |
DO j=jMin,jMax |
DO i=iMin,iMax |
437 |
DO i=iMin,iMax |
gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+uCf(i,j) |
438 |
gU(i,j,k,bi,bj) = (gU(i,j,k,bi,bj)+uCf(i,j)) |
ENDDO |
|
& *_maskW(i,j,k,bi,bj) |
|
439 |
ENDDO |
ENDDO |
440 |
ENDDO |
CALL MOM_VI_V_VERTSHEAR(bi,bj,K,vVel,wVel,vCf,myThid) |
441 |
CALL MOM_VI_V_VERTSHEAR(bi,bj,K,vVel,wVel,vCf,myThid) |
DO j=jMin,jMax |
442 |
DO j=jMin,jMax |
DO i=iMin,iMax |
443 |
DO i=iMin,iMax |
gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)+vCf(i,j) |
444 |
gV(i,j,k,bi,bj) = (gV(i,j,k,bi,bj)+vCf(i,j)) |
ENDDO |
|
& *_maskS(i,j,k,bi,bj) |
|
445 |
ENDDO |
ENDDO |
|
ENDDO |
|
446 |
|
|
447 |
C-- Bernoulli term |
C-- Bernoulli term |
448 |
CALL MOM_VI_U_GRAD_KE(bi,bj,K,KE,uCf,myThid) |
CALL MOM_VI_U_GRAD_KE(bi,bj,K,KE,uCf,myThid) |
449 |
DO j=jMin,jMax |
DO j=jMin,jMax |
450 |
DO i=iMin,iMax |
DO i=iMin,iMax |
451 |
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) |
452 |
& *_maskW(i,j,k,bi,bj) |
ENDDO |
453 |
ENDDO |
ENDDO |
454 |
ENDDO |
CALL MOM_VI_V_GRAD_KE(bi,bj,K,KE,vCf,myThid) |
455 |
CALL MOM_VI_V_GRAD_KE(bi,bj,K,KE,vCf,myThid) |
DO j=jMin,jMax |
456 |
|
DO i=iMin,iMax |
457 |
|
gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)+vCf(i,j) |
458 |
|
ENDDO |
459 |
|
ENDDO |
460 |
|
C-- end if momAdvection |
461 |
|
ENDIF |
462 |
|
|
463 |
|
C-- Set du/dt & dv/dt on boundaries to zero |
464 |
DO j=jMin,jMax |
DO j=jMin,jMax |
465 |
DO i=iMin,iMax |
DO i=iMin,iMax |
466 |
gV(i,j,k,bi,bj) = (gV(i,j,k,bi,bj)+vCf(i,j)) |
gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)*_maskW(i,j,k,bi,bj) |
467 |
& *_maskS(i,j,k,bi,bj) |
gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)*_maskS(i,j,k,bi,bj) |
468 |
ENDDO |
ENDDO |
469 |
ENDDO |
ENDDO |
470 |
ENDIF |
|
471 |
|
|
472 |
IF ( |
IF ( |
473 |
& DIFFERENT_MULTIPLE(diagFreq,myCurrentTime, |
& DIFFERENT_MULTIPLE(diagFreq,myCurrentTime, |
480 |
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) |
481 |
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) |
482 |
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) |
483 |
CALL WRITE_LOCAL_RL('W3','I10',1,omega3,bi,bj,k,myIter,myThid) |
c CALL WRITE_LOCAL_RL('W3','I10',1,omega3,bi,bj,k,myIter,myThid) |
484 |
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) |
485 |
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) |
486 |
ENDIF |
ENDIF |