/[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.15 - (hide annotations) (download)
Tue Jan 16 04:38:34 2007 UTC (17 years, 3 months ago) by jmc
Branch: MAIN
Changes since 1.14: +18 -1 lines
File MIME type: text/plain
2nd-Order Moment Advection Scheme (Prather, 1986): first check-in
 - enable by setting #define GAD_ALLOW_SOM_ADVECT (in GAD_OPTIONS.h)
 - used without limiter (AdvScheme=80) or with Prather limiter (AdvScheme=81)
 - still needs work (not working with some options ; efficiency to improve)
   and serious testing.

1 jmc 1.15 C $Header: /u/gcmpack/MITgcm/pkg/generic_advdiff/GAD.h,v 1.14 2005/11/06 22:14:02 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 jmc 1.15 C ENUM_SOM_PRATHER :: 2nd Order-Moment Advection Scheme, Prather, 1986
56     INTEGER ENUM_SOM_PRATHER
57     PARAMETER(ENUM_SOM_PRATHER=80)
58    
59     C ENUM_SOM_LIMITER :: 2nd Order-Moment Advection Scheme, Prather Limiter
60     INTEGER ENUM_SOM_LIMITER
61     PARAMETER(ENUM_SOM_LIMITER=81)
62    
63     C nSOM :: number of 1rst & 2nd Order-Moments: 1+1 (1D), 2+3 (2D), 3+6 (3D)
64     INTEGER nSOM
65     PARAMETER( nSOM = 3+6 )
66    
67 adcroft 1.7 C oneSixth :: Third/fourth order interpolation factor
68 adcroft 1.1 _RL oneSixth
69 heimbach 1.4 PARAMETER(oneSixth=1.D0/6.D0)
70 adcroft 1.1
71 edhill 1.11 C Differentiate between tracers (needed for KPP - arrgh!!!)
72     cph and GMRedi arrgh*arrgh!!!)
73 heimbach 1.10 cph indices are used for TAF key computations, so need to
74     cph running from 1, 2, ...
75     c
76 adcroft 1.7 C GAD_TEMPERATURE :: temperature
77 adcroft 1.1 INTEGER GAD_TEMPERATURE
78 heimbach 1.10 PARAMETER(GAD_TEMPERATURE=1)
79 jmc 1.9 C GAD_SALINITY :: salinity
80 adcroft 1.1 INTEGER GAD_SALINITY
81 heimbach 1.10 PARAMETER(GAD_SALINITY=2)
82 dimitri 1.12 C GAD_TR1 :: passive tracer 1
83 heimbach 1.3 INTEGER GAD_TR1
84 heimbach 1.10 PARAMETER(GAD_TR1=3)
85 adcroft 1.7 CEOP
86 jmc 1.9
87     C-- COMMON /GAD_PARM_L/ Logical parameters for GAD pkg routines
88 jmc 1.15 C tempSOM_Advection :: set to T if using 2nd-Order Moment advection for Temp
89     C saltSOM_Advection :: set to T if using 2nd-Order Moment advection for Salt
90 edhill 1.11 C tempMultiDimAdvec :: set to T if using multi-dim advection for Temp
91     C saltMultiDimAdvec :: set to T if using multi-dim advection for Salt
92 jmc 1.14 C AdamsBashforthGt :: apply Adams-Bashforth extrapolation on T tendency (=Gt)
93     C AdamsBashforthGs :: apply Adams-Bashforth extrapolation on S tendency (=Gs)
94     C AdamsBashforth_T :: apply Adams-Bashforth extrapolation on Pot.Temp.
95     C AdamsBashforth_S :: apply Adams-Bashforth extrapolation on Salinity
96     C tempStartAB :: start this run (or restart) without previous gT/Temp
97     C saltStartAB :: start this run (or restart) without previous gS/Salt
98 jmc 1.15 LOGICAL tempSOM_Advection
99     LOGICAL saltSOM_Advection
100 jmc 1.9 LOGICAL tempMultiDimAdvec
101     LOGICAL saltMultiDimAdvec
102 jmc 1.14 LOGICAL AdamsBashforthGt
103     LOGICAL AdamsBashforthGs
104     LOGICAL AdamsBashforth_T
105     LOGICAL AdamsBashforth_S
106     LOGICAL tempStartAB
107     LOGICAL saltStartAB
108 jmc 1.9 COMMON /GAD_PARM_L/
109 jmc 1.15 & tempSOM_Advection, saltSOM_Advection,
110 jmc 1.14 & tempMultiDimAdvec, saltMultiDimAdvec,
111     & AdamsBashforthGt, AdamsBashforthGs,
112     & AdamsBashforth_T, AdamsBashforth_S,
113     & tempStartAB, saltStartAB
114 edhill 1.11
115     CEH3 ;;; Local Variables: ***
116     CEH3 ;;; mode:fortran ***
117     CEH3 ;;; End: ***

  ViewVC Help
Powered by ViewVC 1.1.22