Unraveling the HRU water balance in SWAT (II)

In a previous post I dug into the SWAT code for determining how was the water balance computed at the HRU level. This is done at the daily level in the code, but values in the output.hru file are usually given by months. The next question is how to compute a monthly water balance for a given HRU based on the data on output.hru.

The problem is there is not a perfect correspondence between the variables in the water balance equations and the variables reported in the output.hru file, making computing a proper water balance difficult. To be sure of this fact I had to read through two other SWAT routines, sumv.f and hrumon.f. These are in charge of making summary calculations for the HRUs and writing monthly HRU output to the output.hru file. I traced all the variables in the daily water balance equation and I found out that some of them are missing, or are not exactly equal. This is, in brief, the correspondence between them:

storages SWAT 2005 SWAT 2009 SWAT 2012
sno_hru missing SNO_HRU SNO_HRU
sol_sw SW_END SW_END SW_END
shallst SA_ST SA_ST SA_ST
deepst DA_ST DA_ST DA_ST
surf_bs missing missing missing
bss missing missing missing
flows SWAT 2005 SWAT 2009 SWAT 2012
subp PRECIP PRECIP PRECIP
aird IRR IRR IRR
rchrg GW_RCHG GW_RCHG GW_RCHG
twlpnd missing missing missing
twlwet missing missing missing
etday ET ET ET
revapday REVAP REVAP REVAP
qday SURQ_CNT-TLOSS SURQ_CNT-TLOSS SURQ_CNT-TLOSS
latq missing missing LATQ_CNT
gw_q GW_Q GW_Q GW_Q
qtile missing missing QTILE
sepbtm PERC PERC PERC

As it can be seen, the situation depends on which version of SWAT you are using:

  • Snowpack storage is missing in SWAT2005, but it’s there since SWAT2009.
  • Only SWAT2012 reports on QTILE and LATQ_CNT (I guess that using LATQ_GEN would serve as an approximation to the latter).
  • In all cases the surface runoff load to the main channel needs to be computed as SURQ_CNT-TLOSS.
  • Seepage at ponds and wetlands (twlpnd and twlwet) is missing even in the most recent version, although these are probably not relevant for most users because they are rare contributors to the HRU hydrology.
  • Surface runoff and lateral flow lagged at the end of the month are not reported. They probably contribute very little to the monthly water balance, but it would be interesting to have them, too.

With this correspondences computing the monthly water balance of any HRU should be an easy task. We shall check it in a later post.

2 Comments

  • Sergio López wrote:

    Hi Santiago
    I ´ve already tried to find the balance between Flux_in and Flux_out in my watersheds, but it´s really frustrating to talk about balance and not be able to show it. Do you have any example something like a spreadsheet that could show this topic?
    Thank you for talking about this, there is very few people concern about the physical meaning of the components and SWAT and I haven´t found the way to present this problem.
    I appreciate any piece of advice.

  • sbegueria wrote:

    Hi Sergio, and sorry for the late response. I don’t have a spreadsheet, but the R function I posted should work with no issues. Please, let me know if it did work for you.

Leave a Reply

Your email is never shared.Required fields are marked *