6.21. ancillaries.nml

This file sets up spatially varying ancillary values. It contains the following namelists: JULES_FRAC, JULES_VEGETATION_PROPS, JULES_SOIL_PROPS, JULES_TOP, JULES_PDM, JULES_AGRIC, JULES_CROP_PROPS, JULES_IRRIG_PROPS, JULES_RIVERS_PROPS, JULES_OVERBANK_PROPS, JULES_WATER_RESOURCES_PROPS, URBAN_PROPERTIES , JULES_CO2 and JULES_FLAKE.

Data associated with each of these namelists can optionally be read from the dump file (if present) by setting read_from_dump to true. This functionality provides closer alignment with UM functionality and can help ensure that the correct ancillary data remain associated with the model state.

6.21.1. JULES_FRAC namelist members

This namelist specifies the fraction of the land area in each gridbox that is covered by each of the surface types. If l_veg_compete = TRUE, then the fraction of each surface type is modelled and the initial state should be specified in JULES_INITIAL. In all other cases, it must be read here.

Note that all land points must be either soil points (indicated by values > 0 of the saturated soil moisture content), or land ice points (indicated by the fractional coverage of the ice surface type - if used - being one). The fractional cover of the ice surface type in each gridbox must be either zero or one - there cannot be partial coverage of ice within a gridbox.

If using either URBAN-2T or MORUSES then the total urban fraction can be specified instead of the separate urban_canyon and urban_roof contributions. When initialising, if the roof fraction is zero, the canyon fraction will be interpreted as the total urban fraction and be partitioned according to canyon fraction (W/R, see URBAN_PROPERTIES).

Note

For runs with dynamic vegetation (TRIFFID, l_triffid = TRUE) and l_veg_compete = TRUE, then the fraction of each surface type is being modelled and the initial state should be specified in JULES_INITIAL (which will override any settings given in this section). In all other cases, frac must be read here.

JULES_FRAC::read_from_dump
Type:

logical

Default:

F

TRUE

Populate variables associated with this namelist from the dump file. All other namelist members are ignored.

FALSE

Use the other namelist members to determine how to populate variables.

JULES_FRAC::file
Type:

character

Default:

None

The name of the file to read surface type fractional coverage data from.

JULES_FRAC::frac_name
Type:

character

Default:

‘frac’

The name of the variable containing the surface type fractional coverage data.

Note

This is only used for NetCDF files. For ASCII files, the surface type fractional coverage data is expected to be the first (ideally only) variable in the file.

Note

The open water fraction of this array (given by lake) should contain permanent water, and wetland extents that are not being otherwise simulated. If groundwater inundation is being simulated (i.e. TOPMODEL is active l_top = TRUE and therefore fsat is being calculated) then all groundwater-maintained wetlands must be excluded from frac_name. If overbank inundation is being simulated (i.e. l_riv_overbank = TRUE) then all fluvial wetlands must be excluded from frac_name. Finally, note that simulation of a potential future climate scenario with greatly reduced areas for lakes that are currently ‘permanent’ would require suitable modification of the ancillary provided here.

In the file, the variable must have a single levels dimension of size ntype called type_dim_name, and should not have a time dimension.

6.21.2. JULES_VEGETATION_PROPS namelist members

This namelist specifies how spatially-varying properties of vegetation should be set.

At present only one variable - t_home_gb - can be specified via this namelist, and this is only required if thermal adaptation of photosynthetic capacity is selected (photo_acclim_model = 1 or 3).

Note that Leaf Area Index and vegetation height are specified elsewhere - see JULES_PRESCRIBED.

JULES_VEGETATION_PROPS::read_from_dump
Type:

logical

Default:

F

TRUE

Populate variables associated with this namelist from the dump file. All other namelist members are ignored.

FALSE

Use the other namelist members to determine how to populate variables.

JULES_VEGETATION_PROPS::file
Type:

character

Default:

None

The file to read vegetation properties from.

If use_file is FALSE for every variable, this will not be used.

This file name can use variable name templating.

JULES_VEGETATION_PROPS::nvars
Type:

integer

Permitted:

>= 0

Default:

0

The number of vegetation property variables that will be provided (see List of vegetation parameters).

JULES_VEGETATION_PROPS::var
Type:

character(nvars)

Default:

None

List of vegetation variable names as recognised by JULES (see List of vegetation parameters). Names are case sensitive.

Note

For ASCII files, variable names must be in the order they appear in the file.

JULES_VEGETATION_PROPS::use_file
Type:

logical(nvars)

Default:

T

For each JULES variable specified in var, this indicates if it should be read from the specified file or whether a constant value is to be used.

TRUE

The variable will be read from the file.

FALSE

The variable will be set to a constant value everywhere using const_val below.

JULES_VEGETATION_PROPS::var_name
Type:

character(nvars)

Default:

‘’ (empty string)

For each JULES variable specified in var where use_file = TRUE, this is the name of the variable in the file containing the data.

If the empty string (the default) is given for any variable, then the corresponding value from var is used instead.

This is not used for variables where use_file = FALSE, but a placeholder must still be given in that case.

Note

For ASCII files, this is not used - only the order in the file matters, as described above.

JULES_VEGETATION_PROPS::tpl_name
Type:

character(nvars)

Default:

None

For each JULES variable specified in var, this is the string to substitute into the file name in place of the variable name substitution string.

If the file name does not use variable name templating, this is not used.

JULES_VEGETATION_PROPS::const_val
Type:

real(nvars)

Default:

None

For each JULES variable specified in var where use_file = FALSE, this is a constant value that the variable will be set to at every point.

This is not used for variables where use_file = TRUE, but a placeholder must still be given in that case.

6.21.2.1. List of vegetation parameters

Name

Description

t_home_gb

Average temperature (home temperature) for thermal adaptation of photosynthetic capacity (K), e.g. a multi-decadal average or pre-industrial temperature. Suggestions as to how to calculate a suitable temperature can be found in Kattge and Knorr (2007) or Kumarathunge et al (2019). This variable should not have a time dimension nor any “levels” dimension.

6.21.3. JULES_SOIL_PROPS namelist members

This namelist specifies how spatially varying soil properties should be set.

JULES_SOIL_PROPS::read_from_dump
Type:

logical

Default:

F

TRUE

Populate variables associated with this namelist from the dump file. All other namelist members are ignored.

