/[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.37 by jmc, Tue Jan 11 00:54:45 2011 UTC revision 1.40 by jmc, Wed Jul 13 22:59:53 2011 UTC
# Line 207  C-    Just initialize to zero (not use a Line 207  C-    Just initialize to zero (not use a
207         ENDDO         ENDDO
208        ENDIF        ENDIF
209    
210  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  #ifdef GM_BOLUS_ADVEC
211  C-- 1rst loop on k : compute Tensor Coeff. at W points.        DO k=1,Nr
212           DO j=1-Oly,sNy+Oly
213            DO i=1-Olx,sNx+Olx
214             GM_PsiX(i,j,k,bi,bj)  = 0. _d 0
215             GM_PsiY(i,j,k,bi,bj)  = 0. _d 0
216            ENDDO
217           ENDDO
218          ENDDO
219    #endif /* GM_BOLUS_ADVEC */
220    #ifdef ALLOW_AUTODIFF_TAMC
221          DO k=1,Nr
222           DO j=1-Oly,sNy+Oly
223            DO i=1-Olx,sNx+Olx
224             Kwx(i,j,k,bi,bj)  = 0. _d 0
225             Kwy(i,j,k,bi,bj)  = 0. _d 0
226             Kwz(i,j,k,bi,bj)  = 0. _d 0
227    # ifdef GM_NON_UNITY_DIAGONAL
228             Kux(i,j,k,bi,bj)  = 0. _d 0
229             Kvy(i,j,k,bi,bj)  = 0. _d 0
230    # endif
231    # ifdef GM_EXTRA_DIAGONAL
232             Kuz(i,j,k,bi,bj)  = 0. _d 0
233             Kvz(i,j,k,bi,bj)  = 0. _d 0
234    # endif
235            ENDDO
236           ENDDO
237          ENDDO
238    #endif /* ALLOW_AUTODIFF_TAMC */
239    
240    C--   Initialise Mixed Layer related array:
241        DO j=1-Oly,sNy+Oly        DO j=1-Oly,sNy+Oly
242         DO i=1-Olx,sNx+Olx         DO i=1-Olx,sNx+Olx
243           hTransLay(i,j) = R_low(i,j,bi,bj)           hTransLay(i,j) = R_low(i,j,bi,bj)
# Line 236  C-- 1rst loop on k : compute Tensor Coef Line 264  C-- 1rst loop on k : compute Tensor Coef
264         ENDDO         ENDDO
265        ENDIF        ENDIF
266    
267    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
268    C-- 1rst loop on k : compute Tensor Coeff. at W points.
269    
270        DO k=Nr,2,-1        DO k=Nr,2,-1
271    
272  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
# Line 249  C-- 1rst loop on k : compute Tensor Coef Line 280  C-- 1rst loop on k : compute Tensor Coef
280           dSigmaDr(i,j)     = 0. _d 0           dSigmaDr(i,j)     = 0. _d 0
281           SlopeSqr(i,j)     = 0. _d 0           SlopeSqr(i,j)     = 0. _d 0
282           taperFct(i,j)     = 0. _d 0           taperFct(i,j)     = 0. _d 0
          Kwx(i,j,k,bi,bj)  = 0. _d 0  
          Kwy(i,j,k,bi,bj)  = 0. _d 0  
          Kwz(i,j,k,bi,bj)  = 0. _d 0  
 # ifdef GM_NON_UNITY_DIAGONAL  
          Kux(i,j,k,bi,bj)  = 0. _d 0  
          Kvy(i,j,k,bi,bj)  = 0. _d 0  
 # endif  
 # ifdef GM_EXTRA_DIAGONAL  
          Kuz(i,j,k,bi,bj)  = 0. _d 0  
          Kvz(i,j,k,bi,bj)  = 0. _d 0  
 # endif  
 # ifdef GM_BOLUS_ADVEC  
          GM_PsiX(i,j,k,bi,bj)  = 0. _d 0  
          GM_PsiY(i,j,k,bi,bj)  = 0. _d 0  
 # endif  
283          ENDDO          ENDDO
284         ENDDO         ENDDO
285  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
# Line 511  CADJ STORE Kwz(:,:,k,bi,bj) = comlev1_bi Line 527  CADJ STORE Kwz(:,:,k,bi,bj) = comlev1_bi
527  #ifdef ALLOW_KAPREDI_CONTROL  #ifdef ALLOW_KAPREDI_CONTROL
528           Kwz(i,j,k,bi,bj)= ( kapredi(i,j,k,bi,bj)           Kwz(i,j,k,bi,bj)= ( kapredi(i,j,k,bi,bj)
529  #else  #else
530           Kwz(i,j,k,bi,bj)= ( GM_isopycK*GM_isoFac2d(i,j,bi,bj)           Kwz(i,j,k,bi,bj)= ( isopycK*GM_isoFac2d(i,j,bi,bj)
531  #endif  #endif
532  #ifdef GM_VISBECK_VARIABLE_K  #ifdef GM_VISBECK_VARIABLE_K
533       &                     + VisbeckK(i,j,bi,bj)       &                     + VisbeckK(i,j,bi,bj)
# Line 529  CADJ STORE Kwz(:,:,k,bi,bj) = comlev1_bi Line 545  CADJ STORE Kwz(:,:,k,bi,bj) = comlev1_bi
545        ENDIF        ENDIF
546  #endif /* ALLOW_DIAGNOSTICS */  #endif /* ALLOW_DIAGNOSTICS */
547    
548    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
549    C--   Calculate Stream-Functions used in Advective Form:
550    
551    #ifdef GM_BOLUS_ADVEC
552          IF (GM_AdvForm) THEN
553    #ifdef GM_BOLUS_BVP
554           IF (GM_UseBVP) THEN
555            CALL GMREDI_CALC_PSI_BVP(
556         I             bi, bj, iMin, iMax, jMin, jMax,
557         I             sigmaX, sigmaY, sigmaR,
558         I             myThid )
559           ELSE
560    #endif
561            CALL GMREDI_CALC_PSI_B(
562         I              bi, bj, iMin, iMax, jMin, jMax,
563         I              sigmaX, sigmaY, sigmaR,
564         I              ldd97_LrhoW, ldd97_LrhoS,
565         I              myThid )
566    #ifdef GM_BOLUS_BVP
567           ENDIF
568    #endif
569          ENDIF
570    #endif
571    
572    #ifndef GM_EXCLUDE_SUBMESO
573          IF ( GM_useSubMeso .AND. GM_AdvForm ) THEN
574            CALL SUBMESO_CALC_PSI(
575         I              bi, bj, iMin, iMax, jMin, jMax,
576         I              sigmaX, sigmaY, sigmaR,
577         I              locMixLayer,
578         I              myIter, myThid )
579          ENDIF
580    #endif /* ndef GM_EXCLUDE_SUBMESO */
581    
582  #if ( defined (GM_NON_UNITY_DIAGONAL) || defined (GM_EXTRA_DIAGONAL) )  #if ( defined (GM_NON_UNITY_DIAGONAL) || defined (GM_EXTRA_DIAGONAL) )
583  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
# Line 683  C         store in tmp1k Kuz_Redi Line 732  C         store in tmp1k Kuz_Redi
732  #ifdef ALLOW_KAPREDI_CONTROL  #ifdef ALLOW_KAPREDI_CONTROL
733            tmp1k(i,j) = ( kapredi(i,j,k,bi,bj)            tmp1k(i,j) = ( kapredi(i,j,k,bi,bj)
734  #else  #else
735            tmp1k(i,j) = ( GM_isopycK            tmp1k(i,j) = ( GM_isopycK*GM_isoFac1d(k)
736         &        *op5*(GM_isoFac2d(i-1,j,bi,bj)+GM_isoFac2d(i,j,bi,bj))
737  #endif  #endif
738  #ifdef GM_VISBECK_VARIABLE_K  #ifdef GM_VISBECK_VARIABLE_K
739       &     +(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
# Line 874  C         store in tmp1k Kvz_Redi Line 924  C         store in tmp1k Kvz_Redi
924  #ifdef ALLOW_KAPREDI_CONTROL  #ifdef ALLOW_KAPREDI_CONTROL
925            tmp1k(i,j) = ( kapredi(i,j,k,bi,bj)            tmp1k(i,j) = ( kapredi(i,j,k,bi,bj)
926  #else  #else
927            tmp1k(i,j) = ( GM_isopycK            tmp1k(i,j) = ( GM_isopycK*GM_isoFac1d(k)
928         &        *op5*(GM_isoFac2d(i,j-1,bi,bj)+GM_isoFac2d(i,j,bi,bj))
929  #endif  #endif
930  #ifdef GM_VISBECK_VARIABLE_K  #ifdef GM_VISBECK_VARIABLE_K
931       &     +(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
# Line 912  C-- end 3rd  loop on vertical level inde Line 963  C-- end 3rd  loop on vertical level inde
963    
964  #endif /* GM_NON_UNITY_DIAGONAL || GM_EXTRA_DIAGONAL */  #endif /* GM_NON_UNITY_DIAGONAL || GM_EXTRA_DIAGONAL */
965    
   
 #ifdef GM_BOLUS_ADVEC  
       IF (GM_AdvForm) THEN  
        CALL GMREDI_CALC_PSI_B(  
      I             bi, bj, iMin, iMax, jMin, jMax,  
      I             sigmaX, sigmaY, sigmaR,  
      I             ldd97_LrhoW, ldd97_LrhoS,  
      I             myThid )  
       ENDIF  
 #endif  
   
966  #ifdef ALLOW_TIMEAVE  #ifdef ALLOW_TIMEAVE
967  C--   Time-average  C--   Time-average
968        IF ( taveFreq.GT.0. ) THEN        IF ( taveFreq.GT.0. ) THEN
# Line 965  C--   Time-average Line 1005  C--   Time-average
1005    
1006  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
1007    
1008    CBOP
1009    C     !ROUTINE: GMREDI_CALC_TENSOR_DUMMY
1010    C     !INTERFACE:
1011        SUBROUTINE GMREDI_CALC_TENSOR_DUMMY(        SUBROUTINE GMREDI_CALC_TENSOR_DUMMY(
1012       I             iMin, iMax, jMin, jMax,       I             iMin, iMax, jMin, jMax,
1013       I             sigmaX, sigmaY, sigmaR,       I             sigmaX, sigmaY, sigmaR,
1014       I             bi, bj, myTime, myIter, myThid )       I             bi, bj, myTime, myIter, myThid )
1015  C     /==========================================================\  
1016  C     | SUBROUTINE GMREDI_CALC_TENSOR                            |  C     !DESCRIPTION: \bv
1017  C     | o Calculate tensor elements for GM/Redi tensor.          |  C     *==========================================================*
1018  C     |==========================================================|  C     | SUBROUTINE GMREDI_CALC_TENSOR_DUMMY
1019  C     \==========================================================/  C     | o Calculate tensor elements for GM/Redi tensor.
1020    C     *==========================================================*
1021    C     \ev
1022    
1023    C     !USES:
1024        IMPLICIT NONE        IMPLICIT NONE
1025    
1026  C     == Global variables ==  C     == Global variables ==
# Line 981  C     == Global variables == Line 1028  C     == Global variables ==
1028  #include "EEPARAMS.h"  #include "EEPARAMS.h"
1029  #include "GMREDI.h"  #include "GMREDI.h"
1030    
1031  C     == Routine arguments ==  C     !INPUT/OUTPUT PARAMETERS:
 C  
1032        _RL sigmaX(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)        _RL sigmaX(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
1033        _RL sigmaY(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)        _RL sigmaY(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
1034        _RL sigmaR(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)        _RL sigmaR(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
# Line 991  C Line 1037  C
1037        _RL     myTime        _RL     myTime
1038        INTEGER myIter        INTEGER myIter
1039        INTEGER myThid        INTEGER myThid
1040  CEndOfInterface  CEOP
1041    
1042  #ifdef ALLOW_GMREDI  #ifdef ALLOW_GMREDI
1043    C     !LOCAL VARIABLES:
1044        INTEGER i, j, k        INTEGER i, j, k
1045    
1046        DO k=1,Nr        DO k=1,Nr

Legend:
Removed from v.1.37  
changed lines
  Added in v.1.40

  ViewVC Help
Powered by ViewVC 1.1.22