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

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

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

revision 1.4 by cnh, Sun Feb 4 14:38:49 2001 UTC revision 1.5 by jmc, Sun Dec 16 18:54:49 2001 UTC
# Line 40  C     df               - Diffusive flux Line 40  C     df               - Diffusive flux
40  C     == Local variables ==  C     == Local variables ==
41  C     I, J - Loop counters  C     I, J - Loop counters
42        INTEGER I, J        INTEGER I, J
43          INTEGER km1,kp1
44          _RL vTrans, maskp1, dTdz
45    
46        IF (useGMRedi) THEN        IF (useGMRedi) THEN
47    
# Line 47  C--   Area integrated meridional flux Line 49  C--   Area integrated meridional flux
49        DO j=jMin,jMax        DO j=jMin,jMax
50         DO i=iMin,iMax         DO i=iMin,iMax
51          df(i,j) = df(i,j)          df(i,j) = df(i,j)
52       &    -yA(i,j)       &   -yA(i,j)
      &    *(GM_background_K  
 #ifdef GM_VISBECK_VARIABLE_K  
      &    +0.5*(VisbeckK(i,j,bi,bj)+VisbeckK(i,j-1,bi,bj))  
 #endif  
      &    )  
53  #ifdef GM_NON_UNITY_DIAGONAL  #ifdef GM_NON_UNITY_DIAGONAL
54       &    *Kvy(i,j,k,bi,bj)       &    *Kvy(i,j,k,bi,bj)
55    #else
56         &    *(GM_isopycK
57    #ifdef GM_VISBECK_VARIABLE_K
58         &     +0.5*(VisbeckK(i,j,bi,bj)+VisbeckK(i,j-1,bi,bj))
59  #endif  #endif
60         &     )
61    #endif /* GM_NON_UNITY_DIAGONAL */
62       &    *_recip_dyC(i,j,bi,bj)       &    *_recip_dyC(i,j,bi,bj)
63       &    *(Tracer(i,j,k,bi,bj)-Tracer(i,j-1,k,bi,bj))       &    *(Tracer(i,j,k,bi,bj)-Tracer(i,j-1,k,bi,bj))
64         ENDDO         ENDDO
65        ENDDO        ENDDO
66    
67    #ifdef GM_EXTRA_DIAGONAL
68          IF (GM_ExtraDiag) THEN
69           km1 = MAX(k-1,1)
70           kp1 = MIN(k+1,Nr)
71    
72           DO j=jMin,jMax
73            DO i=iMin,iMax
74    
75    C-      Vertical gradients interpolated to V points
76            dTdz =  0.5*(
77         &   +0.5*recip_drC(k)*
78         &       ( maskC(i,j-1,k,bi,bj)*
79         &           (Tracer(i,j-1,km1,bi,bj)-Tracer(i,j-1,k,bi,bj))
80         &        +maskC(i, j ,k,bi,bj)*
81         &           (Tracer(i, j ,km1,bi,bj)-Tracer(i, j ,k,bi,bj))
82         &       )
83         &   +0.5*recip_drC(kp1)*
84         &       ( maskC(i,j-1,kp1,bi,bj)*
85         &           (Tracer(i,j-1,k,bi,bj)-Tracer(i,j-1,kp1,bi,bj))
86         &        +maskC(i, j ,kp1,bi,bj)*
87         &           (Tracer(i, j ,k,bi,bj)-Tracer(i, j ,kp1,bi,bj))
88         &       )      )
89    
90    C-      Off-diagonal components of horizontal flux
91              df(i,j) = df(i,j) - yA(i,j)*Kvz(i,j,k,bi,bj)*dTdz              
92    
93            ENDDO
94           ENDDO
95          ENDIF
96    #endif /* GM_EXTRA_DIAGONAL */  
97    
98    #ifdef GM_BOLUS_ADVEC
99          IF (GM_AdvForm) THEN
100           kp1 = MIN(k+1,Nr)
101           maskp1 = 1.
102           IF (k.GE.Nr) maskp1 = 0.
103           DO j=jMin,jMax
104            DO i=iMin,iMax
105             vTrans = dxG(i,j,bi,bj)*( GM_PsiY(i,j,kp1,bi,bj)*maskp1
106         &                            -GM_PsiY(i,j,k,bi,bj) )
107         &                          *maskS(i,j,k,bi,bj)
108             df(i,j) = df(i,j)
109         &    +vTrans*0.5*(Tracer(i,j,k,bi,bj)+Tracer(i,j-1,k,bi,bj))
110            ENDDO
111           ENDDO
112          ENDIF
113    #endif /* GM_BOLUS_ADVEC */
114    
115        ENDIF        ENDIF
116  #endif /* ALLOW_GMREDI */  #endif /* ALLOW_GMREDI */
117    

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

  ViewVC Help
Powered by ViewVC 1.1.22