FALSE

Use the other namelist members to determine how to populate variables.

JULES_SOIL_PROPS::const_z
Type:

logical

Default:

F

Switch indicating if soil properties are to be uniform with depth.

TRUE

Soil characteristics do not vary with depth.

FALSE

Soil characteristics vary with depth. For any variable this is ignored if a constant value is to be used (see const_val).

JULES_SOIL_PROPS::file
Type:

character

Default:

None

The file to read soil properties from.

If use_file is FALSE for every variable, this will not be used.

This file name can use variable name templating.

JULES_SOIL_PROPS::nvars
Type:

integer

Permitted:

>= 0

Default:

0

The number of soil property variables that will be provided (see List of soil parameters).

JULES_SOIL_PROPS::var
Type:

character(nvars)

Default:

None

List of soil variable names as recognised by JULES (see List of soil parameters). Names are case sensitive.

Note

For ASCII files, variable names must be in the order they appear in the file.

JULES_SOIL_PROPS::use_file
Type:

logical(nvars)

Default:

T

For each JULES variable specified in var, this indicates if it should be read from the specified file or whether a constant value is to be used.

TRUE

The variable will be read from the file.

FALSE

The variable will be set to a constant value everywhere using const_val below.

JULES_SOIL_PROPS::var_name
Type:

character(nvars)

Default:

‘’ (empty string)

For each JULES variable specified in var where use_file = TRUE, this is the name of the variable in the file containing the data.

If the empty string (the default) is given for any variable, then the corresponding value from var is used instead.

This is not used for variables where use_file = FALSE, but a placeholder must still be given in that case.

Note

For ASCII files, this is not used - only the order in the file matters, as described above.

JULES_SOIL_PROPS::tpl_name
Type:

character(nvars)

Default:

None

For each JULES variable specified in var, this is the string to substitute into the file name in place of the variable name substitution string.

If the file name does not use variable name templating, this is not used.

JULES_SOIL_PROPS::const_val
Type:

real(nvars)

Default:

None

For each JULES variable specified in var where use_file = FALSE, this is a constant value that the variable will be set to at every point in every layer (overriding const_z = FALSE).

This is not used for variables where use_file = TRUE, but a placeholder must still be given in that case.

6.21.3.1. List of soil parameters

If const_z = FALSE, variables read from file must have a single levels dimension. For most variables this dimension must be of size sm_levels and called soil_dim_name; exceptions to this rule are indicated in the table below.

If const_z = TRUE, variables read from file must have no levels dimensions.

If soil tiling is selected (l_tile_soil = TRUE), ancillary fields can be specified for each soil tile (l_broadcast_ancils = FALSE), or values can be read for one soil tile and copied to all tiles (l_broadcast_ancils = TRUE).

In all cases, the variables must have no time dimension.

Name

Description

Levels name

albsoil

Soil albedo. A single (averaged) waveband is used.

None

b

Exponent in soil hydraulic characteristics.

n.b. Related to the Brooks & Corey parameter lambda by b=1/lambda and to the van Genuchten-Mualem parameter n by b=1/(n-1)

soil_dim_name

hcap

Dry heat capacity (J m-3 K-1).

soil_dim_name

hcon

Dry thermal conductivity (W m-1 K-1).

soil_dim_name

satcon

Hydraulic conductivity at saturation (kg m-2 s-1).

soil_dim_name

sathh

If l_vg_soil = TRUE (i.e. using van Genuchten model), sathh = 1 / alpha, where alpha (m-1) is a parameter of the van Genuchten model.

If l_vg_soil = FALSE (using Brooks and Corey model), sathh is the soil matric suction at saturation (in pressure head units, m), i.e. the absolute value of the soil matric potential at saturation.

soil_dim_name

sm_crit

Volumetric soil moisture content at the critical point (m3 water per m3 soil). If l_use_pft_psi = F, the point at which soil moisture stress starts to restrict transpiration is a function of sm_crit, sm_sat and the pft-dependent parameter fsmc_p0_io .

sm_crit is also used to calculate the surface conductance of bare soil.

soil_dim_name

sm_sat

Volumetric soil moisture content at saturation (m3 water per m3 soil).

Note

This field is used to distinguish between soil points and land ice points.

sm_sat > 0 indicates a soil point.

soil_dim_name

sm_wilt

Volumetric soil moisture content at the wilting point (m3 water per m3 soil). If l_use_pft_psi = F, sm_wilt is the limit where soil moisture stress completely prevents transpiration.

sm_wilt is also used to calculate soil respiration.

soil_dim_name

clay

Soil clay content (g clay per g soil). Only required for the 4-pool and ECOSSE soil carbon models (soil_bgc_model = 2 or 3).

Note

To allow backwards compatibility when using the 4-pool model (soil_bgc_model = 2), if the clay content is not available it is set to 0.0 in the code.

However, this is wrong - if it is not available it should be set to 0.23.

sclayer_dim_name

soil_ph

Soil pH. Only required for the ECOSSE soil carbon model (soil_bgc_model = 3).

sclayer_dim_name

6.21.4. JULES_TOP namelist members

This namelist reads spatially varying parameter values for the TOPMODEL-type parameterisation of runoff. The values are only used if l_top = TRUE. The description below is very brief. For further details, see the references under l_top.

JULES_TOP::read_from_dump
Type:

logical

Default:

F

TRUE

Populate variables associated with this namelist from the dump file. All other namelist members are ignored.

FALSE

Use the other namelist members to determine how to populate variables.

JULES_TOP::file
Type:

character

Default:

None

The file to read TOPMODEL properties from.

If use_file is FALSE for every variable, this will not be used.

This file name can use variable name templating.

JULES_TOP::nvars
Type:

integer

Permitted:

>= 0

Default:

0

The number of TOPMODEL property variables that will be provided. At present, all variables are required for runs using TOPMODEL (see List of TOPMODEL parameters).

JULES_TOP::var
Type:

character(nvars)

Default:

None

List of TOPMODEL variable names as recognised by JULES (see List of TOPMODEL parameters). Names are case sensitive.

Note

For ASCII files, variable names must be in the order they appear in the file.

JULES_TOP::use_file
Type:

logical(nvars)

Default:

T

For each JULES variable specified in var, this indicates if it should be read from the specified file or whether a constant value is to be used.

TRUE

The variable will be read from the file.

