/[MITgcm]/MITgcm/model/src/calc_diffusivity.F
ViewVC logotype

Diff of /MITgcm/model/src/calc_diffusivity.F

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

revision 1.30 by jmc, Wed Apr 11 15:05:58 2007 UTC revision 1.33 by jmc, Tue Sep 4 16:49:44 2007 UTC
# Line 6  C $Name$ Line 6  C $Name$
6    
7  CBOP  CBOP
8  C     !ROUTINE: CALC_DIFFUSIVITY  C     !ROUTINE: CALC_DIFFUSIVITY
9  C     !INTERFACE:  C     !INTERFACE:
10        SUBROUTINE CALC_DIFFUSIVITY(        SUBROUTINE CALC_DIFFUSIVITY(
11       I        bi,bj,iMin,iMax,jMin,jMax,k,       I        bi,bj,iMin,iMax,jMin,jMax,k,
12       I        maskUp,       I        maskUp,
13       O        KappaRT,KappaRS,       O        KappaRT,KappaRS,
# Line 15  C     !INTERFACE: Line 15  C     !INTERFACE:
15    
16  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
17  C     *==========================================================*  C     *==========================================================*
18  C     | SUBROUTINE CALC_DIFFUSIVITY                                C     | SUBROUTINE CALC_DIFFUSIVITY
19  C     | o Calculate net vertical diffusivity                                C     | o Calculate net vertical diffusivity
20  C     *==========================================================*  C     *==========================================================*
21  C     | Combines spatially varying diffusion coefficients from  C     | Combines spatially varying diffusion coefficients from
22  C     | KPP and/or GM and/or convective stability test.  C     | KPP and/or GM and/or convective stability test.
# Line 36  C     !INPUT/OUTPUT PARAMETERS: Line 36  C     !INPUT/OUTPUT PARAMETERS:
36  C     == Routine arguments ==  C     == Routine arguments ==
37  C     bi, bj, :: tile indices  C     bi, bj, :: tile indices
38  C     iMin,   :: Range of points for which calculation is performed.  C     iMin,   :: Range of points for which calculation is performed.
39  C     iMax,  C     iMax,
40  C     jMin,  C     jMin,
41  C     jMax  C     jMax
42  C     maskUp  :: land/water mask for Wvel points (above tracer level)  C     maskUp  :: land/water mask for Wvel points (above tracer level)
43  C     myThid  :: Instance number for this innvocation of CALC_DIFFUSIVITY  C     myThid  :: Instance number for this innvocation of CALC_DIFFUSIVITY
# Line 54  C     == Local variables == Line 54  C     == Local variables ==
54  C     I, J :: Loop counters  C     I, J :: Loop counters
55        INTEGER i,j        INTEGER i,j
56        _RL KbryanLewis79        _RL KbryanLewis79
57    #ifdef ALLOW_BL79_LAT_VARY
58          _RL KbryanLewisEQ
59    #endif
60  CEOP  CEOP
61    
62        KbryanLewis79=diffKrBL79surf+(diffKrBL79deep-diffKrBL79surf)        IF ( .NOT. UseKPP ) THEN
63       & *( atan( -( rF(k)-diffKrBL79Ho )/diffKrBL79scl )/PI+0.5 _d 0)         KbryanLewis79=diffKrBL79surf+(diffKrBL79deep-diffKrBL79surf)
64         &      *(atan(-(rF(k)-diffKrBL79Ho)/diffKrBL79scl)/PI+0.5 _d 0)
65    #ifdef ALLOW_BL79_LAT_VARY
66           KbryanLewisEQ=diffKrBLEQsurf+(diffKrBLEQdeep-diffKrBLEQsurf)
67         &      *(atan(-(rF(k)-diffKrBLEQHo)/diffKrBLEQscl)/PI+0.5 _d 0)
68    #endif
69    
70        DO j = 1-Oly, sNy+Oly         DO j = 1-Oly, sNy+Oly
71         DO i = 1-Olx, sNx+Olx          DO i = 1-Olx, sNx+Olx
72          KappaRT(i,j) =           KappaRT(i,j) =
73       &         IVDConvCount(i,j,k,bi,bj)*ivdc_kappa       &        IVDConvCount(i,j,k,bi,bj)*ivdc_kappa
74  #if (defined ALLOW_3D_DIFFKR || \  #if (defined ALLOW_3D_DIFFKR || \
75       (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL)))       (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL)))
76       &       + diffKr(i,j,k,bi,bj)       &        + diffKr(i,j,k,bi,bj)
77  #else  #else
78       &       + diffKrNrT(k)       &        + diffKrNrT(k)
79    #endif
80         &        + KbryanLewis79
81    #ifdef ALLOW_BL79_LAT_VARY
82         &        + (KbryanLewisEQ-KbryanLewis79)*BL79LatArray(i,j,bi,bj)
83  #endif  #endif
84       &       + KbryanLewis79          ENDDO
85         ENDDO         ENDDO
       ENDDO  
