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
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 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.
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.
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
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).
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}\]
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 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 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}\]
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}\]
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 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
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\).
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
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.
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.
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