FALSE

The variable will be set to a constant value everywhere using const_val below.

JULES_TOP::var_name
Type:

character(nvars)

Default:

‘’ (empty string)

For each JULES variable specified in var where use_file = TRUE, this is the name of the variable in the file containing the data.

If the empty string (the default) is given for any variable, then the corresponding value from var is used instead.

This is not used for variables where use_file = FALSE, but a placeholder must still be given in that case.

Note

For ASCII files, this is not used - only the order in the file matters, as described above.

JULES_TOP::tpl_name
Type:

character(nvars)

Default:

None

For each JULES variable specified in var, this is the string to substitute into the file name in place of the variable name substitution string.

If the file name does not use variable name templating, this is not used.

JULES_TOP::const_val
Type:

real(nvars)

Default:

None

For each JULES variable specified in var where use_file = FALSE, this is a constant value that the variable will be set to at every point in every layer.

This is not used for variables where use_file = TRUE, but a placeholder must still be given in that case.

6.21.4.1. List of TOPMODEL parameters

All of the TOPMODEL variables listed below are expected to have no levels dimensions and no time dimension.

Name

Description

fexp

Decay factor describing how the saturated hydraulic conductivity decreases with depth below the standard soil column (m-1).

Routinely set between 2 and 3 m-1. Gedney & Cox (2003, J Hydromet) used value 0.5 m-1; Niu & Yang (2003, Global & Planet. Change) suggested a global mean value of 2.0 m-1.

ti_mean

(Spatial, not temporal) mean value of the topographic index in each gridbox. Value 5.99 is the global mean given in Marthews et al. (2015, HESS)

ti_sig

(Spatial, not temporal) standard deviation of the topographic index in each gridbox. Values <0.5 are updated to =0.5 internally to allow at least some variability

6.21.5. JULES_PDM namelist members

This namelist reads spatially varying parameter values for the PDM-type parameterisation of runoff. The values are only used if l_pdm = TRUE. The description below is very brief. For further details, see the references under l_pdm.

JULES_PDM::file
Type:

character

Default:

None

The file to read PDM properties from.

If use_file is FALSE for every variable, this will not be used.

This file name can use variable name templating.

JULES_PDM::nvars
Type:

integer

Permitted:

>= 0

Default:

0

The number of PDM property variables that will be provided (see List of PDM parameters). At present, only the topographic slope can be provided.

JULES_PDM::var
Type:

character(nvars)

Default:

None

List of PDM variable names as recognised by JULES (see List of PDM parameters). Names are case sensitive.

Note

For ASCII files, variable names must be in the order they appear in the file.

JULES_PDM::use_file
Type:

logical(nvars)

Default:

T

For each JULES variable specified in var, this indicates if it should be read from the specified file or whether a constant value is to be used.

TRUE

The variable will be read from the file.

FALSE

The variable will be set to a constant value everywhere using const_val below.

JULES_PDM::var_name
Type:

character(nvars)

Default:

None

For each JULES variable specified in var where use_file = TRUE, this is the name of the variable in the file containing the data.

This is not used for variables where use_file = FALSE, but a placeholder must still be given.

Note

For ASCII files, this is not used - only the order in the file matters, as described above.

JULES_PDM::tpl_name
Type:

character(nvars)

Default:

None

For each JULES variable specified in var, this is the string to substitute into the file name in place of the variable name substitution string.

If the file name does not use variable name templating, this is not used.

JULES_PDM::const_val
Type:

real(nvars)

Default:

None

For each JULES variable specified in var where use_file = FALSE, this is a constant value that the variable will be set to at every point in every layer. make html This is not used for variables where use_file = TRUE, but a placeholder must still be given.

6.21.5.1. List of PDM parameters

All of the PDM variables listed below are expected to have no levels dimensions and no time dimension.

Name

Description

slope

Mean value of the topographic slope in the gridbox (deg).

6.21.6. JULES_AGRIC namelist members

If the TRIFFID vegetation model is used, the fractional area of agricultural land in each gridbox is specified using this namelist. Otherwise, the values in this namelist are not used.

JULES_AGRIC::read_from_dump
Type:

logical

Default:

F

TRUE

Populate frac_agr, frac_past, and frac_biocrop from the dump file. All other namelist members are ignored.

FALSE

Use the other namelist members to determine how to populate variables.

JULES_AGRIC::zero_agric
Type:

logical

Default:

T

Switch used to simplify the initialisation of agricultural fraction.

TRUE

Set agricultural fraction at all points to zero.

FALSE

Set agricultural fraction using specified data.

Used if zero_agric = FALSE and the input grid consists of a single location

JULES_AGRIC::frac_agr
Type:

real

Default:

None

The agricultural fraction for the single location.

Used if zero_agric = FALSE and the input grid consists of more than one location

JULES_AGRIC::file
Type:

character

Default:

None

The name of the file to read agricultural fraction data from.

JULES_AGRIC::agric_name
Type:

character

Default:

‘frac_agr’

The name of the variable containing the agricultural fraction data.

In the file, the variable must have no levels dimensions and no time dimension.

JULES_AGRIC::zero_past
Type:

logical

Default:

T

Switch used to simplify the initialisation of pasture fraction. Pasture fraction can only be used if l_trif_crop is TRUE.

TRUE

Set pasture fraction at all points to zero.

FALSE

Set pasture fraction using specified data.

Used if zero_past = FALSE and the input grid consists of a single location

JULES_AGRIC::frac_past
Type:

real

Default:

None

The pasture fraction for the single location.

Used if zero_past = FALSE and the input grid consists of more than one location

JULES_AGRIC::file_past
Type:

character

Default:

None

The name of the file to read pasture fraction data from.

JULES_AGRIC::pasture_name
Type:

character

Default:

‘frac_past’

The name of the variable containing the pasture fraction data.

In the file, the variable must have no levels dimensions and no time dimension.

JULES_AGRIC::zero_biocrop
Type:

logical

Default:

T

Switch used to simplify the initialisation of bioenergy fraction. Bioenergy fraction can only be used if l_trif_biocrop is TRUE.

TRUE

Set bioenergy fraction at all points to zero.

FALSE

Set bioenergy fraction using specified data.

Used if zero_biocrop = FALSE and the input grid consists of a single location

JULES_AGRIC::frac_biocrop
Type:

real

Default:

None

