Introduction

The models implemented as Scheldt1D(), Scheldt1D.hydro() and Scheldt1D.lat() are all different flavours of branched, tide-averaged estuarine box-models. This vignette deals with the main and most used implementation Scheldt1D(): this is the full reactive-transport model in its standard form. Scheldt1D.hydro() is a transport-only implementation that can be used to simulate transport of 20 passive tracers in one go. Scheldt1D.lat() is a beta implementation of a laterally extended version of Scheldt1D() with explicit implementation of adjacent flood control areas and marshes in separate model boxes. Thus, unless explicitely stated otherwise, it is always implicitely understood that we are talking here about Scheldt1D().

Basically, Scheldt1D() is a reactive-transport model, where the rate of change of every modeled substance is governed by \[\begin{eqnarray} \frac{\partial C}{\partial t} &=& \left.\frac{\partial C}{\partial t}\right|_{transport} + \left.\frac{\partial C}{\partial t}\right|_{reactions}\\ &=& \mathcal{T}^C + \mathcal{R}^C \end{eqnarray}\]

where \(\mathcal{T}^C\) and \(\mathcal{R}^C\) are the rates of transport and reaction processes affecting the substance with concentration \(C\) respectively. More information on this kind of models can be found in R packages ReacTran or deSolve. In the following sections we first focus on the transport part \(\mathcal{T}^C\) and next on the reaction part \(\mathcal{R}^C\). In the basic setup this reactive-transport model is discretized in 74+1 boxes, with 74 boxes for the main channel and 1 box for the major Rupel tributary. The model boxes are assumed homogeneously mixed for all modelled substances; a discretized version of a classical advection-diffusion equation is used to compute dissolved transport between boxes; biogechemical reactions occur in each model box.

#> Warning in CPL_crs_from_input(x): GDAL Message 1: +init=epsg:XXXX syntax is
#> deprecated. It might return a CRS with a non-EPSG compliant axis order.
**Fig 1.** Scheldt1D model boxes

Fig 1. Scheldt1D model boxes

Dissolved transport

Dissolved transport is implemented as a volumetric advection-diffusion model, and computes tidally averaged volumetric transport between perfectly mixed boxes with fixed volume. The advective and diffusive transport \(\mathcal{T}^C\) of a substance with concentration \(C\) is modelled classically as

\[ \mathcal{T}^C = -\frac{1}{A}\frac{\partial (Q.C)}{\partial x} + \frac{1}{A}\frac{\partial}{\partial x}\left(A.D\frac{\partial C}{\partial x}\right) \] In which \(A\) is the cross section, \(Q\) is the discharge, and \(D\) the dispersion coefficient. Internally this is discretized for all boxes \(i\) as \[ \mathcal{T}^C_i = -\frac{\Delta_i(Q.C)}{V_i} + \frac{\Delta_i\left(E \Delta C\right))}{V_i} \] Where \(E=\frac{A.D}{\Delta x}\) is the bulk dispersion coefficient (note that this coefficient depends on the chosen model grid via its dependence on \(\Delta x\)). \(\Delta_i\) denotes the difference between the upstream and downstream value of a quantity defined at the interfaces of box \(i\), whereas \(\Delta\) denotes the difference of quantities defined at the center of the box.

The ecosystem model

The reactive part of the model is based on a classical carbon-based Nutrient-Phytoplankton-Zooplankton-Detritus (NPZD) model. Figure 2 shows the core part of the model. For clarity only the core processes and state variables are shown.

Fig 2. Core reaction network of the ecosystem model. Some processes and state variables are omitted
Fig 2. Core reaction network of the ecosystem model. Some processes and state variables are omitted

In total the model contains 15 state variables that are internally computed:

Both Dissolved inorganic carbon and phosphorus are included as a state variable, but they currently do not behave realistically. All other processes are independent of DIC, so that poses no specific problem. For PO4 The half-saturation parameters should be kept low enough and concentrations high enough to avoid (unrealistic) limitation.

Additionally, 2 state variables are not internally computed but forced in the whole model domain, i.e. in each model box: Temperature (Temp) and Suspended Particulate Matter (Sed). In the default setup, these forcings are linearly interpolated observations of temperature and SPM from the Schelde monitoring networks.

The reaction rates affecting those 15 state variables are given by the sum of the reaction rates of specific processes:

$$\[\begin{eqnarray} &\mathcal{R}^{PhytoC} &=& \textrm{Growth}^{PhytoC}-\textrm{Loss}^{PhytoC}-\textrm{Grazing}^{PhytoC}-\textrm{Respiration}^{PhytoC}\\\\ &\mathcal{R}^{DiatC} &=& \textrm{Growth}^{DiatC}-\textrm{Loss}^{DiatC}-\textrm{Grazing}^{DiatC}-\textrm{Respiration}^{DiatC}\\\\ &\mathcal{R}^{DiatSi} &=& \textrm{Uptake}^{DiatSi} -\textrm{Loss}^{DiatSi} - \frac{DiatSi}{DiatC}\textrm{Grazing}^{DiatC} - \textrm{dissolution}^{DiatSi}\\\\ &\mathcal{R}^{ZooC} &=& \textrm {Growth}^{ZooC}-\textrm{Loss}^{ZooC}-\textrm{Respiration}^{ZooC}\\\\ &\mathcal{R}^{DetC} &=& \textrm{Loss}^{PhytoC}+\textrm{Loss}^{DiatC}+\textrm{Loss}^{ZooC} \\ &&& + \textrm{Defaecation}^{ZooC}-\textrm{Remineralistion}^{DetC}-\textrm{Denitrification}^{DetC}\\\\ &\mathcal{R}^{DetN} &=& N:C^{Phyto}.\textrm{Loss}^{PhytoC}+N:C^{Diat}.\textrm{Loss}^{DiatC}+N:C^{Zoo}.\textrm{Loss}^{ZooC} + \\ &&&N:C^{PhytoC}\textrm{Defaecation}^{ZooC}-\textrm{Remineralisation}^{DetN}-\textrm{Denitrification}^{DetN}\\\\ &\mathcal{R}^{DetP} &=& P:C^{Phyto}.\textrm{Loss}^{PhytoC}+P:C^{Diat}.\textrm{Loss}^{DiatC}+P:C^{Zoo}.\textrm{Loss}^{ZooC} + \\ &&&P:C^{PhytoC}\textrm{Defaecation}^{P} -\textrm{Remineralistion}^{DetP}-\textrm{Denitrification}^{DetP}\\\\ &\mathcal{R}^{DetSi} &=& \textrm{Loss}^{DiatSi}+ \frac{DiatSi}{DiatC}\textrm{Grazing}^{DiatC} - \textrm{Dissolution}^{DetSi}\\\\ &\mathcal{R}^{NH4} &=& \textrm{Remineralisation}^{DetN} + \textrm{Denitrifiation}^{DetN} + N:C^{PhytoC}.\textrm{respiration}^{PhytoC} + \\ &&&N:C^{DiatC}.\textrm{respiration}^{DiatC} + N:C^{ZooC}.\textrm{respiration}^{ZooC} - \textrm{nitrification} \\ &&&- \textrm{uptake.NH4}^{Diat} - \textrm{uptake.NH4}^{Phyto}\\\\ &\mathcal{R}^{NO3} &=& \textrm{nitrification} - \textrm{denitrification} - \textrm{uptake.NO3}^{PhytoC} - \textrm{uptake.NO3}^{DiatC} \\\\ &\mathcal{R}^{PO4} &=& \textrm{Remineralisation}^{DetP} + \textrm{Denitrification}^{DetP} + P:C^{PhytoC}.\textrm{respiration}^{PhytoC} + \\ &&& P:C^{DiatC}.\textrm{respiration}^{DiatC} + P:C^{ZooC}.\textrm{respiration}^{ZooC}\\ &&&- \textrm{uptake.PO4}^{Diat} - \textrm{uptake.PO4}^{Phyto}\\\\ &\mathcal{R}^{DSi} &=& \textrm{Dissolution}^{DiatSi} + \textrm{Dissolution}^{DetSi} - \textrm{uptake.DSi}^{Diat}\\\\ &\mathcal{R}^{O2} &=& \textrm{Reaeration} + O2:C^{PhytoC}.\textrm{Growth}^{PhytoC} + O2:C^{DiatC}.\textrm{Growth}^{DiatC} \\ &&&- O2:C^{remineralisation}.\textrm{remineralisation}^{DetC} - O2:C^{nitrification}.\textrm{nitrification}^{DetC} \\ &&&- \textrm{Respiration}^{PhytoC} - \textrm{Respiration}^{DiatC} - \textrm{Respiration}^{ZooC} \end{eqnarray}\]$$

