/[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.5 by adcroft, Mon Jun 24 18:47:10 2002 UTC
# Line 21  C !USES: =============================== Line 21  C !USES: ===============================
21        IMPLICIT NONE        IMPLICIT NONE
22  #include "SIZE.h"  #include "SIZE.h"
23  #include "EEPARAMS.h"  #include "EEPARAMS.h"
24    #include "PARAMS.h"
25  #include "PTRACERS.h"  #include "PTRACERS.h"
26  #include "GAD.h"  #include "GAD.h"
27    
# Line 68  C  rFlx                        :: vertical flux Line 69  C  rFlx                        :: vertical flux
69        INTEGER iMin,iMax,jMin,jMax        INTEGER iMin,iMax,jMin,jMax
70        INTEGER kUp,kDown,km1        INTEGER kUp,kDown,km1
71        _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)
72          LOGICAL calcAdvection
73  CEOP  CEOP
74    
75  C Loop over tracers  C Loop over tracers
# Line 95  C Loop ranges for daughter routines Line 97  C Loop ranges for daughter routines
97    
98  C Calculate active tracer tendencies (gPtr) due to internal processes  C Calculate active tracer tendencies (gPtr) due to internal processes
99  C (advection, [explicit] diffusion, parameterizations,...)  C (advection, [explicit] diffusion, parameterizations,...)
100           calcAdvection = .NOT.multiDimAdvection
101         &      .OR. PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_2ND
102         &      .OR. PTRACERS_advScheme(iTracer).EQ.ENUM_UPWIND_3RD
103         &      .OR. PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_4TH
104           CALL GAD_CALC_RHS(           CALL GAD_CALC_RHS(
105       I                     bi,bj,iMin,iMax,jMin,jMax,k,kM1,kUp,kDown,       I                     bi,bj,iMin,iMax,jMin,jMax,k,kM1,kUp,kDown,
106       I                     xA,yA,uTrans,vTrans,rTrans,maskUp,       I                     xA,yA,uTrans,vTrans,rTrans,maskUp,
# Line 103  C (advection, [explicit] diffusion, para Line 109  C (advection, [explicit] diffusion, para
109       I                     KappaRtr,       I                     KappaRtr,
110       I                     pTracer(1-Olx,1-Oly,1,1,1,iTracer),       I                     pTracer(1-Olx,1-Oly,1,1,1,iTracer),
111       I                     GAD_TR1,       I                     GAD_TR1,
112       I                     PTRACERS_advScheme(iTracer),       I                     PTRACERS_advScheme(iTracer),calcAdvection,
113       U                     rFlx(1-Olx,1-Oly,1,iTracer),       U                     rFlx(1-Olx,1-Oly,1,iTracer),
114       U                     gPtr(1-Olx,1-Oly,1,1,1,iTracer),       U                     gPtr(1-Olx,1-Oly,1,1,1,iTracer),
115       I                     myThid )       I                     myThid )
116    
117  C External forcing term(s)  C External forcing term(s)
118           CALL PTRACERS_FORCING(         IF ( forcing_In_AB )
119         &   CALL PTRACERS_FORCING(
120       I                        bi,bj,k,iTracer,       I                        bi,bj,k,iTracer,
121       U                        gPtr(1-Olx,1-Oly,1,1,1,iTracer),       U                        gPtr(1-Olx,1-Oly,1,1,1,iTracer),
122       I                        myIter,myTime,myThid)       I                        myIter,myTime,myThid)
# Line 125  C If using Adams-Bashforth II, then extr Line 132  C If using Adams-Bashforth II, then extr
132       I                        myIter,myThid )       I                        myIter,myThid )
133        ENDIF        ENDIF
134    
135    C External forcing term(s)
136           IF ( .NOT.forcing_In_AB )
137         &   CALL PTRACERS_FORCING(
138         I                        bi,bj,k,iTracer,
139         U                        gPtr(1-Olx,1-Oly,1,1,1,iTracer),
140         I                        myIter,myTime,myThid)
141    
142  #ifdef NONLIN_FRSURF  #ifdef NONLIN_FRSURF
143  C Account for change in level thickness  C Account for change in level thickness
144        IF (nonlinFreeSurf.GT.0) THEN        IF (nonlinFreeSurf.GT.0) THEN
# Line 132  C Account for change in level thickness Line 146  C Account for change in level thickness
146       I                          bi,bj,K,       I                          bi,bj,K,
147       U                          gPtr(1-Olx,1-Oly,1,1,1,iTracer),       U                          gPtr(1-Olx,1-Oly,1,1,1,iTracer),
148       I                          myThid )       I                          myThid )
149            IF ( PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_2ND
150         &   .OR.PTRACERS_advScheme(iTracer).EQ.ENUM_UPWIND_3RD
151         &   .OR.PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_4TH )
152         &  CALL FREESURF_RESCALE_G(
153         I                          bi,bj,K,
154         U                          gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),
155         I                          myThid )
156        ENDIF        ENDIF
157  #endif /* NONLIN_FRSURF */  #endif /* NONLIN_FRSURF */
158    

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

  ViewVC Help
Powered by ViewVC 1.1.22