The bioenergy fraction for the single location.

Used if zero_biocrop = FALSE and the input grid consists of more than one location

JULES_AGRIC::file_biocrop
Type:

character

Default:

None

The name of the file to read bioenergy fraction data from.

JULES_AGRIC::biocrop_name
Type:

character

Default:

‘frac_biocrop’

The name of the variable containing the bioenergy fraction data.

In the file, the variable must have no levels dimensions and no time dimension.

Specify the day of year on which harvesting occurs. Only used if l_trif_biocrop = TRUE. A placeholder value must be set for all PFTs, though will only be used for PFTs with harvest_type_io = 2.

JULES_AGRIC::read_harvest_doy_from_dump
Type:

logical

Default:

F

TRUE

Populate harvest_doy from the dump file. All other namelist members are ignored.

FALSE

Use the other namelist members to determine how to populate variables.

JULES_AGRIC::file_harvest_doy
Type:

character

Default:

None

The name of the file to read harvest day-of-year data from.

JULES_AGRIC::harvest_doy_name
Type:

character

Default:

‘harvest_doy’

The name of the variable containing the harvest day-of-year data.

Note

This is only used for NetCDF files. For ASCII files, the harvest day-of-year data is expected to be the first (ideally only) variable in the file.

6.21.7. JULES_CROP_PROPS namelist members

JULES_CROP_PROPS::read_from_dump
Type:

logical

Default:

F

TRUE

Populate variables associated with this namelist from the dump file. All other namelist members are ignored.

FALSE

Use the other namelist members to determine how to populate variables.

JULES_CROP_PROPS::file
Type:

character

Default:

None

The file from which crop properties are read.

If use_file is FALSE for every variable, this will not be used.

This file name can use variable name templating.

JULES_CROP_PROPS::nvars
Type:

integer

Permitted:

>= 0

Default:

0

The number of crop property variables that will be provided (see List of spatially-varying crop properties).

JULES_CROP_PROPS::var
Type:

character(nvars)

Default:

None

List of variable names for spatially-varying crop properties as recognised by JULES (see List of spatially-varying crop properties). Names are case sensitive.

Note

For ASCII files, variable names must be in the order they appear in the file.

JULES_CROP_PROPS::use_file
Type:

logical(nvars)

Default:

T

For each JULES variable specified in var, this indicates if it should be read from the specified file or whether a constant value is to be used.

TRUE

The variable will be read from the file.

FALSE

The variable will be set to a constant value everywhere using const_val below.

JULES_CROP_PROPS::var_name
Type:

character(nvars)

Default:

‘’ (empty string)

For each JULES variable specified in var where use_file = TRUE, this is the name of the variable in the file containing the data.

If the empty string (the default) is given for any variable, then the corresponding value from var is used instead.

This is not used for variables where use_file = FALSE, but a placeholder must still be given in that case.

Note

For ASCII files, this is not used - only the order in the file matters, as described above.

JULES_CROP_PROPS::tpl_name
Type:

character(nvars)

Default:

None

For each JULES variable specified in var, this is the string to substitute into the file name in place of the variable name substitution string.

If the file name does not use variable name templating, this is not used.

JULES_CROP_PROPS::const_val
Type:

real(nvars)

Default:

None

For each JULES variable specified in var where use_file = FALSE, this is a constant value that the variable will be set to at every point in every layer.

This is not used for variables where use_file = TRUE, but a placeholder must still be given in that case.

6.21.7.1. List of spatially-varying crop properties

All of the crop variables listed below are expected to have a single levels dimension of size ncpft called cpft_dim_name.

Name

Description

cropsowdate

The sowing date for each crop.

The sowing date should be a real number, with 0 < nint(sowing_date) < number of days in year. For example, for a 365 day year, sow_date = 1.0 is Jan 1st and sow_date = 365.0 is Dec 31st.

If a crop requires two sowing dates per year, it should be treated as two separate crops with identical parameters apart from the sowing date.

Note

Only required if l_prescsow = TRUE.

cropttveg

Thermal time between emergence and flowering (degree days).

cropttrep

Thermal time between flowering and maturity/harvest (degree days).

croplatestharvdate

The latest possible harvest date for each crop. croplatestharvdate is only a required variable when l_croprotate = TRUE and l_prescsow = TRUE.

croplatestharvdate is not a required variable when l_croprotate = FALSE and l_prescsow = TRUE but will be used if provided in the ancillary file

croplatestharvdate is not a required variable and is only used if provided as an ancillary when l_prescsow = TRUE.

See also

References:

6.21.8. JULES_IRRIG_PROPS namelist members

This namelist specifies the options available for initialising irrigated fraction.

JULES_IRRIG_PROPS::read_from_dump
Type:

logical

Default:

F

TRUE

Populate variables associated with this namelist from the dump file. All other namelist members are ignored.

FALSE

Use the other namelist members to determine how to populate variables.

JULES_IRRIG_PROPS::read_file
Type:

logical

Default:

T

Indicates if irrigated fraction is to be read from file.

TRUE

Irrigated fraction is read from the file specified in irrig_frac_file.

FALSE

Irrigated fraction is set to the constant value specified in const_frac_irr.

JULES_IRRIG_PROPS::irrig_frac_file
Type:

character

Default:

None

The file from which irrigation fractions are read, including path.

JULES_IRRIG_PROPS::var_name
Type:

character

Default:

‘frac_irig’

The name of the variable containing the irrigated fraction data.

Note

This is only used for NetCDF files. For ASCII files, the irrigated fraction data is expected to be the first (ideally only) variable in the file.

In the file, the variable must have no levels or time dimensions.

JULES_IRRIG_PROPS::const_frac_irr
Type:

real

Default:

none

The constant irrigated fraction to be applied to all grid points.

JULES_IRRIG_PROPS::const_irrfrac_irrtiles
Type:

real

Default:

none

The constant irrigated fraction to be applied to specific surface tiles given in irrigtiles.

6.21.9. JULES_RIVERS_PROPS namelist members

This namelist specifies how spatially varying river routing properties should be set.

Note

read_from_dump is not currently implemented for this namelist, meaning that river ancillary variables cannot be read from a dump file. Initial values of river prognostic variables can however be read from a dump file (see JULES_INITIAL).

Note

The grid on which the river routing will run, and on which river routing ancillaries must be provided, could potentially differ from the input/model grid specified in model_grid.nml.

