96 |
Ssq=SlopeX(i,j)*SlopeX(i,j)+SlopeY(i,j)*SlopeY(i,j) |
Ssq=SlopeX(i,j)*SlopeX(i,j)+SlopeY(i,j)*SlopeY(i,j) |
97 |
|
|
98 |
C Components of Redi/GM tensor |
C Components of Redi/GM tensor |
99 |
Kwx(i,j,k,myThid)=2.*SlopeX(i,j) |
Kwx(i,j,k,bi,bj)=2.*SlopeX(i,j) |
100 |
Kwy(i,j,k,myThid)=2.*SlopeY(i,j) |
Kwy(i,j,k,bi,bj)=2.*SlopeY(i,j) |
101 |
Kwz(i,j,k,myThid)=Ssq |
Kwz(i,j,k,bi,bj)=Ssq |
102 |
|
|
103 |
#ifdef GM_VISBECK_VARIABLE_K |
#ifdef GM_VISBECK_VARIABLE_K |
104 |
C-- Depth average of M^2/N^2 * N |
C-- Depth average of M^2/N^2 * N |
114 |
C Now we convert deltaH to a non-dimensional fraction |
C Now we convert deltaH to a non-dimensional fraction |
115 |
deltaH=deltaH/GM_Visbeck_depth |
deltaH=deltaH/GM_Visbeck_depth |
116 |
|
|
117 |
if (K.eq.2) VisbeckK(i,j,myThid)=0. |
if (K.eq.2) VisbeckK(i,j,bi,bj)=0. |
118 |
Calt? if (dSigmaDrReal(i,j).NE.0.) then |
Calt? if (dSigmaDrReal(i,j).NE.0.) then |
119 |
Calt? N2=(-Gravity*recip_Rhonil)*dSigmaDrReal(i,j) |
Calt? N2=(-Gravity*recip_Rhonil)*dSigmaDrReal(i,j) |
120 |
if (dRdSigmaLtd(i,j).NE.0.) then |
if (dRdSigmaLtd(i,j).NE.0.) then |
121 |
N2=(-Gravity*recip_Rhonil)/dRdSigmaLtd(i,j) |
N2=(-Gravity*recip_Rhonil)/dRdSigmaLtd(i,j) |
122 |
SN=sqrt(Ssq*N2) |
SN=sqrt(Ssq*N2) |
123 |
VisbeckK(i,j,myThid)=VisbeckK(i,j,myThid)+deltaH |
VisbeckK(i,j,bi,bj)=VisbeckK(i,j,bi,bj)+deltaH |
124 |
& *GM_Visbeck_alpha*GM_Visbeck_length*GM_Visbeck_length*SN |
& *GM_Visbeck_alpha*GM_Visbeck_length*GM_Visbeck_length*SN |
125 |
endif |
endif |
126 |
|
|
127 |
C Limit range that KapGM can take |
C Limit range that KapGM can take |
128 |
VisbeckK(i,j,myThid)= |
VisbeckK(i,j,bi,bj)= |
129 |
& min(VisbeckK(i,j,myThid),GM_Visbeck_maxval_K) |
& min(VisbeckK(i,j,bi,bj),GM_Visbeck_maxval_K) |
130 |
|
|
131 |
#endif /* GM_VISBECK_VARIABLE_K */ |
#endif /* GM_VISBECK_VARIABLE_K */ |
132 |
|
|
134 |
#ifdef INCLUDE_DIAGNOSTICS_INTERFACE_CODE |
#ifdef INCLUDE_DIAGNOSTICS_INTERFACE_CODE |
135 |
C-- Time-average |
C-- Time-average |
136 |
GM_Kwx_T(i,j,k,bi,bj)=GM_Kwx_T(i,j,k,bi,bj) |
GM_Kwx_T(i,j,k,bi,bj)=GM_Kwx_T(i,j,k,bi,bj) |
137 |
& +Kwx(i,j,k,myThid)*deltaTclock |
& +Kwx(i,j,k,bi,bj)*deltaTclock |
138 |
GM_Kwy_T(i,j,k,bi,bj)=GM_Kwy_T(i,j,k,bi,bj) |
GM_Kwy_T(i,j,k,bi,bj)=GM_Kwy_T(i,j,k,bi,bj) |
139 |
& +Kwy(i,j,k,myThid)*deltaTclock |
& +Kwy(i,j,k,bi,bj)*deltaTclock |
140 |
GM_Kwz_T(i,j,k,bi,bj)=GM_Kwz_T(i,j,k,bi,bj) |
GM_Kwz_T(i,j,k,bi,bj)=GM_Kwz_T(i,j,k,bi,bj) |
141 |
& +Kwz(i,j,k,myThid)*deltaTclock |
& +Kwz(i,j,k,bi,bj)*deltaTclock |
142 |
#ifdef GM_VISBECK_VARIABLE_K |
#ifdef GM_VISBECK_VARIABLE_K |
143 |
IF (K.EQ.Nr) |
IF (K.EQ.Nr) |
144 |
& Visbeck_K_T(i,j,bi,bj)=Visbeck_K_T(i,j,bi,bj) |
& Visbeck_K_T(i,j,bi,bj)=Visbeck_K_T(i,j,bi,bj) |
145 |
& +VisbeckK(i,j,myThid)*deltaTclock |
& +VisbeckK(i,j,bi,bj)*deltaTclock |
146 |
#endif |
#endif |
147 |
ENDDO |
ENDDO |
148 |
ENDDO |
ENDDO |
176 |
|
|
177 |
DO j=1-Oly+1,sNy+Oly-1 |
DO j=1-Oly+1,sNy+Oly-1 |
178 |
DO i=1-Olx+1,sNx+Olx-1 |
DO i=1-Olx+1,sNx+Olx-1 |
179 |
Kux(i,j,k,myThid)=(dSigmaDrReal(i,j)*dRdSigmaLtd(i,j))**2 |
Kux(i,j,k,bi,bj)=(dSigmaDrReal(i,j)*dRdSigmaLtd(i,j))**2 |
180 |
ENDDO |
ENDDO |
181 |
ENDDO |
ENDDO |
182 |
|
|
204 |
|
|
205 |
DO j=1-Oly+1,sNy+Oly-1 |
DO j=1-Oly+1,sNy+Oly-1 |
206 |
DO i=1-Olx+1,sNx+Olx-1 |
DO i=1-Olx+1,sNx+Olx-1 |
207 |
Kvy(i,j,k,myThid)=(dSigmaDrReal(i,j)*dRdSigmaLtd(i,j))**2 |
Kvy(i,j,k,bi,bj)=(dSigmaDrReal(i,j)*dRdSigmaLtd(i,j))**2 |
208 |
ENDDO |
ENDDO |
209 |
ENDDO |
ENDDO |
210 |
|
|
252 |
|
|
253 |
DO j=1-Oly+1,sNy+Oly-1 |
DO j=1-Oly+1,sNy+Oly-1 |
254 |
DO i=1-Olx+1,sNx+Olx-1 |
DO i=1-Olx+1,sNx+Olx-1 |
255 |
Kwx(i,j,k,myThid) = 0.0 |
Kwx(i,j,k,bi,bj) = 0.0 |
256 |
Kwy(i,j,k,myThid) = 0.0 |
Kwy(i,j,k,bi,bj) = 0.0 |
257 |
Kwz(i,j,k,myThid) = 0.0 |
Kwz(i,j,k,bi,bj) = 0.0 |
258 |
ENDDO |
ENDDO |
259 |
ENDDO |
ENDDO |
260 |
#endif /* ALLOW_GMREDI */ |
#endif /* ALLOW_GMREDI */ |