/[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.34 by jmc, Fri Oct 19 14:43:50 2007 UTC revision 1.35 by jmc, Mon Nov 5 18:48:04 2007 UTC
# Line 26  C !USES: =============================== Line 26  C !USES: ===============================
26  #include "PARAMS.h"  #include "PARAMS.h"
27  #include "DYNVARS.h"  #include "DYNVARS.h"
28  #include "PTRACERS_SIZE.h"  #include "PTRACERS_SIZE.h"
29  #include "PTRACERS.h"  #include "PTRACERS_PARAMS.h"
30    #include "PTRACERS_FIELDS.h"
31  #include "GAD.h"  #include "GAD.h"
32  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
33  # include "tamc.h"  # include "tamc.h"
# Line 119  C Loop over tracers Line 120  C Loop over tracers
120  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
121        rFlx(1,1,kDown,iTracer) = rFlx(1,1,kDown,iTracer)        rFlx(1,1,kDown,iTracer) = rFlx(1,1,kDown,iTracer)
122  c  c
123  CADJ STORE ptracer(:,:,k,bi,bj,iTracer)  CADJ STORE pTracer(:,:,k,bi,bj,iTracer)
124  CADJ &      = comlev1_bibj_k_ptracers, key=kkey, byte=isbyte  CADJ &      = comlev1_bibj_k_ptracers, key=kkey, byte=isbyte
125  CADJ STORE gPtrnm1(:,:,k,bi,bj,iTracer)  CADJ STORE gpTrNm1(:,:,k,bi,bj,iTracer)
126  CADJ &      = comlev1_bibj_k_ptracers, key=kkey, byte=isbyte  CADJ &      = comlev1_bibj_k_ptracers, key=kkey, byte=isbyte
127  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
128    
# Line 139  C (advection, [explicit] diffusion, para Line 140  C (advection, [explicit] diffusion, para
140       I                   PTRACERS_diffKh(iTracer),       I                   PTRACERS_diffKh(iTracer),
141       I                   PTRACERS_diffK4(iTracer),       I                   PTRACERS_diffK4(iTracer),
142       I                   KappaRtr(1-Olx,1-Oly,iTracer),       I                   KappaRtr(1-Olx,1-Oly,iTracer),
143       I                   gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),       I                   gpTrNm1(1-Olx,1-Oly,1,1,1,iTracer),
144       I                   pTracer(1-Olx,1-Oly,1,1,1,iTracer),       I                   pTracer(1-Olx,1-Oly,1,1,1,iTracer),
145       I                   GAD_TR,       I                   GAD_TR,
146       I                   PTRACERS_advScheme(iTracer),       I                   PTRACERS_advScheme(iTracer),
# Line 157  C External forcing term(s) Line 158  C External forcing term(s)
158       &   CALL PTRACERS_FORCING(       &   CALL PTRACERS_FORCING(
159       I                      bi,bj,iMin,iMax,jMin,jMax,k,iTracer,       I                      bi,bj,iMin,iMax,jMin,jMax,k,iTracer,
160       U                      gPtr(1-Olx,1-Oly,1,1,1,iTracer),       U                      gPtr(1-Olx,1-Oly,1,1,1,iTracer),
161       I                      surfaceForcingPtr(1-Olx,1-Oly,1,1,iTracer),       I                      surfaceForcingPTr(1-Olx,1-Oly,1,1,iTracer),
162       I                      myIter,myTime,myThid)       I                      myIter,myTime,myThid)
163    
164  C If using Adams-Bashforth II, then extrapolate tendencies  C If using Adams-Bashforth II, then extrapolate tendencies
# Line 167  C gPtr is now the tracer tendency for ex Line 168  C gPtr is now the tracer tendency for ex
168       & .OR.PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_4TH ) THEN       & .OR.PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_4TH ) THEN
169  #ifdef ALLOW_MATRIX  #ifdef ALLOW_MATRIX
170  C  If matrix is being computed, block call to S/R ADAMS_BASHFORTH2 to  C  If matrix is being computed, block call to S/R ADAMS_BASHFORTH2 to
171  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.
172          IF (.NOT.useMATRIX) THEN          IF (.NOT.useMATRIX) THEN
173  #endif  #endif
174          iterNb = myIter          iterNb = myIter
# Line 176  C  prevent gPtr from being replaced by t Line 177  C  prevent gPtr from being replaced by t
177          CALL ADAMS_BASHFORTH2(          CALL ADAMS_BASHFORTH2(
178       I                        bi,bj,K,       I                        bi,bj,K,
179       U                        gPtr(1-Olx,1-Oly,1,1,1,iTracer),       U                        gPtr(1-Olx,1-Oly,1,1,1,iTracer),
180       U                        gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),       U                        gpTrNm1(1-Olx,1-Oly,1,1,1,iTracer),
181       I                        startAB, iterNb, myThid )       I                        startAB, iterNb, myThid )
182  #ifdef ALLOW_MATRIX  #ifdef ALLOW_MATRIX
183          ENDIF          ENDIF
# Line 188  C External forcing term(s) Line 189  C External forcing term(s)
189       &   CALL PTRACERS_FORCING(       &   CALL PTRACERS_FORCING(
190       I                      bi,bj,iMin,iMax,jMin,jMax,k,iTracer,       I                      bi,bj,iMin,iMax,jMin,jMax,k,iTracer,
191       U                      gPtr(1-Olx,1-Oly,1,1,1,iTracer),       U                      gPtr(1-Olx,1-Oly,1,1,1,iTracer),
192       I                      surfaceForcingPtr(1-Olx,1-Oly,1,1,iTracer),       I                      surfaceForcingPTr(1-Olx,1-Oly,1,1,iTracer),
193       I                      myIter,myTime,myThid)       I                      myIter,myTime,myThid)
194    
195  #ifdef NONLIN_FRSURF  #ifdef NONLIN_FRSURF
# Line 203  C Account for change in level thickness Line 204  C Account for change in level thickness
204       &   .OR.PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_4TH )       &   .OR.PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_4TH )
205       &  CALL FREESURF_RESCALE_G(       &  CALL FREESURF_RESCALE_G(
206       I                          bi,bj,K,       I                          bi,bj,K,
207       U                          gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),       U                          gpTrNm1(1-Olx,1-Oly,1,1,1,iTracer),
208       I                          myThid )       I                          myThid )
209        ENDIF        ENDIF
210  #endif /* NONLIN_FRSURF */  #endif /* NONLIN_FRSURF */

Legend:
Removed from v.1.34  
changed lines
  Added in v.1.35

  ViewVC Help
Powered by ViewVC 1.1.22