For the duration of this section, the following nomenclature will be used:

  • Model input grid - The full JULES input grid specified in JULES_INPUT_GRID.

  • Land grid - The grid that JULES runs on (not rivers) - this is the grid that includes land points. If JULES is using a 1-D grid internally, the land grid is the notional 2D grid across which the points can be scattered.

  • River routing input grid - The grid on which river routing ancillaries are provided.

Information about the river routing input grid and its relationship to the land grid is specified in this namelist. In all cases river routing is only possible if the land and river grids are regular, in that they have a constant spacing between rows and columns (but see note below about 1D model input grids).

The river routing input grid must always be defined on a 2D grid, as defined through the x and y dimensions of the rivers ancillary file (see x_dim_name and y_dim_name for further details). If the model input is defined on a 1D grid, those points must be a subset of a regular grid (meaning one with constant spacing of points in each of the 2 dimensions) if river routing is to be activated.

JULES calculates runoff on the land grid and this information is then transferred to the river grid by either regridding (when the grids are not coincident) or remapping (between coincident grids). Here coincident means grids of the same resolution and for which points in each grid coincide. Hence land and river grids of different resolution are linked through regridding (interpolation), while a simpler remapping can be used when the gridboxes coincide. Note that functionality to regrid only currently exists for grids that are defined by latitude and longitude coordinates; all other coordinate systems have to be handled through remapping.

Internally JULES converts the river routing input grid to a 1D river routing model grid, with length np_rivers, which is the number of valid routing points in the domain of interest. All river routing output is either defined on the 1D river routing model grid or is regridded to the land grid.

The most satisfactory situation is one in which the areas covered by land and river gridboxes are identical (though the resolutions can differ). In that case all the runoff that is generated on the land is correctly captured by the river network, and each river length has a well-defined input of local runoff. However there are situations in which the user might be prepared to allow other configurations - e.g. if studying a particular catchment, land in headwaters of surrounding catchments might not be covered by the river ancillary.

Members used to define the river routing input grid

JULES_RIVERS_PROPS::coordinate_file
Type:

character

Default:

None

The file from which to read coordinate information for the river routing input grid. This is only used when file includes variable-name templating, i.e. it is only used when ancillary variables will come from multiple files, in which case this variable is used to provide clarity as to where the coordinates are read from.

JULES_RIVERS_PROPS::x_dim_name
Type:

character

Default:

None

The name of the x dimension for the river routing input grid (it may, but does not have to, be the same as x_dim_name). The coordinate system used to define the river input grid must be the same as that used for the main model grid - see l_coord_latlon.

Note

For ASCII files, this can be anything. For NetCDF files, it should be the name of the dimension in file (if that does not include variable-name templating) or in coordinate_file (if file includes templating).

Note

Values for the coordinates along the x dimension of the river routing input grid will be read from the input file to define the river grid, and it is assumed that the file contains a variable with the same name as the dimension (x_dim_name).

JULES_RIVERS_PROPS::y_dim_name
Type:

character

Default:

None

The name of the y dimension for the river routing input grid (it may, but does not have to, be the same as y_dim_name). The coordinate system used to define the river input grid must be the same as that used for the main model grid - see l_coord_latlon.

Note

For ASCII files, this can be anything. For NetCDF files, it should be the name of the dimension in file (if that does not include variable-name templating) or in coordinate_file (if file includes templating).

Note

Values for the coordinates along the y dimension of the river routing input grid will be read from the input file to define the river grid, and it is assumed that the file contains a variable with the same name as the dimension (y_dim_name).

JULES_RIVERS_PROPS::nx_rivers
Type:

integer

Permitted:

>= 2

Default:

None

The size of the x dimension of the river routing input grid.

JULES_RIVERS_PROPS::ny_rivers
Type:

integer

Permitted:

>= 2

Default:

None

The size of the y dimension of the river routing input grid.

Members used to describe the land grid

JULES_RIVERS_PROPS::nx_land_grid
Type:

integer

Permitted:

>= 1

Default:

none

The size of the x dimension of the 2D land grid. This should be large enough to include all land points that are being modelled.

JULES_RIVERS_PROPS::ny_land_grid
Type:

integer

Permitted:

>= 1

Default:

none

The size of the y dimension of the 2D land grid. This should be large enough to include all land points that are being modelled.

JULES_RIVERS_PROPS::land_dx
Type:

real

Default:

None

Permitted:

> 0

The gridbox size in the x direction of the 2D land grid. The units of this are the same as for the model grid - see l_coord_latlon.

JULES_RIVERS_PROPS::land_dy
Type:

real

Default:

None

Permitted:

> 0

The gridbox size in the y direction of the 2D land grid. The units of this are the same as for the model grid - see l_coord_latlon.

JULES_RIVERS_PROPS::x1_land_grid
Type:

real

Default:

none

The x coordinate of the “western-most” (i.e. first) column of gridpoints in the land grid. The units of this are the same as for the model grid - see l_coord_latlon.

JULES_RIVERS_PROPS::y1_land_grid
Type:

real

Default:

none

The y coordinate of the “southern-most” (i.e. first) row of gridpoints in the land grid. The units of this are the same as for the model grid - see l_coord_latlon.

Note

Although the values in this section (nx_land_grid, ny_land_grid, land_dx, land_dy, x1_land_grid and y1_land_grid) describe the land grid, they are also used to calculate the area that will be searched for river points. The area to be searched is the rectangle defined by x=x1_land_grid to x1_land_grid+(nx_land_grid*land_dx), y=y1_land_grid to y1_land_grid+(ny_land_grid*land_dy).

JULES_RIVERS_PROPS::rivers_regrid
Type:

logical

Default:

T

Flag indicating if variables on the land grid need to be regridded (interpolated) to the river routing grid. This is currently only possible for grids that are regular in latitude and longituide. We distinguish between regridding (which is used between land and river grids of different resolution, or the same resolution but staggered relative to one another) and remapping (between consistent grids of the same resolution).

Grids are considered consistent (and therefore regridding is not required) if they are of the same resolution and points on one coincide with points on the other. We do not require that all locations have to be in both grids (though that is desirable), nor do the points need to be presented in the same order in both grids.

TRUE

River routing and land grids differ and regridding is required.

FALSE

River routing and land grids are consistent and regridding is not required.

