4.7 Simulation Class: Inorganics

If the inorganics simulation class is specified with no subsequent constituent model blocks, then a simulation will be automatically constructed using this inorganics class, and populated with library defaults for all parameters. Computed variables will be:

  • Dissolved oxygen
  • Silicate
  • Ammonium
  • Nitrate
  • Filterable reactive phosphorus
  • One phytoplankton group named ‘dummy’ that uses the basic phytoplankton constituent model

4.7.1 Prerequisites

The inorganics simulation class requires simulation of the following in TUFLOW FV:

  • Hydrodynamics, in either two or three dimensions (including any internal one dimensional structures if present)
  • Salinity
  • Temperature
  • Heat module on (i.e. meteorological forcing is required)

Simulation of suspended sediment (via TUFLOW FV’s sediment transport module) is required only if adsorbed phosphorus is to be simulated by the WQ Module. This is affected through specification of the adsorbed phosphorus constituent model within the phosphorus constituent model class.

4.7.2 Part 1: Simulation specification

The inorganics simulation class is set via

Simulation Class == Inorganics

The other commands in this part are not specific to this simulation class. See section 4.5.1.

4.7.3 Part 2: Constituent model specification

As per Tables 2.2 and 2.3, there are several constituent model classes available within the inorganics simulation class. The commands for each are described following.

4.7.3.1 Model class: Oxygen

4.7.3.1.1 Constituent model: O2

The commands for this constituent model are described in Section 4.6.3.1.1.

4.7.3.2 Model class: Silicate

4.7.3.2.1 Constituent model: Si

This constituent model is specified as:

Silicate Model == Si

Minimum and maximum concentrations are specified as:

Silicate Min Max == \(\left[Si\right]_{min}^{Si}\), \(\left[Si\right]_{max}^{Si}\)

Global benthic flux parameters (used in Equation (E.1)) are specified as:

Silicate Benthic == \(K_{sed-O_2}^{Si}\), \(\theta_{sed}^{Si}\)

Although not strictly necessary, the use of “silicate” to prefix the above block commands is deliberate so as to maintain consistency of command style with other constituent model blocks that include more than one computed variable, such as nitrogen, phosphorus and organics.

Silicate sediment flux calculations are set to be dependent on dissolved oxygen concentrations by default. Although not recommended, the following will switch off this dependence by setting the term labelled “Influence of oxygen” in Equation (E.1) to a value of 1.0.

Oxygen == OFF

This constituent model block must be terminated using the command:

End Silicate Model

4.7.3.3 Model class: Inorganic nitrogen

4.7.3.3.1 Constituent model: AmmoniumNitrate

This constituent model is specified as:

Inorganic Nitrogen Model == AmmoniumNitrate

Minimum and maximum concentrations for both ammonium and nitrate are specified as:

Ammonium Min Max == \(\left[NH_4\right]_{min}^{NH_4}\), \(\left[NH_4\right]_{max}^{NH_4}\)

Nitrate Min Max == \(\left[NO_3\right]_{min}^{NO_3}\), \(\left[NO_3\right]_{max}^{NO_3}\)

Global benthic flux parameters (used in Equation (F.1)) for ammonium and nitrate are specified as:

Ammonium Benthic == \(K_{sed-O_2}^{NH_4}\), \(\theta_{sed}^{NH_4}\)

Nitrate Benthic == \(K_{sed-O_2}^{NO_3}\), \(\theta_{sed}^{NO_3}\)

Nitrification parameters (used in (F.3) and therefore (F.4)) are set in a single command as:

Nitrification == \(R_{nitrif}^{NH_4}\), \(K_{nitrif-O_2}^{NH_4}\), \(\theta_{nitrif}^{NH_4}\)

Denitrification parameters (used in Equation (F.5) or Equation (F.6)) are also set in a single command as:

Denitrification == Michaelis Menten, \(R_{denit}^{NO_3}\), \(K_{denit-O_2-MM}^{NO_3}\), \(\theta_{denit}^{NO_3}\)

or

Denitrification == Exponential, \(R_{denit}^{NO_3}\), \(K_{denit-O_2-exp}^{NO_3}\), \(\theta_{denit}^{NO_3}\)

The first argument (either “Michaelis Menten” or “Exponential”) activates a different denitrification model (Equation (F.5) or Equation (F.6), respectively).

Anaerobic oxidation of ammonium parameters (used in Equation (F.10)) are also set in a single command as:

Anaerobic Oxidation Of Ammonium == \(R_{anmx}^{NH_4,NO_3}\), \(K_{anmx-NH_4}^{NH_4,NO_3}\), \(K_{anmx-NO_3}^{NH_4,NO_3}\)

