Transmission loss is not added to the aquifer recharge

13 views
Skip to first unread message

Maryam samimi

unread,
Aug 20, 2026, 4:18:37 PMAug 20
to SWAT+

SWAT+ Issue Report Template

1. Primary Issue Location

  • Component: QSWAT+, SWAT+ Editor, 
  • Area of impact: model output: aquifer recharge

2. Software Versions

  • QGIS 3.28.14
  • SWAT+ Editor 3.1.4

3. Project Characteristics

  • Watershed Details: watershed with losing streams and channel recharging to aquifer.
  • Modeling Aim: Water balance

4. Description of Issue

  • The Problem: transmission loss is increased but the recharge values are not changed. 
  • Step to Reproduce:  channels are connected to aquifer for rhg with fraction = 1, ch_k = 125 mm/day

5. Supporting Data (Optional)

  • AI agent response: "that lost water is never handed to the aquifer. In src/sd_channel_control3.f90, right at the end of the subroutine, is this:
    ====
    !! set values for recharge hydrograph - should be trans losses !ob(icmd)%hd(2)%flo = perc return

    Both lines are commented out. hd(2) is the generic "recharge" (rhg) output slot that every object type uses to pass water downstream as recharge (you can see the same slot actively populated for HRUs in hru_hyds.f90: ob(icmd)%hd(2)%flo = sepbtm(j) * cnv_m3). For channels, the line that should feed trans_loss into that slot is dead code — it was apparently stubbed in and never finished.

    Downstream, in command.f90, the aquifer's inflow is built generically as:

    fortran
    ht1 = frac_in * ob(iob)%hd(ihyd) ! ihyd = 2 for "rhg" connections ob(icmd)%hin = ob(icmd)%hin + ht1

    and in aqu_1d_control.f90:

    fortran
    aqu_d(iaq)%rchrg = ob(icmd)%hin%flo / (10. * ob(icmd)%area_ha)

    So the aquifer's rchrg (what ends up in your aquifer output files) is exactly the sum of whatever is sitting in the hd(2) slots of everything connected to it. Since the channel's hd(2) is never written by sd_channel_control3.f90, it just stays at its initialized value of zero for the entire run — no matter what chan.con says (rhg, fraction = 1), no matter what channel K is set to. The connectivity file lets you declare the link, but the routine that would actually push a number through it was never implemented.

    Net effect: the seeped water is subtracted from streamflow, but it isn't added anywhere — it effectively vanishes from the reported water balance rather than reappearing as aquifer recharge."

  • ====

Reply all
Reply to author
Forward
0 new messages