Skip to content

Mixed Layer

The mixed_layer_nml only ever needs to be specified if mixed_layer_bc = .true. in idealized_moist_phys_nml. It contains options which deal with the mixed layer boundary condition, including the difference between ocean and land. It is described on Isca's website and is used in numerous example scripts.
Some of the most common options are described below:

Options

evaporation

bool
Switch for surface evaporation.
Default: True

depth

float
Depth of mixed layer (\(m\)).
Default: 40.0

Q-flux

do_qflux

bool
Switch to calculate time-independent Q-flux.
Default: False

qflux_amp

float
Amplitude of time-independent Q-flux.
Only ever required if do_qflux = .true..
Default: 0.0

qflux_width

float
Width of time-independent Q-flux.
Only ever required if do_qflux = .true..
Default: 16.0

load_qflux

bool
Switch to use input file to load in a time-independent or time-dependent Q-flux.
Default: False

qflux_file_name

string
Name of file among input files, from which to get Q-flux.
Only ever required if load_qflux = .true..
Default: 16.0

time_varying_qflux

bool
Flag that determines whether input Q-flux file is time dependent.
Only ever required if load_qflux = .true..
Default: False

qflux_field_name

string
Name of field name in Q-flux file name, from which to get Q-flux.
Only ever required if time_varying_qflux = .false., otherwise assumes field_name=file_name.
Default: 16.0

Surface Temperature

prescribe_initial_dist

bool
If True, an initial surface temperature distribution is set up which is then allowed to evolve based on the surface fluxes.
Default: False

tconst

float
The parameter \(T_{surf}\) for the initial temperature distribution which follows:
\(T_s = T_{surf} -\frac{1}{3} dT \left(3\sin(\lambda)^2-1\right)\)
Only ever required if prescribe_initial_dist = .true..
Default: 305.0

delta_T

float
The parameter \(dT\) for the initial temperature distribution which follows:
\(T_s = T_{surf} -\frac{1}{3} dT \left(3\sin(\lambda)^2-1\right)\)
Only ever required if prescribe_initial_dist = .true..
Default: 40.0

do_read_sst

bool
If True, surface temperatures will be prescribed from an input file and will be fixed.
Default: False

do_sc_sst

bool
As far as I can tell, this is exactly the same as do_read_sst.
Default: False

sst_file

string
Name of NetCDF file containing fixed surface temperatures.
The file can be time independent or vary with time.
Only ever required if do_read_sst = .true..
Default: N/A

specify_sst_over_ocean_only

bool
Flag to specify surface temperature only over ocean.
Only ever required if do_read_sst = .true..
Default: N/A

do_ape_sst

bool
If True, surface temperatures will be fixed and prescribed from the APE aquaplanet equation:
\(T_s = 27 \left( 1 - \sin^2\left( \frac{3}{2} \lambda \right) \right)\)
Default: False

add_latent_heat_flux_anom

bool
Flag to add an anomalous latent heat flux.
Default: False

do_warmpool

bool
Flag to call the warmpool routine from the qflux module, which returns ocean_qflux.
Default: False

Surface Albedo

albedo_choice

integer
There are 5 choices of surface albedo, \(\alpha\), which can be specified by the indices below:

  1. Constant
    \(\alpha\) set to the constant indicated by albedo_value.
  2. Glacier (One hemisphere)

  3. Glacier (Both hemispheres)

  4. Exponent
    \(\alpha\) = albedo_value + (higher_albedo - albedo_value) \(\times (\frac{\lambda}{90})\)^albedo_exp

  5. Tanh
    This is an increase in \(\alpha\) at latitude indicated by albedo_cntr with width albedo_wdth.
    α(λ) = albedo_value + (higher_albedo-albedo_value)* 0.5 *(1+tanh((λ-albedo_cntr)/albedo_wdth))

Default: 1

albedo_value

float
Parameter to determine the surface albedo.
Required for every value of albedo_choice.
Default: 0.06

higher_albedo

float
Parameter to determine the surface albedo.
Only ever required if albedo_choice is 2, 3, 4 or 5.
Default: 0.10

lat_glacier

float
Parameter that sets the glacier ice latitude for determining the surface albedo.
Only ever required if albedo_choice is 2 or 3.
Default: 60.0