Dissimilatory reduction of nitrate to ammonium parameters (used in Equation (F.11)) are set in a single command as:

Diss Nitrate Reduction To Ammonium == \(R_{DRNA}^{NO_3}\), \(K_{DRNA-O_2}^{NO_3}\)

Ammonium and nitrate sediment flux, nitrification, denitrification, anammox and DRNA calculations are all set to be dependent on dissolved oxygen concentrations by default. Although not recommended, the following will switch off this dependence for all these processes.

Oxygen == OFF

This command overrides any previously specified values of \(K_{sed-O_2}^{NH_4}\), \(K_{sed-O_2}^{NO_3}\), \(K_{nitrif-O_2}^{NH_4}\), \(K_{denit-O_2-MM}^{NO_3}\) and \(K_{denit-O_2-exp}^{NO_3}\). It should be specified after all other related commands if the influence of oxygen on nitrogen processes is to be switched off. Setting this command to ‘OFF’ will completely disable anammox and DRNA calculations.

Atmospheric deposition parameters (used in Equations (F.13), (F.14), (F.17) and (F.18)) are set via the command:

Atmospheric Deposition == \(\left[TN\right]_{rain}\), \(R_{atm-dry}^{TN}\), \(f_{TN}^{NO_3}\)

The same split of TN into ammonium and nitrate is applied to both \(\left[TN\right]_{rain}\) and \(R_{atm-dry}^{TN}\).

This constituent model block must be terminated using the command:

End Inorganic Nitrogen Model

4.7.3.4 Model class: Inorganic phosphorus

4.7.3.4.1 Constituent model: FRPhs

This constituent model is specified as:

Inorganic Phosphorus Model == FRPhs

Minimum and maximum concentrations for FRP are specified as:

FRP Min Max == \(\left[FRP\right]_{min}^{FRP}\), \(\left[FRP\right]_{max}^{FRP}\)

Global benthic flux parameters (used in Equation (G.1)) are specified as:

FRP benthic == \(K_{sed-O_2}^{FRP}\), \(\theta_{sed}^{FRP}\)

FRP sediment flux calculations are set to be dependent on dissolved oxygen concentrations by default. Although not recommended, the following will switch off this dependence by setting the term labelled “Influence of oxygen” in Equation (G.1) to a value of 1.0.

Oxygen == OFF

Wet atmospheric deposition parameters (used in Equation (G.2)) are set via the command:

Atmospheric Deposition == \(\left[FRP\right]_{rain}\)

An additional parameter for dry atmospheric deposition is required in the FRPhsAds constituent model (see Section 4.7.3.4.2).

This constituent model block must be terminated using the command:

End Inorganic Phosphorus Model

4.7.3.4.2 Constituent model: FRPhsads

This constituent model is specified as:

Inorganic Phosphorus Model == FRPhsAds

The TUFLOW FV Sediment Transport (ST) Module must be used to simulate at least one sediment fraction in order to use this WQ Module constituent model.

In addition to the commands described in Section 4.7.3.4.1, the following commands are available in this constituent model.

Minimum and maximum concentrations for adsorbed FRP are specified as:

FRP Ads Min Max == \(\left[FRPads\right]_{min}^{FRPads}\), \(\left[FRPads\right]_{max}^{FRPads}\)

Two FRP adsorption models are available, as per Equations (G.6) and (G.7). These require specification of one (linear) or two (quadratic) parameters, respectively after specification of the model to be used:

Adsorption == Linear, \(K_{ads-L}^{FRP}\)

or

Adsorption == Quadratic, \(K_{ads-Q}^{FRP}\), \(Q_{max}^{FRP}\)

The settling velocity of adsorbed phosphorus is set as follows. Future releases of the WQ Module will dynamically link this settling velocity to the calculations of the TUFLOW FV ST Module.

Settling == \(V_{settle}^{FRPads}\)

Dry atmospheric deposition of FRP is activated in this simulation model (used in Equation (G.3)) and is specified via the same command as wet deposition, but with one additional argument. This additional argument is ignored if the FRPhsAds constituent model has not been set:

Atmospheric Deposition == \(\left[FRP\right]_{rain}\), \(R_{atm-dry}^{FRP}\)

This constituent model block must be terminated using the command:

End Inorganic Phosphorus Model

4.7.3.5 Model class: Phytoplankton

Given the large number of potential commands and options for phytoplankton simulation, horizontal rules have been used to separate subsections below for clarity.

4.7.3.5.1 Constituent model: Basic

This constituent model is specified as:

Phyto Model == Basic, groupname

