Version 11 (modified by raasch, 2 years ago) (diff)

--

Ocean Mode Parameters

This page is part of the Ocean mode documentation.
Since revision r3303 the ocean mode has been
modularized and has an own parameter namelist.
It contains a listing of all PALM input parameters used to steer the ocean mode.
For an overview of all ocean-mode-related pages, see the ocean mode main page.

Switching on the ocean mode has several effects:

  • An additional prognostic equation for salinity is solved.
  • The potential temperature in buoyancy and stability-related terms is replaced by the in-situ density.
  • Potential density is calculated from the equation of state for seawater after each time step, using the algorithm proposed by Jackett et al. (2006, J. Atmos. Oceanic Technol., 23, 1709-1728).
    So far, only the initial hydrostatic pressure is entered into this equation.
  • z=0 (sea surface) is assumed at the model top (vertical grid index k=nzt on the w-grid), with negative values of z indicating the depth.
  • Initial profiles are constructed (e.g. from pt_vertical_gradient / pt_vertical_gradient_level) starting from the sea surface, using surface values given by pt_surface, sa_surface, ug_surface, and vg_surface.
  • Zero salinity flux is used as default boundary condition at the bottom of the sea.
  • If switched on, random perturbations are by default imposed to the upper model domain from zu(nzt*2/3) to zu(nzt-3).

Relevant parameters to be exclusively used for steering ocean mode runs are bc_sa_t, bottom_salinityflux, sa_surface, sa_vertical_gradient, sa_vertical_gradient_level, and top_salinityflux.

NAMELIST group name: ocean_parameters

Parameter Name FORTRAN
Type
Default
Value
Explanation

bc_sa_t

C*20

'neumann'

Top boundary condition of the salinity.

Allowed are the values 'dirichlet' (sa(k=nz+1) does not change during the run) and 'neumann' (sa(k=nz+1)=sa(k=nz)).

When a constant salinity flux is used at the top boundary (top_salinityflux), bc_sa_t = 'neumann' must be used, because otherwise the resolved scale may contribute to the top flux so that a constant value cannot be guaranteed.

bottom_salinityflux

R

0.0

Kinematic salinity flux near the surface (in psu m/s).

The respective salinity flux value is used as bottom (horizontally homogeneous) boundary condition for the salinity equation. This additionally requires that a Neumann condition must be used for the salinity, which is currently the only available condition.

salinity

L

.T.

Parameter to switch on/off calculation of salinity equation.

You may set salinity = .FALSE. in case of ocean mixed layer studies (where the turbulent layer is shallow), in order to save CPU time. In that case, a constant salinity as given by sa_surface is assumed when calculating the equation of state.

In case of salinity = .F. non-zero values for parameters bottom_salinityflux and top_salinityflux are not allowed.

sa_surface

R

35.0

Surface salinity (in psu).

This parameter assigns the value of the salinity sa at the sea surface (k=nzt). Starting from this value, the initial vertical salinity profile is constructed from the surface down to the bottom of the model (k=0) by using sa_vertical_gradient and sa_vertical_gradient_level.

sa_vertical_gradient

R(10)

10 * 0.0

Salinity gradient(s) of the initial salinity profile (in psu / 100 m).

This salinity gradient holds starting from the height level defined by sa_vertical_gradient_level (precisely: for all uv levels k where zu(k) < sa_vertical_gradient_level, sa_init(k) is set: sa_init(k) = sa_init(k+1) - dzu(k+1) * sa_vertical_gradient) down to the bottom boundary or down to the next height level defined by sa_vertical_gradient_level. A total of 10 different gradients for 11 height intervals (10 intervals if sa_vertical_gradient_level(1) = 0.0) can be assigned. The surface salinity at k=nzt is assigned via sa_surface.

Example:

sa_vertical_gradient = 1.0, 0.5,
sa_vertical_gradient_level = -500.0, -1000.0,

That defines the salinity to be constant down to z = -500.0 m with a salinity given by sa_surface. For -500.0 m < z <= -1000.0 m the salinity gradient is 1.0 psu / 100 m and for z < -1000.0 m down to the bottom boundary it is 0.5 psu / 100 m (it is assumed that the assigned height levels correspond with uv levels).

