| 39 |
C !INTERFACE: ========================================================== |
C !INTERFACE: ========================================================== |
| 40 |
SUBROUTINE MOM_FLUXFORM( |
SUBROUTINE MOM_FLUXFORM( |
| 41 |
I bi,bj,k,iMin,iMax,jMin,jMax, |
I bi,bj,k,iMin,iMax,jMin,jMax, |
| 42 |
I KappaRU, KappaRV, |
I kappaRU, kappaRV, |
| 43 |
U fVerUkm, fVerVkm, |
U fVerUkm, fVerVkm, |
| 44 |
O fVerUkp, fVerVkp, |
O fVerUkp, fVerVkp, |
| 45 |
O guDiss, gvDiss, |
O guDiss, gvDiss, |
| 72 |
C bi,bj :: current tile indices |
C bi,bj :: current tile indices |
| 73 |
C k :: current vertical level |
C k :: current vertical level |
| 74 |
C iMin,iMax,jMin,jMax :: loop ranges |
C iMin,iMax,jMin,jMax :: loop ranges |
| 75 |
C KappaRU :: vertical viscosity |
C kappaRU :: vertical viscosity |
| 76 |
C KappaRV :: vertical viscosity |
C kappaRV :: vertical viscosity |
| 77 |
C fVerUkm :: vertical advective flux of U, interface above (k-1/2) |
C fVerUkm :: vertical advective flux of U, interface above (k-1/2) |
| 78 |
C fVerVkm :: vertical advective flux of V, interface above (k-1/2) |
C fVerVkm :: vertical advective flux of V, interface above (k-1/2) |
| 79 |
C fVerUkp :: vertical advective flux of U, interface below (k+1/2) |
C fVerUkp :: vertical advective flux of U, interface below (k+1/2) |
| 85 |
C myThid :: my Thread Id number |
C myThid :: my Thread Id number |
| 86 |
INTEGER bi,bj,k |
INTEGER bi,bj,k |
| 87 |
INTEGER iMin,iMax,jMin,jMax |
INTEGER iMin,iMax,jMin,jMax |
| 88 |
_RL KappaRU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL kappaRU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1) |
| 89 |
_RL KappaRV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL kappaRV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1) |
| 90 |
_RL fVerUkm(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL fVerUkm(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
| 91 |
_RL fVerVkm(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL fVerVkm(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
| 92 |
_RL fVerUkp(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL fVerUkp(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
| 524 |
|
|
| 525 |
C Eddy component of vertical flux (interior component only) -> fVrUp & fVrDw |
C Eddy component of vertical flux (interior component only) -> fVrUp & fVrDw |
| 526 |
IF (.NOT.implicitViscosity) THEN |
IF (.NOT.implicitViscosity) THEN |
| 527 |
CALL MOM_U_RVISCFLUX( bi,bj, k, uVel,KappaRU,fVrUp,myThid ) |
CALL MOM_U_RVISCFLUX( bi,bj, k, uVel,kappaRU,fVrUp,myThid ) |
| 528 |
CALL MOM_U_RVISCFLUX( bi,bj,k+1,uVel,KappaRU,fVrDw,myThid ) |
CALL MOM_U_RVISCFLUX( bi,bj,k+1,uVel,kappaRU,fVrDw,myThid ) |
| 529 |
ENDIF |
ENDIF |
| 530 |
|
|
| 531 |
C-- Tendency is minus divergence of the fluxes |
C-- Tendency is minus divergence of the fluxes |
| 574 |
ENDIF |
ENDIF |
| 575 |
C- No-slip BCs impose a drag at bottom |
C- No-slip BCs impose a drag at bottom |
| 576 |
IF (bottomDragTerms) THEN |
IF (bottomDragTerms) THEN |
| 577 |
CALL MOM_U_BOTTOMDRAG( bi,bj,k,uFld,KE,KappaRU,vF,myThid ) |
CALL MOM_U_BOTTOMDRAG( bi,bj,k,uFld,KE,kappaRU,vF,myThid ) |
| 578 |
DO j=jMin,jMax |
DO j=jMin,jMax |
| 579 |
DO i=iMin,iMax |
DO i=iMin,iMax |
| 580 |
gUdiss(i,j) = gUdiss(i,j) + vF(i,j) |
gUdiss(i,j) = gUdiss(i,j) + vF(i,j) |
| 584 |
|
|
| 585 |
#ifdef ALLOW_SHELFICE |
#ifdef ALLOW_SHELFICE |
| 586 |
IF (useShelfIce) THEN |
IF (useShelfIce) THEN |
| 587 |
CALL SHELFICE_U_DRAG( bi,bj,k,uFld,KE,KappaRU,vF,myThid ) |
CALL SHELFICE_U_DRAG( bi,bj,k,uFld,KE,kappaRU,vF,myThid ) |
| 588 |
DO j=jMin,jMax |
DO j=jMin,jMax |
| 589 |
DO i=iMin,iMax |
DO i=iMin,iMax |
| 590 |
gUdiss(i,j) = gUdiss(i,j) + vF(i,j) |
gUdiss(i,j) = gUdiss(i,j) + vF(i,j) |