groupname’ is any user specified phytoplankton group name that:

  • Uses only alphanumeric characters
  • Has no spaces
  • Excludes the keywords ‘COM’ and ‘PHYTO’, or any combination of letters already included in a standard computed variable name, such as “INT_N_”, “INT_P” or “_rho“, and
  • Is not the same as any other group name

Minimum and maximum concentrations for a phytoplankton group are specified as follows. No prefix keyword (as was the case for constituents such as “ammonium”) is required:

Min Max == \(\left[PHY\right]_{min}^{PHY}\), \(\left[PHY\right]_{max}^{PHY}\)


4.7.3.5.1.1 Temperature limitation

Temperature limitation can be specified by one of the following models:

  • None (no temperature limitation applied)

  Temperature Limitation == None

  or

  • Standard (used in Equations (J.1) through to (J.8))

  Temperature limitation == Standard, \(T_{std}^{phy}\), \(T_{opt}^{phy}\), \(T_{max}^{phy}\)


4.7.3.5.1.2 Salinity limitation

Salinity limitation can be specified by one of the following models. All functions can be applied to either (not both) primary productivity or respiration, except for the estuarine limitation model which can only be applied to primary productivity. Specifically:

The available models are as follows:

  • None (no salinity limitation applied)

  Salinity Limitation == None

  or

  • Fresh (used in Equation (J.27))

  Salinity Limitation == Fresh, \(S_{opt-fresh}^{phy}\), \(S_{max-fresh}^{phy}\), \(L_{max-fresh}^{phy}\)

  or

  • Marine (used in Equation (J.30))

  Salinity Limitation == Marine, \(S_{opt-marine}^{phy}\), \(L_{zero-marine}^{phy}\)

  or

  • Mixed (used in Equation (J.33))

  Salinity Limitation == Mixed, \(S_{opt-mix}^{phy}\), \(S_{max-mix}^{phy}\), \(L_{zero-mix}^{phy}\)

  or

  • Estuarine (used in Equation (J.36))

  Salinity Limitation == Estuarine, \(S_{opt-est}^{phy}\), \(S_{max-est}^{phy}\), \(P_{est}^{phy}\)


4.7.3.5.1.3 Light limitation

Light limitation can be specified by one of the following models:

  • Basic (used in Equation (J.19))

  Light Limitation == Basic, \(Ke^{phy}\), \(I_{K-bas}\)

  or

  • Monod (used in Equation (J.20))

  Light Limitation == Monod, \(Ke^{phy}\), \(I_{K-mon}\)

  or

  • Steele (used in Equation (J.21))

  Light Limitation == Steele, \(Ke^{phy}\), \(I_{S-ste}\)

  or

  • Webb (used in Equation (J.22))

  Light Limitation == Webb, \(Ke^{phy}\), \(I_{K-web}\)

  or

  • Jassby (used in Equation (J.23))

  Light Limitation == Jassby, \(Ke^{phy}\), \(I_{K-jas}\)

  or

  • Chalker (used in Equation (J.24))

  Light Limitation == Chalker, \(Ke^{phy}\), \(I_{K-cha}\)

  or

  • Klepper (used in Equation (J.25))

  Light Limitation == Klepper, \(Ke^{phy}\), \(I_{S-kle}\)

  or

  • Integrated (used in Equation (J.26))

  Light Limitation == Integrated, \(Ke^{phy}\), \(I_{S-int}\)


4.7.3.5.1.4 Nitrogen limitation

Nitrogen limitation parameters (used in Equation (J.9), Section J.3.1) are set via the command:

Nitrogen Limitation == \(\left[N\right]_{min}^{phy}\), \(K_{lim-N}^{phy}\)

These, together with additional parameters, are the same as those used in specifying the nitrogen limitation behaviour of the advanced phytoplankton model (Section 4.7.3.5.2.1).


4.7.3.5.1.5 Phosphorus limitation

Phosphorus limitation parameters (used in Equation (J.13), Section J.4.1) are set via the command:

Phosphorus Limitation == \(\left[P\right]_{min}^{phy}\), \(K_{lim-P}^{phy}\)

These, together with additional parameters, are the same as those used in specifying the phosphorus limitation behaviour of the advanced phytoplankton model (Section 4.7.3.5.2.2).


4.7.3.5.1.6 Silicate limitation

Silicate limitation parameters (used in Equation (J.17), Section J.5) are set via the command:

Silicate Limitation == \(\left[Si\right]_{min}^{phy}\), \(K_{lim-Si}^{phy}\)

Specification of this limitation triggers the uptake of silicate to be on in the phytoplankton group’s block in which the command appears. Omit this command to set silicate uptake to off for a given phytoplankton group.


4.7.3.5.1.7 Uptake

Nutrient uptake parameters for nitrogen, phosphorus and silicate (if relevant) (used in Equations (K.2), (K.7) and (K.9) respectively) are set via the command:

Uptake == \(X_{N-C-con}^{phy}\), \(X_{P-C-con}^{phy}\), \(X_{Si-C-con}^{phy}\)

If specified, the value of \(X_{Si-C-con}^{phy}\) is ignored if silicate uptake has not been triggered via specification of silicate limitation parameters via Silicate Limitation ==.


4.7.3.5.1.8 Primary productivity

Primary productivity (growth) parameters (used in Equation (I.2)) are set via the command:

Primary Productivity == \(R_{prod}^{phy}\), \(\theta_{prod}^{phy}\)


4.7.3.5.1.9 Respiration

Respiration parameters are set via the following command. The first two parameters are used directly to compute the respiration rate \(R_{resp\langle computed\rangle}^{phy}\) via Equation (I.6). The third and fourth parameters are used to compute excretive and mortality fluxes in Equations (L.1) and (L.2), respectively. Both these equations use the respiration rate computed from the first two parameters \(R_{resp}^{phy}\) and \(\theta_{resp}^{phy}\). Although not strictly related to respiration, the final parameter does represent a reduction of biomass and is used to compute exudation loss using Equation (I.12).

Respiration == \(R_{resp}^{phy}\), \(\theta_{resp}^{phy}\), \(f_{true-resp}^{phy}\), \(f_{excr-loss}^{phy}\), \(f_{exud}^{phy}\)


4.7.3.5.1.10 Carbon to Chlorophyll a ratio

The carbon to chlorophyll a ratio (used in converting between simulation units, and reporting total chlorophyll a as a diagnostic variable if the mmol units system is used) is specified via the command:

Carbon Chla Ratio == \(X_{cc}^{phy}\)


4.7.3.5.1.11 Nitrogen fixing

Nitrogen fixing parameters are specified as follows. The first parameter is used in Equation (K.2) to compute the nitrogen fixation flux, and the second parameter modifies computed primary productivity via Equation (I.3).

Nitrogen Fixing == \(R_{nfix}^{N_2}\), \(f_{nfix}^{phy}\)

Setting this command triggers nitrogen fixing to be on, otherwise it is off by default.


4.7.3.5.1.12 Settling

Settling can be specified by one of the following models:

  • None

  Settling == None

  or

  • Constant

  Settling == Constant, \(V_{settle}^{phy}\)

  or

  • Constant with density correction (as per Equation (I.18))

  Settling == Thermal, \(V_{settle}^{phy}\)

  or

  • Stokes (used in Equation (I.19)), where density is required to be simulated as a computed variable, and thus requires the specification of \(I_K\).

  Settling == Stokes, \(I_{K-sto}\)

If \(I_K\) is specified in any light limitation model applied to a phytoplankton group with stokes settling, then a value of \(I_{K-sto}\) specified in the stokes model will be ignored. Cell density limits are applied as the defaults and are not user specifiable.


4.7.3.5.1.13 Termination

This constituent model block must be terminated using the command:

End Phyto Model

4.7.3.5.2 Constituent model: Advanced

This constituent model is specified as:

Phyto Model ==Advanced, groupname

groupname’ is any user specified phytoplankton group name that:

  • Uses only alphanumeric characters
  • Has no spaces
  • Excludes the keywords ‘COM’ and ‘PHYTO’, or any combination of letters already included in a standard computed variable name, such as “INT_N_”, “INT_P” or “_rho“, and
  • Is not the same as any other group name

The following commands are the same as those described for the basic phytoplankton model in Section 4.7.3.5.1 (links are to relevant sections above rather than to the command Appendix, for ease of cross reference):

Min Max ==

Temperature Limitation ==

Light Limitation ==

Silicate Limitation ==

Primary Productivity ==

Respiration ==

Carbon Chla Ratio ==

Nitrogen Fixing ==

Settling ==

End Phyto Model ==

The following commands differ for the advanced phytoplankton model compared to the basic model.


4.7.3.5.2.1 Nitrogen limitation

Nitrogen limitation parameters (used in Equation (J.11), Section J.3.2) are set via the command:

Nitrogen Limitation == \(\left[N\right]_{min}^{phy}\), \(K_{N}^{phy}\), \(X_{N-C-min}^{phy}\), \(X_{N-C-max}^{phy}\)

The first two parameters are the same as those that would be specified using the same command in the basic phytoplankton model (Section 4.7.3.5.1.4).


4.7.3.5.2.2 Phosphorus limitation

Phosphorus limitation parameters (used in Equation (J.15), Section J.4.2) are set via the command:

Phosphorus Limitation == \(\left[P\right]_{min}^{phy}\), \(K_{P}^{phy}\), \(X_{P-C-min}^{phy}\), \(X_{P-C-max}^{phy}\)