sa_vertical_gradient_level

R(10)

10 * 0.0

Height level from which on the salinity gradient defined by sa_vertical_gradient is effective (in m).

The height levels have to be assigned in descending order. The default values result in a constant salinity profile regardless of the values of sa_vertical_gradient (unless the bottom boundary of the model is lower than -100000.0 m). For the piecewise construction of salinity profiles see sa_vertical_gradient.

stokes_waveheight

R

0.0

Parameter to switch on and set the effects of Langmuir circulation in PALM's ocean mode.

The effects of Langmuir circulation are considered in PALM by the Craik-Leibovich vortex force and the Stokes drift velocity, as described in Noh et al. (2004), JPO. In order to switch these effects on, you need to set both parameters, stokes_waveheight as well as stokes_wavelength to a non-zero positive value. stokes_waveheight sets the height of the ocean surface waves to be used for calculating the vertical profile of the Stokes drift velocity. The direction of the Stokes drift velocity is derived from parameters top_momentumflux_u and top_momentumflux_v, which define the wind stress at the ocean surface.

stokes_wavelength

R

0.0

Parameter to switch on and set the effects of Langmuir circulation in PALM's ocean mode.

The effects of Langmuir circulation are considered in PALM by the Craik-Leibovich vortex force and the Stokes drift velocity, as described in Noh et al. (2004), JPO. In order to switch these effects on, you need to set both parameters, stokes_wavelength as well as stokes_waveheight to a non-zero positive value. stokes_wavelength sets the wave length of the ocean surface waves to be used for calculating the vertical profile of the Stokes drift velocity. The direction of the Stokes drift velocity is derived from parameters top_momentumflux_u and top_momentumflux_v, which define the wind stress at the ocean surface.

surface_cooling_spinup_time

R

999999.9

Time (in s) after which the surface heat flux is switched off.

This parameter can be used to limit the duration of surface heat flux forcing. If, for example, a surface cooling is required during an initial spin-up phase for only 15 minutes in order to trigger the development of a Langmuir circulation, you need to give the heat flux via top_heatflux and set surface_cooling_spinup_time = 900.0. The default value means that the surface flux is never switched off.

switch_off_module

L

.F.

top_salinityflux

R

no prescribed
salinityflux

Kinematic salinity flux at the top boundary, i.e. the sea surface (in psu m/s).

If a value is assigned to this parameter, the internal surface heat flux array is initialized with the value of top_salinityflux as top (horizontally homogeneous) boundary condition for the salinity equation. This additionally requires that a Neumann condition must be used for the salinity (see bc_sa_t), because otherwise the resolved scale may contribute to the top flux so that a constant flux value cannot be guaranteed.

Note:
The application of a salinity flux at the model top additionally requires the setting of initial parameter use_top_fluxes = .T..

See also bottom_salinityflux.

wall_salinityflux

R(0:5)

6 * 0.0

Prescribed kinematic salinity flux in Psu m/s at the six topography faces:

wall_salinityflux(0) top face
wall_salinityflux(1) left face
wall_salinityflux(2) right face
wall_salinityflux(3) south face
wall_salinityflux(4) north face
wall_salinityflux(5) bottom face

This parameter applies only in case of a non-flat topography. Prescribing wall_salinityflux additionally requires setting of bottom_salinityflux. Furthermore, please note that wall_salinityflux(0) only describes the kinematic flux at non-zero height. At zero-height (surface) the kinematic flux is given by bottom_salinityflux instead.

wave_breaking

L

.F.

Parameter to switch on turbulence generation by wave breaking.

You need to set wave_breaking = .T. to switch on turbulence generation by wave breaking at the ocean surface. This way, random perturbation are added to the horizontal velocity components at the top model layer (k = nzt). The parameterization is realized as described in Noh et al. (2004), JPO.

WARNING: The implemented parameterization is designed for a vertical grid spacing of dz = 1.25m and time steps of about 4 s. It will probably fail for other setups.