/[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.15 by heimbach, Mon Aug 13 18:05:26 2001 UTC revision 1.21 by mlosch, Thu Sep 2 09:13:49 2004 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3    
4    #include "PACKAGES_CONFIG.h"
5  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
6    
7  CStartOfInterFace  CBOP
8    C     !ROUTINE: CALC_DIFFUSIVITY
9    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,
14       I        myThid)       I        myThid)
15    
16  C     /==========================================================\  C     !DESCRIPTION: \bv
17  C     | SUBROUTINE CALC_DIFFUSIVITY                              |  C     *==========================================================*
18  C     | o Calculate net diffusivity                              |  C     | SUBROUTINE CALC_DIFFUSIVITY                              
19  C     \==========================================================/  C     | o Calculate net vertical diffusivity                              
20        IMPLICIT NONE  C     *==========================================================*
21    C     | Combines spatially varying diffusion coefficients from
22    C     | KPP and/or GM and/or convective stability test.
23    C     *==========================================================*
24    C     \ev
25    
26    C     !USES:
27          IMPLICIT NONE
28  C     == GLobal variables ==  C     == GLobal variables ==
29  #include "SIZE.h"  #include "SIZE.h"
30  #include "EEPARAMS.h"  #include "EEPARAMS.h"
# Line 23  C     == GLobal variables == Line 32  C     == GLobal variables ==
32  #include "DYNVARS.h"  #include "DYNVARS.h"
33  #include "GRID.h"  #include "GRID.h"
34    
35    C     !INPUT/OUTPUT PARAMETERS:
36  C     == Routine arguments ==  C     == Routine arguments ==
37  C     bi, bj, iMin, iMax, jMin, jMax - Range of points for which calculation  C     bi, bj, :: Range of points for which calculation
38  C     maskUp  - land/water mask for Wvel points (above tracer level)  C     iMin,      is performed.
39  C     myThid - Instance number for this innvocation of CALC_COMMON_FACTORS  C     iMax,
40  C  C     jMin,
41    C     jMax
42    C     maskUp  :: land/water mask for Wvel points (above tracer level)
43    C     myThid  :: Instance number for this innvocation of CALC_DIFFUSIVITY
44    C     KappaRT :: Net diffusivity for temperature
45    C     KappaRS :: Net diffusivity for salinity
46        INTEGER bi,bj,iMin,iMax,jMin,jMax,K        INTEGER bi,bj,iMin,iMax,jMin,jMax,K
47        _RS maskUp(1-Olx:sNx+Olx,1-Oly:sNy+Oly)        _RS maskUp(1-Olx:sNx+Olx,1-Oly:sNy+Oly)
48        _RL KappaRT(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)        _RL KappaRT(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
49        _RL KappaRS(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)        _RL KappaRS(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
50        INTEGER myThid        INTEGER myThid
 CEndOfInterface  
51    
52    C     !LOCAL VARIABLES:
53  C     == Local variables ==  C     == Local variables ==
54  C     I, J, K - Loop counters  C     I, J :: Loop counters
55        INTEGER i,j        INTEGER i,j
56          _RL KbryanLewis79
57    CEOP
58    
59          KbryanLewis79=diffKrBL79surf+(diffKrBL79deep-diffKrBL79surf)
60         & *( atan( -( rF(k)-diffKrBL79Ho )/diffKrBL79scl )/PI+0.5 _d 0)
61    
62        DO j=jMin,jMax        DO j = 1-Oly, sNy+Oly
63         DO i=iMin,iMax         DO i = 1-Olx, sNx+Olx
64          KappaRT(i,j,k) = maskUp(i,j)*          KappaRT(i,j,k) = maskUp(i,j)*
65       &      (       &      (
66       &         KappaRT(i,j,k)       &         IVDConvCount(i,j,k,bi,bj)*ivdc_kappa
67  #if (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL))  #if (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL))
68       &       + diffKr(i,j,k,bi,bj)       &       + diffKr(i,j,k,bi,bj)
69  #else  #else
70       &       + diffKrT       &       + diffKrT
71  #endif  #endif
72         &       + KbryanLewis79
73       &      )       &      )
74         ENDDO         ENDDO
75        ENDDO        ENDDO
76    
77        DO j=jMin,jMax        DO j = 1-Oly, sNy+Oly
78         DO i=iMin,iMax         DO i = 1-Olx, sNx+Olx
79          KappaRS(i,j,k) = maskUp(i,j)*          KappaRS(i,j,k) = maskUp(i,j)*
80       &      (       &      (
81       &         KappaRS(i,j,k)       &         IVDConvCount(i,j,k,bi,bj)*ivdc_kappa
82  #if (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL))  #if (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL))
83       &       + diffKr(i,j,k,bi,bj)       &       + diffKr(i,j,k,bi,bj)
84  #else  #else
85       &       + diffKrS       &       + diffKrS
86  #endif  #endif
87         &       + KbryanLewis79
88       &      )       &      )
89         ENDDO         ENDDO
90        ENDDO        ENDDO
# Line 80  C     I, J, K - Loop counters Line 102  C     I, J, K - Loop counters
102       I        bi,bj,iMin+1,iMax,jMin+1,jMax,K,       I        bi,bj,iMin+1,iMax,jMin+1,jMax,K,
103       I        maskUp,       I        maskUp,
104       O        KappaRT,KappaRS,       O        KappaRT,KappaRS,
105         I        myThid)
106    #endif
107    
108    #ifdef ALLOW_PP81
109          IF (usePP81) CALL PP81_CALC_DIFF(
110         I        bi,bj,iMin+1,iMax,jMin+1,jMax,K,
111         I        maskUp,
112         O        KappaRT,KappaRS,
113       I        myThid)       I        myThid)
114  #endif  #endif
115    

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

  ViewVC Help
Powered by ViewVC 1.1.22