albedo_exp

float
Parameter that sets the latitude dependence for determining the surface albedo.
Only ever required if albedo_choice is 4.
Default: 2.

albedo_cntr

float
Parameter that sets the central latitude for determining the surface albedo.
Only ever required if albedo_choice is 5.
Default: 45.

albedo_wdth

float
Parameter that sets the latitude width for determining the surface albedo.
Only ever required if albedo_choice is 5.
Default: 10.

Ice

update_albedo_from_ice

bool
Flag to set the surface albedo to ice_albedo_value where there is ice as specified by ice_file_name.
Default: False

ice_albedo_value

float
Value for the ice albedo.
Expect this to be much larger than albedo_value because ice is more reflective than ocean. Only ever required if update_albedo_from_ice=.true..
Default: 0.7

ice_file_name

string
Name of file containing sea ice concentration.
Only ever required if update_albedo_from_ice=.true..
Default: siconc_clim_amip

ice_concentration_threshold

float
Value of sea ice concentration above which albedo should be set to ice_albedo_value.
Default: 0.5

Land

There are 4 ways that land is implemented in Isca.

land_option

string
There are 4 choices of the land mask in Isca given below. This parameter should be set to the same value as land_option in the idealized_moist_phys_nml namelist. If it is not specified here but is elsewhere, then none of the land parameters set in this module will be used.

Heat capacity calculation

The heat capacity calculation is different over land for the different options of land_option. If it is input, the heat capacity at a particular location is set to land_h_capacity_prefactor multiplied by the ocean heat capacity at that location.
If it is either zsurf or lonlat, it is computed as for ocean but with a different depth.

Default: none

land_h_capacity_prefactor

float
Factor by which to multiply ocean heat capacity to get land heat capacity.
Would expect this to be less than 1 as land has a smaller heat capacity than ocean.
Only ever required if land_option='input'.
Default: 1.0

land_albedo_prefactor

float
Factor by which to multiply ocean albedo to get land albedo.
Would expect this to be more than 1 as land is more reflective than ocean.
Only ever required if land_option='input'.
Default: 1.0

land_depth

float
Depth of land mixed layer (\(m\)).
Only ever required if land_option is 'zsurf' or 'lonlat'.
If it is negative, it just uses the ocean depth.
Default: -1

slandlon

list - float
slandlon[k] is the start longitude of land box \(k\).
Only ever required if land_option is 'lonlat'.
Default: 0

slandlat

list - float
slandlat[k] is the start latitude of land box \(k\).
Only ever required if land_option is 'lonlat'.
Default: 0

elandlon

list - float
elandlon[k] is the end longitude of land box \(k\).
Only ever required if land_option is 'lonlat'.
Default: -1

elandlat

list - float
elandlat[k] is the end latitude of land box \(k\).
Only ever required if land_option is 'lonlat'.
Default: -1

Diagnostics

The diagnostics for this module can be specified using the module_name of mixed_layer in the diagnostic table file. The list of available diagnostics is available on Isca's website. They are also given below:

t_surf

Surface temperature.
Dimensions: time, lat, lon
Units: \(K\)

delta_t_surf

Surface temperature change.
Dimensions: time, lat, lon
Units: \(K\)

flux_t

Surface sensible heat flux (up is positive).
Dimensions: time, lat, lon
Units: \(Wm^{-2}\)

flux_lhe

Surface latent heat flux (up is positive).
Dimensions: time, lat, lon
Units: \(Wm^{-2}\)

flux_oceanq

Oceanic Q-flux (will be \(0\) if do_qflux=False).
Dimensions: time, lat, lon
Units: \(Wm^{-2}\)

ml_heat_cap

Mixed layer heat capacity.
On the website, it calls this land_sea_heat_capacity but in the code, I think it is ml_heat_cap so I am not sure which is correct.
Dimensions: time, lat, lon
Units: \(Jm^{-2}K^{-1}\)

albedo

Surface albedo.
I think this will remain constant in time unless update_albedo_from_ice=True.
Dimensions: time, lat, lon
Units: N/A

ice_conc

Sea ice concentration.
Can only be returned if update_albedo_from_ice=True.
Dimensions: time, lat, lon
Units: N/A