/[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.43 by jmc, Mon May 23 00:34:36 2011 UTC revision 1.44 by jmc, Mon Nov 7 20:23:04 2011 UTC
# Line 88  C  GAD_TR               :: passive trace Line 88  C  GAD_TR               :: passive trace
88        INTEGER GAD_TR        INTEGER GAD_TR
89        LOGICAL calcAdvection        LOGICAL calcAdvection
90        INTEGER iterNb        INTEGER iterNb
91          _RL gTr_AB (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
92    #ifdef ALLOW_DIAGNOSTICS
93          CHARACTER*8 diagName
94          CHARACTER*4 diagSufx
95    C-    Functions:
96          CHARACTER*4 GAD_DIAG_SUFX
97          EXTERNAL    GAD_DIAG_SUFX
98    #endif /* ALLOW_DIAGNOSTICS */
99  CEOP  CEOP
100    
101  C Loop ranges for daughter routines  C Loop ranges for daughter routines
# Line 122  C Loop over tracers Line 130  C Loop over tracers
130  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
131    
132  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
133        rFlx(1,1,kDown,iTracer) = rFlx(1,1,kDown,iTracer)         rFlx(1,1,kDown,iTracer) = rFlx(1,1,kDown,iTracer)
134  c  c
135  CADJ STORE pTracer(:,:,k,bi,bj,iTracer)  CADJ STORE pTracer(:,:,k,bi,bj,iTracer)
136  CADJ &      = comlev1_bibj_k_ptracers, key=kkey, byte=isbyte  CADJ &      = comlev1_bibj_k_ptracers, key=kkey, byte=isbyte
# Line 170  C External forcing term(s) Line 178  C External forcing term(s)
178    
179  C If using Adams-Bashforth II, then extrapolate tendencies  C If using Adams-Bashforth II, then extrapolate tendencies
180  C gPtr is now the tracer tendency for explicit advection/diffusion  C gPtr is now the tracer tendency for explicit advection/diffusion
       IF ( PTRACERS_AdamsBashGtr(iTracer) ) THEN  
181  #ifdef ALLOW_MATRIX  #ifdef ALLOW_MATRIX
182  C  If matrix is being computed, block call to S/R ADAMS_BASHFORTH2 to  C  If matrix is being computed, skip call to S/R ADAMS_BASHFORTH2 to
183  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.
184          IF (.NOT.useMATRIX) THEN         IF ( .NOT.useMATRIX .AND.
185  #endif       &      PTRACERS_AdamsBashGtr(iTracer) ) THEN
186    #else /* ALLOW_MATRIX */
187           IF ( PTRACERS_AdamsBashGtr(iTracer) ) THEN
188    #endif /* ALLOW_MATRIX */
189  C       compute iter at beginning of ptracer time step  C       compute iter at beginning of ptracer time step
190  #ifdef ALLOW_LONGSTEP  #ifdef ALLOW_LONGSTEP
191          iterNb = myIter - LS_nIter + 1          iterNb = myIter - LS_nIter + 1
# Line 185  C       compute iter at beginning of ptr Line 195  C       compute iter at beginning of ptr
195          IF (staggerTimeStep) iterNb = myIter - 1          IF (staggerTimeStep) iterNb = myIter - 1
196  #endif  #endif
197          CALL ADAMS_BASHFORTH2(          CALL ADAMS_BASHFORTH2(
198       I                      bi,bj,K,       I                      bi,bj,k,
199       U                      gPtr(1-Olx,1-Oly,1,1,1,iTracer),       U                      gPtr(1-Olx,1-Oly,1,1,1,iTracer),
200       U                      gpTrNm1(1-Olx,1-Oly,1,1,1,iTracer),       U                      gpTrNm1(1-Olx,1-Oly,1,1,1,iTracer),
201         U                      gTr_AB,
202       I                      PTRACERS_startAB(iTracer), iterNb, myThid )       I                      PTRACERS_startAB(iTracer), iterNb, myThid )
203  #ifdef ALLOW_MATRIX  #ifdef ALLOW_DIAGNOSTICS
204            IF ( useDiagnostics ) THEN
205              diagSufx = GAD_DIAG_SUFX( GAD_TR, myThid )
206              diagName = 'AB_g'//diagSufx
207              CALL DIAGNOSTICS_FILL(gTr_AB,diagName,k,1,2,bi,bj,myThid)
208          ENDIF          ENDIF
209  #endif  #endif /* ALLOW_DIAGNOSTICS */
210        ENDIF         ENDIF
211    
212  C External forcing term(s)  C External forcing term(s)
213         IF ( tracForcingOutAB.EQ.1 )         IF ( tracForcingOutAB.EQ.1 )
# Line 206  C External forcing term(s) Line 221  C External forcing term(s)
221  C Account for change in level thickness  C Account for change in level thickness
222        IF (nonlinFreeSurf.GT.0) THEN        IF (nonlinFreeSurf.GT.0) THEN
223          CALL FREESURF_RESCALE_G(          CALL FREESURF_RESCALE_G(
224       I                          bi,bj,K,       I                          bi,bj,k,
225       U                          gPtr(1-Olx,1-Oly,1,1,1,iTracer),       U                          gPtr(1-Olx,1-Oly,1,1,1,iTracer),
226       I                          myThid )       I                          myThid )
227          IF ( PTRACERS_AdamsBashGtr(iTracer) )          IF ( PTRACERS_AdamsBashGtr(iTracer) )
228       &  CALL FREESURF_RESCALE_G(       &  CALL FREESURF_RESCALE_G(
229       I                          bi,bj,K,       I                          bi,bj,k,
230       U                          gpTrNm1(1-Olx,1-Oly,1,1,1,iTracer),       U                          gpTrNm1(1-Olx,1-Oly,1,1,1,iTracer),
231       I                          myThid )       I                          myThid )
232        ENDIF        ENDIF

Legend:
Removed from v.1.43  
changed lines
  Added in v.1.44

  ViewVC Help
Powered by ViewVC 1.1.22