Water budget of catchments in the Tafilalt model Theo Olsthoorn, 140103 Intro The catchments or sub-catchments are characterized by their initial loss after precipitation, and their surface runoff and their groundwater runoff. Another factor is storage in the catchments. Catchments may be mutually connected in a sense that upstream ones can discharge both their surface runoff and their groundwater outflow towards the receiving downstream neighbor. The computation of the available water in any catchment is done recursively, that is starting from any catchments the water budgets are computed by visiting upstream catchments first, to obtain their surface and groundwater runoff to the catchment in question. If done recursively every catchment is visited. This will work for any tree-type system of connected catchments in a sense that any catchment can receive water from an arbitrary number of upstream catchments, but can only discharge to one downstream neighbor. The procedure getRech Traversing the hierarchical tree of catchments is done for an arbitrary starting catchment along connected branches and twigs of the tree from an arbitrary starting point until a leaf is reached. When an arbitrary catchment in the tree is thus visited, this catchment questions all its upstream neighbors in turn for their the outflowing data, i.e. outflowing runoff and outflow groundwater. This data is available if the upstream catchment was visited before. If it wasn’t, then we deal with the upstream catchment first. By questioning the outflowing data of its upstream neighbors in turn. While we do this in turn, we end up with the end leaves of the tree. That is, in a catchment that has no upstream neighbors. For such a catchment we can compute the entire water budget including its runoff and groundwater outflow. We store these budget values inside the catchment’s UserData. We also store the fact that this catchment has been visited. Then we fall back to the downstream catchment from which we came. We can now obtain the outflow of our upstream neighbor and continue questioning our next upstream neighbor in turn. 07/02/16 1 This way all catchments will get their water budget data during the traversing of the catchment tree by the routine getRech. Because each catchment then holds all its water budget data, we can readily verify it and make sure no water is lost in the procedure. Water budget requirement The beauty of recursive programming is that it can traverse connected trees of arbitrary size with a very small routine, as is the case with getRech. The difficulty is that it is sometimes tricky, at is calls itself numerous times. Therefore severe checking is necessary. The computation of the water budget of each leaf of the tree and the tree as a whole is a powerful method, which will be applied here. The routine must ensure that the water budget of each catchment is maintained at all times, that is for each leaf in the tree the budget must agree, which implies that the budget of all upstream catchments also must agree. We may write a routine that checks the budget of each catchments including all its upstream neighbors, that is each subtree as a whole starting at an arbitrary node. This is the ultimate verification. Water budget computation for an arbitrary catchment The water budget of a catchment, given index i, reads: “in “is “out” plus “change of storage in the catchment” during time period k: Ii,k = Oi,k + DSi,k Where Ni Ni j=1 j=1 I i,k = Pi,k + å RIn,k + å GIn,k (1.1) with Rin,k is the runin (contrary to runoff) coming from one of the connected upstream catchments and Gin,k is the inflowing groundwater from the same upstream catchment. The sum is carried out over all the N i catchments that are upstream of catchment i. The outflow or loss terms are Oi,k = Li,k + Ri,k + Gi,k (1.2) There is no summation because we assume that each catchment has at most one downstream catchment. Li,k is the initial loss of catchment i in time interval k. This in, in fact, immediate evapotranspiration or interception. The terms R and G are as explained before. As there is only little vegetation in the catchments, we ignore further evapotranspiration. We may add it later, though. 07/02/16 2 The initial loss will be set to the minimum of I i,k and an initial loss value given for each catchment as a property of the catchment. Li,k = min ( I i,k ,li ) (1.3) The runoff equals a runoff factor, which is another catchment property times the amount of inflowing water minis initial loss Ri,k = ri ( I i,k - Li,k ) (1.4) The groundwater runoff will be related to the storage, that is, the amount of groundwater present in the catchment, at the beginning of the time interval. Gi,k = gi Si,k-1 (1.5) The change of storage is what makes the water budget match: DSi,k = Si,k - Si,k-1 = Ii,k - Oi,k (1.6) Si,k = Si,k-1 + Ii,k - Oi,k (1.7) Hence, This makes up the water balance for the catchments. The storage and the groundwater runoff There is uncertainty how to handle the storage and the groundwater outflow and what numeric values to apply. Although this uncertainty cannot be completely resolved without extended local field research, which is beyond the possibilities of this project, we can establish reasonable values though. By assuming all flow terms to be constant during the considered time interval, which must therefore not be too long, we can take a continuum approach by writing for an arbitrary catchment (no index used here) dS = ( P + Rin + Gin - Rout - L ) - Gout dt = N - Gout (1.8) Where N = P + Rin + Gin - Rout - L is the groundwater recharge during time interval k. Or dS = N - gS dt (1.9) Because we assume N to be constant during the considered time interval, this ordinary differential equation may be integrated: 07/02/16 3 d ( N - gS ) = N - gS dt (1.10) ln ( N - gS ) = t + C (1.11) which yields The integration constant can be resolved by stating that we have S = S0 when t = t 0 where the zero indicates the beginning of time interval k or time k-1. Hence ln ( N - gS ) = ln ( N - gS0 ) ( t - t0 ) (1.12) N - gS = ( N - gS0 ) e- g(t-t0 ) (1.13) or which yields S = S0 e- g(t-t0 ) + ( N 1- e- g(t-t0 ) g ) (1.14) We observe that g is a time constant, which is another catchment property. Therefore we prefer writing the previous equation as follows: Si,t = Sk-1e - t-t k Ti t-t - kö æ + Ti N i,k ç 1- e Ti ÷ è ø (1.15) in which we added the index of the catchment and the index of the time interval. The first term determines the drainage of the groundwater from the catchment and the second its filling. Note that without initial storage, and with perpetual constant recharge N then after infinite time, the amount of water in the catchment has reached a maximum equal to Smax,i = Ti N (1.16) which indicates immediately a useful value for the characteristic time Ti . It relates the maximum storage to the average inflow rate. We might for instance estimate T to be equal to 10 years, indicating that the maximum storage in the aquifer of the catchment is 10 times the yearly influx. We can also look at T in terms of the halftime of the drainage of the basin in case no recharge is available. This halftime equals 0.5Si,k = Si,k e - Ti ,0.5 Ti ® Ti,0.5 = Ti ln 2 » 0.69Ti (1.17) or Ti » 1.4Ti,0.5 (1.18) Therefore, if we would be able to estimate the half time, for instance from a discharge decay curve at the exit of the catchment, we have the sought time constant 07/02/16 4 as well. We might be tempted to estimate the halftime at 5 years. In that case Ti » 7 yr , which we may accept as a crude first approximation as long as no other data is available. The average groundwater discharge from t = t k-1 to t = t k due to decay of the storage, i.e. without any recharge equals Gi,tk-1®tk = Si,k-1 - Si,k Dt k (1.19) where Dt k = t k - t k-1 . Hence Dt - kö Si,k-1 æ Gi,k = 1- e Ti ÷ Dt k çè ø - (1.20) Dt k 1- e Ti With Ti / Dt k = 7 and Dt k = 1yr we get with g = = 0.13 / yr = 3.65 ´ 10 -4 / day Dt k Gi,k » 3.65 ´10 -4 Si,k-1 (1.21) in m/d. Hence, in case the storage in the reservoir is the equivalent of 1 m water, the average yearly groundwater loss would be 130 mm. It is clear that this value is too large for the circumstances in the Tafilalt where the total yearly precipitation is in the order of 100 mm/year and we expect a recharge and, therefore, a maximum discharge of around 5 mm/year. The total storage would then be about 0.0376 m of water, of an average water layer thickness at 25 percent porosity of around 0.15 m (15 cm), which is a very small amount indeed. Given that the actual alluvial aquifers are concentrated in the valley bottoms and are much narrower than the catchment, perhaps even 10 to 20 times narrower, we would expect the real depth of the groundwater in the center of the valleys to be much greater than 15 cm, i.e. 1.5 to several meters. We might even extrapolate this reasoning towards estimating the transmissivity at the narrow outlet of the catchments where we know their width and their topographical gradient and total flow. This, however, is not necessary for further analysis of the model. The water budget can be computed from the data stored in the catchment’s UserData as Bi,k = Pi,k + Riin,i,k + Gin,i,k - Li,k - Rout ,i,k - Gout ,i,k - ( Si,k - Si,k-1 ) = 0 (1.22) which must be zero for all catchments and all time intervals. Properties required for the catchments The properties that are required for the computation of the water budget of the catchments are 07/02/16 5 1. 2. 3. 4. L: [m] initial loss [m] r: [-] runoff coefficient T: [d] characteristic time of storage decay of catchment S0: [m] the initial amount of water in the catchment The precipitation is given per monthly stress period. Then the initial loss of subtracted from the monthly recharge value. The initial loss should be in the order of 10 to 22 mm. Then the monthly value is converted to average daily precipitation. The runoff coefficient is unknown, but we estimate it between 25 and 75% of the recharge plus incoming runoff form upstream catchments. It can be varied until the model produces a reasonable outcome. Note that what is left over, i.e. the value of J in equation (1.8) is recharge, Gout s the groundwater discharge. We have to make sure that the time constant is in the right dimensions because of the way the recharge is computed from monthly values. This implies that the time constant has to be in days. We estimated 7 years for this time constant, which is around 2500 days or . -0-0-0- 07/02/16 6