8. Open boundaries conditions#
If a lateral boundary faces the open ocean, robust open boundary conditions (OBCs) are needed [Marchesiello et al., 2001]. Forcing of tracer and baroclinic flow is applied via an adaptive radiation condition, which helps perturbations to leave the domain with only a small effect on the interior solution. The same method can be applied to the depth-averaged flow, but (for tidal forcing in particular) we generally prefer the incoming characteristic of the shallow water system as in Flather-type conditions [Marchesiello et al., 2001, Blayo and Debreu, 2005]. This allows long-wave data to be forced in, while those generated inside the domain can leave it, which also guarantees the quasi-conservation of mass and energy across the open boundary. A Sponge layer is added near the open boundaries to limit small-scale effects and ease the transition between the interior solution and the boundary data. The boundary data can be applied only at the boundary (see BRY strategy below) or in a nudging layer (CLIMATOLOGY strategy).
This set of OBCs are given as default if no other choice is made. They have performed well in most applications, from the deep ocean to the coastal areas. For details, refer to Marchesiello et al. [2001] and Blayo and Debreu [2005].
8.1. OBC#
Related CPP options:
OBC_EAST |
Open eastern boundary |
OBC_WEST |
Open western boundary |
OBC_SOUTH |
Open southern boundary |
OBC_NORTH |
Open northern boundary |
Related CPP options:
OBC_M2SPECIFIED |
Activate specified OBCs for barotropic velocities |
OBC_M2CHARACT |
Activate OBCs from characteristic methods for barotropic velocities (default) |
OBC_M2ORLANSKI |
Activate radiative OBCs for barotropic velocities |
OBC_VOLCONS |
Enforce mass conservation at open boundaries (with OBC_M2ORLANSKI) |
OBC_M3SPECIFIED |
Activate specified OBCs for baroclinic velocities |
OBC_M3ORLANSKI |
Activate radiative OBCs for baroclinic velocities (default) |
OBC_TSPECIFIED |
Activate specified OBCs for tracers |
OBC_TORLANSKI |
Activate radiative OBCs for tracers (default) |
OBC_TUPWIND |
Activate upwind OBCs for tracers |
For non-tidal forcing, the combination of OBC_M2ORLANSKI and OBC_VOLCONS often provides the best performances in terms of transparency of barotropic flow at the open boundaries. However, OBC_M2CHARACT is near as good and also provides the best conditions for tidal forcing. It is therefore set as default in cppdefs_dev.h.
Preselected options (in cppdefs_dev.h but set your own choice in cppdefs.h if needed):
# undef OBC_M2SPECIFIED
# define OBC_M2CHARACT
# undef OBC_M2ORLANSKI
# ifdef OBC_M2ORLANSKI
# define OBC_VOLCONS
# endif
# define OBC_M3ORLANSKI
# define OBC_TORLANSKI
# undef OBC_M3SPECIFIED
# undef OBC_TSPECIFIED
8.2. Sponge Layer#
SPONGE is preselected in cppdefs.h and calls for SPONGE_GRID in cppdefs_dev.h. SPONGE_GRID selects the sponge layer extension (10 points with cosine shape function) and viscosity and diffusivity values according to the horizontal resolution (limited by the CFL stability conditions).
Related CPP options:
SPONGE |
Activate areas of enhanced viscosity and diffusivity near lateral open boundaries. |
SPONGE_GRID |
Automatic setting of the sponge width and value |
SPONGE_DIF2 |
Sponge on tracers (default) |
SPONGE_VIS2 |
Sponge on momentum (default) |
SPONGE_SED |
Sponge on sediment (default) |
8.3. Nudging layers#
The nudging layer has the same extension as the sponge layer. In nudging layers, tracer and momentum fields are nudged towards climatological values at a time scale Tau_out (possibly different for momentum and tracers) that is given in namelist croco.in
Related CPP options:
ZNUDGING |
Activate nudging layer for sea level |
M2NUDGING |
Activate nudging layer for barotropic velocities |
M3NUDGING |
Activate nudging layer for baroclinic velocities |
TNUDGING |
Activate nudging layer for tracers |
ROBUST_DIAG |
Activate nudging over the whole domain |
8.4. Lateral forcing#
8.4.1. CLIMATOLOGY strategy#
Related CPP options:
CLIMATOLOGY |
Activate processing of 2D/3D data (climatological or
simulation/reanalysis) used as forcing
at the open boundary points + nudging layers
|
ZCLIMATOLOGY |
Activate processing of sea level |
M2CLIMATOLOGY |
Activate processing of barotropic velocities |
M3CLIMATOLOGY |
Activate processing of baroclinic velocities |
TCLIMATOLOGY |
Activate processing of tracers |
8.4.2. BRY strategy#
FRC_BRY is useful for inter-annual forcing on high-resolution domains. FRC_BRY is compatible with CLIMATOLOGY that can still be used for nudging layers.
Related CPP options:
FRC_BRY |
Activate processing of 1D/2D data used as forcing
at open boundary points strictly
|
Z_FRC_BRY |
Activate open boundary forcing for sea level |
M2_FRC_BRY |
Activate open boundary forcing for barotropic velocities |
M3_FRC_BRY |
Activate open boundary forcing for baroclinic velocities |
T_FRC_BRY |
Activate open boundary forcing for tracers |
Preselected options (cppdefs.h):
# define CLIMATOLOGY
# ifdef CLIMATOLOGY
# define ZCLIMATOLOGY
# define M2CLIMATOLOGY
# define M3CLIMATOLOGY
# define TCLIMATOLOGY
# define ZNUDGING
# define M2NUDGING
# define M3NUDGING
# define TNUDGING
# undef ROBUST_DIAG
# endif
# undef FRC_BRY
# ifdef FRC_BRY
# define Z_FRC_BRY
# define M2_FRC_BRY
# define M3_FRC_BRY
# define T_FRC_BRY
# endif