/[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.7 by jahn, Fri Jun 26 23:10:10 2009 UTC revision 1.10 by jmc, Thu Mar 8 17:13:31 2012 UTC
# Line 35  C     == GLobal variables == Line 35  C     == GLobal variables ==
35  #endif  #endif
36  #include "PTRACERS_SIZE.h"  #include "PTRACERS_SIZE.h"
37  #include "PTRACERS_PARAMS.h"  #include "PTRACERS_PARAMS.h"
38  c #include "PTRACERS_FIELDS.h"  #include "PTRACERS_START.h"
39  #include "GAD.h"  #include "GAD.h"
40    
41  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
# Line 48  C     myThid    :: Instance number for t Line 48  C     myThid    :: Instance number for t
48  C     KappaRtr  :: Net diffusivity for temperature  C     KappaRtr  :: Net diffusivity for temperature
49  C     KappaRS   :: Net diffusivity for salinity  C     KappaRS   :: Net diffusivity for salinity
50        INTEGER bi,bj,iMin,iMax,jMin,jMax,k        INTEGER bi,bj,iMin,iMax,jMin,jMax,k
51        _RS maskUp(1-Olx:sNx+Olx,1-Oly:sNy+Oly)        _RS maskUp(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
52        _RL KappaRtr(1-Olx:sNx+Olx,1-Oly:sNy+Oly,PTRACERS_num)        _RL KappaRtr(1-OLx:sNx+OLx,1-OLy:sNy+OLy,PTRACERS_num)
53        INTEGER myThid        INTEGER myThid
54    
55  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
# Line 71  CEOP Line 71  CEOP
71    
72  C Loop over tracers  C Loop over tracers
73        DO iTr=1,PTRACERS_numInUse        DO iTr=1,PTRACERS_numInUse
74           IF ( PTRACERS_StepFwd(iTr) ) THEN
75    
76         trIdentity = iTr + GAD_TR1 - 1         trIdentity = iTr + GAD_TR1 - 1
77    
78         IF ( .NOT. PTRACERS_useKPP(iTr) ) THEN         IF ( .NOT. PTRACERS_useKPP(iTr) ) THEN
79          DO j = 1-Oly, sNy+Oly          DO j = 1-OLy, sNy+OLy
80           DO i = 1-Olx, sNx+Olx           DO i = 1-OLx, sNx+OLx
81            KappaRtr(i,j,iTr) =            KappaRtr(i,j,iTr) =
82  #ifdef ALLOW_LONGSTEP  #ifdef ALLOW_LONGSTEP
83       &         LS_IVDConvCount(i,j,k,bi,bj)*ivdc_kappa       &         LS_IVDConvCount(i,j,k,bi,bj)*ivdc_kappa
84  #else  #else
85       &         IVDConvCount(i,j,k,bi,bj)*ivdc_kappa       &         IVDConvCount(i,j,k,bi,bj)*ivdc_kappa
86  #endif  #endif
87  #if (defined ALLOW_3D_DIFFKR || \  #ifdef ALLOW_3D_DIFFKR
      (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL)))  
88       &       + diffKr(i,j,k,bi,bj)       &       + diffKr(i,j,k,bi,bj)
89  #else  #else
90       &       + PTRACERS_diffKrNr(k,iTr)       &       + PTRACERS_diffKrNr(k,iTr)
# Line 102  C Loop over tracers Line 102  C Loop over tracers
102  C--   Set vertical diffusivity contribution from KPP  C--   Set vertical diffusivity contribution from KPP
103           CALL KPP_CALC_DIFF_PTR(           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        iTr, myThid )
107          ENDIF          ENDIF
108  #endif  #endif
109    
# Line 111  C--   Set vertical diffusivity contribut Line 111  C--   Set vertical diffusivity contribut
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        trIdentity,myThid)       I        trIdentity,myThid)
116          ENDIF          ENDIF
117  #endif  #endif
# Line 120  C--   Set vertical diffusivity contribut Line 120  C--   Set vertical diffusivity contribut
120          IF (usePP81) THEN          IF (usePP81) THEN
121           CALL PP81_CALC_DIFF(           CALL PP81_CALC_DIFF(
122       I        bi,bj,iMin+1,iMax,jMin+1,jMax,k,1,       I        bi,bj,iMin+1,iMax,jMin+1,jMax,k,1,
123       U        KappaRtr(1-Olx,1-Oly,iTr),       U        KappaRtr(1-OLx,1-OLy,iTr),
124       I        myThid)       I        myThid)
125          ENDIF          ENDIF
126  #endif  #endif
# Line 129  C--   Set vertical diffusivity contribut Line 129  C--   Set vertical diffusivity contribut
129          IF (useMY82) THEN          IF (useMY82) THEN
130           CALL MY82_CALC_DIFF(           CALL MY82_CALC_DIFF(
131       I        bi,bj,iMin+1,iMax,jMin+1,jMax,k,1,       I        bi,bj,iMin+1,iMax,jMin+1,jMax,k,1,
132       U        KappaRtr(1-Olx,1-Oly,iTr),       U        KappaRtr(1-OLx,1-OLy,iTr),
133       I        myThid)       I        myThid)
134          ENDIF          ENDIF
135  #endif  #endif
# Line 138  C--   Set vertical diffusivity contribut Line 138  C--   Set vertical diffusivity contribut
138          IF (useGGL90) THEN          IF (useGGL90) THEN
139           CALL GGL90_CALC_DIFF(           CALL GGL90_CALC_DIFF(
140       I        bi,bj,iMin+1,iMax,jMin+1,jMax,k,1,       I        bi,bj,iMin+1,iMax,jMin+1,jMax,k,1,
141       U        KappaRtr(1-Olx,1-Oly,iTr),       U        KappaRtr(1-OLx,1-OLy,iTr),
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: do not 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 is 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
151            KappaRtr(i,j,iTr) = maskUp(i,j)*KappaRtr(i,j,iTr)            KappaRtr(i,j,iTr) = maskUp(i,j)*KappaRtr(i,j,iTr)
152           ENDDO           ENDDO
153          ENDDO          ENDDO
154    
155  C end of tracer loop  C end of tracer loop
156           ENDIF
157        ENDDO        ENDDO
158    
159        RETURN        RETURN

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

  ViewVC Help
Powered by ViewVC 1.1.22