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

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

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


Revision 1.16 - (hide 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 adcroft 1.16 C $Header: /u/gcmpack/MITgcm/pkg/generic_advdiff/GAD.h,v 1.15 2007/01/16 04:38:34 jmc Exp $
2 heimbach 1.4 C $Name: $
3 adcroft 1.1
4 adcroft 1.7 CBOP
5     C !ROUTINE: GAD.h
6 adcroft 1.1
7 adcroft 1.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 adcroft 1.8
18     C !USES:
19     #include "GAD_OPTIONS.h"
20 adcroft 1.7
21     C !DEFINED PARAMETERS:
22    
23 jmc 1.13 C ENUM_UPWIND_1RST :: 1rst Order Upwind
24     INTEGER ENUM_UPWIND_1RST
25     PARAMETER(ENUM_UPWIND_1RST=1)
26    
27 adcroft 1.7 C ENUM_CENTERED_2ND :: Centered 2nd order
28 adcroft 1.1 INTEGER ENUM_CENTERED_2ND
29     PARAMETER(ENUM_CENTERED_2ND=2)
30 jmc 1.2
31 jmc 1.13 C ENUM_UPWIND_3RD :: 3rd order upwind
32 jmc 1.2 INTEGER ENUM_UPWIND_3RD
33     PARAMETER(ENUM_UPWIND_3RD=3)
34 adcroft 1.1
35 adcroft 1.7 C ENUM_CENTERED_4TH :: Centered 4th order
36 adcroft 1.1 INTEGER ENUM_CENTERED_4TH
37     PARAMETER(ENUM_CENTERED_4TH=4)
38    
39 jmc 1.13 C ENUM_DST2 :: 2nd Order Direct Space and Time (= Lax-Wendroff)
40     INTEGER ENUM_DST2
41     PARAMETER(ENUM_DST2=20)
42    
43 adcroft 1.7 C ENUM_FLUX_LIMIT :: Non-linear flux limiter
44 adcroft 1.1 INTEGER ENUM_FLUX_LIMIT
45     PARAMETER(ENUM_FLUX_LIMIT=77)
46 adcroft 1.6
47 jmc 1.13 C ENUM_DST3 :: 3rd Order Direst Space and Time
48 adcroft 1.6 INTEGER ENUM_DST3
49     PARAMETER(ENUM_DST3=30)
50    
51 adcroft 1.7 C ENUM_DST3_FLUX_LIMIT :: 3-DST flux limited
52 adcroft 1.6 INTEGER ENUM_DST3_FLUX_LIMIT
53     PARAMETER(ENUM_DST3_FLUX_LIMIT=33)
54 adcroft 1.1
55 adcroft 1.16 C ENUM_OS7MP :: 7th Order One Step method with Monotonicity Preserving Limiter
56     INTEGER ENUM_OS7MP
57     PARAMETER(ENUM_OS7MP=7)
58    
59 jmc 1.15 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 adcroft 1.7 C oneSixth :: Third/fourth order interpolation factor
72 adcroft 1.1 _RL oneSixth
73 heimbach 1.4 PARAMETER(oneSixth=1.D0/6.D0)
74 adcroft 1.1
75 edhill 1.11 C Differentiate between tracers (needed for KPP - arrgh!!!)
76     cph and GMRedi arrgh*arrgh!!!)
77 heimbach 1.10 cph indices are used for TAF key computations, so need to
78     cph running from 1, 2, ...
79     c
80 adcroft 1.7 C GAD_TEMPERATURE :: temperature
81 adcroft 1.1 INTEGER GAD_TEMPERATURE
82 heimbach 1.10 PARAMETER(GAD_TEMPERATURE=1)
83 jmc 1.9 C GAD_SALINITY :: salinity
84 adcroft 1.1 INTEGER GAD_SALINITY
85 heimbach 1.10 PARAMETER(GAD_SALINITY=2)
86 dimitri 1.12 C GAD_TR1 :: passive tracer 1
87 heimbach 1.3 INTEGER GAD_TR1
88 heimbach 1.10 PARAMETER(GAD_TR1=3)
89 adcroft 1.7 CEOP
90 jmc 1.9
91     C-- COMMON /GAD_PARM_L/ Logical parameters for GAD pkg routines
92 jmc 1.15 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 edhill 1.11 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 jmc 1.14 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 jmc 1.15 LOGICAL tempSOM_Advection
103     LOGICAL saltSOM_Advection
104 jmc 1.9 LOGICAL tempMultiDimAdvec
105     LOGICAL saltMultiDimAdvec
106 jmc 1.14 LOGICAL AdamsBashforthGt
107     LOGICAL AdamsBashforthGs
108     LOGICAL AdamsBashforth_T
109     LOGICAL AdamsBashforth_S
110     LOGICAL tempStartAB
111     LOGICAL saltStartAB
112 jmc 1.9 COMMON /GAD_PARM_L/
113 jmc 1.15 & tempSOM_Advection, saltSOM_Advection,
114 jmc 1.14 & tempMultiDimAdvec, saltMultiDimAdvec,
115     & AdamsBashforthGt, AdamsBashforthGs,
116     & AdamsBashforth_T, AdamsBashforth_S,
117     & tempStartAB, saltStartAB
118 edhill 1.11
119     CEH3 ;;; Local Variables: ***
120     CEH3 ;;; mode:fortran ***
121     CEH3 ;;; End: ***

  ViewVC Help
Powered by ViewVC 1.1.22