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

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

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

revision 1.4 by jmc, Wed Jul 7 18:45:28 2004 UTC revision 1.11 by jmc, Mon Dec 17 22:03:15 2007 UTC
# Line 10  C !INTERFACE: ========================== Line 10  C !INTERFACE: ==========================
10        SUBROUTINE PTRACERS_ADVECTION( bi,bj,myIter,myTime,myThid )        SUBROUTINE PTRACERS_ADVECTION( bi,bj,myIter,myTime,myThid )
11    
12  C !DESCRIPTION:  C !DESCRIPTION:
13  C     Calculates tendancy for passive tracers and integrates forward  C     Calculates tendency for passive tracers and integrates forward
14  C     in time.  C     in time.
15    
16  C !USES: ===============================================================  C !USES: ===============================================================
# Line 19  C !USES: =============================== Line 19  C !USES: ===============================
19  #include "EEPARAMS.h"  #include "EEPARAMS.h"
20  #include "PARAMS.h"  #include "PARAMS.h"
21  #include "DYNVARS.h"  #include "DYNVARS.h"
22  #include "PTRACERS.h"  #include "PTRACERS_SIZE.h"
23    #include "PTRACERS_PARAMS.h"
24    #include "PTRACERS_FIELDS.h"
25  #include "GAD.h"  #include "GAD.h"
26    #ifdef ALLOW_AUTODIFF_TAMC
27    # include "tamc.h"
28    # include "tamc_keys.h"
29    #endif
30    
31  C !INPUT PARAMETERS: ===================================================  C !INPUT PARAMETERS: ===================================================
32  C  bi,bj                :: tile indices  C  bi,bj                :: tile indices
# Line 42  C  i,j,k,bi,bj,iTracer  :: loop indices Line 48  C  i,j,k,bi,bj,iTracer  :: loop indices
48  C  iMin,iMax,jMin,jMax  :: loop ranges  C  iMin,iMax,jMin,jMax  :: loop ranges
49  C  kUp,kDown            :: toggle indices for even/odd level fluxes  C  kUp,kDown            :: toggle indices for even/odd level fluxes
50  C  km1                  :: =min(1,k-1)  C  km1                  :: =min(1,k-1)
51  C  rFlx                 :: vertical flux  C  rFlx                 :: vertical flux
52        INTEGER iTracer        INTEGER iTracer
53  CEOP  CEOP
54    
55  C Loop over tracers  C Loop over tracers
56        DO iTracer=1,PTRACERS_numInUse        DO iTracer=1,PTRACERS_numInUse
57    
58         IF (  #ifdef ALLOW_AUTODIFF_TAMC
59       &     multiDimAdvection .AND.            act0 = iTracer - 1
60       &     PTRACERS_advScheme(iTracer).NE.ENUM_CENTERED_2ND .AND.            max0 = PTRACERS_num
61       &     PTRACERS_advScheme(iTracer).NE.ENUM_UPWIND_3RD .AND.            act1 = bi - myBxLo(myThid)
62       &     PTRACERS_advScheme(iTracer).NE.ENUM_CENTERED_4TH ) THEN            max1 = myBxHi(myThid) - myBxLo(myThid) + 1
63              act2 = bj - myByLo(myThid)
64              max2 = myByHi(myThid) - myByLo(myThid) + 1
65              act3 = myThid - 1
66              max3 = nTx*nTy
67              act4 = ikey_dynamics - 1
68              iptrkey = (act0 + 1)
69         &                      + act1*max0
70         &                      + act2*max0*max1
71         &                      + act3*max0*max1*max2
72         &                      + act4*max0*max1*max2*max3
73    #endif /* ALLOW_AUTODIFF_TAMC */
74    
75    #ifdef ALLOW_AUTODIFF_TAMC
76    CADJ STORE pTracer(:,:,:,bi,bj,iTracer)
77    CADJ &      = comlev1_bibj_ptracers, key=iptrkey, byte=isbyte
78    #endif /* ALLOW_AUTODIFF_TAMC */
79    
80           IF ( PTRACERS_MultiDimAdv(iTracer) ) THEN
81              CALL GAD_ADVECTION(              CALL GAD_ADVECTION(
82       I                        .FALSE.,       I                        PTRACERS_ImplVertAdv(iTracer),
83       I                        PTRACERS_advScheme(iTracer),       I                        PTRACERS_advScheme(iTracer),
84       I                        PTRACERS_advScheme(iTracer),       I                        PTRACERS_advScheme(iTracer),
85       I                        GAD_TR1,       I                        GAD_TR1+iTracer-1,
86       I                        uVel, vVel, wVel,       I                        uVel, vVel, wVel,
87       I                        pTracer(1-Olx,1-Oly,1,1,1,iTracer),       I                        pTracer(1-Olx,1-Oly,1,1,1,iTracer),
88       O                        gPtr(1-Olx,1-Oly,1,1,1,iTracer),       O                        gPtr(1-Olx,1-Oly,1,1,1,iTracer),

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.11

  ViewVC Help
Powered by ViewVC 1.1.22