Since the model is carbon-based the true currency and biomasses are in carbon concentrations. The impact on other nutrient cycles is taken into account with fixed N:P:C ratios, and variable Si:C ratio in diatoms.

In the following we describe all processes in detail and their parameterization.

Phytoplankton dynamics

Growth

Microalgal growth in the model depends on light availability, dissolved inorganic nitrogen, and for diatoms on dissolved silicate (DSi) availability. All nutrient dependencies are modelled using Monod-type modulation factors, whereas light dependence is included using a modified Platt model (Platt et al. 1980). Light attenuation in the water column modeled with the exponential Lambert-Beer law. The light attenuation coeffiecient \(k_d\) depends on SPM, Chlorofyll a and organic matter concentration. Using the depth-surface area relationship, primary production is internally integrated over the photic depth (irradiance >= 1% of surface irradiance). The phytoplankton growth rate is temperature dependent (classic Q10 formulation).

$$ \[\begin{eqnarray} &\textrm{Growth}^{PhytoC} &=& P_m^{Phyto}(x)(Chla:C)^{Phyto}(x)f(T)\min\left(\Lambda^{Phyto}, M(N), M(P)\right).PhytoC\\ &\textrm{Growth}^{DiatC} &=& P_m^{Diat}(x)(Chla:C)^{Diat}(x)f(T)\min\left(\Lambda^{Diat}, M(N), M(P), M(Si)\right).DiatC\\\\ &\mathrm{With:}&&\\ &\Lambda^j &=& \frac{1}{V}\int_0^{Z_{eu}}A(z)\left(1-\exp\left(-\frac{\alpha^j(x)}{P_m^j(x)}E(z)\right)\right)dz, \quad j=Phyto, Diat\\ &f(T) &=& Q_{10}^{\frac{T-10}{10}}\\ &M(N) &=& \frac{NO3}{NO3+k_{PP}^N}\\ &M(P) &=& \frac{PO4}{PO4+k_{PP}^{PO4}}\\ &M(Si) &=& \frac{DSi}{DSi+k_{PP}^{DSi}} \end{eqnarray}\] $$ The photosynthetic parameters \(\alpha\) (photosynthetic efficiency) and \(P_{m}\) (the maximal photosynthetic rate) and the Chlorophyll-Carbon ratio can be allowed to vary along the estuarine axis, and are thus a function of \(x\). Thus, although only 2 phytoplankton groups are modeled (diatoms and non-diatoms) and different marine and freshwater communities are not explicitely modeled, such longitudinally varying parameters allow for a varying properties of the phytoplankton (one might say: varying physiology) along the estuarine axis. This is done by specifying those parameters for marine and freshwater end-members; the values of the parameters along the estuarine axis are then internally computed with pre-defined functions of salinity. For the Chlorophyll to carbon ratio the basic form of this predefined function is used (piecewise linear, see Figure 3). For \(\alpha\) and \(P_m\) this piecewise linear relation can be multiplied with an additional dip (a Gaussian function of distance). Such dip in photosynthetic parameters has been observed in the Scheldt estuary.

**Fig 3.** Predefined functions for longitudinal varying parameters

Fig 3. Predefined functions for longitudinal varying parameters

Light attenuation

Light in the water column is modeled with a simple Lambert-Beer law \[\begin{equation} E(z) = E_0\exp(-k_dz) \end{equation}\] where \(E(z)\) is photosynthetic active radiation (PAR) at depth \(z\), \(E_0\) is incident PAR and \(k_d\) is the light attenuation coefficient.

The light attenuation coefficient is computed as a complicated function of \(SPM\), \(Chl a\) and \(POC = DiatC + PhytoC+ZooC\). The parameters in this relationship are derived from fitting this equation to real \(k_d\) data in the Scheldt estuary. Different parameterization are used in 3 different zones of the estuary (Upper Sea-Scheldt: boxes 1:43; Lower Sea-Scheldt: boxes 44:62; Western Scheldt: boxes 63:74).

Respiration and losses

Phytoplankton exhibits losses (respiration, mortality and exudation) that are modeled linear to their biomass, with the same parameter for diatoms and non-diatoms.

