Model parameter reference#

This section is a comprehensive reference for model input parameters, including what file(s) they should be specified in, what their defaults are, and ideas for where to source them from.

For information on how to compile and input these parameters into the model, see Input data.

The Name(dimensions) column includes the following dimensions for use in the NetCDF file:

  • t: Time dimension

  • x, y: Spatial dimensions

  • d: Number of spatial dimensions, always equal to 2

  • w: Index of inflow to a grid cell, maximum of 7

  • box: Used to define the bounding box of the grid cells, always equal to 4 to represent each side of the bounding box

  • p: Index of point source within a grid cell

  • l: Index representing land use categories

A handful of 1D arrays are present in the constants file. Note that the constants namelist file also requires allocatable array size variables to define the length of these arrays - see allocatable_array_sizes group. These are handled automatically by the NanoFASE data module and not included in this reference. The array dimensions used in the constant files are:

  • nm: NM size classes, length must equal n_nm_size_classes in the model config file.

  • spm: Suspended sediment size classes, length must equal n_spm_size_classes in the model config file.

  • fc: Sediment fractional compositions, length must equal n_fractional_compositions in the model config file.

  • soil_l: Soil layers, length must equal n_soil_layers in the model config file.

  • sed_l: Sediment layers, length must equal n_sediment_layers in the model config file.

The Units columns gives the internal model units, and therefore those required by the NetCDF and constants namelist. “dt” is the length of the model timestep. For example, if the model has a timestep of one day, then “kg/dt” means “kg/day”. The NanoFASE data module is capable of converting units of spatial data (not constants), and therefore any reasonable units can be used for the data input to this - as long as these units are specified in the config file.

The Specified in column indicates which file the model parameter should be included in:

  • data.nc The spatio(temporal) NetCDF file input directly to the model.

  • constants.nml The constants namelist file input directly to the model.

  • config.yaml The main config file of the NanoFASE data module, which lists spatio(temporal) variables that are compiled into the NetCDF file. Though the data themselves aren’t in this file, it provides the path to where the data are.

  • constants.yaml The constants YAML file that the NanoFASE data module converts to the constants namelist file.

Data in the constants file are grouped, and this is denoted in the Name(dimensions) column as group parameter_name.

The Potential source column gives ideas for where the data may be sourced from. These are particularly relevant to European scenarios.

Environmental parameters#

Meteorological and hydrological parameters#

Surface water parameters#

group Name(dimensions)

Specified in

Data type

Required or optional

Model units

Description

Potential source

is_estuary(y, x)

data.nc config.yaml

ubyte

Required if config option include_estuary = .true.

-

Boolean variable dictating whether a grid cell’s waterbodies are estuaries (instead of freshwaters). 0 represents false, 1 represents true. This parameter is only required if the config option include_estuary is .true., otherwise the model assumes there are no estuaries

Could be deduced from land use maps, such as CORINE Land Cover

water river_meandering_factor

constants.nml constants.yaml

float

Optional, defaults to calculation based on grid size

-

Meandering factor to account for rivers not being straight lines. If not present, meandering factor is estimated from the grid cell size, according to \(f_m = 1.024 - 0.077 * \ln (200 / (dx + dy))\) [3].

Could be deduced from river network vectors, such as OS Open Rivers

water min_water_temperature
max_water_temperature

constants.nml constants.yaml

float

Optional, defaults to 4oC (min) or 21oC (max)

oC

Average minimum or maximum water temperature across the year. Calculates daily water temperature timeseries using a cosine curve based on these values.

water min_water_temperature_day_of_year

constants.nml constants.yaml

int

Optional, defaults to 32

-

Day of the year on which the minimum water temperature usually occurs, as an integer. Defaults to 32, which represents the first day of February. Used along with min/max water temperature to calculate water temperature timeseries.

water shear_rate

constants.nml constants.yaml

float

Optional, defaults to 10 /s

/s

Shear rate at the water-sediment interface, used for calculating resuspension. Defaults to 10 /s [1].

