12 |
CEOP |
CEOP |
13 |
|
|
14 |
C CPP options file for GAD (Generic Advection Diffusion) package |
C CPP options file for GAD (Generic Advection Diffusion) package |
|
C |
|
15 |
C Use this file for selecting options within the GAD package |
C Use this file for selecting options within the GAD package |
16 |
|
|
17 |
#ifndef GAD_OPTIONS_H |
#ifndef GAD_OPTIONS_H |
41 |
C We can disable it here using CPP because run-time flags are insufficient. |
C We can disable it here using CPP because run-time flags are insufficient. |
42 |
#undef DISABLE_MULTIDIM_ADVECTION |
#undef DISABLE_MULTIDIM_ADVECTION |
43 |
|
|
44 |
|
C Use compressible flow method for multi-dim advection instead of old, less |
45 |
|
C accurate jmc method. Note: option has no effect on SOM advection which |
46 |
|
C always use compressible flow method. |
47 |
|
#undef GAD_MULTIDIM_COMPRESSIBLE |
48 |
|
|
49 |
C This enable the use of 2nd-Order Moment advection scheme (Prather, 1986) for |
C This enable the use of 2nd-Order Moment advection scheme (Prather, 1986) for |
50 |
C Temperature and Salinity ; due to large memory space (10 times more / tracer) |
C Temperature and Salinity ; due to large memory space (10 times more / tracer) |
51 |
C requirement, by default, this part of the code is not compiled. |
C requirement, by default, this part of the code is not compiled. |
52 |
#define GAD_ALLOW_TS_SOM_ADV |
#define GAD_ALLOW_TS_SOM_ADV |
53 |
|
|
54 |
|
C Hack to get rid of negatives caused by Redi. Works by restricting the |
55 |
|
C outgoing flux (only contributions computed in gad_calc_rhs) for each cell |
56 |
|
C to be no more than the amount of tracer in the cell (see Smolarkiewicz |
57 |
|
C MWR 1989 and Bott MWR 1989). |
58 |
|
C The flux contributions computed in gad_calc_rhs which are affected by |
59 |
|
C this hack are: |
60 |
|
C - explicit diffusion, Redi and the non-local part of KPP |
61 |
|
C - advection is affected only if multiDimAdvection=.FALSE. |
62 |
|
C - vertical diffusion (including the diagonal contribution from GMRedi) |
63 |
|
C only if implicitDiffusion=.FALSE. |
64 |
|
C - GM is affected only if GMREDI_AdvForm=.FALSE. |
65 |
|
C |
66 |
|
C The parameter SmolarkiewiczMaxFrac (defined in gad_init_fixed.F) |
67 |
|
C specifies the maximal fraction of tracer that can leave a cell. |
68 |
|
C By default it is 1. This will prevent the tracer from going negative |
69 |
|
C due to contributions from gad_calc_rhs alone. In the presence of other |
70 |
|
C contributions (or roundoff errors), it may be necessary to reduce this |
71 |
|
C value to achieve strict positivity. |
72 |
|
C |
73 |
|
C This hack applies to all tracers except temperature and salinity! |
74 |
|
C Do not use with Adams-Bashforth (for ptracers)! |
75 |
|
C Do not use with OBCS! |
76 |
|
#undef GAD_SMOLARKIEWICZ_HACK |
77 |
|
|
78 |
#else |
#else |
79 |
|
|
80 |
C If GAD is disabled then so is multi-dimensional advection |
C If GAD is disabled then so is multi-dimensional advection |