/[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.27 by jmc, Thu Jun 21 01:33:01 2007 UTC revision 1.29 by heimbach, Sat Jun 30 14:09:57 2007 UTC
# Line 202  C-    Just initialize to zero (not use a Line 202  C-    Just initialize to zero (not use a
202  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
203  C-- 1rst loop on k : compute Tensor Coeff. at W points.  C-- 1rst loop on k : compute Tensor Coeff. at W points.
204    
205          DO j=1-Oly,sNy+Oly
206           DO i=1-Olx,sNx+Olx
207             hTransLay(i,j) = R_low(i,j,bi,bj)
208             baseSlope(i,j) =  0. _d 0
209             recipLambda(i,j) = 0. _d 0
210             locMixLayer(i,j) = 0. _d 0
211           ENDDO
212          ENDDO
213  #ifdef ALLOW_KPP  #ifdef ALLOW_KPP
214        IF ( useKPP ) THEN        IF ( useKPP ) THEN
215         DO j=1-Oly,sNy+Oly         DO j=1-Oly,sNy+Oly
# Line 219  C-- 1rst loop on k : compute Tensor Coef Line 227  C-- 1rst loop on k : compute Tensor Coef
227          ENDDO          ENDDO
228         ENDDO         ENDDO
229        ENDIF        ENDIF
       DO j=1-Oly,sNy+Oly  
        DO i=1-Olx,sNx+Olx  
          hTransLay(i,j) = R_low(i,j,bi,bj)  
          baseSlope(i,j) =  0.  
          recipLambda(i,j)= 0.  
        ENDDO  
       ENDDO  
230    
231        DO k=Nr,2,-1        DO k=Nr,2,-1
232    
# Line 276  C      Gradient of Sigma at rVel points Line 277  C      Gradient of Sigma at rVel points
277  CADJ STORE dSigmaDx(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE dSigmaDx(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte
278  CADJ STORE dSigmaDy(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE dSigmaDy(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte
279  CADJ STORE dSigmaDr(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE dSigmaDr(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte
280    CADJ STORE baseSlope(:,:)      = comlev1_bibj_k, key=kkey, byte=isbyte
281    CADJ STORE hTransLay(:,:)      = comlev1_bibj_k, key=kkey, byte=isbyte
282    CADJ STORE recipLambda(:,:)    = comlev1_bibj_k, key=kkey, byte=isbyte
283  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
284    
285  #ifdef GM_VISBECK_VARIABLE_K  #ifdef GM_VISBECK_VARIABLE_K
# Line 428  CADJ STORE VisbeckK(:,:,bi,bj) = comlev1 Line 432  CADJ STORE VisbeckK(:,:,bi,bj) = comlev1
432  cph)  cph)
433  #endif /* GM_VISBECK_VARIABLE_K */  #endif /* GM_VISBECK_VARIABLE_K */
434    
435    C-    express the Tensor in term of Diffusivity (= m**2 / s )
436          DO k=1,Nr
437  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
438         kkey = (igmkey-1)*Nr + k         kkey = (igmkey-1)*Nr + k
439  #if (defined (GM_NON_UNITY_DIAGONAL) || \  # if (defined (GM_NON_UNITY_DIAGONAL) || \
440       defined (GM_VISBECK_VARIABLE_K))       defined (GM_VISBECK_VARIABLE_K))
441  CADJ STORE Kwx(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE Kwx(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
442  CADJ STORE Kwy(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE Kwy(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
443  CADJ STORE Kwz(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE Kwz(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
444    # endif
445  #endif  #endif
 #endif  
   
 C-    express the Tensor in term of Diffusivity (= m**2 / s )  
       DO k=1,Nr  
446         DO j=1-Oly+1,sNy+Oly-1         DO j=1-Oly+1,sNy+Oly-1
447          DO i=1-Olx+1,sNx+Olx-1          DO i=1-Olx+1,sNx+Olx-1
448  #ifdef ALLOW_KAPGM_CONTROL  #ifdef ALLOW_KAPGM_CONTROL
# Line 508  C-- 2nd  k loop : compute Tensor Coeff. Line 511  C-- 2nd  k loop : compute Tensor Coeff.
511         kp1 = MIN(Nr,k+1)         kp1 = MIN(Nr,k+1)
512         maskp1 = 1. _d 0         maskp1 = 1. _d 0
513         IF (k.GE.Nr) maskp1 = 0. _d 0         IF (k.GE.Nr) maskp1 = 0. _d 0
514    #ifdef ALLOW_AUTODIFF_TAMC
515           kkey = (igmkey-1)*Nr + k
516    #endif
517    
518  C     Gradient of Sigma at U points  C     Gradient of Sigma at U points
519         DO j=1-Oly+1,sNy+Oly-1         DO j=1-Oly+1,sNy+Oly-1
# Line 527  C     Gradient of Sigma at U points Line 533  C     Gradient of Sigma at U points
533  CADJ STORE SlopeSqr(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE SlopeSqr(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte
534  CADJ STORE dSigmaDx(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE dSigmaDx(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte
535  CADJ STORE dSigmaDy(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE dSigmaDy(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte
536  CADJ STORE dSigmaDr(:,:)   = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE dSigmaDr(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte
537    CADJ STORE locMixLayer(:,:)    = comlev1_bibj_k, key=kkey, byte=isbyte
538    CADJ STORE baseSlope(:,:)      = comlev1_bibj_k, key=kkey, byte=isbyte
539    CADJ STORE hTransLay(:,:)      = comlev1_bibj_k, key=kkey, byte=isbyte
540    CADJ STORE recipLambda(:,:)    = comlev1_bibj_k, key=kkey, byte=isbyte
541  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
542    
543  C     Calculate slopes for use in tensor, taper and/or clip  C     Calculate slopes for use in tensor, taper and/or clip
# Line 541  C     Calculate slopes for use in tensor Line 551  C     Calculate slopes for use in tensor
551       I             kLow_W,       I             kLow_W,
552       I             k, bi, bj, myTime, myIter, myThid )       I             k, bi, bj, myTime, myIter, myThid )
553    
 cph( NEW  
554  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
 cph(  
555  CADJ STORE SlopeSqr(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE SlopeSqr(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte
556  CADJ STORE taperFct(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE taperFct(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte
 cph)  
557  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
 cph)  
558    
559  #ifdef GM_NON_UNITY_DIAGONAL  #ifdef GM_NON_UNITY_DIAGONAL
560  c      IF ( GM_nonUnitDiag ) THEN  c      IF ( GM_nonUnitDiag ) THEN
# Line 680  C     Gradient of Sigma at V points Line 686  C     Gradient of Sigma at V points
686         kp1 = MIN(Nr,k+1)         kp1 = MIN(Nr,k+1)
687         maskp1 = 1. _d 0         maskp1 = 1. _d 0
688         IF (k.GE.Nr) maskp1 = 0. _d 0         IF (k.GE.Nr) maskp1 = 0. _d 0
689    #ifdef ALLOW_AUTODIFF_TAMC
690           kkey = (igmkey-1)*Nr + k
691    #endif
692    
693         DO j=1-Oly+1,sNy+Oly-1         DO j=1-Oly+1,sNy+Oly-1
694          DO i=1-Olx+1,sNx+Olx-1          DO i=1-Olx+1,sNx+Olx-1
# Line 697  C     Gradient of Sigma at V points Line 706  C     Gradient of Sigma at V points
706  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
707  CADJ STORE dSigmaDx(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE dSigmaDx(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte
708  CADJ STORE dSigmaDy(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE dSigmaDy(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte
709  CADJ STORE dSigmaDr(:,:)   = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE dSigmaDr(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte
710    CADJ STORE baseSlope(:,:)      = comlev1_bibj_k, key=kkey, byte=isbyte
711    CADJ STORE hTransLay(:,:)      = comlev1_bibj_k, key=kkey, byte=isbyte
712    CADJ STORE recipLambda(:,:)    = comlev1_bibj_k, key=kkey, byte=isbyte
713  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
714    
715  C     Calculate slopes for use in tensor, taper and/or clip  C     Calculate slopes for use in tensor, taper and/or clip

Legend:
Removed from v.1.27  
changed lines
  Added in v.1.29

  ViewVC Help
Powered by ViewVC 1.1.22