Note

In principle consistent grids with the same resolution can be handled via regridding, but the recommended approach in that case is to use the simpler remapping.

Warning

Currently, regridding between land and river routing grids must only be used with regular lat/lon grids.

If a 1D model input grid is specified in JULES_INPUT_GRID, it must be possible to define a 2D regular lat/lon grid containing all the points in the model input grid.

An example with the GSWP2 (land points only) forcing data is given below.

JULES_RIVERS_PROPS::rivers_length
Type:

real

Default:

None

The constant size of the rivers grid (m). This value is used in several ways, as explained below.

If the coordinate system used is not latitude and longitude (l_coord_latlon = F) river_length must be provided and its value must be >0. This is used to calculate gridbox areas, assuming square gridboxes.

If the coordinate system used is latitude and longitude, and a run is using RFM (i_river_vn = 2) and/or overbank inundation without hypsometry (l_riv_overbank = T and overbank_model = 1 or 2), rivers_length is again required, but in this case a value <= 0 can be used to trigger calculation of a value based on the latitudinal size of gridboxes (this is so as to mimic the behaviour of older versions of the code). In these cases rivers_length is used as a length scale (the distance between points) for RFM and as a length scale (relative to a gridbox) for overbank inundation.

Members only used with RFM (i_river_vn = 2).

JULES_RIVERS_PROPS::l_use_area
type:

logical

default:

F

Switch to control whether a drainage area ancillary field is used to distinguish between land and river points (for the purpose of setting routing parameter values).

TRUE

An ancillary field will be used to define the area draining to each point. See “area” in List of rivers properties.

FALSE

No ancillary field will be used and all points will be given river parameter values.

Members used to determine how river routing variables are set

JULES_RIVERS_PROPS::file
Type:

character

Default:

None

The file to read river routing properties from.

If use_file is FALSE for every variable, this will not be used.

This file name can use variable name templating.

JULES_RIVERS_PROPS::nvars
Type:

integer

Permitted:

>= 0

Default:

0

The number of river routing property variables that will be provided (see List of rivers properties).

JULES_RIVERS_PROPS::var
Type:

character(nvars)

Default:

None

List of river routing variable names as recognised by JULES (see List of rivers properties). Names are case sensitive.

Note

For ASCII files, variable names must be in the order they appear in the file.

JULES_RIVERS_PROPS::use_file
Type:

logical(nvars)

Default:

T

For each JULES variable specified in var, this indicates if it should be read from the specified file or whether a constant value is to be used.

TRUE

The variable will be read from the file.

FALSE

The variable will be set to a constant value everywhere using const_val below.

JULES_RIVERS_PROPS::var_name
Type:

character(nvars)

Default:

‘’ (empty string)

For each JULES variable specified in var where use_file = TRUE, this is the name of the variable in the file containing the data.

If the empty string (the default) is given for any variable, then the corresponding value from var is used instead.

This is not used for variables where use_file = FALSE, but a placeholder must still be given in that case.

Note

For ASCII files, this is not used - only the order in the file matters, as described above.

JULES_RIVERS_PROPS::tpl_name
Type:

character(nvars)

Default:

None

For each JULES variable specified in var, this is the string to substitute into the file name in place of the variable name substitution string.

If the file name does not use variable name templating, this is not used.

JULES_RIVERS_PROPS::const_val
Type:

real(nvars)

Default:

None

For each JULES variable specified in var where use_file = FALSE, this is a constant value that the variable will be set to at every point.

This is not used for variables where use_file = TRUE, but a placeholder must still be given in that case.

6.21.9.1. List of rivers properties

The following table summarises river routing properties required to run RFM or TRIP river routing algorithms, specified from an ancillary file if use_file = TRUE.

Name

Description

area

Drainage area (in number of grid boxes) draining into a given grid box.

This is used with RFM (i_river_vn = 2) to distinguish between river and land points using the a_thresh parameter. Points with drainage area > a_thresh are treated as rivers, all others as land. These two classes of points use different wave speeds (e.g. cland and criver). Note that these “river” and “land” classes together comprise the total number of river routing points.

If this field is not available, all points are treated as rivers.

The drainage area does not include the grid point itself, and so an extra point must be added where catchment area calculations are required.

direction

Flow direction for each river routing grid box, defining the next grid box into which surface or sub-surface water will be routed.

This is specified as an integer according to [1 = N, 2 = NE, 3 = E, 4 = SE, 5 = S, 6 = SW, 7 = W, 8 = NW].

Although these are referred to via compass directions, they are used as “grid-relative” directions. e.g. “N” means “same column, one row up”, “E” means “one column over, same row”. Thus for a rotated grid (columns do not run S-N on the Earth), the point “same column, one row up” does does not lie immediately N.

Additionally,

9: river mouth (outflow to sea)

10: inland drainage point (an endorheic catchment; no outflow from grid box)

All other values (<1 or >10) are excluded from the river calculations (effectively treated as sea).

Note that at present any river flow at an inland drainage point is NOT added to the soil moisture (in standalone JULES).

sequence

River routing network pathway number.

Used by TRIP river routing only (i.e. i_river_vn = 1,3). See Oki et al. (1999) for details.

latitude_2d

The latitude of each river grid point must be specified. This field is required only if the model coordinates are latitude and longitude, i.e. if l_coord_latlon = FALSE.

longitude_2d

The longitude of each river grid point must be specified. This field is required only if the model coordinates are latitude and longitude, i.e. if l_coord_latlon = FALSE.

6.21.9.2. Example of how to set up the river grid

The following gives an example of how you would set up the namelists to use routing with the GSWP2 forcing data.

The model input grid is the GSWP2 grid, i.e. a land-points-only, 1D grid where points lie on a 1° x 1° grid. The river routing input grid is a 2D 1° x 1° grid.

Since both grids are 1° x 1°, we define the 2D regular lat-lon grid containing the land points to be the river routing input grid, which means we don’t need any regridding of variables.

&JULES_INPUT_GRID
  grid_is_1d    = T,
  npoints       = 15238,
  grid_dim_name = "land"
  # ...
/

&JULES_LATLON
  l_coord_latlon = T,
/

