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

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

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

revision 1.2 by adcroft, Thu May 23 15:17:20 2002 UTC revision 1.6 by stephd, Wed Jun 25 21:03:28 2003 UTC
# Line 2  C $Header$ Line 2  C $Header$
2  C $Name$  C $Name$
3    
4  #include "PTRACERS_OPTIONS.h"  #include "PTRACERS_OPTIONS.h"
5    cswdptr -- add ---
6    #include "GCHEM_OPTIONS.h"
7    cswdptr -- end add ---
8    
9  CBOP  CBOP
10  C !ROUTINE: PTRACERS_INTEGERATE  C !ROUTINE: PTRACERS_INTEGERATE
# Line 21  C !USES: =============================== Line 24  C !USES: ===============================
24        IMPLICIT NONE        IMPLICIT NONE
25  #include "SIZE.h"  #include "SIZE.h"
26  #include "EEPARAMS.h"  #include "EEPARAMS.h"
27    #include "PARAMS.h"
28  #include "PTRACERS.h"  #include "PTRACERS.h"
29  #include "GAD.h"  #include "GAD.h"
30    
# Line 68  C  rFlx                        :: vertical flux Line 72  C  rFlx                        :: vertical flux
72        INTEGER iMin,iMax,jMin,jMax        INTEGER iMin,iMax,jMin,jMax
73        INTEGER kUp,kDown,km1        INTEGER kUp,kDown,km1
74        _RL rFlx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,2,PTRACERS_num)        _RL rFlx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,2,PTRACERS_num)
75          LOGICAL calcAdvection
76  CEOP  CEOP
77    
78  C Loop over tracers  C Loop over tracers
# Line 95  C Loop ranges for daughter routines Line 100  C Loop ranges for daughter routines
100    
101  C Calculate active tracer tendencies (gPtr) due to internal processes  C Calculate active tracer tendencies (gPtr) due to internal processes
102  C (advection, [explicit] diffusion, parameterizations,...)  C (advection, [explicit] diffusion, parameterizations,...)
103           calcAdvection = .NOT.multiDimAdvection
104         &      .OR. PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_2ND
105         &      .OR. PTRACERS_advScheme(iTracer).EQ.ENUM_UPWIND_3RD
106         &      .OR. PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_4TH
107           CALL GAD_CALC_RHS(           CALL GAD_CALC_RHS(
108       I                     bi,bj,iMin,iMax,jMin,jMax,k,kM1,kUp,kDown,       I                     bi,bj,iMin,iMax,jMin,jMax,k,kM1,kUp,kDown,
109       I                     xA,yA,uTrans,vTrans,rTrans,maskUp,       I                     xA,yA,uTrans,vTrans,rTrans,maskUp,
# Line 103  C (advection, [explicit] diffusion, para Line 112  C (advection, [explicit] diffusion, para
112       I                     KappaRtr,       I                     KappaRtr,
113       I                     pTracer(1-Olx,1-Oly,1,1,1,iTracer),       I                     pTracer(1-Olx,1-Oly,1,1,1,iTracer),
114       I                     GAD_TR1,       I                     GAD_TR1,
115       I                     PTRACERS_advScheme(iTracer),       I                     PTRACERS_advScheme(iTracer),calcAdvection,
116       U                     rFlx(1-Olx,1-Oly,1,iTracer),       U                     rFlx(1-Olx,1-Oly,1,iTracer),
117       U                     gPtr(1-Olx,1-Oly,1,1,1,iTracer),       U                     gPtr(1-Olx,1-Oly,1,1,1,iTracer),
118       I                     myThid )       I                     myThid )
119    
120  C External forcing term(s)  C External forcing term(s)
121           CALL PTRACERS_FORCING(  cswdptr - add--
122    #ifndef PTRACERS_SEPERATE_FORCING
123    cswdptr - end add ---
124           IF ( forcing_In_AB )
125         &   CALL PTRACERS_FORCING(
126       I                        bi,bj,k,iTracer,       I                        bi,bj,k,iTracer,
127       U                        gPtr(1-Olx,1-Oly,1,1,1,iTracer),       U                        gPtr(1-Olx,1-Oly,1,1,1,iTracer),
128       I                        myIter,myTime,myThid)       I                        myIter,myTime,myThid)
129    cswdptr --add---
130    #endif
131    cswdptr -- end add ---
132    
133  C If using Adams-Bashforth II, then extrapolate tendancies  C If using Adams-Bashforth II, then extrapolate tendancies
134        IF ( PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_2ND        IF ( PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_2ND
# Line 125  C If using Adams-Bashforth II, then extr Line 141  C If using Adams-Bashforth II, then extr
141       I                        myIter,myThid )       I                        myIter,myThid )
142        ENDIF        ENDIF
143    
144    C External forcing term(s)
145    cswdptr - add--
146    #ifndef PTRACERS_SEPERATE_FORCING
147    cswdptr - end add ---
148           IF ( .NOT.forcing_In_AB )
149         &   CALL PTRACERS_FORCING(
150         I                        bi,bj,k,iTracer,
151         U                        gPtr(1-Olx,1-Oly,1,1,1,iTracer),
152         I                        myIter,myTime,myThid)
153    cswdptr - add--
154    #endif
155    cswdptr -- end add ---
156    
157  #ifdef NONLIN_FRSURF  #ifdef NONLIN_FRSURF
158  C Account for change in level thickness  C Account for change in level thickness
159        IF (nonlinFreeSurf.GT.0) THEN        IF (nonlinFreeSurf.GT.0) THEN
# Line 132  C Account for change in level thickness Line 161  C Account for change in level thickness
161       I                          bi,bj,K,       I                          bi,bj,K,
162       U                          gPtr(1-Olx,1-Oly,1,1,1,iTracer),       U                          gPtr(1-Olx,1-Oly,1,1,1,iTracer),
163       I                          myThid )       I                          myThid )
164            IF ( PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_2ND
165         &   .OR.PTRACERS_advScheme(iTracer).EQ.ENUM_UPWIND_3RD
166         &   .OR.PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_4TH )
167         &  CALL FREESURF_RESCALE_G(
168         I                          bi,bj,K,
169         U                          gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),
170         I                          myThid )
171        ENDIF        ENDIF
172  #endif /* NONLIN_FRSURF */  #endif /* NONLIN_FRSURF */
173    

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.6

  ViewVC Help
Powered by ViewVC 1.1.22