121 |
C o uTrans: Zonal transport |
C o uTrans: Zonal transport |
122 |
C o vTrans: Meridional transport |
C o vTrans: Meridional transport |
123 |
C o rTrans: Vertical transport |
C o rTrans: Vertical transport |
124 |
|
C rTransKp1 o vertical volume transp. at interface k+1 |
125 |
C maskUp o maskUp: land/water mask for W points |
C maskUp o maskUp: land/water mask for W points |
126 |
C fVer[STUV] o fVer: Vertical flux term - note fVer |
C fVer[STUV] o fVer: Vertical flux term - note fVer |
127 |
C is "pipelined" in the vertical |
C is "pipelined" in the vertical |
144 |
_RL uTrans (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL uTrans (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
145 |
_RL vTrans (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL vTrans (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
146 |
_RL rTrans (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL rTrans (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
147 |
|
_RL rTransKp1(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
148 |
_RS maskUp (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RS maskUp (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
149 |
_RL fVerT (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2) |
_RL fVerT (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2) |
150 |
_RL fVerS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2) |
_RL fVerS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2) |
165 |
_RL sigmaR (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL sigmaR (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
166 |
C This is currently used by IVDC and Diagnostics |
C This is currently used by IVDC and Diagnostics |
167 |
_RL ConvectCount (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL ConvectCount (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
168 |
|
_RL kp1Msk |
169 |
LOGICAL useVariableK |
LOGICAL useVariableK |
170 |
INTEGER iMin, iMax |
INTEGER iMin, iMax |
171 |
INTEGER jMin, jMax |
INTEGER jMin, jMax |
234 |
phiSurfX(i,j) = 0. _d 0 |
phiSurfX(i,j) = 0. _d 0 |
235 |
phiSurfY(i,j) = 0. _d 0 |
phiSurfY(i,j) = 0. _d 0 |
236 |
rTrans (i,j) = 0. _d 0 |
rTrans (i,j) = 0. _d 0 |
237 |
|
rTransKp1(i,j) = 0. _d 0 |
238 |
fVerT (i,j,1) = 0. _d 0 |
fVerT (i,j,1) = 0. _d 0 |
239 |
fVerT (i,j,2) = 0. _d 0 |
fVerT (i,j,2) = 0. _d 0 |
240 |
fVerS (i,j,1) = 0. _d 0 |
fVerS (i,j,1) = 0. _d 0 |
633 |
jMin = 1-OLy |
jMin = 1-OLy |
634 |
jMax = sNy+OLy |
jMax = sNy+OLy |
635 |
|
|
636 |
|
kp1Msk=1. |
637 |
|
IF (k.EQ.Nr) kp1Msk=0. |
638 |
|
DO j=1-Oly,sNy+Oly |
639 |
|
DO i=1-Olx,sNx+Olx |
640 |
|
rTransKp1(i,j) = kp1Msk*rTrans(i,j) |
641 |
|
ENDDO |
642 |
|
ENDDO |
643 |
|
|
644 |
C-- Get temporary terms used by tendency routines |
C-- Get temporary terms used by tendency routines |
645 |
CALL CALC_COMMON_FACTORS ( |
CALL CALC_COMMON_FACTORS ( |
646 |
I bi,bj,iMin,iMax,jMin,jMax,k, |
I bi,bj,iMin,iMax,jMin,jMax,k, |
647 |
O xA,yA,uTrans,vTrans,rTrans,maskUp, |
O xA,yA,uTrans,vTrans,rTrans,maskUp, |
648 |
I myThid) |
I myThid) |
649 |
|
|
650 |
|
IF (k.EQ.1) THEN |
651 |
|
C- Surface interface : |
652 |
|
DO j=1-Oly,sNy+Oly |
653 |
|
DO i=1-Olx,sNx+Olx |
654 |
|
rTrans(i,j) = 0. |
655 |
|
ENDDO |
656 |
|
ENDDO |
657 |
|
ELSE |
658 |
|
C- Interior interface : |
659 |
|
DO j=1-Oly,sNy+Oly |
660 |
|
DO i=1-Olx,sNx+Olx |
661 |
|
rTrans(i,j) = rTrans(i,j)*maskC(i,j,k-1,bi,bj) |
662 |
|
ENDDO |
663 |
|
ENDDO |
664 |
|
ENDIF |
665 |
|
|
666 |
#ifdef ALLOW_GMREDI |
#ifdef ALLOW_GMREDI |
667 |
|
|
668 |
C-- Residual transp = Bolus transp + Eulerian transp |
C-- Residual transp = Bolus transp + Eulerian transp |
706 |
IF ( tempStepping ) THEN |
IF ( tempStepping ) THEN |
707 |
CALL CALC_GT( |
CALL CALC_GT( |
708 |
I bi,bj,iMin,iMax,jMin,jMax, k,km1,kup,kDown, |
I bi,bj,iMin,iMax,jMin,jMax, k,km1,kup,kDown, |
709 |
I xA,yA,uTrans,vTrans,rTrans,maskUp, |
I xA,yA,uTrans,vTrans,rTrans,rTransKp1,maskUp, |
710 |
I KappaRT, |
I KappaRT, |
711 |
U fVerT, |
U fVerT, |
712 |
I myTime,myIter,myThid) |
I myTime,myIter,myThid) |
719 |
IF ( saltStepping ) THEN |
IF ( saltStepping ) THEN |
720 |
CALL CALC_GS( |
CALL CALC_GS( |
721 |
I bi,bj,iMin,iMax,jMin,jMax, k,km1,kup,kDown, |
I bi,bj,iMin,iMax,jMin,jMax, k,km1,kup,kDown, |
722 |
I xA,yA,uTrans,vTrans,rTrans,maskUp, |
I xA,yA,uTrans,vTrans,rTrans,rTransKp1,maskUp, |
723 |
I KappaRS, |
I KappaRS, |
724 |
U fVerS, |
U fVerS, |
725 |
I myTime,myIter,myThid) |
I myTime,myIter,myThid) |
733 |
IF ( tr1Stepping ) THEN |
IF ( tr1Stepping ) THEN |
734 |
CALL CALC_GTR1( |
CALL CALC_GTR1( |
735 |
I bi,bj,iMin,iMax,jMin,jMax, k,km1,kup,kDown, |
I bi,bj,iMin,iMax,jMin,jMax, k,km1,kup,kDown, |
736 |
I xA,yA,uTrans,vTrans,rTrans,maskUp, |
I xA,yA,uTrans,vTrans,rTrans,rTransKp1,maskUp, |
737 |
I KappaRT, |
I KappaRT, |
738 |
U fVerTr1, |
U fVerTr1, |
739 |
I myTime,myIter,myThid) |
I myTime,myIter,myThid) |
747 |
IF ( usePTRACERS ) THEN |
IF ( usePTRACERS ) THEN |
748 |
CALL PTRACERS_INTEGRATE( |
CALL PTRACERS_INTEGRATE( |
749 |
I bi,bj,k, |
I bi,bj,k, |
750 |
I xA,yA,uTrans,vTrans,rTrans,maskUp, |
I xA,yA,uTrans,vTrans,rTrans,rTransKp1,maskUp, |
751 |
X fVerP, KappaRS, |
X fVerP, KappaRS, |
752 |
I myIter,myTime,myThid) |
I myIter,myTime,myThid) |
753 |
ENDIF |
ENDIF |