c_PROPAG — Function permitting to propagate hydrographs with simple models
[Q_DOWN,[R]] = c_PROPAG(TYPE,Param,Q_UP)
Type of lag and reservoir used
10: Simple Lag
11: simple lag + Linear reservoir
12: simple lag + Quadratic reservoir
20: GR4J UH
21: GR4J UH + linear reservoir
22: GR4J UH + quadratic reservoir
The four parameters values
Param(1) = Lag time (expressed in number of time-steps, ex. in days for daily values).
Param(2) = Rescaling factor (dimensionless). Routing model output is multiplied by this coefficient to convert up. discharges into down. ones
Param(3) = Capacity of the routing reservoir (expressed in number of time steps for a linear reservoir or upstream discharge unit for a quadratic reservoir)
Param(4) = [ not utilised yet...]
Uptsream discharges (matrix [Nx1] where N is the number of time steps)
Calculated downstream discharges expressed in the upstream discharges unit (matrix [Nx1])
Calculated reservoir level (matrix [Nx1])
WARNING : This function is written in C language and interfaced with SCILAB (HYDROGR.dll).
This propagation model associates a simple lag model (upstream hydrograph is simply temporally shifted) to a linear or quadratic reservoir. This reservoir acts like an exponentially decaying unit hydrograph. It controls flood wave attenuation.
To calibrate the lag-and-route model, the usual procedure is to use a "Pas à Pas" routine (cf function PasaPas).
// Time t = 0:100; // Upstream hydrograph Qam=exp(-(t/10-3)^2)'; // Calculated downstream hydrograph Qav11 =c_PROPAG(11,[20;1;1;0],Qam); Qav12 =c_PROPAG(12,[20;1;1;0],Qam); Qav21 =c_PROPAG(21,[20;1;1;0],Qam); Qav22 =c_PROPAG(22,[20;1;1;0],Qam); // Plot plot(t,Qam,'k:');xtitle('','Time','Discharge'); plot(t,[Qav11 Qav12 Qav21 Qav22])