water estuary_tidal_m2

constants.nml constants.yaml

float

Required if model domain has estuary

-

The M2 component of the tidal harmonics.

Estuary authorities such as the Thames Port Authority

water estuary_tidal_s2

constants.nml constants.yaml

float

Required if model domain has estuary

-

The S2 component of the tidal harmonics.

Estuary authorities such as the Thames Port Authority

water estuary_mouth_coords

constants.nml constants.yaml

float

Required if model domain has estuary

m

Position of the estuary mouth as (x, y) coordinates. Used to calculute upstream estuary dimensions based on exponential regression dependent on distance to estuary mouth.

Estuary authorities such as the Thames Port Authority

water estuary_mean_depth_expa
estuary_mean_depth_expb
estuary_width_expa
estuary_width_expb

constants.nml constants.yaml

float

Required if model domain has estuary

-

Parameters a and b controlling the dependence of the estuary mean depth or width on distance to the mouth. For example, parameters estuary_width_expa and estuary_width_expb are used to calculate the width of the estuary upstream by a distance of d by the relation width = estuary_width_expa * exp(-estuary_width_expb * d).

Could be calibrated from vector map data showing width of rivers, or estuary monitoring data with depths

water estuary_meandering_factor

constants.nml constants.yaml

float

Optional, defaults to calculation based on grid size

-

Meandering factor to account for estuaries not being straight lines. If not present, meandering factor is estimated from the grid cell size, according to \(f_m = 1.024 - 0.077 * \ln (200 / (dx + dy))\) [3].

Could be deduced from land use maps, such as CORINE Land Cover

Soil and terrestrial parameters#

group Name(dimensions)

Specified in

Data type

Required or optional

Model units

Description

Potential source

soil_bulk_density(y, x)

data.nc config.yaml

float

Required

kg/m3

Bulk density of the soil profile

ESDAC Soil Bulk Density

soil_water_content_field_capacity(y, x)

data.nc config.yaml

float

Required

cm3/cm3

Water content of the soil at field capacity, as a fraction. Standard name: volume_fraction_of_condensed_water_in_soil_at_field_capacity

ESDAC Soil Hydraulic Properties

soil_water_content_saturation(y, x)

data.nc config.yaml

float

Required

cm3/cm3

Water content of the soil at saturation, as a fraction. Standard name: volume_fraction_of_condensed_water_in_soil

ESDAC Soil Hydraulic Properties

soil_hydraulic_conductivity(y, x)

data.nc config.yaml

float

Required

m/s

The hydraulic conductivity of the soil. Standard name: soil_hydraulic_conductivity_at_saturation

ESDAC Soil Hydraulic Properties

soil_texture_clay_content(y, x) soil_texture_sand_content(y, x) soil_texture_silt_content(y, x) soil_texture_coarse_frag_content(y, x)

data.nc config.yaml

float

Required

kg/kg

Clay, sand, silt or coarse fragment content of the soil, as a fraction.

ESDAC Topsoil Physical Properties

soil_usle_c_factor(y, x) soil_usle_p_factor(y, x) soil_usle_ls_factor(y, x)

data.nc config.yaml

float

Required

-

Universal Soil Loss Equation cover management (C), support practice (P) and slope length and steepness (LS) factors.

ESDAC C-factor, P-factor and LS-factor

land_use(l, y, x)

data.nc

float

Required

-

The fraction of the grid cell that is each of the NanoFASE model land use categories, indexed by l. See here for land use categories. This is an internal parameter only required in the model NetCDF file. The NanoFASE data module takes a more conventional land use raster (see next row) and converts it to this parameter.

CORINE Land Cover raster, pre-processed by the NanoFASE data module

land_use(y, x)

config.yaml

int

Required

-

Raster of land use classes, which are mapped to NanoFASE land use categories. If data are CORINE, the mapping should work automatically - see Land use config. This is the only spatial data that can be higher resolution than the model resolution (the higher the resolution, the more accurate that the above model parameter land_use(l, y, x) will be)

