1 |
C $Header$ |
C $Header$ |
2 |
|
C $Name$ |
3 |
|
|
4 |
#include "GMREDI_OPTIONS.h" |
#include "GMREDI_OPTIONS.h" |
5 |
|
|
97 |
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) |
98 |
|
|
99 |
C Components of Redi/GM tensor |
C Components of Redi/GM tensor |
100 |
Kwx(i,j,k,myThid)=2.*SlopeX(i,j) |
Kwx(i,j,k,bi,bj)=2.*SlopeX(i,j) |
101 |
Kwy(i,j,k,myThid)=2.*SlopeY(i,j) |
Kwy(i,j,k,bi,bj)=2.*SlopeY(i,j) |
102 |
Kwz(i,j,k,myThid)=Ssq |
Kwz(i,j,k,bi,bj)=Ssq |
103 |
|
|
104 |
#ifdef GM_VISBECK_VARIABLE_K |
#ifdef GM_VISBECK_VARIABLE_K |
105 |
C-- Depth average of M^2/N^2 * N |
C-- Depth average of M^2/N^2 * N |
115 |
C Now we convert deltaH to a non-dimensional fraction |
C Now we convert deltaH to a non-dimensional fraction |
116 |
deltaH=deltaH/GM_Visbeck_depth |
deltaH=deltaH/GM_Visbeck_depth |
117 |
|
|
118 |
if (K.eq.2) VisbeckK(i,j,myThid)=0. |
if (K.eq.2) VisbeckK(i,j,bi,bj)=0. |
119 |
Calt? if (dSigmaDrReal(i,j).NE.0.) then |
Calt? if (dSigmaDrReal(i,j).NE.0.) then |
120 |
Calt? N2=(-Gravity*recip_Rhonil)*dSigmaDrReal(i,j) |
Calt? N2=(-Gravity*recip_Rhonil)*dSigmaDrReal(i,j) |
121 |
if (dRdSigmaLtd(i,j).NE.0.) then |
if ( dRdSigmaLtd(i,j).NE.0. .AND. Ssq.NE.0. ) then |
122 |
N2=(-Gravity*recip_Rhonil)/dRdSigmaLtd(i,j) |
N2=(-Gravity*recip_Rhonil)/dRdSigmaLtd(i,j) |
123 |
SN=sqrt(Ssq*N2) |
SN=sqrt(Ssq*N2) |
124 |
VisbeckK(i,j,myThid)=VisbeckK(i,j,myThid)+deltaH |
VisbeckK(i,j,bi,bj)=VisbeckK(i,j,bi,bj)+deltaH |
125 |
& *GM_Visbeck_alpha*GM_Visbeck_length*GM_Visbeck_length*SN |
& *GM_Visbeck_alpha*GM_Visbeck_length*GM_Visbeck_length*SN |
126 |
endif |
endif |
127 |
|
|
128 |
C Limit range that KapGM can take |
C Limit range that KapGM can take |
129 |
VisbeckK(i,j,myThid)= |
VisbeckK(i,j,bi,bj)= |
130 |
& min(VisbeckK(i,j,myThid),GM_Visbeck_maxval_K) |
& min(VisbeckK(i,j,bi,bj),GM_Visbeck_maxval_K) |
131 |
|
|
132 |
#endif /* GM_VISBECK_VARIABLE_K */ |
#endif /* GM_VISBECK_VARIABLE_K */ |
133 |
|
|
134 |
|
|
135 |
#ifdef INCLUDE_DIAGNOSTICS_INTERFACE_CODE |
#ifdef ALLOW_TIMEAVE |
136 |
C-- Time-average |
C-- Time-average |
137 |
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) |
138 |
& +Kwx(i,j,k,myThid)*deltaTclock |
& +Kwx(i,j,k,bi,bj)*deltaTclock |
139 |
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) |
140 |
& +Kwy(i,j,k,myThid)*deltaTclock |
& +Kwy(i,j,k,bi,bj)*deltaTclock |
141 |
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) |
142 |
& +Kwz(i,j,k,myThid)*deltaTclock |
& +Kwz(i,j,k,bi,bj)*deltaTclock |
143 |
#ifdef GM_VISBECK_VARIABLE_K |
#ifdef GM_VISBECK_VARIABLE_K |
144 |
IF (K.EQ.Nr) |
IF (K.EQ.Nr) |
145 |
& 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) |
146 |
& +VisbeckK(i,j,myThid)*deltaTclock |
& +VisbeckK(i,j,bi,bj)*deltaTclock |
147 |
#endif |
#endif |
148 |
|
#endif /* ALLOW_TIMEAVE */ |
149 |
ENDDO |
ENDDO |
150 |
ENDDO |
ENDDO |
|
GM_TimeAve(k,bi,bj)=GM_TimeAve(k,bi,bj)+deltaTclock |
|
|
#endif /* INCLUDE_DIAGNOSTICS_INTERFACE_CODE */ |
|
151 |
|
|
152 |
|
#ifdef ALLOW_TIMEAVE |
153 |
|
GM_TimeAve(k,bi,bj)=GM_TimeAve(k,bi,bj)+deltaTclock |
154 |
|
#endif |
155 |
|
|
156 |
|
|
157 |
#ifdef GM_NON_UNITY_DIAGONAL |
#ifdef GM_NON_UNITY_DIAGONAL |
179 |
|
|
180 |
DO j=1-Oly+1,sNy+Oly-1 |
DO j=1-Oly+1,sNy+Oly-1 |
181 |
DO i=1-Olx+1,sNx+Olx-1 |
DO i=1-Olx+1,sNx+Olx-1 |
182 |
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 |
183 |
ENDDO |
ENDDO |
184 |
ENDDO |
ENDDO |
185 |
|
|
207 |
|
|
208 |
DO j=1-Oly+1,sNy+Oly-1 |
DO j=1-Oly+1,sNy+Oly-1 |
209 |
DO i=1-Olx+1,sNx+Olx-1 |
DO i=1-Olx+1,sNx+Olx-1 |
210 |
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 |
211 |
ENDDO |
ENDDO |
212 |
ENDDO |
ENDDO |
213 |
|
|
255 |
|
|
256 |
DO j=1-Oly+1,sNy+Oly-1 |
DO j=1-Oly+1,sNy+Oly-1 |
257 |
DO i=1-Olx+1,sNx+Olx-1 |
DO i=1-Olx+1,sNx+Olx-1 |
258 |
Kwx(i,j,k,myThid) = 0.0 |
Kwx(i,j,k,bi,bj) = 0.0 |
259 |
Kwy(i,j,k,myThid) = 0.0 |
Kwy(i,j,k,bi,bj) = 0.0 |
260 |
Kwz(i,j,k,myThid) = 0.0 |
Kwz(i,j,k,bi,bj) = 0.0 |
261 |
ENDDO |
ENDDO |
262 |
ENDDO |
ENDDO |
263 |
#endif /* ALLOW_GMREDI */ |
#endif /* ALLOW_GMREDI */ |