EcoExtreML / STEMMUS_SCOPE

Integrated code of SCOPE and STEMMUS
GNU General Public License v3.0
14 stars 6 forks source link

How the surface runoff is handled in STEMMUS? #232

Closed MostafaGomaa93 closed 3 months ago

MostafaGomaa93 commented 4 months ago

Hi all,

I am tracking how STEMMUS deals with the amount of water that will not be infiltrated to the soil and calculates the surface runoff. If I understand correctly, this water is introduced by the variable EXCESS. For an easier track, I will summarize the equations from the code below and then my questions.

Variables: Variable Description from the code Description from my unterstaunding
Precip_msr precipitation -
fmax maximum fractional saturated area -
Ks0 - saturated hydraulic conductivity
DSTOR0 Depth of depression storage at the start of the current time step -
DSTOR Depth of depression storage at the end of current time step -
DSTMAX Depression storage capacity -
RS Rate of surface runoff -
Evap Evapotranspiration -
Delt_t length of model time step in seconds -
AVAIL0 - available water to be infiltrated at start of current time step
AVAIL - available water to be infiltrated at start of end time step
EXCESS - saturated hydraulic conductivity

Equations in the code (I will make numbers here so I can refer to them below in my questions): 1- Precip_msr = Precip_msr .* (1 - fmax .* exp(-0.5 * 0.5 * Tot_Depth / 100)). The Precip_msr is adjusted in the loadForcingData in line 21. 2- Precip_msr = min(Precip_msr, Ks0). The Precip_msr is compared with the KS0 in the calculateBoundaryCondistions in line 67, and the minimum of the two is assigned as the Precip_msr 3- AVAIL0 = Precip_msr + DSTOR0 here 4- AVAIL = AVAIL0 - Evap here 5- EXCESS = (AVAIL + HBoundaryFlux.QMT) * Delt_t 6- RS(KT) = (EXCESS - DSTOR) / Delt_t

Questions

Well, the main idea from my questions is to make a correct (more representative) water balance as much as possible after using this Runoff later with MODFLOW.

EntingTang commented 4 months ago

Hi, Mostafa. For the question 1: the adjustment to the precipitation is calculating the infiltration flux, indicating the surface moisture flux remaining after surface runoff has been removed from precipitation (adopted from CLM model, Niu et al., 2005; Oleson et al., 2004). where π‘ƒπ‘Ÿπ‘’π‘π‘–π‘π‘–π‘‘π‘Žπ‘‘π‘–π‘œπ‘› is the model input [mm]. π‘“π‘šπ‘Žπ‘₯ is the maximum fractional saturated area, which is the percent of area whose topographic index is larger than or equal to the mean topographic index in a grid cell (Oleson et al., 2004). π‘“π‘šπ‘Žπ‘₯ (= 0.3694) is extracted from a global dataset (Niu et al., 2005; Oleson et al., 2004). π‘“π‘œπ‘£π‘’π‘Ÿ is a decay factor (= 0.5 m-1) (Oleson et al., 2004). π‘‡π‘œπ‘‘π·π‘’π‘π‘‘β„Ž is the water table depth (= 5 m).

Niu, G. Y., Yang, Z. L., Dickinson, R. E., and Gulden, L. E.: A simple TOPMODEL-based runoff parameterization (SIMTOP) for use in global climate models, J. Geophys. Res. Atmos., 110, 1–15, https://doi.org/10.1029/2005JD006111, 2005.

Oleson, K., Dai, Y., Bonan, B., Bosilovichm, M., Dickinson, R., Dirmeyer, P., Levis, S., Hoffman, F., Houser, P., Niu, G., Thornton, P., Vertenstein, M., Yang, Z., and Zeng, X.: Technical Description of the Community Land Model (CLM), https://doi.org/10.5065/D6N877R0, 2004.

MostafaGomaa93 commented 4 months ago

Hi @EntingTang, Thanks for your answer. I am still not convinced about the use of this precipitation adjustment. Moreover, the water table depth needs to be variable and not fixed to 5 m as its in the code now

I am waiting if @yijianzeng can respond to my others questions

MostafaGomaa93 commented 3 months ago

I discussed with @yijianzeng and came up with the following:

Questions

  • What is the purpose of this precipitation adjustment in Equation 1? I am not familiar with this concept, so I would appreciate a clarification

This equation adjusts the precipitation by removing the saturation excess runoff (Dunninan runoff). This concept is adopted from the CLM model (see https://doi.org/10.5065/D6N877R0 for more details)

  • I think, the Tot_Depth in Equation 1 is the soil depth (which is fixed to 5 m in the code), while it should refer to the water table depth, correct? in that case, the assigned value (fixed as 5 m) is incorrect.

yes, the Tot_Depth should be replaced by the water table depth. If groundwater coupling is activated, a different approach is followed (see in here branch SSM_v.0.3.2)

  • What is the physical concept behind DSTOR0 and DSTMAX in equations 3 and 6? Also, I noticed they are always = 0 in the code.

Not discussed, but I think the depression points are the points with lower elevations than the surrounding points, so the water in these points will either be evaporated or infiltrated after some time, but will not be runoff.

  • What is the use of the HBoundaryFlux.QMT variable in equation 5? I noticed that because of this HBoundaryFlux.QMT variable, EXCESS can still have a value even if Precip_msr = 0.

The EXCESS is not used further in the total runoff (this line is commented). A different approach has been adopted. The total runoff (RS) was calculated from two separate components: the saturation excess runoff (Dunnian runoff) and the infiltration excess runoff (Hortonian runoff). The calculations for R_Dunn are (here, and for R_Hort are here and here). Then, the total runoff is the sum of the two (here)

  • What does the EXCESS exactly mean? Does it mean the excess water from precipitation only (can be called as rejected rainfall infiltration)? Or does it mean the sum of the: a) rejected rainfall infiltration due to very high precipitation rates, and b) the groundwater exfiltration due to the rise in the groundwater level to the land surface?

This concept will need to be re-checked in the future. In the meantime, the EXCESS is not used to get the RS and it is commented on and replaced (see here)

  • In equation 2, Precip_msr was compared to Ks0 and the minimum of the two was assigned as Precip_msr. In MODFLOW, the same comparison is made, and in the case where Precip_msr > Ks0, the difference between the two is the EXCESS (rejected rainfall infiltration) which will go as surface runoff. So, why do we need to re-calculate the term EXCESS in equation 5, while we can just assign EXCESS = Precip_msr - Ks0?

That was already implemented in the R_Hort calculations (here) as discussed above

Well, the main idea from my questions is to make a correct (more representative) water balance as much as possible after using this Runoff later with MODFLOW.

MostafaGomaa93 commented 3 months ago

This issue is the reference for the changes in the Runoff calculations implemented in the branch SSM_v.0.3.2