CORINE Land Cover raster

soil darcy_velocity

constants.nml constants.yaml

float

Optional, defaults to 9e-6 m/s

m/s

The Darcy approach velocity is used to calculate the attachment rate of NMs. A default of 9e-6 m/s is used [5, 7].

soil default_porosity

constants.nml constants.yaml

float

Required

-

Porosity of the soil profile.

soil particle_density

constants.nml constants.yaml

float

Required

kg/m3

Average density of soil particles.

soil erosivity_a1
erosivity_a2
erosivity_a3
erosivity_b

constants.nml constants.yaml

float

Required

-

These four parameters are used to calculate a soil erosivity factor for use in predicting soil erosion yields. Based on a Revised Universal Soil Loss (RUSLE), with R-factor calculated from rainfall kinetic energy (see Davison et al. [2]) and K-factor based on a modified Morgan-Morgan-Finney [6].

earthworm-densities arable
coniferous
deciduous
grassland
heathland
urban_capped
urban_gardens
urban_parks

constants.nml constants.yaml

float

Required

individuals/m2

Density of earthworms in each NanoFASE land use category.

See here for reasonable estimates for the UK. Could be deduced from earthworm density maps, e.g. for Europe.

earthworm-densities vertical_distribution(soil_l)

constants.nml constants.yaml

float

Required

-

Percentage of the earthworms in each soil layer, used to distribute the densities across the soil profile.

Sediment parameters#

group Name(dimensions)

Specified in

Data type

Required or optional

Model units

Description

sediment porosity(sed_l)

constants.nml constants.yaml

float

Required

-

Average sediment porosity

sediment initial_mass(spm)

constants.nml constants.yaml

float

Required

kg/m2

The mass of each sediment size class at the start of the model run.

sediment fractional_composition_distribution(fc)

constants.nml constants.yaml

float

Required

-

The default distribution of sediment mass across fractional compositions, as a percentage.

sediment default_spm_size_distribution(spm)

constants.nml constants.yaml

float

Required

-

The default size distribution applied to sediment particles, as a percentage, when there is no other information, such as from soil erosion yields.

sediment default_matrixembedded_distribution_to_spm(spm)

constants.nml constants.yaml

float

Required

-

The default size distribution that is used to proportion matrix-embedded releases of NM to sediment size classes.

sediment spm_density_by_size_class(spm)

constants.nml constants.yaml

float

Required

kg/m3

The density of the sediment in each size class.

Nanomaterial parameters#

group Name(dimensions)

Specified in

Data type

Required or optional

Model units

Description

nanomaterial nm_density

constants.nml constants.yaml

float

Required

kg/m3

The average density of the nanomaterial modelled

nanomaterial default_nm_size_distribution(nm)

constants.nml constants.yaml

float

Required

-

Used to apply a proportion of NM mass in each size class to emissions data, as a percentage

soil soil_attachment_efficiency

constants.nml constants.yaml

float

Optional, defaults to 0 if corresponding parameter not present in NetCDF file

-

The attachment efficiency represents the probability that a collision between a nanoparticle and the soil matrix results in the sticking (attachment) of the nanoparticle. If a spatial version of this parameter is not present in the NetCDF file, this constant value is used.

soil_attachment_rate(y, x)

data.nc config.yaml

float

Optional, soil_attachment_efficiency used to calculate rate if not present

/s

The rate at which nanoparticles attach to the soil matrix

soil_attachment_efficiency(y, x)

data.nc config.yaml

float

Optional, value in constants file used if not present

-

The attachment efficiency represents the probability that a collision between a nanoparticle and the soil matrix results in the sticking (attachment) of the nanoparticle

soil hamaker_constant

data.nc config.yaml

float

Required

J

Soil Hamaker constant, which is used to calculate the attachment rate of NMs.

water river_attachment_efficiency

constants.nml constants.yaml

float

Required

-

