226 |
|
|
227 |
CALL MOM_VI_CALC_RELVORT3(bi,bj,k,uFld,vFld,hFacZ,vort3,myThid) |
CALL MOM_VI_CALC_RELVORT3(bi,bj,k,uFld,vFld,hFacZ,vort3,myThid) |
228 |
|
|
229 |
CALL MOM_VI_CALC_ABSVORT3(bi,bj,k,vort3,omega3,myThid) |
c CALL MOM_VI_CALC_ABSVORT3(bi,bj,k,vort3,omega3,myThid) |
230 |
|
|
231 |
IF (momViscosity) THEN |
IF (momViscosity) THEN |
232 |
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 |
325 |
c ENDDO |
c ENDDO |
326 |
c ENDIF |
c ENDIF |
327 |
|
|
|
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 |
|
|
|
|
328 |
|
|
329 |
C---- Meridional momentum equation starts here |
C---- Meridional momentum equation starts here |
330 |
|
|
391 |
c ENDDO |
c ENDDO |
392 |
c ENDIF |
c ENDIF |
393 |
|
|
|
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 |
|
|
|
|
394 |
C-- Horizontal Coriolis terms |
C-- Horizontal Coriolis terms |
395 |
CALL MOM_VI_CORIOLIS(bi,bj,K,uFld,vFld,omega3,r_hFacZ, |
IF (useCoriolis) THEN |
396 |
& uCf,vCf,myThid) |
CALL MOM_VI_CORIOLIS(bi,bj,K,uFld,vFld,omega3,r_hFacZ, |
397 |
DO j=jMin,jMax |
& uCf,vCf,myThid) |
398 |
DO i=iMin,iMax |
DO j=jMin,jMax |
399 |
gU(i,j,k,bi,bj) = (gU(i,j,k,bi,bj)+uCf(i,j)) |
DO i=iMin,iMax |
400 |
& *_maskW(i,j,k,bi,bj) |
gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+uCf(i,j) |
401 |
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) |
402 |
& *_maskS(i,j,k,bi,bj) |
ENDDO |
403 |
ENDDO |
ENDDO |
404 |
ENDDO |
ENDIF |
405 |
c CALL MOM_VI_U_CORIOLIS(bi,bj,K,vFld,omega3,r_hFacZ,uCf,myThid) |
|
406 |
CALL MOM_VI_U_CORIOLIS(bi,bj,K,vFld,vort3,r_hFacZ,uCf,myThid) |
IF (momAdvection) THEN |
407 |
c CALL MOM_VI_U_CORIOLIS_C4(bi,bj,K,vFld,vort3,r_hFacZ,uCf,myThid) |
C-- Horizontal advection of relative vorticity |
408 |
DO j=jMin,jMax |
c CALL MOM_VI_U_CORIOLIS(bi,bj,K,vFld,omega3,r_hFacZ,uCf,myThid) |
409 |
DO i=iMin,iMax |
CALL MOM_VI_U_CORIOLIS(bi,bj,K,vFld,vort3,r_hFacZ,uCf,myThid) |
410 |
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) |
411 |
& *_maskW(i,j,k,bi,bj) |
DO j=jMin,jMax |
412 |
|
DO i=iMin,iMax |
413 |
|
gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+uCf(i,j) |
414 |
|
ENDDO |
415 |
ENDDO |
ENDDO |
416 |
ENDDO |
c CALL MOM_VI_V_CORIOLIS(bi,bj,K,uFld,omega3,r_hFacZ,vCf,myThid) |
417 |
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,r_hFacZ,vCf,myThid) |
418 |
CALL MOM_VI_V_CORIOLIS(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) |
419 |
c CALL MOM_VI_V_CORIOLIS_C4(bi,bj,K,uFld,vort3,r_hFacZ,vCf,myThid) |
DO j=jMin,jMax |
420 |
DO j=jMin,jMax |
DO i=iMin,iMax |
421 |
DO i=iMin,iMax |
gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)+vCf(i,j) |
422 |
gV(i,j,k,bi,bj) = (gV(i,j,k,bi,bj)+vCf(i,j)) |
ENDDO |
|
& *_maskS(i,j,k,bi,bj) |
|
423 |
ENDDO |
ENDDO |
|
ENDDO |
|
424 |
|
|
425 |
IF (momAdvection) THEN |
C-- Vertical shear terms (-w*du/dr & -w*dv/dr) |
426 |
C-- Vertical shear terms (Coriolis) |
CALL MOM_VI_U_VERTSHEAR(bi,bj,K,uVel,wVel,uCf,myThid) |
427 |
CALL MOM_VI_U_VERTSHEAR(bi,bj,K,uVel,wVel,uCf,myThid) |
DO j=jMin,jMax |
428 |
DO j=jMin,jMax |
DO i=iMin,iMax |
429 |
DO i=iMin,iMax |
gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+uCf(i,j) |
430 |
gU(i,j,k,bi,bj) = (gU(i,j,k,bi,bj)+uCf(i,j)) |
ENDDO |
|
& *_maskW(i,j,k,bi,bj) |
|
431 |
ENDDO |
ENDDO |
432 |
ENDDO |
CALL MOM_VI_V_VERTSHEAR(bi,bj,K,vVel,wVel,vCf,myThid) |
433 |
CALL MOM_VI_V_VERTSHEAR(bi,bj,K,vVel,wVel,vCf,myThid) |
DO j=jMin,jMax |
434 |
DO j=jMin,jMax |
DO i=iMin,iMax |
435 |
DO i=iMin,iMax |
gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)+vCf(i,j) |
436 |
gV(i,j,k,bi,bj) = (gV(i,j,k,bi,bj)+vCf(i,j)) |
ENDDO |
|
& *_maskS(i,j,k,bi,bj) |
|
437 |
ENDDO |
ENDDO |
|
ENDDO |
|
438 |
|
|
439 |
C-- Bernoulli term |
C-- Bernoulli term |
440 |
CALL MOM_VI_U_GRAD_KE(bi,bj,K,KE,uCf,myThid) |
CALL MOM_VI_U_GRAD_KE(bi,bj,K,KE,uCf,myThid) |
441 |
DO j=jMin,jMax |
DO j=jMin,jMax |
442 |
DO i=iMin,iMax |
DO i=iMin,iMax |
443 |
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) |
444 |
& *_maskW(i,j,k,bi,bj) |
ENDDO |
445 |
ENDDO |
ENDDO |
446 |
ENDDO |
CALL MOM_VI_V_GRAD_KE(bi,bj,K,KE,vCf,myThid) |
447 |
CALL MOM_VI_V_GRAD_KE(bi,bj,K,KE,vCf,myThid) |
DO j=jMin,jMax |
448 |
|
DO i=iMin,iMax |
449 |
|
gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)+vCf(i,j) |
450 |
|
ENDDO |
451 |
|
ENDDO |
452 |
|
C-- end if momAdvection |
453 |
|
ENDIF |
454 |
|
|
455 |
|
C-- Set du/dt & dv/dt on boundaries to zero |
456 |
DO j=jMin,jMax |
DO j=jMin,jMax |
457 |
DO i=iMin,iMax |
DO i=iMin,iMax |
458 |
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) |
459 |
& *_maskS(i,j,k,bi,bj) |
gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)*_maskS(i,j,k,bi,bj) |
460 |
ENDDO |
ENDDO |
461 |
ENDDO |
ENDDO |
462 |
ENDIF |
|
463 |
|
|
464 |
IF ( |
IF ( |
465 |
& DIFFERENT_MULTIPLE(diagFreq,myCurrentTime, |
& DIFFERENT_MULTIPLE(diagFreq,myCurrentTime, |
472 |
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) |
473 |
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) |
474 |
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) |
475 |
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) |
476 |
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) |
477 |
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) |
478 |
ENDIF |
ENDIF |