\[\begin{eqnarray} &\mathrm{Loss}^{PhytoC} &=& r_{loss}^{Phyto}.PhytoC\\ &\mathrm{Loss}^{DiatC} &=& r_{loss}^{Phyto}.DiatC\\ \end{eqnarray}\]

Respiration also depends on temperature through the Q10 formulation.

\[\begin{eqnarray} &\mathrm{Respiration}^{PhytoC} &=& f(T).r^{Phyto}.PhytoC\\ &\mathrm{Respiration}^{DiatC} &=& f(T).r^{Phyto}.DiatC\\ \end{eqnarray}\]

Grazing by zookplankton

Zooplankton grazes indiscriminately on diatoms and non-diatoms, and thus the intake is taken proportional to their relative abundance \[\begin{eqnarray} &\mathrm{Grazing}^{PhytoC} &=& \frac{PhytoC}{PhytoC+DiatC}\mathrm{Grazing}\\ &\mathrm{Grazing}^{DiatC} &=& \frac{DiatC}{PhytoC+DiatC}\mathrm{Grazing} \end{eqnarray}\]

Nitrogen and phosphorous uptake and loss of nutrients and detritus

Nitrogen and phosphorus uptake by the phytoplankton is coupled to carbon uptake through fixed carbon-to-nutrient ratios. By default, Redfield values (Redfield, 1958) are assumed for both phytoplankton groups. Ammonium uptake is favoured over nitrate uptake using an inhibition concept (Soetaert and Herman, 2009). The carbon loss is accompanied by a nitrogen and phosphorus loss to their respective detrital pools through Redfield C:N and C:P ratios. Respiration is accompanied by corresponding flows of nitrogen and phosphorus into the ammonium (NH4) and phosphate (PO4) pool. Oxygen production and consumption (due to respiration) are linked via fixed O2:C ratio for phytoplankton.

\[\begin{eqnarray} &\mathrm{Uptake.NO3}^{j} &=& (N:C)^{Phyto}\mathrm{Growth}^j\frac{NO3}{NO3+k_{uptake}^{NO3}}\exp\left(-NH4inh.NH4\right)\\ &\mathrm{Uptake.NH4}^{j} &=& (N:C)^{Phyto}\mathrm{Growth}^j .\left(1 - \frac{NO3}{NO3+k_{uptake}^{NO3}}\exp\left(-NH4inh.NH4\right)\right)\\ &\mathrm{Uptake.PO4}^{j} &=& (P:C)^{Phyto}\mathrm{Growth}^j \end{eqnarray}\]

Diatom silica pool dynamics

Diatom silica is modeled as a separate sate variable, with

\[\begin{eqnarray} &\mathrm{Uptake}{DiatSi} &=& \frac{DiatSi}{DiatC}\mathrm{Growth}^{DiatC}\\ &\mathrm{Loss}{DiatSi} &=& \frac{DiatSi}{DiatC}\mathrm{Loss}^{DiatC}\\ &\mathrm{Grazing}{DiatSi} &=& \frac{DiatSi}{DiatC}\mathrm{Grazing}^{DiatC}\\ &\mathrm{Dissolution}^{DiatSi} &=& f(T)r_{diss}(x)\left(1-DSi/DSi_{sat}\right)^m DiatSi\\ \end{eqnarray}\]

Zooplankton dynamics

All zooplankton groups are lumped in a single state variable. This decision is mostly based on data availability but also model simplicity. Zooplankton grazes indiscriminately on all phytoplankton groups using a type II functional respons. A fixed fraction \(f_{defaecation}\) of the ingested biomass is lost immediately as faeces to the detrital compartments. Respiratory/excretory processes shunt carbon, nitrogen and phosphorus to the respective inorganic pools to maintain their fixed elemental ratios. An excess mortality under low oxgen saturation using a reverse sigmoid dependence of the mortality rate on oxygen saturationlevels, on top of a basal mortality, can be included. Zooplankton homeostasis (in this model: guaranteeing that fixed nutrien ratios of zooplankton are respected, even though the ingested ratios of phytoplankton are different) is taken into account with an additional respiration term.