&JULES_RIVERS_PROPS
  # Define the river routing input grid
  x_dim_name = "longitude",
  nx_rivers  = 360,
  y_dim_name = "latitude",
  ny_rivers  = 180,

  # Define the 2D regular lat-lon grid containing the model input grid to be a 2D 1\ |deg| x 1\ |deg| grid
  nx_land_grid = 360,
  ny_land_grid = 180,
  x1_land_grid = -179.5,
  y1_land_grid = -89.5,
  land_dx      = 1.0,
  land_dy      = 1.0,

  # No regridding required since the river routing input grid and the land grid are consistent grids with the same resolution
  rivers_regrid = F
/

See also

References:

  • Bell, V.A. et al. (2007) Development of a high resolution grid-based river flow model for use with regional climate model output. Hydrology and Earth System Sciences. 11 532-549

  • Oki, T., et al (1999) Assessment of annual runoff from land surface models using Total Runoff Integrating Pathways (TRIP). Journal of the Meteorological Society of Japan. 77 235-255

6.21.10. JULES_OVERBANK_PROPS namelist members

This namelist specifies how the river overbank inundation properties should be set.

Note

read_from_dump is not currently implemented for this namelist.

Note

The grid here MUST coincide exactly with the river routing input grid specified in JULES_RIVERS_PROPS.

Members used to determine how overbank inundation variables are set

JULES_OVERBANK_PROPS::file
Type:

character

Default:

None

The file to read overbank inundation properties from (can be the same file as specified in JULES_RIVERS_PROPS).

If use_file is FALSE for every variable, this will not be used.

This file name can use variable name templating.

JULES_OVERBANK_PROPS::nvars
Type:

integer

Permitted:

>= 0

Default:

0

The number of overbank inundation property variables that will be provided (see List of overbank inundation properties).

JULES_OVERBANK_PROPS::var
Type:

character(nvars)

Default:

None

List of overbank inundation variable names as recognised by JULES (see List of overbank inundation properties). Names are case sensitive.

Note

For ASCII files, variable names must be in the order they appear in the file.

JULES_OVERBANK_PROPS::use_file
Type:

logical(nvars)

Default:

T

For each JULES variable specified in var, this indicates if it should be read from the specified file or whether a constant value is to be used.

TRUE

The variable will be read from the file.

FALSE

The variable will be set to a constant value everywhere using const_val below.

JULES_OVERBANK_PROPS::var_name
Type:

character(nvars)

Default:

‘’ (empty string)

For each JULES variable specified in var where use_file = TRUE, this is the name of the variable in the file containing the data.

If the empty string (the default) is given for any variable, then the corresponding value from var is used instead.

This is not used for variables where use_file = FALSE, but a placeholder must still be given in that case.

Note

For ASCII files, this is not used - only the order in the file matters, as described above.

JULES_OVERBANK_PROPS::tpl_name
Type:

character(nvars)

Default:

None

For each JULES variable specified in var, this is the string to substitute into the file name in place of the variable name substitution string.

If the file name does not use variable name templating, this is not used.

JULES_OVERBANK_PROPS::const_val
Type:

real(nvars)

Default:

None

For each JULES variable specified in var where use_file = FALSE, this is a constant value that the variable will be set to at every point.

This is not used for variables where use_file = TRUE, but a placeholder must still be given in that case.

6.21.10.1. List of overbank inundation properties

The following table summarises overbank inundation grid properties, specified from an ancillary file if use_file = TRUE.

Name

Description

logn_mean

Mean of ln(elevation-elev_min) for each grid cell (in units ln(m))

This is only used if overbank_model = 3.

Note that elev_min is DEM minimum, not river/lake bed level (therefore large values close to water bodies can occur in floodplain gridcells).

logn_stdev

Standard deviation of ln(elevation-elev_min) for each grid cell (in units ln(m))

This is only used if overbank_model = 3.

See also

References:

  • Appx B of Lewis HW, Castillo Sanchez JM, Graham J, Saulter A, Bornemann J, Arnold A, Fallmann J, Harris C, Pearson D, Ramsdale S, Martínez de la Torre A, Bricheno L, Blyth E, Bell VA, Davies H, Marthews TR, O’Neill C, Rumbold H, O’Dea E, Brereton A, Guihou K, Hines A, Butenschon M, Dadson SJ, Palmer T, Holt J, Reynard N, Best M, Edwards J & Siddorn J (2018). The UKC2 regional coupled environmental prediction system. Geoscientific Model Development 11:1-42.

6.21.11. JULES_WATER_RESOURCES_PROPS namelist members

This namelist specifies how the water resource ancillary properties should be set.

Members used to determine how water resource variables are set

JULES_WATER_RESOURCES_PROPS::read_from_dump
Type:

logical

Default:

F

TRUE

Populate variables associated with this namelist from the dump file. All other namelist members are ignored.

FALSE

Use the other namelist members to determine how to populate variables.

JULES_WATER_RESOURCES_PROPS::file
Type:

character

Default:

None

The file to read water resource ancillary properties from.

If use_file is FALSE for every variable, this will not be used.

This file name can use variable name templating.

JULES_WATER_RESOURCES_PROPS::nvars
Type:

integer

Permitted:

>= 0

Default:

0

The number of water resource property variables that will be provided (see List of water resources properties).

JULES_WATER_RESOURCES_PROPS::var
Type:

character(nvars)

Default:

None

List of water resource variable names as recognised by JULES (see List of water resources properties). Names are case sensitive.

Note

For ASCII files, variable names must be in the order they appear in the file.

JULES_WATER_RESOURCES_PROPS::use_file
Type:

logical(nvars)

Default:

T

For each JULES variable specified in var, this indicates if it should be read from the specified file or whether a constant value is to be used.

TRUE

The variable will be read from the file.

FALSE

The variable will be set to a constant value everywhere using const_val below.

JULES_WATER_RESOURCES_PROPS::var_name
Type:

character(nvars)

Default:

‘’ (empty string)

For each JULES variable specified in var where use_file = TRUE, this is the name of the variable in the file containing the data.

If the empty string (the default) is given for any variable, then the corresponding value from var is used instead.

This is not used for variables where use_file = FALSE, but a placeholder must still be given in that case.

Note

For ASCII files, this is not used - only the order in the file matters, as described above.

JULES_WATER_RESOURCES_PROPS::tpl_name
Type:

character(nvars)

Default:

None

For each JULES variable specified in var, this is the string to substitute into the file name in place of the variable name substitution string.

If the file name does not use variable name templating, this is not used.

