1 |
C $Header: /u/gcmpack/MITgcm/verification/obcs_ctrl/code_ad/OBCS_OPTIONS.h,v 1.2 2011/12/24 01:17:53 jmc Exp $ |
2 |
C $Name: $ |
3 |
|
4 |
C CPP options file for OBCS package |
5 |
C Use this file for selecting options within the OBCS package |
6 |
|
7 |
#ifndef OBCS_OPTIONS_H |
8 |
#define OBCS_OPTIONS_H |
9 |
#include "PACKAGES_CONFIG.h" |
10 |
#include "CPP_OPTIONS.h" |
11 |
|
12 |
#ifdef ALLOW_OBCS |
13 |
C Package-specific Options & Macros go here |
14 |
|
15 |
C Enable individual open boundaries |
16 |
#define ALLOW_OBCS_NORTH |
17 |
#define ALLOW_OBCS_SOUTH |
18 |
#define ALLOW_OBCS_EAST |
19 |
#define ALLOW_OBCS_WEST |
20 |
|
21 |
C This include hooks to the Orlanski Open Boundary Radiation code |
22 |
#undef ALLOW_ORLANSKI |
23 |
|
24 |
C Enable OB values to be prescribed via external fields that are read |
25 |
C from a file |
26 |
#define ALLOW_OBCS_PRESCRIBE |
27 |
|
28 |
C Enable OB conditions following Stevens (1990) |
29 |
#undef ALLOW_OBCS_STEVENS |
30 |
|
31 |
C Allow sponge layer treatment of open boundary conditions |
32 |
#define ALLOW_OBCS_SPONGE |
33 |
|
34 |
C Allow sponge layers at following boundaries |
35 |
#define ALLOW_OBCS_SPONGE_N |
36 |
#define ALLOW_OBCS_SPONGE_S |
37 |
#define ALLOW_OBCS_SPONGE_E |
38 |
#define ALLOW_OBCS_SPONGE_W |
39 |
|
40 |
C Allow sponge layers for uVel and vVel at following boundaries |
41 |
#define ALLOW_OBCS_U_AT_NS |
42 |
#define ALLOW_OBCS_U_AT_EW |
43 |
#define ALLOW_OBCS_V_AT_NS |
44 |
#define ALLOW_OBCS_V_AT_EW |
45 |
|
46 |
C Allow sponge layers for Theta and Salt |
47 |
#define ALLOW_OBCS_SPONGE_THETA |
48 |
#define ALLOW_OBCS_SPONGE_SALT |
49 |
|
50 |
C Use linear instead of exponential sponge layer |
51 |
#undef USE_OBCS_LINEAR |
52 |
|
53 |
C Include hooks to sponge layer treatment of pkg/seaice variables |
54 |
#undef ALLOW_OBCS_SEAICE_SPONGE |
55 |
|
56 |
C balance barotropic velocity |
57 |
#undef ALLOW_OBCS_BALANCE |
58 |
|
59 |
C add tidal contributions to normal OB flow |
60 |
#undef ALLOW_OBCS_TIDES |
61 |
|
62 |
C Use older implementation of obcs in seaice-dynamics |
63 |
C note: most of the "experimental" options listed below have not yet |
64 |
C been implementated in new version. |
65 |
#undef OBCS_UVICE_OLD |
66 |
|
67 |
#ifdef OBCS_UVICE_OLD |
68 |
C The following five CPP options are experimental and aim to deal |
69 |
C with artifacts due to the low-frequency specification of sea-ice |
70 |
C boundary conditions compared to the model forcing frequency. |
71 |
C Ice convergence at edges can cause model to blow up. The |
72 |
C following CPP option fixes this problem at the expense of less |
73 |
C accurate boundary conditions. |
74 |
#undef OBCS_SEAICE_AVOID_CONVERGENCE |
75 |
|
76 |
C Smooth the component of sea-ice velocity perpendicular to the edge. |
77 |
#undef OBCS_SEAICE_SMOOTH_UVICE_PERP |
78 |
|
79 |
C Smooth the component of sea ice velocity parallel to the edge. |
80 |
#undef OBCS_SEAICE_SMOOTH_UVICE_PAR |
81 |
|
82 |
C Compute rather than specify seaice velocities at the edges. |
83 |
#undef OBCS_SEAICE_COMPUTE_UVICE |
84 |
#endif /* OBCS_UVICE_OLD */ |
85 |
|
86 |
C Smooth the tracer sea-ice variables near the edges. |
87 |
#undef OBCS_SEAICE_SMOOTH_EDGE |
88 |
|
89 |
#endif /* ALLOW_OBCS */ |
90 |
#endif /* OBCS_OPTIONS_H */ |