\[\begin{eqnarray} &\mathrm{Grazing} &=& f(T)G_{max}\left(\frac{\left(DiatC+PhytoC\right)^2)}{k_{Graz} +\left(DiatC+PhytoC\right)^2) }\right)ZooC\\ &\mathrm{Defaecation} &=& f_{defaecation}\mathrm{Grazing}\\ &\mathrm{Growth}^{ZooC} &=& \mathrm{Grazing-Defaecation}\\ &\mathrm{Loss}^{ZooC} &=& r_{loss}^{Zoo}\left(\frac{1}{1+\exp{\left(hypoxMag(\frac{O2}{O2sat}-hypoxTresh) \right)}}\right)ZooC\\ &\mathrm{Respiration}^{ZooC} &=& f(T) r^{Zoo}ZooC + \mathrm{extraRespC} \end{eqnarray}\]

Bacterial processes

Detritus dynamics and oxic remineralization

Carbon, nitrogen, phosphorus and silica components of the detritus pool are explicitly modeled as state variables to allow for mass conservation. They are replenished o.a. by the loss terms from phytoplankton and zooplankton. The remineralisation rate is temperature dependent through the Q10 formulation. No distinction is currently made between a fast and slowly decaying detritus pool. The remineralisation rate can be made variable along the estuarine axis with the piecewise linear function (see above).

\[\begin{eqnarray} &\mathrm{Remineralization}^{DetC} &=& f(T)r_{remin}(x)M(O2)\frac{DetC^2}{\left(DetC\right)+k_{remin}^{DetC}}\\ &\mathrm{Remineralization}^{DetN} &=& f(T)r_{remin}(x)M(O2)\frac{DetN^2}{\left(DetN\right)+k_{remin}^{DetN}}\\ &\mathrm{Remineralization}^{DetP} &=& f(T)r_{remin}(x)M(O2)\frac{DetP^2}{\left(DetP\right)+k_{remin}^{DetP}}\\ &\mathrm{Dissolution}^{DetSi} &=& f(T)r_{diss}(x)\left(1-DSi/DSi_{sat}\right)^m DetSi\\ &M(O2) &=& \frac{O2}{O2 + k_{denit}^{O2}}\\ \end{eqnarray}\]

Nitrification and denitrifiction

Nitrification rates depend on the availability of substrate (NH4+) and the presence of dissolved oxygen (O2). Both dependencies are implemented through Michaelis-Menten kinetics. The nitrification rate can be made variable along the estuarine axis with the piecewise linear function (see above).

\[\begin{eqnarray} &\mathrm{nitrification} &=& f(T)r_{nit}(x)M(O2)M(NH4)NH4\\ &M(NH4) &=& \frac{NH4}{NH4 + k_{nit}^{NH4}}\\ &M(O2) &=& \frac{O2}{O2 + k_{nit}^{O2}}\\ \end{eqnarray}\]

Denitrification is implemented with a linear dependence on nitrate concentration and is reduced under oxic conditions using a hyperbolic dependence on the oxygen concentration. Denitrification products (N2O, N2) are lost from the model (to the atmosphere). Water column denitrification in the Scheldt estuary was important a few decades ago, when large parts of the estuary were hypoxic or anoxic. Nowadays, denitrification is largely restricted to sediments. The denitrification rate can be made variable along the estuarine axis with the piecewise linear function (see above).

\[\begin{eqnarray} &\mathrm{denitrification} &=& f(T)r_{denit}(x)M(O2)M(DetC)NO3\\ &M(DetC) &=& \frac{DetC}{DetC + k_{denit}^{DetC}}\\ &M(O2) &=& \frac{k_{denit}^{O2}}{O2 + k_{denit}^{O2}}\\ \end{eqnarray}\]

The above rate is the rate of NO3 consumption in denitrification. The following stoichiometry is used to compute the accompanying rate of \(DetC\) (106/84.3), \(DetN\) (16/84.4) and \(DetP\) (1/84.4) consumption, \(NH4\) (16/84.3)and \(PO4\) (1/84.3) production

(CH2O)106(NH3)16(H3PO4) + 84.8 HNO3 —> 106 CO2 + 42.4 N2 + 16NH3 + H3PO4 + 148.4 H2O

Oxygen dynamics

Air-water exchange of oxygen

Air-water exchange is modeled with a fixed piston velocity \(k_{O2}\). To account for differences in piston velocity due to differences in fetch and turbulence, 3 different piston velocities can be provided for model boxes 1-40 (Upper Sea-Scheldt), 41-62 (Lower Sea-Scheldt) and 63-74 (Western-Scheldt).

