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

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

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


Revision 1.16 - (show annotations) (download)
Sat Jan 20 21:20:11 2007 UTC (17 years, 3 months ago) by adcroft
Branch: MAIN
Changes since 1.15: +5 -1 lines
File MIME type: text/plain
Added new advection scheme, OS7MP, which is seventh order and monotonicity preserving (note: not the same as monotonic!)
 o enabled with advScheme set to "7". (Who chose 77 for Superbee? Oh, that was me ...)
 o scheme requires a halo of 4
   - no error checking for this at the moment
 o scheme is coded for convenience rather than efficiency
   - can easily switch down order or select the TVD limiter by commenting lines
   - the y direction is coded with invert do i; do j loops (for now)

1 C $Header: /u/gcmpack/MITgcm/pkg/generic_advdiff/GAD.h,v 1.15 2007/01/16 04:38:34 jmc Exp $
2 C $Name: $
3
4 CBOP
5 C !ROUTINE: GAD.h
6
7 C !INTERFACE:
8 C #include "GAD.h"
9
10 C !DESCRIPTION:
11 C Contains enumerated constants for distinguishing between different
12 C advection schemes and tracers.
13 C
14 C Unfortunately, there is no easy way to make use of the
15 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.)
17
18 C !USES:
19 #include "GAD_OPTIONS.h"
20
21 C !DEFINED PARAMETERS:
22
23 C ENUM_UPWIND_1RST :: 1rst Order Upwind
24 INTEGER ENUM_UPWIND_1RST
25 PARAMETER(ENUM_UPWIND_1RST=1)
26
27 C ENUM_CENTERED_2ND :: Centered 2nd order
28 INTEGER ENUM_CENTERED_2ND
29 PARAMETER(ENUM_CENTERED_2ND=2)
30
31 C ENUM_UPWIND_3RD :: 3rd order upwind
32 INTEGER ENUM_UPWIND_3RD
33 PARAMETER(ENUM_UPWIND_3RD=3)
34
35 C ENUM_CENTERED_4TH :: Centered 4th order
36 INTEGER ENUM_CENTERED_4TH
37 PARAMETER(ENUM_CENTERED_4TH=4)
38
39 C ENUM_DST2 :: 2nd Order Direct Space and Time (= Lax-Wendroff)
40 INTEGER ENUM_DST2
41 PARAMETER(ENUM_DST2=20)
42
43 C ENUM_FLUX_LIMIT :: Non-linear flux limiter
44 INTEGER ENUM_FLUX_LIMIT
45 PARAMETER(ENUM_FLUX_LIMIT=77)
46
47 C ENUM_DST3 :: 3rd Order Direst Space and Time
48 INTEGER ENUM_DST3
49 PARAMETER(ENUM_DST3=30)
50
51 C ENUM_DST3_FLUX_LIMIT :: 3-DST flux limited
52 INTEGER ENUM_DST3_FLUX_LIMIT
53 PARAMETER(ENUM_DST3_FLUX_LIMIT=33)
54
55 C ENUM_OS7MP :: 7th Order One Step method with Monotonicity Preserving Limiter
56 INTEGER ENUM_OS7MP
57 PARAMETER(ENUM_OS7MP=7)
58
59 C ENUM_SOM_PRATHER :: 2nd Order-Moment Advection Scheme, Prather, 1986
60 INTEGER ENUM_SOM_PRATHER
61 PARAMETER(ENUM_SOM_PRATHER=80)
62
63 C ENUM_SOM_LIMITER :: 2nd Order-Moment Advection Scheme, Prather Limiter
64 INTEGER ENUM_SOM_LIMITER
65 PARAMETER(ENUM_SOM_LIMITER=81)
66
67 C nSOM :: number of 1rst & 2nd Order-Moments: 1+1 (1D), 2+3 (2D), 3+6 (3D)
68 INTEGER nSOM
69 PARAMETER( nSOM = 3+6 )
70
71 C oneSixth :: Third/fourth order interpolation factor
72 _RL oneSixth
73 PARAMETER(oneSixth=1.D0/6.D0)
74
75 C Differentiate between tracers (needed for KPP - arrgh!!!)
76 cph and GMRedi arrgh*arrgh!!!)
77 cph indices are used for TAF key computations, so need to
78 cph running from 1, 2, ...
79 c
80 C GAD_TEMPERATURE :: temperature
81 INTEGER GAD_TEMPERATURE
82 PARAMETER(GAD_TEMPERATURE=1)
83 C GAD_SALINITY :: salinity
84 INTEGER GAD_SALINITY
85 PARAMETER(GAD_SALINITY=2)
86 C GAD_TR1 :: passive tracer 1
87 INTEGER GAD_TR1
88 PARAMETER(GAD_TR1=3)
89 CEOP
90
91 C-- COMMON /GAD_PARM_L/ Logical parameters for GAD pkg routines
92 C tempSOM_Advection :: set to T if using 2nd-Order Moment advection for Temp
93 C saltSOM_Advection :: set to T if using 2nd-Order Moment advection for Salt
94 C tempMultiDimAdvec :: set to T if using multi-dim advection for Temp
95 C saltMultiDimAdvec :: set to T if using multi-dim advection for Salt
96 C AdamsBashforthGt :: apply Adams-Bashforth extrapolation on T tendency (=Gt)
97 C AdamsBashforthGs :: apply Adams-Bashforth extrapolation on S tendency (=Gs)
98 C AdamsBashforth_T :: apply Adams-Bashforth extrapolation on Pot.Temp.
99 C AdamsBashforth_S :: apply Adams-Bashforth extrapolation on Salinity
100 C tempStartAB :: start this run (or restart) without previous gT/Temp
101 C saltStartAB :: start this run (or restart) without previous gS/Salt
102 LOGICAL tempSOM_Advection
103 LOGICAL saltSOM_Advection
104 LOGICAL tempMultiDimAdvec
105 LOGICAL saltMultiDimAdvec
106 LOGICAL AdamsBashforthGt
107 LOGICAL AdamsBashforthGs
108 LOGICAL AdamsBashforth_T
109 LOGICAL AdamsBashforth_S
110 LOGICAL tempStartAB
111 LOGICAL saltStartAB
112 COMMON /GAD_PARM_L/
113 & tempSOM_Advection, saltSOM_Advection,
114 & tempMultiDimAdvec, saltMultiDimAdvec,
115 & AdamsBashforthGt, AdamsBashforthGs,
116 & AdamsBashforth_T, AdamsBashforth_S,
117 & tempStartAB, saltStartAB
118
119 CEH3 ;;; Local Variables: ***
120 CEH3 ;;; mode:fortran ***
121 CEH3 ;;; End: ***

  ViewVC Help
Powered by ViewVC 1.1.22