The first two parameters are the same as those that would be specified using the same command in the basic phytoplankton model (Section 4.7.3.5.1.5).


4.7.3.5.2.3 Uptake

Nutrient uptake parameters for nitrogen, phosphorus and silicate (if relevant) (used in Equations (K.4), (K.8) and (K.9) respectively) are set via the command:

Uptake == \(R_{N-uptake}^{phy}\), \(R_{P-uptake}^{phy}\), \(X_{Si-C-con}^{phy}\)

The value of \(X_{Si-C-con}^{phy}\) is ignored if silicate uptake has not been triggered through specification of a silicate limitation function.


4.7.3.5.2.4 Settling

An additional settling model can be specified in the advanced phytoplankton constituent model as:

  • Motile (Section I.4.5), where internal nutrient simulation is required to simulate motility

  Settling == Motile, \(V_{mot}^{phy}\), \(I_{K-mot}\)

If \(I_K\) is specified in any light limitation model applied to an advanced constituent model phytoplankton group with motile settling, then a value of \(I_{K-mot}\) specified in the motile model will be ignored. Cell density limits are applied as the defaults and are not user specifiable.

This constituent model block must be terminated using the command:

End Phyto Model

4.7.3.6 Model class: Pathogens (optional)

This model class is optional.

4.7.3.6.1 Constituent model: Free

The commands for this constituent model are described in Section 4.6.3.2.1.

4.7.3.6.2 Constituent model: Attached

The commands for this constituent model are described in Section 4.6.3.2.2.

4.7.4 Part 3: Material specification

Oxygen, silicate, ammonium, nitrate and FRP benthic fluxes are specified within both default and numbered material blocks as:

Oxygen Flux == \(F_{sed}^{O_2}\)
Silicate Flux == \(F_{sed}^{sil}\)
Ammonium Flux == \(F_{sed}^{NH_4}\)
Nitrate Flux == \(F_{sed}^{NO_3}\)
FRP Flux == \(F_{sed}^{FRP}\)

No adsorbed FRP or phytoplankton sediment fluxes are required.

4.7.5 Constituent ordering

Different constituent model selections result in different ordering requirements for specifying computed variable initial conditions (either globally with an implied order, or setting the ordered map from water quality computed variables to “WQ_1”, “WQ_2” etc) and BC Header == commands. For clarity, these are initially presented below using only phytoplankton placeholders in lists. This is possible because phytoplankton specifications are always appended at the end of initial condition or “BC Header ==” lists. Phytoplankton specifications are then presented as additive to these lists in subsequent sections. This is not meant to imply that phytoplankton simulation is optional in the inorganics simulation class - it is mandatory and has only been described separately here only for clarity of presentation.

4.7.5.1 Excluding phytoplankton

The only constituent model choice that influences ordering (other than phytoplankton) is the phosphorus model. These two possibilities are described below.

4.7.5.1.1 Phosphorus model FRPhs

If adsorbed FRP is not simulated (i.e. Phosphorus Model == FRPhs), then in all columnar and list style initial conditions, computed variables are expected in the following order (and map to “WQ_1” etc accordingly):

Initial WQ Concentration == \(\left[ DO \right]\), \(\left[ Si \right]\), \(\left[ NH_4 \right]\), \(\left[ NO_3 \right]\), \(\left[ FRP \right]\), \(\ldots\) {phytoplankton placeholder/s}

Similarly, in a BC Header == command within a BC block, the following order of computed variables is expected after hydrodynamic (HD BCs) boundary conditions:

BC Header == {HD BCs} \(\ldots\) DO_mgL, Si_mgL, Amm_mgL, Nit_mgL, FRP_mgL, \(\ldots\) {phytoplankton placeholder/s}

With regard to the above BC Header == command:

  • DO_mgL, Si_mgL, Amm_mgL, Nit_mgL and FRP_mgL are the headers used to designate oxygen, silicate, ammonium, nitrate and FRP in the related boundary condition file, respectively
  • Whilst this ordering in the command is fixed, the corresponding columnar data can appear in any order in the associated boundary condition file
  • The header texts “DO_mgL”, “Si_mgL”, “Amm_mgL”, “Nit_mgL” and “FRP_mgL” are not special keywords. They can be any headers desired, as long as they match the correct respective boundary condition file column headers
4.7.5.1.2 Phosphorus model FRPhsads

If adsorbed FRP is simulated (i.e. Phosphorus Model == FRPhsAds), then in all columnar and list style initial conditions, computed variables are expected in the following order (and map to “WQ_1” etc accordingly):

