Implementation of the Soil Moisture Accounting module of the framework for hydrological modelling FUSE. This loss module is derived from the Fortran version of FUSE by Martyn Clark (2011).

fusesma.sim(DATA, mid, deltim, rferr_add = 0, rferr_mlt = 1, frchzne,
  fracten, maxwatr_1, percfrac, fprimqb, qbrate_2a, qbrate_2b, qb_prms,
  maxwatr_2, baserte, rtfrac1, percrte, percexp, sacpmlt, sacpexp, iflwrte,
  axv_bexp, sareamax, loglamb, tishape, qb_powr, fracstate0 = 0.25,
  absError = 10^(-4), relError = 10^(-4), StatesFluxes = FALSE)

Arguments

DATA

This is a data.frame containing the observed time series (zoo objects). It is structured into three columns containing: precipitation (P), potential evapo-transpiration (E) and streamflow discharge (Q).

mid

This is the model identification number (see first column of modlist). This is a numeric value in the range [1, 1248].

deltim

This is the input time step (numeric value). By default deltim = 1 for daily steps. Other options: 1/24 (hourly time step), 1/(24*4) (15 min time step).

rferr_add

Additive rainfall error, default is 0 (mm day-1).

rferr_mlt

Multiplicative rainfall error, default is 1 (-).

frchzne

Fraction of tension storage in recharge zone (-).

fracten

Fraction total storage as tension storage (-).

maxwatr_1

Maximum total storage in upper soil layer (mm).

percfrac

Fraction of percolation to tension storage in the lower layer (-).

fprimqb

Fraction of storage in the first baseflow reservoir (-).

qbrate_2a

Baseflow depletion rate in the first reservoir (day-1).

qbrate_2b

Baseflow depletion rate in the second reservoir (day-1).

qb_prms

Baseflow depletion rate (day-1).

maxwatr_2

Maximum total storage in lower soil layer (mm).

baserte

Baseflow rate (mm day-1).

rtfrac1

Fraction of roots in the upper layer (-).

percrte

Percolation rate (mm day-1).

percexp

Percolation exponent (-).

sacpmlt

Sacramento model percolation multiplier for dry soil layer (-).

sacpexp

Sacramento model percolation exponent for dry soil layer (-).

iflwrte

Interflow rate (mm day-1).

axv_bexp

ARNO/VIC 'b' exponent (-).

sareamax

Maximum saturated area (-).

loglamb

Mean value of the log-transformed topographic index (m).

tishape

Shape parameter for the topo index gamma distribution (-).

qb_powr

Baseflow exponent (-).

fracstate0

Initial saturation of water storages, default is 0.25.

absError

Absolute solver error, default is 10^(-4).

relError

Relative solver error, default is 10^(-4).

StatesFluxes

By default StatesFluxes = FALSE which means the function only output is the instantaneous runoff. If StatesFluxes=TRUE, the output also contains the list of fluxes and state variables.

Value

The function returns an array of simulated "instantaneous" discharges. If necessary, fuserouting.sim can be run to obtain routed discharges using a two parameter Gamma distribution.

Details

fusesma.sim() is a function to generate an ensemble of SOIL MOISTURE ACCOUNTING models. It is compatible with the HYDROMAD framework (see hydromad package: http://hydromad.catchment.org/). fusesma.sim() can simulate several model structures. The default list is modlist contained in the data folder of this package. The parameter set varies depending on the selected model structure. Ranges of parameter values are in fusesma.ranges. For more information on suggested parameter ranges see Clark et al. 2011. Also see GenerateFUSEParameters. Flow can then be routed using the function fuserouting.sim (which is based on the Gamma function) or any other routing function.

References

Clark M. P., SlaterA. G., Rupp D. E., Woods R. A., Vrugt J. A., Gupta H. V., Wagener T. and Hay L. E. (2008), Framework for Understanding Structural Errors (FUSE): A modular framework to diagnose differences between hydrological models, Water Resour. Res. 44 p. 91-94. Clark M. P., McMillan H. K., Collins D. B. G., Kavetski D. and Woods R. A. (2011), Hydrological field data from a modeller's perspective: Part 2: process-based evaluation of model hypotheses. Hydrological Processes, 25: 523-543. doi: 10.1002/hyp.7902

Examples

# NOT RUN {
data(fuse_hydrological_timeseries)
set.seed(123)
parameters <- generateParameters(1)
U <- fusesma.sim(fuse_hydrological_timeseries,
                 60, 1, parameters$rferr_add, parameters$rferr_mlt,
                 parameters$frchzne, parameters$fracten,
                 parameters$maxwatr_1, parameters$percfrac,
                 parameters$fprimqb, parameters$qbrate_2a,
                 parameters$qbrate_2b, parameters$qb_prms,
                 parameters$maxwatr_2, parameters$baserte,
                 parameters$rtfrac1, parameters$percrte, parameters$percexp,
                 parameters$sacpmlt, parameters$sacpexp, parameters$iflwrte,
                 parameters$axv_bexp, parameters$sareamax,
                 parameters$loglamb, parameters$tishape, parameters$qb_powr)
# }