/[MITgcm]/MITgcm/pkg/ptracers/ptracers_calc_diff.F
ViewVC logotype

Diff of /MITgcm/pkg/ptracers/ptracers_calc_diff.F

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

revision 1.4 by dimitri, Thu Sep 27 14:42:59 2007 UTC revision 1.7 by jahn, Fri Jun 26 23:10:10 2009 UTC
# Line 5  C $Name$ Line 5  C $Name$
5    
6  CBOP  CBOP
7  C     !ROUTINE: PTRACERS_CALC_DIFF  C     !ROUTINE: PTRACERS_CALC_DIFF
8  C     !INTERFACE:  C     !INTERFACE:
9        SUBROUTINE PTRACERS_CALC_DIFF(        SUBROUTINE PTRACERS_CALC_DIFF(
10       I        bi,bj,iMin,iMax,jMin,jMax,k,       I        bi,bj,iMin,iMax,jMin,jMax,k,
11       I        maskUp,       I        maskUp,
12       O        KappaRtr,       O        KappaRtr,
# Line 30  C     == GLobal variables == Line 30  C     == GLobal variables ==
30  #include "PARAMS.h"  #include "PARAMS.h"
31  #include "GRID.h"  #include "GRID.h"
32  #include "DYNVARS.h"  #include "DYNVARS.h"
33    #ifdef ALLOW_LONGSTEP
34    #include "LONGSTEP.h"
35    #endif
36  #include "PTRACERS_SIZE.h"  #include "PTRACERS_SIZE.h"
37  #include "PTRACERS.h"  #include "PTRACERS_PARAMS.h"
38  c #include "GAD.h"  c #include "PTRACERS_FIELDS.h"
39    #include "GAD.h"
40    
41  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
42  C     == Routine arguments ==  C     == Routine arguments ==
# Line 51  C     KappaRS   :: Net diffusivity for s Line 55  C     KappaRS   :: Net diffusivity for s
55  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
56  C     == Local variables ==  C     == Local variables ==
57  C     I, J :: Loop counters  C     I, J :: Loop counters
58        INTEGER i,j,iTr        INTEGER i,j,iTr,trIdentity
59        _RL KbryanLewis79, KbryanLewisEQ        _RL KbryanLewis79
60    #ifdef ALLOW_BL79_LAT_VARY
61          _RL KbryanLewisEQ
62    #endif
63  CEOP  CEOP
64    
65        KbryanLewis79=diffKrBL79surf+(diffKrBL79deep-diffKrBL79surf)        KbryanLewis79=diffKrBL79surf+(diffKrBL79deep-diffKrBL79surf)
# Line 65  CEOP Line 72  CEOP
72  C Loop over tracers  C Loop over tracers
73        DO iTr=1,PTRACERS_numInUse        DO iTr=1,PTRACERS_numInUse
74    
75           trIdentity = iTr + GAD_TR1 - 1
76    
77         IF ( .NOT. PTRACERS_useKPP(iTr) ) THEN         IF ( .NOT. PTRACERS_useKPP(iTr) ) THEN
78          DO j = 1-Oly, sNy+Oly          DO j = 1-Oly, sNy+Oly
79           DO i = 1-Olx, sNx+Olx           DO i = 1-Olx, sNx+Olx
80            KappaRtr(i,j,iTr) =            KappaRtr(i,j,iTr) =
81    #ifdef ALLOW_LONGSTEP
82         &         LS_IVDConvCount(i,j,k,bi,bj)*ivdc_kappa
83    #else
84       &         IVDConvCount(i,j,k,bi,bj)*ivdc_kappa       &         IVDConvCount(i,j,k,bi,bj)*ivdc_kappa
85    #endif
86  #if (defined ALLOW_3D_DIFFKR || \  #if (defined ALLOW_3D_DIFFKR || \
87       (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL)))       (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL)))
88       &       + diffKr(i,j,k,bi,bj)       &       + diffKr(i,j,k,bi,bj)
# Line 87  C Loop over tracers Line 100  C Loop over tracers
100  #ifdef ALLOW_KPP  #ifdef ALLOW_KPP
101          IF ( PTRACERS_useKPP(iTr) ) THEN          IF ( PTRACERS_useKPP(iTr) ) THEN
102  C--   Set vertical diffusivity contribution from KPP  C--   Set vertical diffusivity contribution from KPP
103           CALL KPP_CALC_DIFF_S(           CALL KPP_CALC_DIFF_PTR(
104       I        bi,bj,iMin+1,iMax,jMin+1,jMax,k,1,       I        bi,bj,iMin+1,iMax,jMin+1,jMax,k,1,
105       O        KappaRtr(1-Olx,1-Oly,iTr),       O        KappaRtr(1-Olx,1-Oly,iTr),
106       I        myThid)       I        myThid)
# Line 95  C--   Set vertical diffusivity contribut Line 108  C--   Set vertical diffusivity contribut
108  #endif  #endif
109    
110  #ifdef ALLOW_GMREDI  #ifdef ALLOW_GMREDI
111          IF ( PTRACERS_useGMRedi(iTr) ) THEN          IF ( PTRACERS_useGMRedi(iTr) ) THEN
112           CALL GMREDI_CALC_DIFF(           CALL GMREDI_CALC_DIFF(
113       I        bi,bj,iMin,iMax,jMin,jMax,k,1,       I        bi,bj,iMin,iMax,jMin,jMax,k,1,
114       U        KappaRtr(1-Olx,1-Oly,iTr),       U        KappaRtr(1-Olx,1-Oly,iTr),
115       I        myThid)       I        trIdentity,myThid)
116          ENDIF          ENDIF
117  #endif  #endif
118    
# Line 120  C--   Set vertical diffusivity contribut Line 133  C--   Set vertical diffusivity contribut
133       I        myThid)       I        myThid)
134          ENDIF          ENDIF
135  #endif  #endif
136          
137  #ifdef ALLOW_GGL90  #ifdef ALLOW_GGL90
138          IF (useGGL90) THEN          IF (useGGL90) THEN
139           CALL GGL90_CALC_DIFF(           CALL GGL90_CALC_DIFF(
# Line 129  C--   Set vertical diffusivity contribut Line 142  C--   Set vertical diffusivity contribut
142       I        myThid)       I        myThid)
143          ENDIF          ENDIF
144  #endif  #endif
145          
146  C-    Apply mask to vertical diffusivity  C-    Apply mask to vertical diffusivity
147  C jmc: don't have the impression that masking is needed  C jmc: don't have the impression that masking is needed
148  C      but could be removed later if it's the case.  C      but could be removed later if it's the case.
149          DO j = 1-Oly, sNy+Oly          DO j = 1-Oly, sNy+Oly
150           DO i = 1-Olx, sNx+Olx           DO i = 1-Olx, sNx+Olx

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

  ViewVC Help
Powered by ViewVC 1.1.22