/[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.36 by jmc, Mon Dec 17 22:03:15 2007 UTC revision 1.40 by jmc, Sun Nov 14 23:32:15 2010 UTC
# Line 25  C !USES: =============================== Line 25  C !USES: ===============================
25  #include "EEPARAMS.h"  #include "EEPARAMS.h"
26  #include "PARAMS.h"  #include "PARAMS.h"
27  #include "DYNVARS.h"  #include "DYNVARS.h"
28    #ifdef ALLOW_LONGSTEP
29    #include "LONGSTEP_PARAMS.h"
30    #endif
31  #include "PTRACERS_SIZE.h"  #include "PTRACERS_SIZE.h"
32  #include "PTRACERS_PARAMS.h"  #include "PTRACERS_PARAMS.h"
33  #include "PTRACERS_RESTART.h"  #include "PTRACERS_RESTART.h"
# Line 140  C (advection, [explicit] diffusion, para Line 143  C (advection, [explicit] diffusion, para
143       I                   KappaRtr(1-Olx,1-Oly,iTracer),       I                   KappaRtr(1-Olx,1-Oly,iTracer),
144       I                   gpTrNm1(1-Olx,1-Oly,1,1,1,iTracer),       I                   gpTrNm1(1-Olx,1-Oly,1,1,1,iTracer),
145       I                   pTracer(1-Olx,1-Oly,1,1,1,iTracer),       I                   pTracer(1-Olx,1-Oly,1,1,1,iTracer),
146       I                   GAD_TR,       I                   PTRACERS_dTLev, GAD_TR,
147       I                   PTRACERS_advScheme(iTracer),       I                   PTRACERS_advScheme(iTracer),
148       I                   PTRACERS_advScheme(iTracer),       I                   PTRACERS_advScheme(iTracer),
149       I                   calcAdvection, PTRACERS_ImplVertAdv(iTracer),       I                   calcAdvection, PTRACERS_ImplVertAdv(iTracer),
# Line 167  C  If matrix is being computed, block ca Line 170  C  If matrix is being computed, block ca
170  C  prevent gPtr from being replaced by the average of gPtr and gpTrNm1.  C  prevent gPtr from being replaced by the average of gPtr and gpTrNm1.
171          IF (.NOT.useMATRIX) THEN          IF (.NOT.useMATRIX) THEN
172  #endif  #endif
173    C       compute iter at beginning of ptracer time step
174    #ifdef ALLOW_LONGSTEP
175            iterNb = myIter - LS_nIter + 1
176            IF (LS_whenToSample.GE.2) iterNb = myIter - LS_nIter
177    #else
178          iterNb = myIter          iterNb = myIter
179          IF (staggerTimeStep) iterNb = myIter - 1          IF (staggerTimeStep) iterNb = myIter - 1
180    #endif
181          CALL ADAMS_BASHFORTH2(          CALL ADAMS_BASHFORTH2(
182       I                      bi,bj,K,       I                      bi,bj,K,
183       U                      gPtr(1-Olx,1-Oly,1,1,1,iTracer),       U                      gPtr(1-Olx,1-Oly,1,1,1,iTracer),
# Line 194  C Account for change in level thickness Line 203  C Account for change in level thickness
203       I                          bi,bj,K,       I                          bi,bj,K,
204       U                          gPtr(1-Olx,1-Oly,1,1,1,iTracer),       U                          gPtr(1-Olx,1-Oly,1,1,1,iTracer),
205       I                          myThid )       I                          myThid )
206          IF ( PTRACERS_AdamsBashGtr(iTracer) ) THEN          IF ( PTRACERS_AdamsBashGtr(iTracer) )
207       &  CALL FREESURF_RESCALE_G(       &  CALL FREESURF_RESCALE_G(
208       I                          bi,bj,K,       I                          bi,bj,K,
209       U                          gpTrNm1(1-Olx,1-Oly,1,1,1,iTracer),       U                          gpTrNm1(1-Olx,1-Oly,1,1,1,iTracer),
# Line 206  C Integrate forward in time, storing in Line 215  C Integrate forward in time, storing in
215           CALL TIMESTEP_TRACER(           CALL TIMESTEP_TRACER(
216       I                        bi,bj,iMin,iMax,jMin,jMax,k,       I                        bi,bj,iMin,iMax,jMin,jMax,k,
217       I                        PTRACERS_advScheme(iTracer),       I                        PTRACERS_advScheme(iTracer),
218         I                        PTRACERS_dTLev(k),
219       I                        pTracer(1-Olx,1-Oly,1,1,1,iTracer),       I                        pTracer(1-Olx,1-Oly,1,1,1,iTracer),
220       I                        gPtr(1-Olx,1-Oly,1,1,1,iTracer),       I                        gPtr(1-Olx,1-Oly,1,1,1,iTracer),
221       I                        myIter,myThid )       I                        myIter,myThid )
222    
 #ifdef   ALLOW_OBCS  
 C Apply open boundary conditions  
          IF (useOBCS) THEN  
           CALL OBCS_APPLY_PTRACER(  
      I         bi, bj, k, iTracer,  
      U         gPtr(1-Olx,1-Oly,k,bi,bj,iTracer),  
      I         myThid )  
          ENDIF  
 #endif   /* ALLOW_OBCS */  
223  C end of tracer loop  C end of tracer loop
224        ENDDO        ENDDO
225    

Legend:
Removed from v.1.36  
changed lines
  Added in v.1.40

  ViewVC Help
Powered by ViewVC 1.1.22