The attachment efficiency represents the probability that a collision between a nanoparticle and suspended particulate matter in rivers results in the sticking (attachment) of the nanoparticle, thus yielding is available for sediment deposition.

water k_diss_pristine
k_diss_transformed

constants.nml constants.yaml

float

Optional, defaults to 0

/s

Dissolution rate of pristine or transformed NMs.

water estuary_attachment_efficiency

constants.nml constants.yaml

float

Required if model domain has estuary

-

The attachment efficiency represents the probability that a collision between a nanoparticle and suspended particulate matter in estuaries results in the sticking (attachment) of the nanoparticle, thus yielding is available for sediment deposition.

Emissions#

Name(dimensions)

Specified in

Data type

Required or optional

Model units

Description

emissions_areal_water_pristine(y, x)
emissions_areal_water_transformed(y, x)
emissions_areal_water_matrixembedded(y, x)
emissions_areal_water_dissolved(y, x)

data.nc config.yaml

float

Optional, defaults to 0

kg/m2/dt

Diffuse source emissions of pristine, transformed or matrix-embedded NM to waters.

emissions_areal_soil_pristine(y, x)
emissions_areal_soil_transformed(y, x)
emissions_areal_soil_matrixembedded(y, x)
emissions_areal_soil_dissolved(y, x)

data.nc config.yaml

float

Optional, defaults to 0

kg/m2/dt

Diffuse source emissions of pristine, transformed or matrix-embedded NM to soils.

emissions_atmospheric_drydepo_pristine(y, x)
emissions_atmospheric_drydepo_transformed(y, x)
emissions_atmospheric_drydepo_matrixembedded(y, x)
emissions_atmospheric_drydepo_dissolved(y, x)

data.nc config.yaml

float

Optional, defaults to 0

kg/m2/dt

Emissions of pristine, transformed or matrix-embedded NM via atmospheric dry deposition. Assumed to be split between soils and water according to the surface area of these compartments within each grid cell.

emissions_atmospheric_wetdepo_pristine(y, x)
emissions_atmospheric_wetdepo_transformed(y, x)
emissions_atmospheric_wetdepo_matrixembedded(y, x)
emissions_atmospheric_wetdepo_dissolved(y, x)

data.nc config.yaml

float

Optional, defaults to 0

kg/m2/dt

Emissions of pristine, transformed or matrix-embedded NM via atmospheric wet deposition. Assumed to be split between soils and water according to the surface area of these compartments within each grid cell.

emissions_point_water_pristine(p, t, y, x)
emissions_point_water_transformed(p, t, y, x)
emissions_point_water_matrixembedded(p, t, y, x)
emissions_point_water_dissolved(p, t, y, x)

data.nc config.yaml

float

Optional, defaults to 0

kg/dt

Point source emissions of pristine, transformed or matrix-embedded NM to waters. The dimension p represents the number of point sources within a grid cell. See Point source emissions and temporal profiles for how point source emissions should be specified in the NanoFASE data module, including specification of a temporal profile via a separate sidecar file.

emissions_point_water_pristine_coords(d, p, y, x)
emissions_point_water_transformed_coords(d, p, y, x)
emissions_point_water_matrixembedded_coords(d, p, y, x)
emissions_point_water_dissolved_coords(d, p, y, x)

data.nc

float

Required for one form (pristine, transformed etc) if value given for corresponding point source.

m

The projected (x, y) coordinates of the point source with same p, y, x indices. Only one coordinate is required across the different forms (pristine, transformed, matrix-embedded and dissolved), and therefore this variable only needs to be provided one. If coordinates for multiple forms are specified, the model will use only one in order of preference: dissolved, transformed, matrix-embedded, pristine. For example, if emissions_point_water_pristine_coords and emissions_point_water_dissolved_coords are provided, the value for emissions_point_water_dissolved_coords will be used for all of the forms from this point source. Not required in NanoFASE data module as data are provided by shapefiles (see Point source emissions and temporal profiles).

