/[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.25 by jmc, Fri Jun 25 18:19:20 2004 UTC revision 1.26 by jmc, Sat Jun 26 02:38:54 2004 UTC
# Line 12  C !INTERFACE: ========================== Line 12  C !INTERFACE: ==========================
12       I           xA,yA,uTrans,vTrans,rTrans,rTransKp1,maskUp,       I           xA,yA,uTrans,vTrans,rTrans,rTransKp1,maskUp,
13       I           uVel, vVel, wVel,       I           uVel, vVel, wVel,
14       I           diffKh, diffK4, KappaRT, Tracer,       I           diffKh, diffK4, KappaRT, Tracer,
15       I           tracerIdentity, advectionScheme,       I           tracerIdentity, advectionScheme, vertAdvecScheme,
16       I           calcAdvection, implicitAdvection,       I           calcAdvection, implicitAdvection,
17       U           fVerT, gTracer,       U           fVerT, gTracer,
18       I           myThid )       I           myThid )
# Line 68  C diffK4           :: bi-harmonic diffus Line 68  C diffK4           :: bi-harmonic diffus
68  C KappaRT          :: 3-D array for vertical diffusion coefficient  C KappaRT          :: 3-D array for vertical diffusion coefficient
69  C Tracer           :: tracer field  C Tracer           :: tracer field
70  C tracerIdentity   :: tracer identifier (required for KPP,GM)  C tracerIdentity   :: tracer identifier (required for KPP,GM)
71  C advectionScheme  :: advection scheme to use  C advectionScheme  :: advection scheme to use (Horizontal plane)
72    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 myThid           :: thread number  C myThid           :: thread number
# Line 88  C myThid           :: thread number Line 89  C myThid           :: thread number
89        _RL KappaRT(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL KappaRT(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
90        _RL Tracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)        _RL Tracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
91        INTEGER tracerIdentity        INTEGER tracerIdentity
92        INTEGER advectionScheme        INTEGER advectionScheme, vertAdvecScheme
93        LOGICAL calcAdvection        LOGICAL calcAdvection
94        LOGICAL implicitAdvection        LOGICAL implicitAdvection
95        INTEGER myThid        INTEGER myThid
# Line 318  C- a hack to prevent Water-Vapor vert.tr Line 319  C- a hack to prevent Water-Vapor vert.tr
319        IF (calcAdvection .AND. .NOT.implicitAdvection .AND. K.GE.2) THEN        IF (calcAdvection .AND. .NOT.implicitAdvection .AND. K.GE.2) THEN
320  #endif  #endif
321  C-    Compute vertical advective flux in the interior:  C-    Compute vertical advective flux in the interior:
322         IF (advectionScheme.EQ.ENUM_CENTERED_2ND) THEN         IF (vertAdvecScheme.EQ.ENUM_CENTERED_2ND) THEN
323          CALL GAD_C2_ADV_R(bi,bj,k,rTrans,tracer,af,myThid)          CALL GAD_C2_ADV_R(bi,bj,k,rTrans,tracer,af,myThid)
324         ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN         ELSEIF (vertAdvecScheme.EQ.ENUM_FLUX_LIMIT) THEN
325          CALL GAD_FLUXLIMIT_ADV_R(          CALL GAD_FLUXLIMIT_ADV_R(
326       &       bi,bj,k,deltaTtracer,rTrans,wVel,tracer,af,myThid)       &       bi,bj,k,deltaTtracer,rTrans,wVel,tracer,af,myThid)
327         ELSEIF (advectionScheme.EQ.ENUM_UPWIND_3RD ) THEN         ELSEIF (vertAdvecScheme.EQ.ENUM_UPWIND_3RD ) THEN
328          CALL GAD_U3_ADV_R(bi,bj,k,rTrans,tracer,af,myThid)          CALL GAD_U3_ADV_R(bi,bj,k,rTrans,tracer,af,myThid)
329         ELSEIF (advectionScheme.EQ.ENUM_CENTERED_4TH) THEN         ELSEIF (vertAdvecScheme.EQ.ENUM_CENTERED_4TH) THEN
330          CALL GAD_C4_ADV_R(bi,bj,k,rTrans,tracer,af,myThid)          CALL GAD_C4_ADV_R(bi,bj,k,rTrans,tracer,af,myThid)
331         ELSEIF (advectionScheme.EQ.ENUM_DST3 ) THEN         ELSEIF (vertAdvecScheme.EQ.ENUM_DST3 ) THEN
332          CALL GAD_DST3_ADV_R(          CALL GAD_DST3_ADV_R(
333       &       bi,bj,k,deltaTtracer,rTrans,wVel,tracer,af,myThid)       &       bi,bj,k,deltaTtracer,rTrans,wVel,tracer,af,myThid)
334         ELSEIF (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN         ELSEIF (vertAdvecScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN
335          CALL GAD_DST3FL_ADV_R(          CALL GAD_DST3FL_ADV_R(
336       &       bi,bj,k,deltaTtracer,rTrans,wVel,tracer,af,myThid)       &       bi,bj,k,deltaTtracer,rTrans,wVel,tracer,af,myThid)
337         ELSE         ELSE
338          STOP 'GAD_CALC_RHS: Bad advectionScheme (R)'          STOP 'GAD_CALC_RHS: Bad vertAdvecScheme (R)'
339         ENDIF         ENDIF
340  C-     add the advective flux to fVerT  C-     add the advective flux to fVerT
341         DO j=1-Oly,sNy+Oly         DO j=1-Oly,sNy+Oly

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

  ViewVC Help
Powered by ViewVC 1.1.22