1 |
C $Header$ |
C $Header$ |
2 |
C $Name$ |
C $Name$ |
3 |
|
|
4 |
These lines are here to deliberately cause a compile-time error. |
#ifndef CPP_OPTIONS_H |
5 |
If you see these lines in your .F files or the compiler shows them |
#define CPP_OPTIONS_H |
|
as an error then it means you have not placed your configuration |
|
|
files in the appropriate place. |
|
|
You need to place you own copy of CPP_OPTIONS.h in the include |
|
|
path for the model. |
|
|
|
|
|
C |
|
|
|
|
|
CBOP |
|
|
C !ROUTINE: CPP_OPTIONS.h |
|
|
C !INTERFACE: |
|
|
C include "CPP_OPTIONS.h" |
|
|
C !DESCRIPTION: |
|
|
C CPP flags controlling which code in included in the files that |
|
|
C will be compiled. |
|
|
CEOP |
|
|
|
|
|
C o Include/exclude code for AIM package |
|
|
#undef ALLOW_AIM |
|
|
|
|
|
C o Include/exclude code for GM/Redi parameterization |
|
|
#undef ALLOW_GMREDI |
|
|
|
|
|
C o Include/exclude code for KPP mixing scheme |
|
|
#define ALLOW_KPP |
|
|
|
|
|
cswdblk --- add --- |
|
|
C o Include/exclude code for bulk formula |
|
|
#define ALLOW_BULK_FORCE |
|
|
#ifdef ALLOW_BULK_FORCE |
|
|
cswdice -- add --- |
|
|
C o allow seaice |
|
|
#define ALLOW_THERM_SEAICE |
|
|
cswdice -- end add --- |
|
|
|
|
|
C o try to conserve qnet and emp |
|
|
#define CONSERV_BULKF |
|
|
#endif |
|
|
cswdblk -- end add --- |
|
6 |
|
|
7 |
|
C CPP flags controlling particular source code features |
8 |
|
|
9 |
C o Shortwave heating as extra term in external_forcing.F |
C o Shortwave heating as extra term in external_forcing.F |
10 |
|
C Note: this should be a run-time option and not necessarily dependent on KPP |
11 |
#ifdef ALLOW_KPP |
#ifdef ALLOW_KPP |
12 |
#define SHORTWAVE_HEATING |
#define SHORTWAVE_HEATING |
13 |
#endif |
#endif |
14 |
|
|
|
C o Include/exclude code for Shapiro filters |
|
|
#define ALLOW_SHAP_FILT |
|
|
|
|
|
C o Include/exclude code for C-D grid method of integrating the |
|
|
C coriolis terms |
|
|
#define INCLUDE_CD_CODE |
|
|
|
|
|
C o Include/exclude code for open-boundary conditions |
|
|
#undef ALLOW_OBCS |
|
|
|
|
|
C o Include/exclude diagnostics package interface code |
|
|
#define ALLOW_TIMEAVE |
|
|
|
|
|
C o Include/exclude zonal FFT filter code |
|
|
#undef ALLOW_ZONAL_FILT |
|
|
|
|
|
C o Include/exclude temperature advection code |
|
|
#define INCLUDE_T_ADVECTION_CODE |
|
|
#ifdef INCLUDE_T_ADVECTION_CODE |
|
|
#define _ADT(a)a |
|
|
#endif |
|
|
#ifndef INCLUDE_T_ADVECTION_CODE |
|
|
#define _ADT(a) |
|
|
#endif |
|
|
|
|
|
C o Include/exclude temperature diffusion code |
|
|
#define INCLUDE_T_DIFFUSION_CODE |
|
|
#ifdef INCLUDE_T_DIFFUSION_CODE |
|
|
#define _LPT(a)a |
|
|
#define _BHT(a)a |
|
|
#endif |
|
|
#ifndef INCLUDE_T_DIFFUSION_CODE |
|
|
#define _LPT(a) |
|
|
#define _BHT(a) |
|
|
#endif |
|
|
|
|
|
C o Include/exclude temperature forcing code |
|
|
#define INCLUDE_T_FORCING_CODE |
|
|
|
|
|
C o Include/exclude momentum advection code |
|
|
#define INCLUDE_MOMENTUM_ADVECTION_CODE |
|
|
#ifdef INCLUDE_MOMENTUM_ADVECTION_CODE |
|
|
#define _ADM(a)a |
|
|
#endif |
|
|
#ifndef INCLUDE_MOMENTUM_ADVECTION_CODE |
|
|
#define _ADM(a) |
|
|
#endif |
|
|
|
|
|
C o Include/exclude laplacian viscosity code |
|
|
#define INCLUDE_LP_MOMENTUM_DIFFUSION_CODE |
|
|
#ifdef INCLUDE_LP_MOMENTUM_DIFFUSION_CODE |
|
|
#define _LPM(a)a |
|
|
#endif |
|
|
#ifndef INCLUDE_LP_MOMENTUM_DIFFUSION_CODE |
|
|
#define _LPM(a) |
|
|
#endif |
|
|
|
|
|
C o Include/exclude biharmonic viscosity code |
|
|
#define INCLUDE_BH_MOMENTUM_DIFFUSION_CODE |
|
|
#ifdef INCLUDE_BH_MOMENTUM_DIFFUSION_CODE |
|
|
#define _BHM(a)a |
|
|
#endif |
|
|
#ifndef INCLUDE_BH_MOMENTUM_DIFFUSION_CODE |
|
|
#define _BHM(a) |
|
|
#endif |
|
|
|
|
|
C o Include/exclude gradient of phy_hyd code |
|
|
#define INCLUDE_GRADPH_CODE |
|
|
#ifdef INCLUDE_GRADPH_CODE |
|
|
#define _PHM(a)a |
|
|
#endif |
|
|
#ifndef INCLUDE_GRADPH_CODE |
|
|
#define _PHM(a) |
|
|
#endif |
|
|
|
|
|
C o Include/exclude momentum forcing code |
|
|
#define INCLUDE_MOMENTUM_FORCING_CODE |
|
|
|
|
|
C o Include/exclude momentum eqn metric terms code |
|
|
#define INCLUDE_MOMENTUM_METRIC_TERM_CODE |
|
|
|
|
15 |
C o Include/exclude phi_hyd calculation code |
C o Include/exclude phi_hyd calculation code |
16 |
#define INCLUDE_PHIHYD_CALCULATION_CODE |
#define INCLUDE_PHIHYD_CALCULATION_CODE |
17 |
|
|
21 |
C o Include/exclude call to S/R CALC_DIFFUSIVITY |
C o Include/exclude call to S/R CALC_DIFFUSIVITY |
22 |
#define INCLUDE_CALC_DIFFUSIVITY_CALL |
#define INCLUDE_CALC_DIFFUSIVITY_CALL |
23 |
|
|
24 |
C o Allow nonHydrostatic code |
C o Include/exclude Implicit vertical advection code |
25 |
#undef ALLOW_NONHYDROSTATIC |
#define INCLUDE_IMPLVERTADV_CODE |
26 |
|
|
27 |
|
C o Include/exclude nonHydrostatic code |
28 |
|
#undef ALLOW_NONHYDROSTATIC |
29 |
|
|
30 |
C o Use "natural" boundary conditions for salinity |
C o Include pressure loading code |
31 |
C instead of the "virtual salt flux" |
#define ATMOSPHERIC_LOADING |
|
#undef USE_NATURAL_BCS |
|
32 |
|
|
33 |
C o Use "Exact Convervation" of fluid in Free-Surface formulation |
C o Use "Exact Convervation" of fluid in Free-Surface formulation |
34 |
C so that d/dt(eta) is exactly equal to - Div.Transport |
C so that d/dt(eta) is exactly equal to - Div.Transport |
35 |
#undef EXACT_CONSERV |
#define EXACT_CONSERV |
36 |
|
|
37 |
C o Allow the use of Non-Linear Free-Surface formulation |
C o Allow the use of Non-Linear Free-Surface formulation |
38 |
C this implies that surface thickness (hFactors) vary with time |
C this implies that surface thickness (hFactors) vary with time |
43 |
C because the old code did not have no-slip BCs |
C because the old code did not have no-slip BCs |
44 |
#undef OLD_ADV_BCS |
#undef OLD_ADV_BCS |
45 |
|
|
|
C o Use "OLD" UV geometry on sphere (definately *NOT* recommended) |
|
|
C Note - only works with #undef NO_SLIP_LATERAL in calc_mom_rhs.F |
|
|
C because the old code did not have no-slip BCs |
|
|
#undef OLD_UV_GEOMETRY |
|
|
|
|
46 |
C o Execution environment support options |
C o Execution environment support options |
47 |
#include "CPP_EEOPTIONS.h" |
#include "CPP_EEOPTIONS.h" |
48 |
|
|
49 |
C o Include/exclude code specific to the ECCO/SEALION version. |
C o Include/exclude code specific to the ECCO/SEALION version. |
50 |
#undef INCLUDE_ECCO_PACKAGE |
C AUTODIFF or EXF package. |
51 |
#ifdef INCLUDE_ECCO_PACKAGE |
C Currently controled by a single header file |
52 |
#include "ECCO_CPPOPTIONS.h" |
C For this to work, PACKAGES_CONFIG.h needs to be included! |
53 |
#endif |
cph#if (defined (ALLOW_AUTODIFF) || \ |
54 |
|
cph defined (ALLOW_ECCO) || \ |
55 |
|
cph defined (ALLOW_EXF)) |
56 |
|
cph# include "ECCO_CPPOPTIONS.h" |
57 |
|
cph#endif |
58 |
|
|
59 |
|
#endif /* CPP_OPTIONS_H */ |
60 |
|
|