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