/[MITgcm]/MITgcm/pkg/generic_advdiff/gad_calc_rhs.F
ViewVC logotype

Diff of /MITgcm/pkg/generic_advdiff/gad_calc_rhs.F

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

revision 1.26 by jmc, Sat Jun 26 02:38:54 2004 UTC revision 1.27 by jmc, Fri Sep 24 16:52:44 2004 UTC
# Line 15  C !INTERFACE: ========================== Line 15  C !INTERFACE: ==========================
15       I           tracerIdentity, advectionScheme, vertAdvecScheme,       I           tracerIdentity, advectionScheme, vertAdvecScheme,
16       I           calcAdvection, implicitAdvection,       I           calcAdvection, implicitAdvection,
17       U           fVerT, gTracer,       U           fVerT, gTracer,
18       I           myThid )       I           myTime, myIter, myThid )
19    
20  C !DESCRIPTION:  C !DESCRIPTION:
21  C Calculates the tendancy of a tracer due to advection and diffusion.  C Calculates the tendancy of a tracer due to advection and diffusion.
# Line 72  C advectionScheme  :: advection scheme t Line 72  C advectionScheme  :: advection scheme t
72  C vertAdvecScheme  :: advection scheme to use (Vertical direction)  C vertAdvecScheme  :: advection scheme to use (Vertical direction)
73  C calcAdvection    :: =False if Advec computed with multiDim scheme  C calcAdvection    :: =False if Advec computed with multiDim scheme
74  C implicitAdvection:: =True if vertical Advec computed implicitly  C implicitAdvection:: =True if vertical Advec computed implicitly
75    C myTime           :: current time
76    C myIter           :: iteration number
77  C myThid           :: thread number  C myThid           :: thread number
78        INTEGER bi,bj,iMin,iMax,jMin,jMax        INTEGER bi,bj,iMin,iMax,jMin,jMax
79        INTEGER k,kUp,kDown,kM1        INTEGER k,kUp,kDown,kM1
# Line 92  C myThid           :: thread number Line 94  C myThid           :: thread number
94        INTEGER advectionScheme, vertAdvecScheme        INTEGER advectionScheme, vertAdvecScheme
95        LOGICAL calcAdvection        LOGICAL calcAdvection
96        LOGICAL implicitAdvection        LOGICAL implicitAdvection
97        INTEGER myThid        _RL     myTime
98          INTEGER myIter, myThid
99    
100  C !OUTPUT PARAMETERS: ==================================================  C !OUTPUT PARAMETERS: ==================================================
101  C gTracer          :: tendancy array  C gTracer          :: tendancy array
# Line 176  C-    Advective flux in X Line 179  C-    Advective flux in X
179        IF (advectionScheme.EQ.ENUM_CENTERED_2ND) THEN        IF (advectionScheme.EQ.ENUM_CENTERED_2ND) THEN
180         CALL GAD_C2_ADV_X(bi,bj,k,uTrans,localT,af,myThid)         CALL GAD_C2_ADV_X(bi,bj,k,uTrans,localT,af,myThid)
181        ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN        ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN
182         CALL GAD_FLUXLIMIT_ADV_X(         CALL GAD_FLUXLIMIT_ADV_X( bi,bj,k, deltaTtracer,
183       &      bi,bj,k,deltaTtracer,uTrans,uVel,localT,af,myThid)       I          uTrans, uVel, maskW(1-Olx,1-Oly,k,bi,bj), localT,
184         O          af, myThid )
185        ELSEIF (advectionScheme.EQ.ENUM_UPWIND_3RD ) THEN        ELSEIF (advectionScheme.EQ.ENUM_UPWIND_3RD ) THEN
186         CALL GAD_U3_ADV_X(bi,bj,k,uTrans,localT,af,myThid)         CALL GAD_U3_ADV_X(bi,bj,k,uTrans,localT,af,myThid)
187        ELSEIF (advectionScheme.EQ.ENUM_CENTERED_4TH) THEN        ELSEIF (advectionScheme.EQ.ENUM_CENTERED_4TH) THEN
188         CALL GAD_C4_ADV_X(bi,bj,k,uTrans,localT,af,myThid)         CALL GAD_C4_ADV_X(bi,bj,k,uTrans,localT,af,myThid)
189        ELSEIF (advectionScheme.EQ.ENUM_DST3 ) THEN        ELSEIF (advectionScheme.EQ.ENUM_DST3 ) THEN
190         CALL GAD_DST3_ADV_X(         CALL GAD_DST3_ADV_X( bi,bj,k, deltaTtracer,
191       &       bi,bj,k,deltaTtracer,uTrans,uVel,localT,af,myThid)       I          uTrans, uVel, maskW(1-Olx,1-Oly,k,bi,bj), localT,
192         O          af, myThid )
193        ELSEIF (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN        ELSEIF (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN
194         CALL GAD_DST3FL_ADV_X(         CALL GAD_DST3FL_ADV_X( bi,bj,k, deltaTtracer,
195       &       bi,bj,k,deltaTtracer,uTrans,uVel,localT,af,myThid)       I          uTrans, uVel, maskW(1-Olx,1-Oly,k,bi,bj), localT,
196         O          af, myThid )
197        ELSE        ELSE
198         STOP 'GAD_CALC_RHS: Bad advectionScheme (X)'         STOP 'GAD_CALC_RHS: Bad advectionScheme (X)'
199        ENDIF        ENDIF
# Line 248  C-    Advective flux in Y Line 254  C-    Advective flux in Y
254        IF (advectionScheme.EQ.ENUM_CENTERED_2ND) THEN        IF (advectionScheme.EQ.ENUM_CENTERED_2ND) THEN
255         CALL GAD_C2_ADV_Y(bi,bj,k,vTrans,localT,af,myThid)         CALL GAD_C2_ADV_Y(bi,bj,k,vTrans,localT,af,myThid)
256        ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN        ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN
257         CALL GAD_FLUXLIMIT_ADV_Y(         CALL GAD_FLUXLIMIT_ADV_Y( bi,bj,k, deltaTtracer,
258       &       bi,bj,k,deltaTtracer,vTrans,vVel,localT,af,myThid)       I          vTrans, vVel, maskS(1-Olx,1-Oly,k,bi,bj), localT,
259         O          af, myThid )
260        ELSEIF (advectionScheme.EQ.ENUM_UPWIND_3RD ) THEN        ELSEIF (advectionScheme.EQ.ENUM_UPWIND_3RD ) THEN
261         CALL GAD_U3_ADV_Y(bi,bj,k,vTrans,localT,af,myThid)         CALL GAD_U3_ADV_Y(bi,bj,k,vTrans,localT,af,myThid)
262        ELSEIF (advectionScheme.EQ.ENUM_CENTERED_4TH) THEN        ELSEIF (advectionScheme.EQ.ENUM_CENTERED_4TH) THEN
263         CALL GAD_C4_ADV_Y(bi,bj,k,vTrans,localT,af,myThid)         CALL GAD_C4_ADV_Y(bi,bj,k,vTrans,localT,af,myThid)
264        ELSEIF (advectionScheme.EQ.ENUM_DST3 ) THEN        ELSEIF (advectionScheme.EQ.ENUM_DST3 ) THEN
265         CALL GAD_DST3_ADV_Y(         CALL GAD_DST3_ADV_Y( bi,bj,k, deltaTtracer,
266       &       bi,bj,k,deltaTtracer,vTrans,vVel,localT,af,myThid)       I          vTrans, vVel, maskS(1-Olx,1-Oly,k,bi,bj), localT,
267         O          af, myThid )
268        ELSEIF (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN        ELSEIF (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN
269         CALL GAD_DST3FL_ADV_Y(         CALL GAD_DST3FL_ADV_Y( bi,bj,k, deltaTtracer,
270       &       bi,bj,k,deltaTtracer,vTrans,vVel,localT,af,myThid)       I          vTrans, vVel, maskS(1-Olx,1-Oly,k,bi,bj), localT,
271         O          af, myThid )
272        ELSE        ELSE
273         STOP 'GAD_CALC_RHS: Bad advectionScheme (Y)'         STOP 'GAD_CALC_RHS: Bad advectionScheme (Y)'
274        ENDIF        ENDIF
# Line 430  C--   Divergence of fluxes Line 439  C--   Divergence of fluxes
439         ENDDO         ENDDO
440        ENDDO        ENDDO
441    
442    #ifdef ALLOW_DEBUG
443          IF ( debugLevel .GE. debLevB
444         &   .AND. k.EQ.2 .AND. myIter.EQ.1+nIter0
445         &   .AND. nPx.EQ.1 .AND. nPy.EQ.1
446         &   .AND. useCubedSphereExchange ) THEN
447            CALL DEBUG_CS_CORNER_UV( ' fZon,fMer from GAD_CALC_RHS',
448         &             fZon,fMer, k, standardMessageUnit,bi,bj,myThid )
449          ENDIF
450    #endif /* ALLOW_DEBUG */
451    
452        RETURN        RETURN
453        END        END

Legend:
Removed from v.1.26  
changed lines
  Added in v.1.27

  ViewVC Help
Powered by ViewVC 1.1.22