Initial WQ Concentration == \(\left[ DO \right]\), \(\left[ Si \right]\), \(\left[ NH_4 \right]\), \(\left[ NO_3 \right]\), \(\left[ FRP \right]\), \(\left[ FRPads \right]\), \(\ldots\) {phytoplankton placeholder/s}

Similarly, in a BC Header == command within a BC block, the following order of computed variables is expected after hydrodynamic boundary conditions:

BC Header == {HD BCs} \(\ldots\) DO_mgL, Si_mgL, Amm_mgL, Nit_mgL, FRP_mgL, FRP_ads_mgL, \(\ldots\) {phytoplankton placeholder/s}

With regard to the above BC Header == command:

  • DO_mgL, Si_mgL, Amm_mgL, Nit_mgL, FRP_mgL and FRP_ads_mgL are the headers used to designate oxygen, silicate, ammonium, nitrate, FRP and adsorbed FRP in the related boundary condition file, respectively
  • Whilst this ordering in the command is fixed, the corresponding columnar data can appear in any order in the associated boundary condition file
  • The header texts “DO_mgL”, “Si_mgL”, “Amm_mgL”, “Nit_mgL”, “FRP_mgL” and “FRP_ads_mgL”are not special keywords. They can be any headers desired, as long as they match the correct respective boundary condition file column headers

4.7.5.2 Including phytoplankton

Phytoplankton initial conditions and “BC Header ==” fields are appended directly to the above computed variable specifications, as denoted by the {phytoplankton placeholder/s} flag above.

Each phytoplankton group is specified using a cluster of values (initial conditions) or headers (BC block) and these clusters must appear in the same order as phytoplankton groups are specified in the water quality control file. The content of each phytoplankton cluster is determined both by the phytoplankton constituent model used and the settling model selected. These are described below, using a placeholder for preceding (non-phytoplankton) computed variables for clarity. These are described above and can be interpreted as either of the orderings specified in sections 4.7.5.1.1 or 4.7.5.1.2.

Two phytoplankton groups are used in all examples.

4.7.5.2.1 Basic phytoplankton model

If the basic phytoplankton constituent model is used, then in all columnar and list style initial conditions, computed variables are expected in the following order (and map to “WQ_XX” after the final computed variable number accordingly):

Initial WQ Concentration == {non-phytoplankton placeholders} \(\ldots\) \(\underbrace{[PHY_1]}_{\text{Cluster 1}}\), \(\underbrace{[PHY_2]}_{\text{Cluster 2}}\)

In order to match water quality control file groups with initial conditions, it is assumed that the groups’ clusters of initial conditions are specified above in the same order that Phyto Model == blocks are presented in the water quality control file.

Similarly, in a BC Header == command within a BC block, the following order of computed variables is expected after hydrodynamic and non-phytoplankton boundary conditions:

BC Header == {HD BCs} \(\ldots\) {non-phytoplankton placeholders} \(\ldots\) \(\underbrace{\text{phyto_green}}_{\text{Cluster 1}}\), \(\underbrace{\text{phyto_bluegreen}}_{\text{Cluster 2}}\)

With regard to the above BC Header == command:

  • phyto_green and phyto_bluegreen are the headers used to designate the boundary concentrations of the two phytoplankton groups listed in the water quality control file
  • In order to match water quality control file groups with these boundary condition clusters, it is assumed that the groups’ boundary condition header clusters are specified above in the same order that Phyto Model == blocks appear in the water quality control file
  • Although the names listed in the BC Header == command above do not need to match the names listed in the water quality control file phytoplankton blocks, it is recommended that they do have names that are correlated with the phytoplankton group names in the water quality control file, for model integrity
  • Whilst this ordering in the command is fixed, the corresponding columnar data can appear in any order in the associated boundary condition file
  • The header texts “phyto_green” and “phyto_bluegreen” are not special keywords. They can be any headers desired, as long as they match the correct respective boundary condition file column headers

If the command Settling == Stokes is used for a phytoplankton group, then phytoplankton cell density must be simulated as a computed variable that requires initial and boundary conditions. This therefore affects the clustering of phytoplankton initial and boundary conditions. For example, if the first (and not the second) phytoplankton group above used the stokes settling model, then the following initial condition command would be required:

Initial WQ Concentration == {HD} \(\ldots\) {non-phytoplankton placeholders} \(\ldots\) \(\underbrace{[PHY_1],\rho_{phy1}}_{\text{Cluster 1}}\), \(\underbrace{[PHY_2]}_{\text{Cluster 2}}\)

\(\rho_{phy1}\) is the initial density of the first phytoplankton group’s cells. A density initial condition is not required for the second phytoplankton species because it does not use stokes settling.

Similarly, in a BC Header == command within a BC block, the following order of computed variables is expected after hydrodynamic and non-phytoplankton boundary conditions:

