/[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.21 by heimbach, Wed Oct 26 20:53:14 2005 UTC revision 1.22 by jmc, Thu Dec 8 03:29:32 2005 UTC
# Line 62  C     == Local variables == Line 62  C     == Local variables ==
62        _RL Ssq(1-Olx:sNx+Olx,1-Oly:sNy+Oly)        _RL Ssq(1-Olx:sNx+Olx,1-Oly:sNy+Oly)
63  #endif  #endif
64    
65    #ifdef ALLOW_DIAGNOSTICS
66          LOGICAL  doDiagRediFlx
67          LOGICAL  DIAGNOSTICS_IS_ON
68          EXTERNAL DIAGNOSTICS_IS_ON
69          INTEGER  km1
70          _RL dTdz
71          _RL tmp1k(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
72    #endif
73    
74  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
75    
76  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
# Line 77  C---+----1----+----2----+----3----+----4 Line 86  C---+----1----+----2----+----3----+----4
86       &                      + act4*max1*max2*max3       &                      + act4*max1*max2*max3
87  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
88    
89    #ifdef ALLOW_DIAGNOSTICS
90          doDiagRediFlx = .FALSE.
91          IF ( useDiagnostics ) THEN
92            doDiagRediFlx = DIAGNOSTICS_IS_ON('GM_KuzTz', myThid )
93            doDiagRediFlx = doDiagRediFlx .OR.
94         &                  DIAGNOSTICS_IS_ON('GM_KvzTz', myThid )
95          ENDIF
96    #endif
97        
98  #ifdef GM_VISBECK_VARIABLE_K  #ifdef GM_VISBECK_VARIABLE_K
99        DO j=1-Oly,sNy+Oly        DO j=1-Oly,sNy+Oly
100         DO i=1-Olx,sNx+Olx         DO i=1-Olx,sNx+Olx
# Line 406  CADJ STORE taperFct(:,:)     = comlev1_b Line 424  CADJ STORE taperFct(:,:)     = comlev1_b
424        ENDIF        ENDIF
425  #endif /* GM_EXTRA_DIAGONAL */  #endif /* GM_EXTRA_DIAGONAL */
426    
427    #ifdef ALLOW_DIAGNOSTICS
428          IF (doDiagRediFlx) THEN
429            km1 = MAX(k-1,1)
430            DO j=1,sNy
431             DO i=1,sNx+1
432    C         store in tmp1k Kuz_Redi
433              tmp1k(i,j) = ( GM_isopycK
434    #ifdef GM_VISBECK_VARIABLE_K
435         &     +(VisbeckK(i,j,bi,bj)+VisbeckK(i-1,j,bi,bj))*0.5 _d 0
436    #endif
437         &                 )*SlopeX(i,j)*taperFct(i,j)
438             ENDDO
439            ENDDO
440            DO j=1,sNy
441             DO i=1,sNx+1
442    C-        Vertical gradients interpolated to U points
443              dTdz = (
444         &     +recip_drC(k)*
445         &       ( maskC(i-1,j,k,bi,bj)*
446         &           (theta(i-1,j,km1,bi,bj)-theta(i-1,j,k,bi,bj))
447         &        +maskC( i ,j,k,bi,bj)*
448         &           (theta( i ,j,km1,bi,bj)-theta( i ,j,k,bi,bj))
449         &       )
450         &     +recip_drC(kp1)*
451         &       ( maskC(i-1,j,kp1,bi,bj)*
452         &           (theta(i-1,j,k,bi,bj)-theta(i-1,j,kp1,bi,bj))
453         &        +maskC( i ,j,kp1,bi,bj)*
454         &           (theta( i ,j,k,bi,bj)-theta( i ,j,kp1,bi,bj))
455         &       )      ) * 0.25 _d 0
456               tmp1k(i,j) = dyG(i,j,bi,bj)*drF(k)*hFacW(i,j,k,bi,bj)
457         &                * tmp1k(i,j) * dTdz
458             ENDDO
459            ENDDO
460            CALL DIAGNOSTICS_FILL(tmp1k, 'GM_KuzTz', k,1,2,bi,bj,myThid)
461          ENDIF
462    #endif /* ALLOW_DIAGNOSTICS */
463    
464  C     Gradient of Sigma at V points  C     Gradient of Sigma at V points
465        DO j=1-Oly+1,sNy+Oly-1        DO j=1-Oly+1,sNy+Oly-1
466         DO i=1-Olx+1,sNx+Olx-1         DO i=1-Olx+1,sNx+Olx-1
# Line 487  CADJ STORE taperFct(:,:)     = comlev1_b Line 542  CADJ STORE taperFct(:,:)     = comlev1_b
542        ENDIF        ENDIF
543  #endif /* GM_EXTRA_DIAGONAL */  #endif /* GM_EXTRA_DIAGONAL */
544    
545    #ifdef ALLOW_DIAGNOSTICS
546          IF (doDiagRediFlx) THEN
547    c       km1 = MAX(k-1,1)
548            DO j=1,sNy+1
549             DO i=1,sNx
550    C         store in tmp1k Kvz_Redi
551              tmp1k(i,j) = ( GM_isopycK
552    #ifdef GM_VISBECK_VARIABLE_K
553         &     +(VisbeckK(i,j,bi,bj)+VisbeckK(i,j-1,bi,bj))*0.5 _d 0
554    #endif
555         &                 )*SlopeY(i,j)*taperFct(i,j)
556             ENDDO
557            ENDDO
558            DO j=1,sNy+1
559             DO i=1,sNx
560    C-        Vertical gradients interpolated to U points
561              dTdz = (
562         &     +recip_drC(k)*
563         &       ( maskC(i,j-1,k,bi,bj)*
564         &           (theta(i,j-1,km1,bi,bj)-theta(i,j-1,k,bi,bj))
565         &        +maskC(i, j ,k,bi,bj)*
566         &           (theta(i, j ,km1,bi,bj)-theta(i, j ,k,bi,bj))
567         &       )
568         &     +recip_drC(kp1)*
569         &       ( maskC(i,j-1,kp1,bi,bj)*
570         &           (theta(i,j-1,k,bi,bj)-theta(i,j-1,kp1,bi,bj))
571         &        +maskC(i, j ,kp1,bi,bj)*
572         &           (theta(i, j ,k,bi,bj)-theta(i, j ,kp1,bi,bj))
573         &       )      ) * 0.25 _d 0
574               tmp1k(i,j) = dxG(i,j,bi,bj)*drF(k)*hFacS(i,j,k,bi,bj)
575         &                * tmp1k(i,j) * dTdz
576             ENDDO
577            ENDDO
578            CALL DIAGNOSTICS_FILL(tmp1k, 'GM_KvzTz', k,1,2,bi,bj,myThid)
579          ENDIF
580    #endif /* ALLOW_DIAGNOSTICS */
581    
582  #endif /* GM_NON_UNITY_DIAGONAL || GM_EXTRA_DIAGONAL */  #endif /* GM_NON_UNITY_DIAGONAL || GM_EXTRA_DIAGONAL */
583    
584  C-- end 2nd loop on vertical level index k  C-- end 2nd loop on vertical level index k

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.22

  ViewVC Help
Powered by ViewVC 1.1.22