86    
87        DO j = 1-Oly, sNy+Oly         DO j = 1-Oly, sNy+Oly
88         DO i = 1-Olx, sNx+Olx          DO i = 1-Olx, sNx+Olx
89          KappaRS(i,j) =           KappaRS(i,j) =
90       &         IVDConvCount(i,j,k,bi,bj)*ivdc_kappa       &        IVDConvCount(i,j,k,bi,bj)*ivdc_kappa
91  #if (defined ALLOW_3D_DIFFKR || \  #if (defined ALLOW_3D_DIFFKR || \
92       (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL)))       (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL)))
93       &       + diffKr(i,j,k,bi,bj)       &        + diffKr(i,j,k,bi,bj)
94  #else  #else
95       &       + diffKrNrS(k)       &        + diffKrNrS(k)
96    #endif
97         &        + KbryanLewis79
98    #ifdef ALLOW_BL79_LAT_VARY
99         &        + (KbryanLewisEQ-KbryanLewis79)*BL79LatArray(i,j,bi,bj)
100  #endif  #endif
101       &       + KbryanLewis79          ENDDO
102         ENDDO         ENDDO
103        ENDDO        ENDIF
104    
105  #ifdef ALLOW_GMREDI  #ifdef ALLOW_GMREDI
106        IF (useGMRedi) THEN        IF (useGMRedi) THEN
107           CALL GMREDI_CALC_DIFF(           CALL GMREDI_CALC_DIFF(
108       I        bi,bj,iMin,iMax,jMin,jMax,k,1,       I        bi,bj,iMin,iMax,jMin,jMax,k,1,
109       U        KappaRT,       U        KappaRT,
# Line 138  CEOP Line 153  CEOP
153       I        myThid)       I        myThid)
154        ENDIF        ENDIF
155  #endif  #endif
156          
157  #ifdef ALLOW_GGL90  #ifdef ALLOW_GGL90
158        IF (useGGL90) THEN        IF (useGGL90) THEN
159           CALL GGL90_CALC_DIFF(           CALL GGL90_CALC_DIFF(
# Line 151  CEOP Line 166  CEOP
166       I        myThid)       I        myThid)
167        ENDIF        ENDIF
168  #endif  #endif
169          
170  C-    Apply mask to vertical diffusivity  C-    Apply mask to vertical diffusivity
171  C jmc: don't have the impression that masking is needed  C jmc: don't have the impression that masking is needed
172  C      but could be removed later if it's the case.  C      but could be removed later if it's the case.
173        DO j = 1-Oly, sNy+Oly        DO j = 1-Oly, sNy+Oly
174         DO i = 1-Olx, sNx+Olx         DO i = 1-Olx, sNx+Olx

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

  ViewVC Help
Powered by ViewVC 1.1.22