/[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.30 by dfer, Fri Sep 7 14:27:19 2007 UTC revision 1.35 by jmc, Sat Jan 2 23:10:47 2010 UTC
# Line 5  C $Name$ Line 5  C $Name$
5  #ifdef ALLOW_KPP  #ifdef ALLOW_KPP
6  # include "KPP_OPTIONS.h"  # include "KPP_OPTIONS.h"
7  #endif  #endif
 #undef OLD_VISBECK_CALC  
8    
9  CBOP  CBOP
10  C     !ROUTINE: GMREDI_CALC_TENSOR  C     !ROUTINE: GMREDI_CALC_TENSOR
# Line 87  C     == Local variables == Line 86  C     == Local variables ==
86    
87  #ifdef GM_VISBECK_VARIABLE_K  #ifdef GM_VISBECK_VARIABLE_K
88  #ifdef OLD_VISBECK_CALC  #ifdef OLD_VISBECK_CALC
       _RL deltaH,zero_rs  
       PARAMETER(zero_rs=0.D0)  
       _RL N2,SN  
89        _RL Ssq(1-Olx:sNx+Olx,1-Oly:sNy+Oly)        _RL Ssq(1-Olx:sNx+Olx,1-Oly:sNy+Oly)
90  #else  #else
91        _RL dSigmaH        _RL dSigmaH, dSigmaR
92        _RL deltaH, integrDepth        _RL Sloc, M2loc
       _RL Sloc, M2loc, SNloc  
 #endif  
93  #endif  #endif
94          _RL recipMaxSlope
95          _RL deltaH, integrDepth
96          _RL N2loc, SNloc
97    #endif /* GM_VISBECK_VARIABLE_K */
98    
99  #ifdef ALLOW_DIAGNOSTICS  #ifdef ALLOW_DIAGNOSTICS
100        LOGICAL  doDiagRediFlx        LOGICAL  doDiagRediFlx
# Line 132  C---+----1----+----2----+----3----+----4 Line 130  C---+----1----+----2----+----3----+----4
130  #endif  #endif
131    
132  #ifdef GM_VISBECK_VARIABLE_K  #ifdef GM_VISBECK_VARIABLE_K
133          recipMaxSlope = 0. _d 0
134          IF ( GM_Visbeck_maxSlope.GT.0. _d 0 ) THEN
135            recipMaxSlope = 1. _d 0 / GM_Visbeck_maxSlope
136          ENDIF
137        DO j=1-Oly,sNy+Oly        DO j=1-Oly,sNy+Oly
138         DO i=1-Olx,sNx+Olx         DO i=1-Olx,sNx+Olx
139          VisbeckK(i,j,bi,bj) = 0. _d 0          VisbeckK(i,j,bi,bj) = 0. _d 0
# Line 258  C-- 1rst loop on k : compute Tensor Coef Line 260  C-- 1rst loop on k : compute Tensor Coef
260  # endif  # endif
261          ENDDO          ENDDO
262         ENDDO         ENDDO
263  #endif  #endif /* ALLOW_AUTODIFF_TAMC */
264    
265         DO j=1-Oly+1,sNy+Oly-1         DO j=1-Oly+1,sNy+Oly-1
266          DO i=1-Olx+1,sNx+Olx-1          DO i=1-Olx+1,sNx+Olx-1
# Line 269  C      Gradient of Sigma at rVel points Line 271  C      Gradient of Sigma at rVel points
271           dSigmaDy(i,j)=op25*( sigmaY(i,j+1,k-1)+sigmaY(i,j,k-1)           dSigmaDy(i,j)=op25*( sigmaY(i,j+1,k-1)+sigmaY(i,j,k-1)
272       &                       +sigmaY(i,j+1, k )+sigmaY(i,j, k )       &                       +sigmaY(i,j+1, k )+sigmaY(i,j, k )
273       &                      )*maskC(i,j,k,bi,bj)       &                      )*maskC(i,j,k,bi,bj)
274           dSigmaDr(i,j)=sigmaR(i,j,k)  c        dSigmaDr(i,j)=sigmaR(i,j,k)
275          ENDDO          ENDDO
276         ENDDO         ENDDO
277    
 #ifdef ALLOW_AUTODIFF_TAMC  
 CADJ STORE dSigmaDx(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte  
 CADJ STORE dSigmaDy(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte  
 CADJ STORE dSigmaDr(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte  
 CADJ STORE baseSlope(:,:)      = comlev1_bibj_k, key=kkey, byte=isbyte  
 CADJ STORE hTransLay(:,:)      = comlev1_bibj_k, key=kkey, byte=isbyte  
 CADJ STORE recipLambda(:,:)    = comlev1_bibj_k, key=kkey, byte=isbyte  
 #endif /* ALLOW_AUTODIFF_TAMC */  
   
278  #ifdef GM_VISBECK_VARIABLE_K  #ifdef GM_VISBECK_VARIABLE_K
279  #ifndef OLD_VISBECK_CALC  #ifndef OLD_VISBECK_CALC
280         IF ( GM_Visbeck_alpha.GT.0. .AND.         IF ( GM_Visbeck_alpha.GT.0. .AND.
281       &      -rC(k-1).LT.GM_Visbeck_depth ) THEN       &      -rC(k-1).LT.GM_Visbeck_depth ) THEN
282    
283            DO j=1-Oly,sNy+Oly
284             DO i=1-Olx,sNx+Olx
285              dSigmaDr(i,j) = MIN( sigmaR(i,j,k), 0. _d 0 )
286             ENDDO
287            ENDDO
288    
289  C--     Depth average of f/sqrt(Ri) = M^2/N^2 * N  C--     Depth average of f/sqrt(Ri) = M^2/N^2 * N
290  C       M^2 and N^2 are horizontal & vertical gradient of buoyancy.  C       M^2 and N^2 are horizontal & vertical gradient of buoyancy.
291    
# Line 301  C       GM_Visbeck_depth, whatever is th Line 300  C       GM_Visbeck_depth, whatever is th
300             integrDepth = -rC( kLowC(i,j,bi,bj) )             integrDepth = -rC( kLowC(i,j,bi,bj) )
301  C-      in 2 steps to avoid mix of RS & RL type in min fct. arguments  C-      in 2 steps to avoid mix of RS & RL type in min fct. arguments
302             integrDepth = MIN( integrDepth, GM_Visbeck_depth )             integrDepth = MIN( integrDepth, GM_Visbeck_depth )
303    C-      to recover "old-visbeck" form with Visbeck_minDepth = Visbeck_depth
304               integrDepth = MAX( integrDepth, GM_Visbeck_minDepth )
305  C       Distance between level center above and the integration depth  C       Distance between level center above and the integration depth
306             deltaH = integrDepth + rC(k-1)             deltaH = integrDepth + rC(k-1)
307  C       If negative then we are below the integration level  C       If negative then we are below the integration level
# Line 310  C       If positive we limit this to the Line 311  C       If positive we limit this to the
311  C       Now we convert deltaH to a non-dimensional fraction  C       Now we convert deltaH to a non-dimensional fraction
312             deltaH = deltaH/( integrDepth+rC(1) )             deltaH = deltaH/( integrDepth+rC(1) )
313    
314  C--      compute: ( M^2 * S )^1/2   (= M^2 / N since S=M^2/N^2 )  C--      compute: ( M^2 * S )^1/2   (= S*N since S=M^2/N^2 )
315    C        a 5 points average gives a more "homogeneous" formulation
316    C        (same stencil and same weights as for dSigmaH calculation)
317               dSigmaR = ( dSigmaDr(i,j)*4. _d 0
318         &               + dSigmaDr(i-1,j)
319         &               + dSigmaDr(i+1,j)
320         &               + dSigmaDr(i,j-1)
321         &               + dSigmaDr(i,j+1)
322         &               )/( 4. _d 0
323         &                 + maskC(i-1,j,k,bi,bj)
324         &                 + maskC(i+1,j,k,bi,bj)
325         &                 + maskC(i,j-1,k,bi,bj)
326         &                 + maskC(i,j+1,k,bi,bj)
327         &                 )
328             dSigmaH = dSigmaDx(i,j)*dSigmaDx(i,j)             dSigmaH = dSigmaDx(i,j)*dSigmaDx(i,j)
329       &             + dSigmaDy(i,j)*dSigmaDy(i,j)       &             + dSigmaDy(i,j)*dSigmaDy(i,j)
330             IF ( dSigmaH .GT. 0. _d 0 ) THEN             IF ( dSigmaH .GT. 0. _d 0 ) THEN
331               dSigmaH = SQRT( dSigmaH )               dSigmaH = SQRT( dSigmaH )
332  C-       compute slope, limited by GM_maxSlope:  C-       compute slope, limited by GM_Visbeck_maxSlope:
333               IF ( -dSigmaDr(i,j).GT.dSigmaH*GM_rMaxSlope ) THEN               IF ( -dSigmaR.GT.dSigmaH*recipMaxSlope ) THEN
334                Sloc = dSigmaH / ( -dSigmaDr(i,j) )                Sloc = dSigmaH / ( -dSigmaR )
335                 ELSE
336                  Sloc = GM_Visbeck_maxSlope
337                 ENDIF
338                 M2loc = gravity*recip_rhoConst*dSigmaH
339    c            SNloc = SQRT( Sloc*M2loc )
340                 N2loc = -gravity*recip_rhoConst*dSigmaR
341    c            N2loc = -gravity*recip_rhoConst*dSigmaDr(i,j)
342                 IF ( N2loc.GT.0. _d 0 ) THEN
343                   SNloc = Sloc*SQRT(N2loc)
344               ELSE               ELSE
345                Sloc = GM_maxSlope                 SNloc = 0. _d 0
346               ENDIF               ENDIF
              M2loc = Gravity*recip_RhoConst*dSigmaH  
              SNloc = SQRT( Sloc*M2loc )  
347             ELSE             ELSE
348               SNloc = 0. _d 0               SNloc = 0. _d 0
349             ENDIF             ENDIF
# Line 335  C-       compute slope, limited by GM_ma Line 356  C-       compute slope, limited by GM_ma
356         ENDIF         ENDIF
357  #endif /* ndef OLD_VISBECK_CALC */  #endif /* ndef OLD_VISBECK_CALC */
358  #endif /* GM_VISBECK_VARIABLE_K */  #endif /* GM_VISBECK_VARIABLE_K */
359           DO j=1-Oly,sNy+Oly
360            DO i=1-Olx,sNx+Olx
361             dSigmaDr(i,j)=sigmaR(i,j,k)
362            ENDDO
363           ENDDO
364    
365    #ifdef ALLOW_AUTODIFF_TAMC
366    CADJ STORE dSigmaDx(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte
367    CADJ STORE dSigmaDy(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte
368    CADJ STORE dSigmaDr(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte
369    CADJ STORE baseSlope(:,:)      = comlev1_bibj_k, key=kkey, byte=isbyte
370    CADJ STORE hTransLay(:,:)      = comlev1_bibj_k, key=kkey, byte=isbyte
371    CADJ STORE recipLambda(:,:)    = comlev1_bibj_k, key=kkey, byte=isbyte
372    #endif /* ALLOW_AUTODIFF_TAMC */
373    
374  C     Calculate slopes for use in tensor, taper and/or clip  C     Calculate slopes for use in tensor, taper and/or clip
375         CALL GMREDI_SLOPE_LIMIT(         CALL GMREDI_SLOPE_LIMIT(
# Line 389  C       which is used in the "variable K Line 424  C       which is used in the "variable K
424  C       Distance between interface above layer and the integration depth  C       Distance between interface above layer and the integration depth
425          deltaH=abs(GM_Visbeck_depth)-abs(rF(k))          deltaH=abs(GM_Visbeck_depth)-abs(rF(k))
426  C       If positive we limit this to the layer thickness  C       If positive we limit this to the layer thickness
427          deltaH=min(deltaH,drF(k))          integrDepth = drF(k)
428            deltaH=min(deltaH,integrDepth)
429  C       If negative then we are below the integration level  C       If negative then we are below the integration level
430          deltaH=max(deltaH,zero_rs)          deltaH=max(deltaH, 0. _d 0)
431  C       Now we convert deltaH to a non-dimensional fraction  C       Now we convert deltaH to a non-dimensional fraction
432          deltaH=deltaH/GM_Visbeck_depth          deltaH=deltaH/GM_Visbeck_depth
433    
         IF (K.eq.2) VisbeckK(i,j,bi,bj)=0.  
434          IF ( Ssq(i,j).NE.0. .AND. dSigmaDr(i,j).NE.0. ) THEN          IF ( Ssq(i,j).NE.0. .AND. dSigmaDr(i,j).NE.0. ) THEN
435           N2= -Gravity*recip_RhoConst*dSigmaDr(i,j)           N2loc = -gravity*recip_rhoConst*dSigmaDr(i,j)
436           SN=sqrt(Ssq(i,j)*N2)           SNloc = SQRT(Ssq(i,j)*N2loc )
437           VisbeckK(i,j,bi,bj)=VisbeckK(i,j,bi,bj)+deltaH           VisbeckK(i,j,bi,bj) = VisbeckK(i,j,bi,bj)
438       &      *GM_Visbeck_alpha*GM_Visbeck_length*GM_Visbeck_length*SN       &       +deltaH*GM_Visbeck_alpha
439         &              *GM_Visbeck_length*GM_Visbeck_length*SNloc
440          ENDIF          ENDIF
441    
442          ENDDO          ENDDO
# Line 421  C-     Limit range that KapGM can take Line 457  C-     Limit range that KapGM can take
457         DO j=1-Oly+1,sNy+Oly-1         DO j=1-Oly+1,sNy+Oly-1
458          DO i=1-Olx+1,sNx+Olx-1          DO i=1-Olx+1,sNx+Olx-1
459           VisbeckK(i,j,bi,bj)=           VisbeckK(i,j,bi,bj)=
460       &       MIN(VisbeckK(i,j,bi,bj),GM_Visbeck_maxval_K)       &       MIN( MAX( VisbeckK(i,j,bi,bj), GM_Visbeck_minVal_K ),
461         &            GM_Visbeck_maxVal_K )
462          ENDDO          ENDDO
463         ENDDO         ENDDO
464        ENDIF        ENDIF
# Line 445  CADJ STORE Kwz(:,:,k,bi,bj) = comlev1_bi Line 482  CADJ STORE Kwz(:,:,k,bi,bj) = comlev1_bi
482  #endif  #endif
483         DO j=1-Oly+1,sNy+Oly-1         DO j=1-Oly+1,sNy+Oly-1
484          DO i=1-Olx+1,sNx+Olx-1          DO i=1-Olx+1,sNx+Olx-1
485    #ifdef ALLOW_KAPREDI_CONTROL
486             Kgm_tmp = kapredi(i,j,k,bi,bj)
487    #else
488             Kgm_tmp = GM_isopycK
489    #endif
490  #ifdef ALLOW_KAPGM_CONTROL  #ifdef ALLOW_KAPGM_CONTROL
491           Kgm_tmp = GM_isopycK + GM_skewflx*kapgm(i,j,k,bi,bj)       &           + GM_skewflx*kapgm(i,j,k,bi,bj)
492  #else  #else
493           Kgm_tmp = GM_isopycK + GM_skewflx*GM_background_K       &           + GM_skewflx*GM_background_K
494  #endif  #endif
495  #ifdef GM_VISBECK_VARIABLE_K  #ifdef GM_VISBECK_VARIABLE_K
496       &           + VisbeckK(i,j,bi,bj)*(1. _d 0 + GM_skewflx)       &           + VisbeckK(i,j,bi,bj)*(1. _d 0 + GM_skewflx)
497  #endif  #endif
498           Kwx(i,j,k,bi,bj)= Kgm_tmp*Kwx(i,j,k,bi,bj)           Kwx(i,j,k,bi,bj)= Kgm_tmp*Kwx(i,j,k,bi,bj)
499           Kwy(i,j,k,bi,bj)= Kgm_tmp*Kwy(i,j,k,bi,bj)           Kwy(i,j,k,bi,bj)= Kgm_tmp*Kwy(i,j,k,bi,bj)
500    #ifdef ALLOW_KAPREDI_CONTROL
501             Kwz(i,j,k,bi,bj)= ( kapredi(i,j,k,bi,bj)
502    #else
503           Kwz(i,j,k,bi,bj)= ( GM_isopycK           Kwz(i,j,k,bi,bj)= ( GM_isopycK
504    #endif
505  #ifdef GM_VISBECK_VARIABLE_K  #ifdef GM_VISBECK_VARIABLE_K
506       &                     + VisbeckK(i,j,bi,bj)       &                     + VisbeckK(i,j,bi,bj)
507  #endif  #endif
# Line 561  c      IF ( GM_nonUnitDiag ) THEN Line 607  c      IF ( GM_nonUnitDiag ) THEN
607          DO j=1-Oly+1,sNy+Oly-1          DO j=1-Oly+1,sNy+Oly-1
608           DO i=1-Olx+1,sNx+Olx-1           DO i=1-Olx+1,sNx+Olx-1
609            Kux(i,j,k,bi,bj) =            Kux(i,j,k,bi,bj) =
610    #ifdef ALLOW_KAPREDI_CONTROL
611         &     ( kapredi(i,j,k,bi,bj)
612    #else
613       &     ( GM_isopycK       &     ( GM_isopycK
614    #endif
615  #ifdef GM_VISBECK_VARIABLE_K  #ifdef GM_VISBECK_VARIABLE_K
616       &     +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i-1,j,bi,bj))       &     +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i-1,j,bi,bj))
617  #endif  #endif
# Line 591  CADJ STORE taperFct(:,:)     = comlev1_b Line 641  CADJ STORE taperFct(:,:)     = comlev1_b
641          DO j=1-Oly+1,sNy+Oly-1          DO j=1-Oly+1,sNy+Oly-1
642           DO i=1-Olx+1,sNx+Olx-1           DO i=1-Olx+1,sNx+Olx-1
643            Kuz(i,j,k,bi,bj) =            Kuz(i,j,k,bi,bj) =
644    #ifdef ALLOW_KAPREDI_CONTROL
645         &     ( kapredi(i,j,k,bi,bj)
646    #else
647         &     ( GM_isopycK
648    #endif
649  #ifdef ALLOW_KAPGM_CONTROL  #ifdef ALLOW_KAPGM_CONTROL
650       &     ( GM_isopycK - GM_skewflx*kapgm(i,j,k,bi,bj)       &     - GM_skewflx*kapgm(i,j,k,bi,bj)
651  #else  #else
652       &     ( GM_isopycK - GM_skewflx*GM_background_K       &     - GM_skewflx*GM_background_K
653  #endif  #endif
654  #ifdef GM_VISBECK_VARIABLE_K  #ifdef GM_VISBECK_VARIABLE_K
655       &     +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i-1,j,bi,bj))*GM_advect       &     +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i-1,j,bi,bj))*GM_advect
# Line 611  CADJ STORE taperFct(:,:)     = comlev1_b Line 666  CADJ STORE taperFct(:,:)     = comlev1_b
666          DO j=1,sNy          DO j=1,sNy
667           DO i=1,sNx+1           DO i=1,sNx+1
668  C         store in tmp1k Kuz_Redi  C         store in tmp1k Kuz_Redi
669    #ifdef ALLOW_KAPREDI_CONTROL
670              tmp1k(i,j) = ( kapredi(i,j,k,bi,bj)
671    #else
672            tmp1k(i,j) = ( GM_isopycK            tmp1k(i,j) = ( GM_isopycK
673    #endif
674  #ifdef GM_VISBECK_VARIABLE_K  #ifdef GM_VISBECK_VARIABLE_K
675       &     +(VisbeckK(i,j,bi,bj)+VisbeckK(i-1,j,bi,bj))*0.5 _d 0       &     +(VisbeckK(i,j,bi,bj)+VisbeckK(i-1,j,bi,bj))*0.5 _d 0
676  #endif  #endif
# Line 736  c      IF ( GM_nonUnitDiag ) THEN Line 795  c      IF ( GM_nonUnitDiag ) THEN
795          DO j=1-Oly+1,sNy+Oly-1          DO j=1-Oly+1,sNy+Oly-1
796           DO i=1-Olx+1,sNx+Olx-1           DO i=1-Olx+1,sNx+Olx-1
797            Kvy(i,j,k,bi,bj) =            Kvy(i,j,k,bi,bj) =
798    #ifdef ALLOW_KAPREDI_CONTROL
799         &     ( kapredi(i,j,k,bi,bj)
800    #else
801       &     ( GM_isopycK       &     ( GM_isopycK
802    #endif
803  #ifdef GM_VISBECK_VARIABLE_K  #ifdef GM_VISBECK_VARIABLE_K
804       &     +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i,j-1,bi,bj))       &     +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i,j-1,bi,bj))
805  #endif  #endif
# Line 766  CADJ STORE taperFct(:,:)     = comlev1_b Line 829  CADJ STORE taperFct(:,:)     = comlev1_b
829          DO j=1-Oly+1,sNy+Oly-1          DO j=1-Oly+1,sNy+Oly-1
830           DO i=1-Olx+1,sNx+Olx-1           DO i=1-Olx+1,sNx+Olx-1
831            Kvz(i,j,k,bi,bj) =            Kvz(i,j,k,bi,bj) =
832    #ifdef ALLOW_KAPREDI_CONTROL
833         &     ( kapredi(i,j,k,bi,bj)
834    #else
835         &     ( GM_isopycK
836    #endif
837  #ifdef ALLOW_KAPGM_CONTROL  #ifdef ALLOW_KAPGM_CONTROL
838       &     ( GM_isopycK - GM_skewflx*kapgm(i,j,k,bi,bj)       &     - GM_skewflx*kapgm(i,j,k,bi,bj)
839  #else  #else
840       &     ( GM_isopycK - GM_skewflx*GM_background_K       &     - GM_skewflx*GM_background_K
841  #endif  #endif
842  #ifdef GM_VISBECK_VARIABLE_K  #ifdef GM_VISBECK_VARIABLE_K
843       &     +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i,j-1,bi,bj))*GM_advect       &     +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i,j-1,bi,bj))*GM_advect
# Line 786  CADJ STORE taperFct(:,:)     = comlev1_b Line 854  CADJ STORE taperFct(:,:)     = comlev1_b
854          DO j=1,sNy+1          DO j=1,sNy+1
855           DO i=1,sNx           DO i=1,sNx
856  C         store in tmp1k Kvz_Redi  C         store in tmp1k Kvz_Redi
857    #ifdef ALLOW_KAPREDI_CONTROL
858              tmp1k(i,j) = ( kapredi(i,j,k,bi,bj)
859    #else
860            tmp1k(i,j) = ( GM_isopycK            tmp1k(i,j) = ( GM_isopycK
861    #endif
862  #ifdef GM_VISBECK_VARIABLE_K  #ifdef GM_VISBECK_VARIABLE_K
863       &     +(VisbeckK(i,j,bi,bj)+VisbeckK(i,j-1,bi,bj))*0.5 _d 0       &     +(VisbeckK(i,j,bi,bj)+VisbeckK(i,j-1,bi,bj))*0.5 _d 0
864  #endif  #endif
# Line 858  C--   Time-average Line 930  C--   Time-average
930       &                          deltaTclock, bi, bj, myThid )       &                          deltaTclock, bi, bj, myThid )
931         ENDIF         ENDIF
932  #endif  #endif
933         DO k=1,Nr         GM_timeAve(bi,bj) = GM_timeAve(bi,bj)+deltaTclock
          GM_TimeAve(k,bi,bj)=GM_TimeAve(k,bi,bj)+deltaTclock  
        ENDDO  
934    
935        ENDIF        ENDIF
936  #endif /* ALLOW_TIMEAVE */  #endif /* ALLOW_TIMEAVE */
# Line 876  C--   Time-average Line 946  C--   Time-average
946        RETURN        RETURN
947        END        END
948    
949    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
950    
951        SUBROUTINE GMREDI_CALC_TENSOR_DUMMY(        SUBROUTINE GMREDI_CALC_TENSOR_DUMMY(
952       I             iMin, iMax, jMin, jMax,       I             iMin, iMax, jMin, jMax,

Legend:
Removed from v.1.30  
changed lines
  Added in v.1.35

  ViewVC Help
Powered by ViewVC 1.1.22