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

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

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

revision 1.16 by heimbach, Tue Nov 25 23:31:44 2003 UTC revision 1.17 by jmc, Sat Jan 3 00:46:53 2004 UTC
# Line 28  C  time-stepping. Line 28  C  time-stepping.
28  C  \end{itemize}  C  \end{itemize}
29  CEOI  CEOI
30    
 #include "PACKAGES_CONFIG.h"  
31  #include "GAD_OPTIONS.h"  #include "GAD_OPTIONS.h"
 #ifdef ALLOW_AUTODIFF  
 # include "CPP_OPTIONS.h"  
 #endif  
32    
33  CBOP  CBOP
34  C !ROUTINE: GAD_ADVECTION  C !ROUTINE: GAD_ADVECTION
35    
36  C !INTERFACE: ==========================================================  C !INTERFACE: ==========================================================
37        SUBROUTINE GAD_ADVECTION(bi,bj,advectionScheme,tracerIdentity,        SUBROUTINE GAD_ADVECTION(
38       U                         Tracer,Gtracer,       I           implicitAdvection, advectionScheme, tracerIdentity,
39       I                         myTime,myIter,myThid)       I           uVel, vVel, wVel, tracer,
40         O           gTracer,
41         I           bi,bj, myTime,myIter,myThid)
42    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
43    
44  C !DESCRIPTION:  C !DESCRIPTION:
45  C Calculates the tendancy of a tracer due to advection.  C Calculates the tendancy of a tracer due to advection.
# Line 66  C !USES: =============================== Line 65  C !USES: ===============================
65  #include "SIZE.h"  #include "SIZE.h"
66  #include "EEPARAMS.h"  #include "EEPARAMS.h"
67  #include "PARAMS.h"  #include "PARAMS.h"
 #include "DYNVARS.h"  
68  #include "GRID.h"  #include "GRID.h"
69  #include "GAD.h"  #include "GAD.h"
70  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
# Line 75  C !USES: =============================== Line 73  C !USES: ===============================
73  #endif  #endif
74    
75  C !INPUT PARAMETERS: ===================================================  C !INPUT PARAMETERS: ===================================================
76  C  bi,bj                :: tile indices  C  implicitAdvection    :: vertical advection treated implicitly (later on)
77  C  advectionScheme      :: advection scheme to use  C  advectionScheme      :: advection scheme to use
78  C  tracerIdentity       :: identifier for the tracer (required only for OBCS)  C  tracerIdentity       :: identifier for the tracer (required only for OBCS)
79  C  Tracer               :: tracer field  C  uVel                 :: velocity, zonal component
80    C  vVel                 :: velocity, meridional component
81    C  wVel                 :: velocity, vertical component
82    C  tracer               :: tracer field
83    C  bi,bj                :: tile indices
84  C  myTime               :: current time  C  myTime               :: current time
85  C  myIter               :: iteration number  C  myIter               :: iteration number
86  C  myThid               :: thread number  C  myThid               :: thread number
87        INTEGER bi,bj        LOGICAL implicitAdvection
88        INTEGER advectionScheme        INTEGER advectionScheme
89        INTEGER tracerIdentity        INTEGER tracerIdentity
90        _RL Tracer(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy)        _RL uVel  (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy)
91          _RL vVel  (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy)
92          _RL wVel  (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy)
93          _RL tracer(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy)
94          INTEGER bi,bj
95        _RL myTime        _RL myTime
96        INTEGER myIter        INTEGER myIter
97        INTEGER myThid        INTEGER myThid
# Line 445  CADJ STORE rTrans(:,:) Line 451  CADJ STORE rTrans(:,:)
451  CADJ &     = comlev1_bibj_k_gad, key=kkey, byte=isbyte  CADJ &     = comlev1_bibj_k_gad, key=kkey, byte=isbyte
452  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
453    
454           IF ( .NOT.implicitAdvection ) THEN
455  C-    Compute vertical advective flux in the interior:  C-    Compute vertical advective flux in the interior:
456         IF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN          IF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN
457          CALL GAD_FLUXLIMIT_ADV_R(           CALL GAD_FLUXLIMIT_ADV_R(
458       &       bi,bj,k,deltaTtracer,rTrans,wVel,localTijk,af,myThid)       &        bi,bj,k,deltaTtracer,rTrans,wVel,localTijk,af,myThid)
459         ELSEIF (advectionScheme.EQ.ENUM_DST3 ) THEN          ELSEIF (advectionScheme.EQ.ENUM_DST3 ) THEN
460          CALL GAD_DST3_ADV_R(           CALL GAD_DST3_ADV_R(
461       &       bi,bj,k,deltaTtracer,rTrans,wVel,localTijk,af,myThid)       &        bi,bj,k,deltaTtracer,rTrans,wVel,localTijk,af,myThid)
462         ELSEIF (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN          ELSEIF (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN
463          CALL GAD_DST3FL_ADV_R(           CALL GAD_DST3FL_ADV_R(
464       &       bi,bj,k,deltaTtracer,rTrans,wVel,localTijk,af,myThid)       &        bi,bj,k,deltaTtracer,rTrans,wVel,localTijk,af,myThid)
465         ELSE          ELSE
466          STOP 'GAD_ADVECTION: adv. scheme incompatibale with mutli-dim'           STOP 'GAD_ADVECTION: adv. scheme incompatibale with mutli-dim'
467            ENDIF
468         ENDIF         ENDIF
469  C-    add the advective flux to fVerT  C-    add the advective flux to fVerT
470         DO j=1-Oly,sNy+Oly         DO j=1-Oly,sNy+Oly

Legend:
Removed from v.1.16  
changed lines
  Added in v.1.17

  ViewVC Help
Powered by ViewVC 1.1.22