/[MITgcm]/MITgcm/pkg/generic_advdiff/GAD.h
ViewVC logotype

Diff of /MITgcm/pkg/generic_advdiff/GAD.h

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

revision 1.7 by adcroft, Wed Sep 19 20:45:09 2001 UTC revision 1.23 by jmc, Tue Nov 16 17:39:13 2010 UTC
# Line 15  C Unfortunately, there is no easy way to Line 15  C Unfortunately, there is no easy way to
15  C tokens in namelist input so for now we have to enter the  C tokens in namelist input so for now we have to enter the
16  C tokens value into "data" (ie. 2 for 2nd order etc.)  C tokens value into "data" (ie. 2 for 2nd order etc.)
17    
18    C !USES:
19    
20  C !DEFINED PARAMETERS:  C !DEFINED PARAMETERS:
21    
22    C ENUM_UPWIND_1RST :: 1rst Order Upwind
23          INTEGER ENUM_UPWIND_1RST
24          PARAMETER(ENUM_UPWIND_1RST=1)
25    
26  C ENUM_CENTERED_2ND :: Centered 2nd order  C ENUM_CENTERED_2ND :: Centered 2nd order
27        INTEGER ENUM_CENTERED_2ND        INTEGER ENUM_CENTERED_2ND
28        PARAMETER(ENUM_CENTERED_2ND=2)        PARAMETER(ENUM_CENTERED_2ND=2)
29    
30  C ENUM_UPWIND_3RD :: 3rd order upwind  C ENUM_UPWIND_3RD :: 3rd order upwind
31        INTEGER ENUM_UPWIND_3RD        INTEGER ENUM_UPWIND_3RD
32        PARAMETER(ENUM_UPWIND_3RD=3)        PARAMETER(ENUM_UPWIND_3RD=3)
33    
# Line 29  C ENUM_CENTERED_4TH :: Centered 4th orde Line 35  C ENUM_CENTERED_4TH :: Centered 4th orde
35        INTEGER ENUM_CENTERED_4TH        INTEGER ENUM_CENTERED_4TH
36        PARAMETER(ENUM_CENTERED_4TH=4)        PARAMETER(ENUM_CENTERED_4TH=4)
37    
38    C ENUM_DST2 :: 2nd Order Direct Space and Time (= Lax-Wendroff)
39          INTEGER ENUM_DST2
40          PARAMETER(ENUM_DST2=20)
41    
42  C ENUM_FLUX_LIMIT :: Non-linear flux limiter  C ENUM_FLUX_LIMIT :: Non-linear flux limiter
43        INTEGER ENUM_FLUX_LIMIT        INTEGER ENUM_FLUX_LIMIT
44        PARAMETER(ENUM_FLUX_LIMIT=77)        PARAMETER(ENUM_FLUX_LIMIT=77)
45    
46  C ENUM_DST3 :: 3-DST  C ENUM_DST3 :: 3rd Order Direst Space and Time
47        INTEGER ENUM_DST3        INTEGER ENUM_DST3
48        PARAMETER(ENUM_DST3=30)        PARAMETER(ENUM_DST3=30)
49    
# Line 41  C ENUM_DST3_FLUX_LIMIT :: 3-DST flux lim Line 51  C ENUM_DST3_FLUX_LIMIT :: 3-DST flux lim
51        INTEGER ENUM_DST3_FLUX_LIMIT        INTEGER ENUM_DST3_FLUX_LIMIT
52        PARAMETER(ENUM_DST3_FLUX_LIMIT=33)        PARAMETER(ENUM_DST3_FLUX_LIMIT=33)
53    
54    C ENUM_OS7MP :: 7th Order One Step method with Monotonicity Preserving Limiter
55          INTEGER ENUM_OS7MP
56          PARAMETER(ENUM_OS7MP=7)
57    
58    C ENUM_SOM_PRATHER :: 2nd Order-Moment Advection Scheme, Prather, 1986
59          INTEGER ENUM_SOM_PRATHER
60          PARAMETER(ENUM_SOM_PRATHER=80)
61    
62    C ENUM_SOM_LIMITER :: 2nd Order-Moment Advection Scheme, Prather Limiter
63          INTEGER ENUM_SOM_LIMITER
64          PARAMETER(ENUM_SOM_LIMITER=81)
65    
66    C GAD_Scheme_MaxNum :: maximum possible number for an advection scheme
67          INTEGER GAD_Scheme_MaxNum
68          PARAMETER( GAD_Scheme_MaxNum = 100 )
69    
70    C nSOM :: number of 1rst & 2nd Order-Moments: 1+1 (1D), 2+3 (2D), 3+6 (3D)
71          INTEGER nSOM
72          PARAMETER( nSOM = 3+6 )
73    
74  C oneSixth :: Third/fourth order interpolation factor  C oneSixth :: Third/fourth order interpolation factor
75        _RL oneSixth        _RL oneSixth
76        PARAMETER(oneSixth=1.D0/6.D0)        PARAMETER(oneSixth=1.D0/6.D0)
77    
78  C Differentiate between tracers (only needed for KPP -  arrgh!!!)  C loop range for computing vertical advection tendency
79    C  iMinAdvR,iMaxAdvR  :: 1rst index (X-dir) loop range for vertical advection
80    C  jMinAdvR,jMaxAdvR  :: 2nd  index (Y-dir) loop range for vertical advection
81          INTEGER iMinAdvR, iMaxAdvR, jMinAdvR, jMaxAdvR
82    c     PARAMETER ( iMinAdvR = 1-OLx , iMaxAdvR = sNx+OLx )
83    c     PARAMETER ( jMinAdvR = 1-OLy , jMaxAdvR = sNy+OLy )
84    C- note: we use to compute vertical advection tracer tendency everywhere
85    C        (overlap included) as above, but really needs valid tracer tendency
86    C        in interior only (as below):
87          PARAMETER ( iMinAdvR = 1 , iMaxAdvR = sNx )
88          PARAMETER ( jMinAdvR = 1 , jMaxAdvR = sNy )
89    
90    C Differentiate between tracers (needed for KPP - arrgh!!!)
91    cph                              and GMRedi arrgh*arrgh!!!)
92    cph  indices are used for TAF key computations, so need to
93    cph  running from 1, 2, ...
94    c
95  C GAD_TEMPERATURE :: temperature  C GAD_TEMPERATURE :: temperature
96        INTEGER GAD_TEMPERATURE        INTEGER GAD_TEMPERATURE
97        PARAMETER(GAD_TEMPERATURE=101)        PARAMETER(GAD_TEMPERATURE=1)
98  C GAD_TEMPERATURE :: salinity  C GAD_SALINITY :: salinity
99        INTEGER GAD_SALINITY        INTEGER GAD_SALINITY
100        PARAMETER(GAD_SALINITY=102)        PARAMETER(GAD_SALINITY=2)
101  C GAD_TR1 :: pssive tracer 1  C GAD_TR1 :: passive tracer 1
102        INTEGER GAD_TR1        INTEGER GAD_TR1
103        PARAMETER(GAD_TR1=103)        PARAMETER(GAD_TR1=3)
104  CEOP  CEOP
105    
106    C--   COMMON /GAD_PARM_C/ Character parameters for GAD pkg routines
107    C      somSfx       :: 1rst & 2nd Order moment suffix
108          CHARACTER*2 somSfx(nSOM)
109          COMMON /GAD_PARM_C/
110         & somSfx
111    
112    C--   COMMON /GAD_PARM_I/ Integer parameters for GAD pkg routines
113    C GAD_Scheme_olSize :: overlap minimum size for this advection scheme
114    C GAD_OlMinSize     :: overlap minimum size for GAD routines
115    C           1: min required; 2: to add to current min; 3: factor to apply
116          INTEGER GAD_Scheme_olSize(GAD_Scheme_MaxNum)
117          INTEGER GAD_OlMinSize(3)
118          COMMON /GAD_PARM_I/
119         &        GAD_Scheme_olSize,
120         &        GAD_OlMinSize
121    
122    C--   COMMON /GAD_PARM_L/ Logical parameters for GAD pkg routines
123    C tempSOM_Advection :: set to T if using 2nd-Order Moment advection for Temp
124    C saltSOM_Advection :: set to T if using 2nd-Order Moment advection for Salt
125    C tempMultiDimAdvec :: set to T if using multi-dim advection for Temp
126    C saltMultiDimAdvec :: set to T if using multi-dim advection for Salt
127    C AdamsBashforthGt  :: apply Adams-Bashforth extrapolation on T tendency (=Gt)
128    C AdamsBashforthGs  :: apply Adams-Bashforth extrapolation on S tendency (=Gs)
129    C AdamsBashforth_T  :: apply Adams-Bashforth extrapolation on Pot.Temp.
130    C AdamsBashforth_S  :: apply Adams-Bashforth extrapolation on Salinity
131          LOGICAL tempSOM_Advection
132          LOGICAL saltSOM_Advection
133          LOGICAL tempMultiDimAdvec
134          LOGICAL saltMultiDimAdvec
135          LOGICAL AdamsBashforthGt
136          LOGICAL AdamsBashforthGs
137          LOGICAL AdamsBashforth_T
138          LOGICAL AdamsBashforth_S
139          COMMON /GAD_PARM_L/
140         & tempSOM_Advection, saltSOM_Advection,
141         & tempMultiDimAdvec, saltMultiDimAdvec,
142         & AdamsBashforthGt, AdamsBashforthGs,
143         & AdamsBashforth_T, AdamsBashforth_S
144    
145          _RL SmolarkiewiczMaxFrac
146          COMMON /GAD_SMOL/ SmolarkiewiczMaxFrac
147    
148    CEH3 ;;; Local Variables: ***
149    CEH3 ;;; mode:fortran ***
150    CEH3 ;;; End: ***

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.23

  ViewVC Help
Powered by ViewVC 1.1.22