BC Header == {HD BCs} \(\ldots\) {non-phytoplankton placeholders} \(\ldots\) \(\underbrace{\text{phyto_green, phyto_green_density}}_{\text{Cluster 1}}\), \(\underbrace{\text{phyto_bluegreen}}_{\text{Cluster 2}}\)

If both phytoplankton groups simulated density then the corresponding initial condition and boundary condition commands would be as follows:

Initial WQ Concentration== {HD} \(\ldots\) {non-phytoplankton placeholders} \(\ldots\) \(\underbrace{[PHY_1],\rho_{phy1}}_{\text{Cluster 1}}\), \(\underbrace{[PHY_2],\rho_{phy2} }_{\text{Cluster 2}}\)

BC Header == {HD BCs} \(\ldots\) {non-phytoplankton placeholders} \(\ldots\) \(\underbrace{\text{phyto_green, phyto_green_density}}_{\text{Cluster 1}}\), \(\underbrace{\text{phyto_bluegreen, phyto_bluegreen_density}}_{\text{Cluster 2}}\)


\(\rho_{phy1}\) and \(\rho_{phy1}\) are the initial densities of the first and second phytoplankton group’s cells.

The same notes provided above apply to these commands.

4.7.5.2.2 Advanced phytoplankton model

If the advanced phytoplankton constituent model is used, then in all columnar and list style initial conditions, computed variables are expected in the following order (and map to “WQ_XX” after the final computed variable number accordingly):

Initial WQ Concentration == {non-phytoplankton placeholders} \(\ldots\) \(\underbrace{[PHY_1],[IN_1],[IP_1]}_{\text{Cluster 1}}\), \(\underbrace{[PHY_2],[IN_2],[IP_2]}_{\text{Cluster 2}}\)

In order to match water quality control file groups with initial conditions, it is assumed that the groups’ initial conditions are specified above in the same order that Phyto Model == blocks are presented in the water quality control file.

Similarly, in a BC Header == command within a BC block, the following order of computed variables is expected after hydrodynamic and non-phytoplankton boundary conditions:

BC Header == {HD BCs} \(\ldots\) {non-phytoplankton placeholders} \(\ldots\) \(\underbrace{\text{phyto_gr, gr_intN, gr_intP}}_{\text{Cluster 1}}\), \(\underbrace{\text{phyto_blgr, blgr_intN, blgr_intP}}_{\text{Cluster 2}}\)

With regard to the above BC Header == command:

  • phyto_gr and phyto_blgr are the headers used to designate the boundary concentrations of the two phytoplankton groups listed in the water quality control file
  • gr_intN and gr_intP are the headers used to designate the boundary concentrations of internal nitrogen and internal phosphorus for the green phytoplankton group, respectively
  • blgr_intN and blgr_intP are the headers used to designate the boundary concentrations of internal nitrogen and internal phosphorus for the bluegreen group, respectively
  • In order to match water quality control file groups with these boundary conditions, it is assumed that the groups’ boundary condition header clusters are specified above in the same order that Phyto Model == blocks appear in the water quality control file
  • Although the names listed in the BC Header == command above do not need to match the names listed in the water quality control file phytoplankton blocks, it is recommended that they do have names that are correlated with the phytoplankton group names in the water quality control file, for model integrity
  • Whilst this ordering in the command is fixed, the corresponding columnar data can appear in any order in the associated boundary condition file
  • The header texts “phyto_gr” and “phyto_blgr” are not special keywords. They can be any headers desired, as long as they match the correct respective boundary condition file column headers

If the command Settling == Stokes is used for a phytoplankton group, then phytoplankton cell density must be simulated as a computed variable that requires initial and boundary conditions. This therefore affects the clustering of phytoplankton initial and boundary conditions. If the first phytoplankton group above used the advanced phytoplankton model with the stokes settling model, and the second group used the basic phytoplankton model without stokes settling, then the following commands would be required:

Initial WQ Concentration == {non-phytoplankton placeholders} \(\ldots\) \(\underbrace{[PHY_1],\rho_{phy_1},[IN_1],[IP_1]}_{\text{Cluster 1}}\), \(\underbrace{[PHY_2]}_{\text{Cluster 2}}\)

Similarly, in a BC Header == command within a BC block, the following order of computed variables is expected after hydrodynamic and non-phytoplankton boundary conditions:

BC Header == {HD BCs} \(\ldots\) {non-phytoplankton placeholders} \(\ldots\) \(\underbrace{\text{phyto_gr, gr_dens, gr_intN, gr_intP}}_{\text{Cluster 1}}\), \(\underbrace{\text{phyto_blgr}}_{\text{Cluster 2}}\)