Calibration parameters#

The calibration parameters relate to sediment dynamics, but are included in a separate table for ease of reference. They can all either be specified as spatial or constant, with the spatial version being used preferentially if both are present.

Generally, the model should be calibrated against observed sediment concentrations using these parameters. For example, for the UK, the Environment Agency Water Quality Data Archive could be used.

group Name(dimensions)

Specified in

Data type

Required or optional

Model units

Description

resuspension_alpha(y, x)

data.nc config.yaml

float

Optional, defaults to value in constants

-

Shear velocity coefficient, used to calculate resuspension flux.

water resuspension_alpha

constants.nml constants.yaml

float

Required if not present in spatial data

-

As above

water resuspension_alpha_estuary

constants.nml constants.yaml

float

Optional, defaults to water . resuspension_alpha

-

As above, for estuaries

resuspension_beta(y, x)

data.nc config.yaml

float

Optional, defaults to value in constants

s2/kg

Entrainment coefficient, used to calculate resuspension flux. Corresponds to parameter \(a_8\) in Lazar et al. [4].

water resuspension_beta

constants.nml constants.yaml

float

Required if not present in spatial data

s2/kg

As above

water resuspension_beta_estuary

constants.nml constants.yaml

float

Optional, defaults to water . resuspension_beta

s2/kg

As above, for estuaries

deposition_alpha(y, x)

data.nc config.yaml

float

Optional, defaults to value in constants

-

Calibration parameter used to control sediment deposition. Corresponds to the parameter set to 38.1 in Equation 11 of Zhiyao et al. [8].

water deposition_alpha

constants.nml constants.yaml

float

Optional, defaults to 38.1

-

As above

deposition_beta(y, x)

data.nc config.yaml

float

Optional, defaults to value in constants

-

Calibration parameter used to control sediment deposition. Corresponds to the parameter set to 0.93 in Equation 11 of Zhiyao et al. [8].

water deposition_beta

constants.nml constants.yaml

float

Optional, defaults to 0.93

-

As above

bank_erosion_alpha(y, x)

constants.nml constants.yaml

float

Optional, defaults to value in constants

kg/m

Bank erosion scaling factor, used to calculate sediment yield from bank erosion. Corresponds to parameter \(a_9\) in Lazar et al. [4].

water bank_erosion_alpha

constants.nml constants.yaml

float

Optional, defaults to 1e-9

kg/m

As above

bank_erosion_beta(y, x)

data.nc config.yaml

float

Optional, defaults to value in constants

-

Bank erosion non-linear coefficient, used to calculate sediment yield from bank erosion. Corresponds to parameter \(a_{10}\) in Lazar et al. [4].

water bank_erosion_beta

constants.nml constants.yaml

float

Optional, defaults to 1.0

-

As above

sediment_transport_a(y, x)

data.nc config.yaml

float

Optional, defaults to value in constants

kg/m2/km2

Sediment transport capacity scaling factor. Corresponds to parameter \(a_4\) in Lazar et al. [4].

soil sediment_transport_a

constants.nml constants.yaml

float

Optional, defaults to 2e-9

kg/m2/km2

As above

sediment_transport_b(y, x)

data.nc config.yaml

float

Optional, defaults to value in constants

m2/s

Sediment transport capacity direct runoff threshold. Corresponds to parameter \(a_5\) in Lazar et al. [4].

soil sediment_transport_b

constants.nml constants.yaml

float

Optional, defaults to 0

m2/s

As above

sediment_transport_c(y, x)

data.nc config.yaml

float

Optional, defaults to value in constants

-

Sediment transport capacity non-linear coefficient. Corresponds to parameter \(a_6\) in Lazar et al. [4].

soil sediment_transport_c

constants.nml constants.yaml

float

Optional, defaults to 0.2

-

As above

Secondary derived variables#

The spatial variables that are derived by the NanoFASE data module, and therefore required in the NetCDF file but not as input to the data module, are documented here: Secondary derived variables.