/[MITgcm]/MITgcm/pkg/gmredi/gmredi_calc_tensor.F
ViewVC logotype

Diff of /MITgcm/pkg/gmredi/gmredi_calc_tensor.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.1 by adcroft, Wed Jun 21 19:42:54 2000 UTC revision 1.9 by jmc, Sun Dec 16 18:54:49 2001 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2    C $Name$
3    
4  #include "GMREDI_OPTIONS.h"  #include "GMREDI_OPTIONS.h"
5    
6  CStartOfInterface  CStartOfInterface
7        SUBROUTINE GMREDI_CALC_TENSOR(        SUBROUTINE GMREDI_CALC_TENSOR(
8       I             bi, bj, iMin, iMax, jMin, jMax, K,       I             bi, bj, iMin, iMax, jMin, jMax,
9       I             sigmaX, sigmaY, sigmaR,       I             sigmaX, sigmaY, sigmaR,
10       I             myThid )       I             myThid )
11  C     /==========================================================\  C     /==========================================================\
# Line 28  C Line 29  C
29        _RL sigmaX(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)        _RL sigmaX(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
30        _RL sigmaY(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)        _RL sigmaY(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
31        _RL sigmaR(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)        _RL sigmaR(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
32        INTEGER bi,bj,iMin,iMax,jMin,jMax,K        INTEGER bi,bj,iMin,iMax,jMin,jMax
33        INTEGER myThid        INTEGER myThid
34  CEndOfInterface  CEndOfInterface
35    
36  #ifdef ALLOW_GMREDI  #ifdef ALLOW_GMREDI
37    
38  C     == Local variables ==  C     == Local variables ==
39        INTEGER i,j,km1,kp1        INTEGER i,j,k,km1,kp1
40        _RL SlopeX(1-Olx:sNx+Olx,1-Oly:sNy+Oly)        _RL SlopeX(1-Olx:sNx+Olx,1-Oly:sNy+Oly)
41        _RL SlopeY(1-Olx:sNx+Olx,1-Oly:sNy+Oly)        _RL SlopeY(1-Olx:sNx+Olx,1-Oly:sNy+Oly)
42        _RL dSigmaDrReal(1-Olx:sNx+Olx,1-Oly:sNy+Oly)        _RL dSigmaDrReal(1-Olx:sNx+Olx,1-Oly:sNy+Oly)
43        _RL dRdSigmaLtd(1-Olx:sNx+Olx,1-Oly:sNy+Oly)        _RL SlopeSqr(1-Olx:sNx+Olx,1-Oly:sNy+Oly)
44        _RL Ssq        _RL taperFct(1-Olx:sNx+Olx,1-Oly:sNy+Oly)
45          _RL maskp1, Kgm_tmp
46    
47  #ifdef GM_VISBECK_VARIABLE_K  #ifdef GM_VISBECK_VARIABLE_K
48        _RS deltaH,zero_rs        _RS deltaH,zero_rs
49        PARAMETER(zero_rs=0.)        PARAMETER(zero_rs=0.)
50        _RL N2,SN        _RL N2,SN
51          _RL Ssq
52  #endif  #endif
53    
54          DO k=2,Nr
55        km1=max(1,K-1)  C-- 1rst loop on k : compute Tensor Coeff. at W points.
56        kp1=min(Nr,K)  c      km1 = MAX(1,k-1)
   
57    
58  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
59  !HPF$ INDEPENDENT  !HPF$ INDEPENDENT
# Line 63  C     == Local variables == Line 65  C     == Local variables ==
65         DO i=1-Olx+1,sNx+Olx-1         DO i=1-Olx+1,sNx+Olx-1
66    
67  C      Gradient of Sigma at rVel points  C      Gradient of Sigma at rVel points
68          SlopeX(i,j)=0.25*( sigmaX(i+1, j ,km1) +sigmaX(i,j,km1)          SlopeX(i,j)=0.25*( sigmaX(i+1, j ,k-1) +sigmaX(i,j,k-1)
69       &                    +sigmaX(i+1, j , k ) +sigmaX(i,j, k ) )       &                    +sigmaX(i+1, j , k ) +sigmaX(i,j, k ) )
70          SlopeY(i,j)=0.25*( sigmaY( i ,j+1,km1) +sigmaY(i,j,km1)       &                  *maskC(i,j,k,bi,bj)
71            SlopeY(i,j)=0.25*( sigmaY( i ,j+1,k-1) +sigmaY(i,j,k-1)
72       &                    +sigmaY( i ,j+1, k ) +sigmaY(i,j, k ) )       &                    +sigmaY( i ,j+1, k ) +sigmaY(i,j, k ) )
73         &                  *maskC(i,j,k,bi,bj)
74          dSigmaDrReal(i,j)=sigmaR(i,j,k)          dSigmaDrReal(i,j)=sigmaR(i,j,k)
75    
         if (hFacC(i,j,k,bi,bj).eq.0.) then  
          SlopeX(i,j)=0.  
          SlopeY(i,j)=0.  
         endif  
   
76         ENDDO         ENDDO
77        ENDDO        ENDDO
78    
79  C     Calculate slopes for use in tensor, taper and/or clip  C     Calculate slopes for use in tensor, taper and/or clip
80        CALL GMREDI_SLOPE_LIMIT(        CALL GMREDI_SLOPE_LIMIT(
81       I             dSigmadRReal,       U             dSigmadRReal,
82       I             rF(K),       I             rF(K),
83       U             SlopeX, SlopeY,       U             SlopeX, SlopeY,
84       O             dRdSigmaLtd,       O             SlopeSqr, taperFct,
85       I             bi, bj, myThid )       I             bi, bj, myThid )
86    
87        DO j=1-Oly+1,sNy+Oly-1        DO j=1-Oly+1,sNy+Oly-1
88         DO i=1-Olx+1,sNx+Olx-1         DO i=1-Olx+1,sNx+Olx-1
89    
90  C       Mask Iso-neutral slopes  C       Mask Iso-neutral slopes
91          if (hFacC(i,j,k,bi,bj).eq.0.) then          SlopeX(i,j)=SlopeX(i,j)*maskC(i,j,k,bi,bj)
92           SlopeX(i,j)=0.          SlopeY(i,j)=SlopeY(i,j)*maskC(i,j,k,bi,bj)
93           SlopeY(i,j)=0.          SlopeSqr(i,j)=SlopeSqr(i,j)*maskC(i,j,k,bi,bj)
94          endif  c       Ssq=SlopeX(i,j)*SlopeX(i,j)+SlopeY(i,j)*SlopeY(i,j)
95          Ssq=SlopeX(i,j)*SlopeX(i,j)+SlopeY(i,j)*SlopeY(i,j)  
96    C       Components of Redi/GM tensor
97  C       Components of Redi/GM tensor          Kwx(i,j,k,bi,bj)= SlopeX(i,j)*taperFct(i,j)
98          Kwx(i,j,k,myThid)=2.*SlopeX(i,j)          Kwy(i,j,k,bi,bj)= SlopeY(i,j)*taperFct(i,j)
99          Kwy(i,j,k,myThid)=2.*SlopeY(i,j)          Kwz(i,j,k,bi,bj)= SlopeSqr(i,j)*taperFct(i,j)
         Kwz(i,j,k,myThid)=Ssq  
100    
101  #ifdef GM_VISBECK_VARIABLE_K  #ifdef GM_VISBECK_VARIABLE_K
102    
103    C- note (jmc) : moved here since only used in VISBECK_VARIABLE_K
104    C           but don't know if *taperFct (or **2 ?) is necessary
105            Ssq=SlopeSqr(i,j)*taperFct(i,j)
106    
107  C--     Depth average of M^2/N^2 * N  C--     Depth average of M^2/N^2 * N
108    
109  C       Calculate terms for mean Richardson number  C       Calculate terms for mean Richardson number
# Line 114  C       If negative then we are below th Line 117  C       If negative then we are below th
117  C       Now we convert deltaH to a non-dimensional fraction  C       Now we convert deltaH to a non-dimensional fraction
118          deltaH=deltaH/GM_Visbeck_depth          deltaH=deltaH/GM_Visbeck_depth
119    
120          if (K.eq.2) VisbeckK(i,j,myThid)=0.          IF (K.eq.2) VisbeckK(i,j,bi,bj)=0.
121  Calt?   if (dSigmaDrReal(i,j).NE.0.) then          IF (Ssq.NE.0.) THEN
122  Calt?    N2=(-Gravity*recip_Rhonil)*dSigmaDrReal(i,j)           N2= -Gravity*recip_Rhonil*dSigmaDrReal(i,j)
         if (dRdSigmaLtd(i,j).NE.0.) then  
          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    #endif /* GM_VISBECK_VARIABLE_K */
129    
130  C       Limit range that KapGM can take         ENDDO
131          VisbeckK(i,j,myThid)=        ENDDO
      &     min(VisbeckK(i,j,myThid),GM_Visbeck_maxval_K)  
132    
133    C-- end 1rst loop on vertical level index k
134          ENDDO
135    
136    
137    #ifdef GM_VISBECK_VARIABLE_K
138          IF ( GM_Visbeck_alpha.NE.0. ) THEN
139    C-     Limit range that KapGM can take
140           DO j=1-Oly+1,sNy+Oly-1
141            DO i=1-Olx+1,sNx+Olx-1
142             VisbeckK(i,j,bi,bj)=
143         &       MIN(VisbeckK(i,j,bi,bj),GM_Visbeck_maxval_K)
144    #ifdef ALLOW_TIMEAVE
145             Visbeck_K_T(i,j,bi,bj)=Visbeck_K_T(i,j,bi,bj)
146         &                         +VisbeckK(i,j,bi,bj)*deltaTclock
147    #endif
148            ENDDO
149           ENDDO
150          ENDIF
151  #endif /* GM_VISBECK_VARIABLE_K */  #endif /* GM_VISBECK_VARIABLE_K */
152    
153    
154  #ifdef INCLUDE_DIAGNOSTICS_INTERFACE_CODE  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
155  C--     Time-average  C-- 2nd loop on k : compute Tensor Coeff. at U,V levels.
156          GM_Kwx_T(i,j,k,bi,bj)=GM_Kwx_T(i,j,k,bi,bj)        DO k=1,Nr
157       &                       +Kwx(i,j,k,myThid)*deltaTclock         kp1 = MIN(Nr,k+1)
158          GM_Kwy_T(i,j,k,bi,bj)=GM_Kwy_T(i,j,k,bi,bj)         maskp1 = 1. _d 0
159       &                       +Kwy(i,j,k,myThid)*deltaTclock         IF (k.GE.Nr) maskp1 = 0. _d 0
160          GM_Kwz_T(i,j,k,bi,bj)=GM_Kwz_T(i,j,k,bi,bj)  
161       &                       +Kwz(i,j,k,myThid)*deltaTclock  C-    express the Tensor in term of Diffusivity (= m**2 / s )
162          DO j=1-Oly+1,sNy+Oly-1
163           DO i=1-Olx+1,sNx+Olx-1
164            Kgm_tmp = GM_isopycK + GM_skewflx*GM_background_K
165  #ifdef GM_VISBECK_VARIABLE_K  #ifdef GM_VISBECK_VARIABLE_K
166          IF (K.EQ.Nr)       &          + VisbeckK(i,j,bi,bj)*(1.+GM_skewflx)    
      &  Visbeck_K_T(i,j,bi,bj)=Visbeck_K_T(i,j,bi,bj)  
      &                       +VisbeckK(i,j,myThid)*deltaTclock  
167  #endif  #endif
168            Kwx(i,j,k,bi,bj)= Kgm_tmp*Kwx(i,j,k,bi,bj)
169            Kwy(i,j,k,bi,bj)= Kgm_tmp*Kwy(i,j,k,bi,bj)
170            Kwz(i,j,k,bi,bj)= ( GM_isopycK
171    #ifdef GM_VISBECK_VARIABLE_K
172         &                    + VisbeckK(i,j,bi,bj)
173    #endif
174         &                    )*Kwz(i,j,k,bi,bj)
175         ENDDO         ENDDO
176        ENDDO        ENDDO
       GM_TimeAve(k,bi,bj)=GM_TimeAve(k,bi,bj)+deltaTclock  
 #endif /* INCLUDE_DIAGNOSTICS_INTERFACE_CODE */  
177    
178    #if ( defined (GM_NON_UNITY_DIAGONAL) || defined (GM_EXTRA_DIAGONAL) )
179    
   
 #ifdef GM_NON_UNITY_DIAGONAL  
180  C     Gradient of Sigma at U points  C     Gradient of Sigma at U points
181        DO j=1-Oly+1,sNy+Oly-1        DO j=1-Oly+1,sNy+Oly-1
182         DO i=1-Olx+1,sNx+Olx-1         DO i=1-Olx+1,sNx+Olx-1
183          SlopeX(i,j)=sigmaX(i,j,km1)          SlopeX(i,j)=sigmaX(i,j,k)
184       &          *_maskW(i,j,k,bi,bj)       &          *_maskW(i,j,k,bi,bj)
185          SlopeY(i,j)=0.25*( sigmaY(i-1,j+1,k) +sigmaY(i,j+1,k)          SlopeY(i,j)=0.25*( sigmaY(i-1,j+1,k) +sigmaY(i,j+1,k)
186       &                    +sigmaY(i-1, j ,k) +sigmaY(i, j ,k) )       &                    +sigmaY(i-1, j ,k) +sigmaY(i, j ,k) )
187       &          *_maskW(i,j,k,bi,bj)       &          *_maskW(i,j,k,bi,bj)
188          dSigmaDrReal(i,j)=0.25*( sigmaR(i-1,j, k ) +sigmaR(i,j, k )          dSigmaDrReal(i,j)=0.25*( sigmaR(i-1,j, k ) +sigmaR(i,j, k )
189       &                          +sigmaR(i-1,j,kp1) +sigmaR(i,j,kp1) )       &                  +maskp1*(sigmaR(i-1,j,kp1) +sigmaR(i,j,kp1)) )
190       &          *_maskW(i,j,k,bi,bj)       &          *_maskW(i,j,k,bi,bj)
191         ENDDO         ENDDO
192        ENDDO        ENDDO
193    
194  C     Calculate slopes for use in tensor, taper and/or clip  C     Calculate slopes for use in tensor, taper and/or clip
195        CALL GMREDI_SLOPE_LIMIT(        CALL GMREDI_SLOPE_LIMIT(
196       I             dSigmadRReal,       U             dSigmadRReal,
197       I             rF(K),       I             rF(K),
198       U             SlopeX, SlopeY,       U             SlopeX, SlopeY,
199       O             dRdSigmaLtd,       O             SlopeSqr, taperFct,
200       I             bi, bj, myThid )       I             bi, bj, myThid )
201    
202        DO j=1-Oly+1,sNy+Oly-1  #ifdef GM_NON_UNITY_DIAGONAL
203         DO i=1-Olx+1,sNx+Olx-1          DO j=1-Oly+1,sNy+Oly-1
204          Kux(i,j,k,myThid)=(dSigmaDrReal(i,j)*dRdSigmaLtd(i,j))**2           DO i=1-Olx+1,sNx+Olx-1
205         ENDDO            Kux(i,j,k,bi,bj) =
206        ENDDO       &     ( GM_isopycK
207    #ifdef GM_VISBECK_VARIABLE_K
208         &     +0.5*(VisbeckK(i,j,bi,bj)+VisbeckK(i-1,j,bi,bj))
209    #endif
210         &     )*taperFct(i,j)
211              Kux(i,j,k,bi,bj) = MAX( Kux(i,j,k,bi,bj), GM_Kmin_horiz )
212             ENDDO
213            ENDDO
214    #endif /* GM_NON_UNITY_DIAGONAL */
215    
216    #ifdef GM_EXTRA_DIAGONAL
217          IF (GM_ExtraDiag) THEN
218            DO j=1-Oly+1,sNy+Oly-1
219             DO i=1-Olx+1,sNx+Olx-1
220              Kuz(i,j,k,bi,bj) =
221         &     ( GM_isopycK - GM_skewflx*GM_background_K
222    #ifdef GM_VISBECK_VARIABLE_K
223         &     +0.5*(VisbeckK(i,j,bi,bj)+VisbeckK(i-1,j,bi,bj))*GM_advect
224    #endif
225         &     )*SlopeX(i,j)*taperFct(i,j)
226             ENDDO
227            ENDDO
228          ENDIF
229    #endif /* GM_EXTRA_DIAGONAL */
230    
231  C     Gradient of Sigma at V points  C     Gradient of Sigma at V points
232        DO j=1-Oly+1,sNy+Oly-1        DO j=1-Oly+1,sNy+Oly-1
# Line 186  C     Gradient of Sigma at V points Line 234  C     Gradient of Sigma at V points
234          SlopeX(i,j)=0.25*( sigmaX(i, j ,k) +sigmaX(i+1, j ,k)          SlopeX(i,j)=0.25*( sigmaX(i, j ,k) +sigmaX(i+1, j ,k)
235       &                    +sigmaX(i,j-1,k) +sigmaX(i+1,j-1,k) )       &                    +sigmaX(i,j-1,k) +sigmaX(i+1,j-1,k) )
236       &          *_maskS(i,j,k,bi,bj)       &          *_maskS(i,j,k,bi,bj)
237          SlopeY(i,j)=sigmaY(i,j,km1)          SlopeY(i,j)=sigmaY(i,j,k)
238       &          *_maskS(i,j,k,bi,bj)       &          *_maskS(i,j,k,bi,bj)
239          dSigmaDrReal(i,j)=0.25*( sigmaR(i,j-1, k ) +sigmaR(i,j, k )          dSigmaDrReal(i,j)=0.25*( sigmaR(i,j-1, k ) +sigmaR(i,j, k )
240       &                          +sigmaR(i,j-1,kp1) +sigmaR(i,j,kp1) )       &                  +maskp1*(sigmaR(i,j-1,kp1) +sigmaR(i,j,kp1)) )
241       &          *_maskS(i,j,k,bi,bj)       &          *_maskS(i,j,k,bi,bj)
242         ENDDO         ENDDO
243        ENDDO        ENDDO
244    
245  C     Calculate slopes for use in tensor, taper and/or clip  C     Calculate slopes for use in tensor, taper and/or clip
246        CALL GMREDI_SLOPE_LIMIT(        CALL GMREDI_SLOPE_LIMIT(
247       I             dSigmadRReal,       U             dSigmadRReal,
248       I             rF(K),       I             rF(K),
249       U             SlopeX, SlopeY,       U             SlopeX, SlopeY,
250       O             dRdSigmaLtd,       O             SlopeSqr, taperFct,
251       I             bi, bj, myThid )       I             bi, bj, myThid )
252    
253    #ifdef GM_NON_UNITY_DIAGONAL
254            DO j=1-Oly+1,sNy+Oly-1
255             DO i=1-Olx+1,sNx+Olx-1
256              Kvy(i,j,k,bi,bj) =
257         &     ( GM_isopycK
258    #ifdef GM_VISBECK_VARIABLE_K
259         &     +0.5*(VisbeckK(i,j,bi,bj)+VisbeckK(i,j-1,bi,bj))
260    #endif
261         &     )*taperFct(i,j)
262              Kvy(i,j,k,bi,bj) = MAX( Kvy(i,j,k,bi,bj), GM_Kmin_horiz )
263             ENDDO
264            ENDDO
265    #endif /* GM_NON_UNITY_DIAGONAL */
266    
267    #ifdef GM_EXTRA_DIAGONAL
268          IF (GM_ExtraDiag) THEN
269            DO j=1-Oly+1,sNy+Oly-1
270             DO i=1-Olx+1,sNx+Olx-1
271              Kvz(i,j,k,bi,bj) =
272         &     ( GM_isopycK - GM_skewflx*GM_background_K
273    #ifdef GM_VISBECK_VARIABLE_K
274         &     +0.5*(VisbeckK(i,j,bi,bj)+VisbeckK(i,j-1,bi,bj))*GM_advect
275    #endif
276         &     )*SlopeY(i,j)*taperFct(i,j)
277             ENDDO
278            ENDDO
279          ENDIF
280    #endif /* GM_EXTRA_DIAGONAL */
281    
282    #endif /* GM_NON_UNITY_DIAGONAL || GM_EXTRA_DIAGONAL */
283    
284    #ifdef ALLOW_TIMEAVE
285    C--   Time-average
286        DO j=1-Oly+1,sNy+Oly-1        DO j=1-Oly+1,sNy+Oly-1
287         DO i=1-Olx+1,sNx+Olx-1         DO i=1-Olx+1,sNx+Olx-1
288          Kvy(i,j,k,myThid)=(dSigmaDrReal(i,j)*dRdSigmaLtd(i,j))**2          GM_Kwx_T(i,j,k,bi,bj)=GM_Kwx_T(i,j,k,bi,bj)
289         &                       +Kwx(i,j,k,bi,bj)*deltaTclock
290            GM_Kwy_T(i,j,k,bi,bj)=GM_Kwy_T(i,j,k,bi,bj)
291         &                       +Kwy(i,j,k,bi,bj)*deltaTclock
292            GM_Kwz_T(i,j,k,bi,bj)=GM_Kwz_T(i,j,k,bi,bj)
293         &                       +Kwz(i,j,k,bi,bj)*deltaTclock
294         ENDDO         ENDDO
295        ENDDO        ENDDO
296          GM_TimeAve(k,bi,bj)=GM_TimeAve(k,bi,bj)+deltaTclock
297    #endif /* ALLOW_TIMEAVE */
298    
299    C-- end 2nd loop on vertical level index k
300          ENDDO
301    
 #endif /* GM_NON_UNITY_DIAGONAL */  
302    
303    #ifdef GM_BOLUS_ADVEC
304          IF (GM_AdvForm) THEN
305            CALL GMREDI_CALC_PSI_B(
306         I             bi, bj, iMin, iMax, jMin, jMax,
307         I             sigmaX, sigmaY, sigmaR,
308         I             myThid )
309          ENDIF
310    #endif
311    
312    #endif /* ALLOW_GMREDI */
313    
314          RETURN
315          END
316    
317    
318          SUBROUTINE GMREDI_CALC_TENSOR_DUMMY(
319         I             bi, bj, iMin, iMax, jMin, jMax,
320         I             sigmaX, sigmaY, sigmaR,
321         I             myThid )
322    C     /==========================================================\
323    C     | SUBROUTINE GMREDI_CALC_TENSOR                            |
324    C     | o Calculate tensor elements for GM/Redi tensor.          |
325    C     |==========================================================|
326    C     \==========================================================/
327          IMPLICIT NONE
328    
329    C     == Global variables ==
330    #include "SIZE.h"
331    #include "GRID.h"
332    #include "DYNVARS.h"
333    #include "EEPARAMS.h"
334    #include "PARAMS.h"
335    #include "GMREDI.h"
336    
337    C     == Routine arguments ==
338    C
339          _RL sigmaX(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
340          _RL sigmaY(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
341          _RL sigmaR(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
342          INTEGER bi,bj,iMin,iMax,jMin,jMax
343          INTEGER myThid
344    CEndOfInterface
345    
346          INTEGER i, j, k
347    
348    #ifdef ALLOW_GMREDI
349    
350          DO k=1,Nr
351           DO j=1-Oly+1,sNy+Oly-1
352            DO i=1-Olx+1,sNx+Olx-1
353             Kwx(i,j,k,bi,bj) = 0.0
354             Kwy(i,j,k,bi,bj) = 0.0
355             Kwz(i,j,k,bi,bj) = 0.0
356            ENDDO
357           ENDDO
358          ENDDO
359  #endif /* ALLOW_GMREDI */  #endif /* ALLOW_GMREDI */
360    
361        RETURN        RETURN

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.9

  ViewVC Help
Powered by ViewVC 1.1.22