\[\begin{eqnarray} &\mathrm{Reaeration} &=& k_{O2}(x)(O2_{sat}(T,S) - O2)/d \end{eqnarray}\] where \(k_{O2}(x)\) is the piston velocity, \(O2_{sat}\) is the saturation concentration of the water at the given (model) temperature and salinity (computed internally), and \(d\) is the average depth of the model box, given by the ratio of the volumen \(V\) of the free surface \(S\).

Stoichiometry

The following stoichiometries are used.

primary production:

106 CO2 + 106 H2O + 16NH3 + H3PO4 —> C106H132O106(NH3)16(H3PO4) + 6 O2

nitrification:

NH4 + 2 O2 —> NO3- + H2O + 2 H+

remineralisation:

C6H12O6 + 6 O2 —> 6 CO2 + 6 H2O

denitrification:

C6H12O6 + 0.8HNO3 —> 6 CO2 + 0.4 N2 + 16NH3 + H3PO4 + .. H2O

denitrification:

(CH2O)106(NH3)16(H3PO4) + 84.8 HNO3 —> 106 CO2 + 42.4 N2 + 16NH3 + H3PO4 + 148.4 H2O

phytoplankton C:N:P ratio: 106:16:1

Nutrient cycles described in words (see above for correct equations)

Two inorganic nitrogen species are included. Organic nitrogen is remineralized to ammonium, ammonium is nitrified to nitrate (no nitrite in the model) or taken up by the phytoplankton, and nitrate is taken up by the phytoplankton. Phytoplankton nitrogen enters the detrital nitrogen pool again through a loss term (mortality or exudation). Ammonium uptake is favoured over nitrate uptake using an inhibition concept. Beside mortality, phytoplankton loses some nitrogen through respiration/excretion (metabolic homeostasis). This nitrogen enters the ammonium pool. Zooplankton acquires nitrogen through grazing (no preference for any of the groups at this point), which is modelled as a type II functional response (Monod kinetics). Respiratory/excretory products are shunted to the ammonium pool. Zooplankton mortality channels zooplankton nitrogen to the detrital nitrogen pool. Nitrogen remineralization is disconnected from remineralization of other elements.