If both phytoplankton groups simulated density, again with the first and second groups using the advanced and basic models respectively, then the corresponding commands would be as follows:

Initial WQ Concentration == {non-phytoplankton placeholders} \(\ldots\) \(\underbrace{[PHY_1],\rho_{phy_1},[IN_1],[IP_1]}_{\text{Cluster 1}}\), \(\underbrace{[PHY_2],\rho_{phy_2}}_{\text{Cluster 2}}\)

BC Header == {HD BCs} \(\ldots\) {non-phytoplankton placeholders} \(\ldots\) \(\underbrace{\text{phyto_gr, gr_dens, gr_intN, gr_intP}}_{\text{Cluster 1}}\), \(\underbrace{\text{phyto_blgr, blgr_dens}}_{\text{Cluster 2}}\)

The same notes provided above apply to these commands.

4.7.5.3 Including pathogens (optional)

The ordering requirements for pathogens are the same as those described in Section 4.6.5.1. Pathogen headers are always included last (i.e. after phytoplankton in the inorganics simulation class).

4.7.6 Example

Following is an example of all the available WQ Module Simulation Class == Inorganics commands, with a single material applied as zeros everywhere as the default, and then modified by a further specification for materials 3 and 7. Two phytoplankton groups (one each of the basic and advanced models) are set. Pathogens have been omitted for clarity, but could be added as per Section 4.6.6.

Simulation Class == Inorganics
WQ dt == 3600
WQ Units == mgL

Oxygen Model == O2
  Oxygen Benthic == 4.0, 1.05
  Oxygen Min Max == 0.0, 25.0
End Oxygen Model

Silicate Model == Si
  Silicate Benthic == 4.0, 1.05
  Silicate Min Max == 0.0, 2500.0
  Oxygen == ON
End Silicate Model

Inorganic Nitrogen Model == AmmoniumNitrate
  Ammonium Benthic == 4.0, 1.05
  Nitrate Benthic == 4.0, 1.05
  Ammonium Min Max == 0.0, 50.0
  Nitrate Min Max == 0.0, 110.0
  Nitrification == 0.1, 4.0, 1.05
  Denitrification == Exponential, 0.5, 8.0, 1.05
  Atmospheric Deposition == 10.0, 2.4, 0.15
  Oxygen == ON
End Inorganic Nitrogen Model

Inorganic Phosphorus Model == FRPhsAds
  FRP Benthic == 4.0, 1.05
  FRP Min Max == 0.0, 50.0
  FRPads Min Max == 0.0, 50.0
  Atmospheric Deposition == 5.0, 1.4
  Adsorption == Quadratic, 1.5, 0.5
  Settling == 0.000001
  Oxygen == ON
End Inorganic Phosphorus Model

Phyto Model == Basic, Green
  Min Max == 0.01, 40.0
  Temperature Limitation == Standard, 11.0, 14.0, 30.0
  Salinity Limitation == None
  Light Limitation == Monod, 0.3, 70.0
  Settling == Constant, 0.01
  Nitrogen Limitation == 0.01, 1.5
  Phosphorus Limitation == 0.001, 0.03
  Silicate Limitation == 0.5, 7.0
  Uptake == 4.7, 0.6, 8.9
  Carbon Chla Ratio == 32.0
  Primary Productivity == 2.0, 1.06
  Respiration == 0.02, 1.04, 0.1, 0.05, 0.6
End Phyto Model

Phyto Model == Advanced, Bluegreen
  Min Max == 0.5, 50.0
  Temperature Limitation == Standard, 10.0, 15.0, 25.0
  Salinity Limitation == Estuarine, 22.0, 35.0, 0.0
  Light Limitation == Monod, 0.5, 51.0
  Settling == Motile, 0.5
  Nitrogen Limitation == 0.05, 2.5, 4.0, 5.0
  Phosphorus Limitation == 0.01, 0.05, 0.64, 0.67
  Silicate Limitation == 1.0, 5.0
  Uptake == 0.05, 0.05, 8.9
  Carbon Chla Ratio == 27.0
  Nitrogen Fixing == 0.100, 0.100
  Primary Productivity == 1.0, 1.08
  Respiration == 0.01, 1.01, 0.2, 0.0, 0.4
End Phyto Model

Material == Default
  Oxygen Flux == 0.0
  Silicate Flux == 0.0
  Ammonium Flux == 0.0
  Nitrate Flux == 0.0
  FRP Flux == 0.0
End Material

Material == 3, 7
  Oxygen Flux == -800.0
  Silicate Flux == 122.0
  Ammonium Flux == 37.0
  Nitrate Flux == 3.7
  FRP Flux == 1.4
End Material