JULES_WATER_RESOURCES_PROPS::const_val
Type:

real(nvars)

Default:

None

For each JULES variable specified in var where use_file = FALSE, this is a constant value that the variable will be set to at every point.

This is not used for variables where use_file = TRUE, but a placeholder must still be given in that case.

6.21.11.1. List of water resources properties

The following table summarises ancillary fields for the water resources code, specified from an ancillary file if use_file = TRUE.

Name

Description

conveyance_loss

Fraction of water that is lost during conveyance from source to user.

irrig_eff

Irrigation efficiency. This is only used if l_water_irrigation = TRUE.

sfc_water_frac

Target for the fraction of demand that will be met from surface water (rather than groundwater).

6.21.12. URBAN_PROPERTIES namelist members

URBAN_PROPERTIES::file
Type:

character

Default:

None

The file to read urban properties from.

If use_file (see below) is FALSE for every variable, this will not be used.

This file name can use variable name templating.

URBAN_PROPERTIES::nvars
Type:

integer

Permitted:

>= 0

Default:

0

The number of urban property variables that will be provided.

The required variables depend on whether MORUSES is used or not:

  • If MORUSES is on, all variables must be given. However, depending on the configuration of MORUSES, not all given variables will be used. Those that will not be used could be set to constant values to avoid setting them from file.

  • If MORUSES is not on, only wrr is required.

URBAN_PROPERTIES::var
Type:

character(nvars)

Default:

None

List of urban property variable names as recognised by JULES (see List of urban properties). Names are case sensitive.

Note

For ASCII files, variable names must be in the order they appear in the file.

URBAN_PROPERTIES::use_file
Type:

logical(nvars)

Default:

T

For each JULES variable specified in var, this indicates if it should be read from the specified file or whether a constant value is to be used.

TRUE

The variable will be read from the file.

FALSE

The variable will be set to a constant value everywhere using const_val below.

URBAN_PROPERTIES::var_name
Type:

character(nvars)

Default:

‘’ (empty string)

For each JULES variable specified in var where use_file = TRUE, this is the name of the variable in the file containing the data.

If the empty string (the default) is given for any variable, then the corresponding value from var is used instead.

This is not used for variables where use_file = FALSE, but a placeholder must still be given.

Note

For ASCII files, this is not used - only the order in the file matters, as described above.

URBAN_PROPERTIES::tpl_name
Type:

character(nvars)

Default:

None

For each JULES variable specified in var, this is the string to substitute into the file name in place of the variable name substitution string.

If the file name does not use variable name templating, this is not used.

URBAN_PROPERTIES::const_val
Type:

real(nvars)

Default:

None

For each JULES variable specified in var where use_file = FALSE, this is a constant value that the variable will be set to at every point in every layer.

This is not used for variables where use_file = TRUE, but a placeholder must still be given.

6.21.12.1. List of urban properties

All of the urban property variables listed below are expected to have no levels dimensions and no time dimension.

Variable name

Description [1]

Notes

wrr

Repeating width ratio (or canyon fraction, W/R)

If l_urban_empirical = TRUE then this is updated with calculated values.

The following apply to MORUSES only

hwr

Height-to-width ratio (H/W)

See for wrr above.

hgt

Building height (H)

See for wrr above.

ztm

Effective roughness length of urban areas

If l_moruses_macdonald = TRUE then this is updated with calculated values.

disp

Displacement height

See for ztm above.

albwl

Wall albedo

Data only used if l_moruses_albedo = TRUE.

albrd

Road albedo

See for albwl above.

emisw

Wall emissivity

Data only used if l_moruses_emissivity = TRUE.

emisr

Road emissivity

See for emisw above.

Footnotes

6.21.13. JULES_CO2 namelist members

JULES_CO2::read_from_dump
Type:

logical

Default:

F

TRUE

Populate variables associated with this namelist from the dump file. All other namelist members are ignored.

FALSE

Use the other namelist members to determine how to populate variables.

JULES_CO2::co2_mmr
Type:

real

Default:

5.241e-4

Concentration of atmospheric CO2, expressed as a mass mixing ratio.

6.21.14. JULES_FLAKE namelist members

JULES_FLAKE::read_from_dump
Type:

logical

Default:

F

TRUE

Populate variables associated with this namelist from the dump file. All other namelist members are ignored.

FALSE

Use the other namelist members to determine how to populate variables.

JULES_FLAKE::file
Type:

character

Default:

None

The file to read the FLake parameters from.

JULES_FLAKE::nvars
Type:

integer

Permitted:

>= 0

Default:

0

The number of FLake variables that will be provided. (At the moment lake depth is the only variable that needs to be provided).

JULES_FLAKE::var
Type:

character(nvars)

Default:

None

List of FLake parameter variable names as recognised by JULES (see List of FLake parameters). Names are case sensitive.

Note

For ASCII files, variable names must be in the order they appear in the file.

JULES_FLAKE::var_name
Type:

character(nvars)

Default:

‘’ (empty string)

For each JULES variable specified in var where use_file = TRUE, this is the name of the variable in the file containing the data.

If the empty string (the default) is given for any variable, then the corresponding value from var is used instead.

This is not used for variables where use_file = FALSE, but a placeholder must still be given in that case.

Note

For ASCII files, this is not used - only the order in the file matters, as described above.

JULES_FLAKE::tpl_name
Type:

character(nvars)

Default:

None

For each JULES variable specified in var, this is the string to substitute into the file name in place of the variable name substitution string.

If the file name does not use variable name templating, this is not used.

JULES_FLAKE::use_file
Type:

logical(nvars)

Default:

T

For each JULES variable specified in var, this indicates if it should be read from the specified file or whether a constant value is to be used.

TRUE

The variable will be read from the file.

FALSE

The variable will be set to a constant value everywhere using const_val below.

JULES_FLAKE::const_val
Type:

real(nvars)

Default:

5.0m

For each JULES variable specified in var where use_file = FALSE, this is a constant value that the variable will be set to for every point or gridbox.

This is not used for variables where use_file = TRUE, but a placeholder must still be given.

6.21.14.1. List of FLake parameters

Name

Description

lake_depth

For each gridbox, the depth of the lakes should be provided in meters.

Note that for deep lakes FLake will assume an artificial lake bottom at 50m depth.

6.21.15. References for ancillaries