Dissolved silicate is taken up by the diatom groups and is potentially limiting their growth through a Monod-type dependence. Diatom Si:C ratios are fixed (cf.). This allows for a shift in phytoplankton composition to occur under Silica depletion. The approach taken here is a crude, but facilitates kwalitative exploration of this process, without dwindling too much on parameter and process uncertainty. Zooplankton grazing shunts the diatom silicate to the detrital silica pool (faeces production; fixed percentage of uptake (). Diatom mortality also transfers silica to the detrital pool. Both, the detrital and diatom silica pools are subject to dissolution based on the same kinetic parameters. The dissolution products are channeled into the dissolved silicate pool.

The oxygen concentration is part of the model state. Several processes impact this oxygen concentration. Primary production produces oxygen. Nitrification, remineralization, and respiration by the various compartments consumes oxygen. The oxygen concentration/saturation state impact zooplankton mortality, nitrification, and denitrification rates. Oxygen dynamics consumption and production are linked to the aforementioned processes through fixed ratios (cf. ). In addition, oxygen is exchanged with the atmosphere through saturation kinetics.

Advanced issues

Boundary conditions for discharge and all state variables need to be provided at the tributaries (upstream/Ghent, Dender, Durme, Rupel, Bathse Spui, Canal Ghent-Terneuzen/KGT) as forcings (see Forcings). Discharge at the box interfaces are calculated internally, by summing discharge at all upstream interfaces and adding the boundary discharges at the confluence with the main channel. Dispersion coefficients need to be provided as specific diffusivity coefficient(s), either as a constant diffusivity over the model domain, or as a vector of diffusivities at all box interfaces, or can be computed internally (see Parameters and estuarineDispersion).

For more information on the geometric setup of the model, see the accompanying vignette. In there also the inclusion of lateral water bodies (either implicitely by altering the geometry of the adjacent model box, or explicitely by adding additional model boxes) is explained.

Parameters

Below you find a dump (generated during build time of the package) of all default parameters values in parameters.default. Take care: the names do not 100% map to the names used to the above equations. A consistent naming convention is something to add in a next version of the model package. (Almost) All rates are \(per day\) and (almmost) all concentrations are in \(mol m^{-3}\); the exception is \(Chl a\) which is in \(g\,m^{-3}\); \(P_m\) which is in \(mol\,C\,(g\,Chl\,a)^{-1}\,d^{-1}\) (and similar for \(\alpha\)); also the diffusion coefficent \(D\) is in \(m^2\,s^{-1}\); similarly all discharges \(Q\) are in \(m^3 s{-1}\).

print.par.names <- names(parameters.default)[!names(parameters.default)=="D"]
print.par.names <- print.par.names[print.par.names!=""]
parameters.df <- data.frame(name=print.par.names, value=unlist(parameters.default[print.par.names]))
print(parameters.df, digits=3)
#>                                      name     value
#> S1PP                                 S1PP  1.00e-01
#> S2PP                                 S2PP  6.00e+00
#> S0CHL                               S0CHL  2.00e+00
#> S1CHL                               S1CHL  1.00e+01
#> S2CHL                               S2CHL  1.10e+01
#> S1G                                   S1G  1.00e+00
#> S2G                                   S2G  2.00e+00
#> S1B                                   S1B  1.00e+00
#> S2B                                   S2B  5.00e+00
#> Q10                                   Q10  2.30e+00
#> pistonCO2                       pistonCO2  1.56e-03
#> Pmaxdiatfresh               Pmaxdiatfresh  6.00e+00
#> Pmaxphytofresh             Pmaxphytofresh  6.00e+00
#> Pmaxdiatmar                   Pmaxdiatmar  1.10e+01
#> Pmaxphytomar                 Pmaxphytomar  1.00e+01
#> alphadiatfresh             alphadiatfresh  3.00e-02
#> alphaphytofresh           alphaphytofresh  3.00e-02
#> alphadiatmar                 alphadiatmar  1.50e-01
#> alphaphytomar               alphaphytomar  1.30e-01
#> k_PP_N                             k_PP_N  3.00e-02
#> k_PP_PO4                         k_PP_PO4  2.00e-03
#> k_PP_Si                           k_PP_Si  1.00e-03
#> k_N_NO3                           k_N_NO3  5.00e-02
#> NH4inhDiat                     NH4inhDiat  1.00e+03
#> NH4inhPhyto                   NH4inhPhyto  1.00e+04
#> rlossPhyto                     rlossPhyto  1.50e-01
#> rPhyto                             rPhyto  5.00e-02
#> biosynth                         biosynth  0.00e+00
#> GmaxFresh                       GmaxFresh  5.50e-01
#> kGrazFresh                     kGrazFresh  1.00e-03
#> GmaxMar                           GmaxMar  1.00e+00
#> kGrazMar                         kGrazMar  1.00e-04
#> rlossZoo                         rlossZoo  1.00e-01
#> hypoxMag                         hypoxMag  1.00e+02
#> hypoxTresh                     hypoxTresh  1.00e+01
#> rZoo                                 rZoo  2.00e-01
#> FracFaeces                     FracFaeces  2.00e-01
#> rNITFresh                       rNITFresh  1.00e-01
#> rNITMar                           rNITMar  5.00e-02
#> k_NIT_NH4                       k_NIT_NH4  1.00e-03
#> k_NIT_O2                         k_NIT_O2  3.00e-02
#> rDENITFresh                   rDENITFresh  0.00e+00
#> rDENITMar                       rDENITMar  0.00e+00
#> ks_DEN_NO3                     ks_DEN_NO3  5.00e-02
#> ks_DEN_C                         ks_DEN_C  2.00e-01
#> ks_DEN_O2                       ks_DEN_O2  1.00e-01
#> reminFresh                     reminFresh  2.00e-01
#> reminMar                         reminMar  2.00e-01
#> ks_REM_C                         ks_REM_C  3.00e+00
#> ks_REM_N                         ks_REM_N  6.00e+00
#> ks_REM_P                         ks_REM_P  1.50e-01
#> rDisFresh                       rDisFresh  5.00e-03
#> rDisMar                           rDisMar  2.00e-02
#> DSiSatFresh                   DSiSatFresh  1.70e+00
#> DSiSatMar                       DSiSatMar  2.00e+00
#> m                                       m  2.50e+00
#> S1Si                                 S1Si  1.00e+00
#> S2Si                                 S2Si  5.00e+00
#> ChlaCdiatfresh             ChlaCdiatfresh  1.00e+00
#> ChlaCphytofresh           ChlaCphytofresh  1.00e+00
#> ChlaCphytoBEZS             ChlaCphytoBEZS  1.00e+00
#> ChlaCdiatBEZS               ChlaCdiatBEZS  1.00e+00
#> ChlaCdiatmar                 ChlaCdiatmar  3.00e-01
#> ChlaCphytomar               ChlaCphytomar  3.00e-01
#> NCphyto                           NCphyto  1.51e-01
#> PCphyto                           PCphyto  9.43e-03
#> SiCdiat                           SiCdiat  8.00e-01
#> NCzoo                               NCzoo  1.76e-01
#> PCzoo                               PCzoo  8.14e-03
#> CNnitr                             CNnitr  2.86e-02
#> ONnitr                             ONnitr  1.89e+00
#> CNdenit                           CNdenit  1.20e+00
#> OCremin                           OCremin  1.30e+00
#> pistonO2ws                     pistonO2ws  1.20e+01
#> pistonO2bezs                 pistonO2bezs  4.00e+00
#> pistonO2bozs                 pistonO2bozs  6.00e+00
#> tocbackground               tocbackground  0.00e+00
#> pmaxdippos                     pmaxdippos  4.40e+01
#> pmaxdipwidth                 pmaxdipwidth  3.00e+00
#> pmaxdipsize                   pmaxdipsize  3.00e-01
#> alphadippos                   alphadippos  4.00e+01
#> alphadipwidth               alphadipwidth  6.00e+00
#> alphadipsize                 alphadipsize  2.00e-01
#> etmwidth                         etmwidth  4.00e+00
#> etmlossPhyto                 etmlossPhyto  0.00e+00
#> rDENITetm                       rDENITetm  0.00e+00
#> reminetm                         reminetm  0.00e+00
#> rNITetm                           rNITetm  0.00e+00
#> att_back_bozs               att_back_bozs -2.00e-01
#> att_turb_bozs               att_turb_bozs  5.50e-01
#> att_chl_bozs                 att_chl_bozs  1.50e-02
#> att_poc_bozs                 att_poc_bozs  0.00e+00
#> att_turbchl_bozs         att_turbchl_bozs  0.00e+00
#> att_turbpoc_bozs         att_turbpoc_bozs  0.00e+00
#> att_chlpoc_bozs           att_chlpoc_bozs  0.00e+00
#> att_turbchlpoc_bozs   att_turbchlpoc_bozs  0.00e+00
#> att_back_bezs               att_back_bezs -8.00e-01
#> att_turb_bezs               att_turb_bezs  8.50e-01
#> att_chl_bezs                 att_chl_bezs  1.50e-02
#> att_poc_bezs                 att_poc_bezs  0.00e+00
#> att_turbchl_bezs         att_turbchl_bezs  0.00e+00
#> att_turbpoc_bezs         att_turbpoc_bezs  0.00e+00
#> att_chlpoc_bezs           att_chlpoc_bezs  0.00e+00
#> att_turbchlpoc_bezs   att_turbchlpoc_bezs  0.00e+00
#> att_back_ws                   att_back_ws -2.00e+00
#> att_turb_ws                   att_turb_ws  1.50e+00
#> att_chl_ws                     att_chl_ws  1.50e-02
#> att_poc_ws                     att_poc_ws  0.00e+00
#> att_turbchl_ws             att_turbchl_ws  0.00e+00
#> att_turbpoc_ws             att_turbpoc_ws  0.00e+00
#> att_chlpoc_ws               att_chlpoc_ws  0.00e+00
#> att_turbchlpoc_ws       att_turbchlpoc_ws  0.00e+00
#> att_back_rupel             att_back_rupel -2.84e-01
#> att_turb_rupel             att_turb_rupel  5.52e-01
#> att_chl_rupel               att_chl_rupel  1.50e-02
#> att_poc_rupel               att_poc_rupel  0.00e+00
#> att_turbchl_rupel       att_turbchl_rupel  0.00e+00
#> att_turbpoc_rupel       att_turbpoc_rupel  0.00e+00
#> att_chlpoc_rupel         att_chlpoc_rupel  0.00e+00
#> att_turbchlpoc_rupel att_turbchlpoc_rupel  0.00e+00