55 |
INTEGER bi,bj,iMin,iMax,jMin,jMax |
INTEGER bi,bj,iMin,iMax,jMin,jMax |
56 |
INTEGER trIdentity |
INTEGER trIdentity |
57 |
LOGICAL trUseGMRedi, trUseKPP |
LOGICAL trUseGMRedi, trUseKPP |
58 |
_RL KappaRTr(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) |
_RL KappaRTr(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
59 |
INTEGER myThid |
INTEGER myThid |
60 |
|
|
61 |
#ifdef ALLOW_GENERIC_ADVDIFF |
#ifdef ALLOW_GENERIC_ADVDIFF |
83 |
KbryanLewisEQ=diffKrBLEQsurf+(diffKrBLEQdeep-diffKrBLEQsurf) |
KbryanLewisEQ=diffKrBLEQsurf+(diffKrBLEQdeep-diffKrBLEQsurf) |
84 |
& *(atan(-(rF(k)-diffKrBLEQHo)/diffKrBLEQscl)/PI+0.5 _d 0) |
& *(atan(-(rF(k)-diffKrBLEQHo)/diffKrBLEQscl)/PI+0.5 _d 0) |
85 |
#endif |
#endif |
86 |
DO j = 1-Oly,sNy+Oly |
DO j = 1-OLy,sNy+OLy |
87 |
DO i = 1-Olx,sNx+Olx |
DO i = 1-OLx,sNx+OLx |
88 |
#ifdef ALLOW_LONGSTEP |
#ifdef ALLOW_LONGSTEP |
89 |
IF ( trIdentity .GE. GAD_TR1) THEN |
IF ( trIdentity .GE. GAD_TR1) THEN |
90 |
KappaRTr(i,j,k) = |
KappaRTr(i,j,k) = |
109 |
ENDDO |
ENDDO |
110 |
IF ( trIdentity.EQ.GAD_TEMPERATURE ) THEN |
IF ( trIdentity.EQ.GAD_TEMPERATURE ) THEN |
111 |
DO k = 1,Nr |
DO k = 1,Nr |
112 |
DO j = 1-Oly,sNy+Oly |
DO j = 1-OLy,sNy+OLy |
113 |
DO i = 1-Olx,sNx+Olx |
DO i = 1-OLx,sNx+OLx |
114 |
KappaRTr(i,j,k) = KappaRTr(i,j,k) |
KappaRTr(i,j,k) = KappaRTr(i,j,k) |
115 |
#ifdef ALLOW_3D_DIFFKR |
#ifdef ALLOW_3D_DIFFKR |
116 |
& + diffKr(i,j,k,bi,bj) |
& + diffKr(i,j,k,bi,bj) |
122 |
ENDDO |
ENDDO |
123 |
ELSEIF ( trIdentity.EQ.GAD_SALINITY) THEN |
ELSEIF ( trIdentity.EQ.GAD_SALINITY) THEN |
124 |
DO k = 1,Nr |
DO k = 1,Nr |
125 |
DO j = 1-Oly, sNy+Oly |
DO j = 1-OLy, sNy+OLy |
126 |
DO i = 1-Olx, sNx+Olx |
DO i = 1-OLx, sNx+OLx |
127 |
KappaRTr(i,j,k) = KappaRTr(i,j,k) |
KappaRTr(i,j,k) = KappaRTr(i,j,k) |
128 |
#ifdef ALLOW_3D_DIFFKR |
#ifdef ALLOW_3D_DIFFKR |
129 |
& + diffKr(i,j,k,bi,bj) |
& + diffKr(i,j,k,bi,bj) |
138 |
|
|
139 |
iTr = trIdentity - GAD_TR1 + 1 |
iTr = trIdentity - GAD_TR1 + 1 |
140 |
DO k = 1,Nr |
DO k = 1,Nr |
141 |
DO j = 1-Oly, sNy+Oly |
DO j = 1-OLy, sNy+OLy |
142 |
DO i = 1-Olx, sNx+Olx |
DO i = 1-OLx, sNx+OLx |
143 |
KappaRTr(i,j,k) = KappaRTr(i,j,k) |
KappaRTr(i,j,k) = KappaRTr(i,j,k) |
144 |
#ifdef ALLOW_3D_DIFFKR |
#ifdef ALLOW_3D_DIFFKR |
145 |
& + diffKr(i,j,k,bi,bj) |
& + diffKr(i,j,k,bi,bj) |
208 |
ENDIF |
ENDIF |
209 |
#endif |
#endif |
210 |
|
|
211 |
|
#ifdef ALLOW_KL10 |
212 |
|
IF (useKL10) THEN |
213 |
|
CALL KL10_CALC_DIFF( |
214 |
|
I bi,bj,iMin,iMax,jMin,jMax,0,Nr, |
215 |
|
U KappaRTr, |
216 |
|
I myThid) |
217 |
|
ENDIF |
218 |
|
#endif |
219 |
|
|
220 |
#ifdef ALLOW_MY82 |
#ifdef ALLOW_MY82 |
221 |
IF (useMY82) THEN |
IF (useMY82) THEN |
222 |
CALL MY82_CALC_DIFF( |
CALL MY82_CALC_DIFF( |
238 |
C- Apply mask to vertical diffusivity |
C- Apply mask to vertical diffusivity |
239 |
C jmc: do not have the impression that masking is needed |
C jmc: do not have the impression that masking is needed |
240 |
C but could be removed later if it is the case. |
C but could be removed later if it is the case. |
241 |
c DO j = 1-Oly, sNy+Oly |
c DO j = 1-OLy, sNy+OLy |
242 |
c DO i = 1-Olx, sNx+Olx |
c DO i = 1-OLx, sNx+OLx |
243 |
c KappaRTr(i,j,k) = maskUp(i,j)*KappaRTr(i,j,k) |
c KappaRTr(i,j,k) = maskUp(i,j)*KappaRTr(i,j,k) |
244 |
c ENDDO |
c ENDDO |
245 |
c ENDDO |
c ENDDO |