CH-Earth / meshflow

Workflow to set up MESH models
GNU General Public License v3.0
1 stars 4 forks source link

Adding fictitious channels for vector-based setup for the outlet nodes #6

Open kasra-keshavarz opened 10 months ago

kasra-keshavarz commented 10 months ago

The current version of MESH r1860 does not route streamflow in outlet sub-basins/channels. Therefore, as a quick fix, a fictitious channel could be added to each outlet sub-basin/channel, to facilitate the routing. Since these fictitious channels are considered as "outlet" instead, no routing will be done on them either and modellers could trust the result of vector-based routing.

Copying @mee067

Mohamed's comments on Slack:

for gridded setups, we used to have one more grid to account for that. GK does it automatically. It has a Rank with Next = 0 Earlier versions of the code used not to even run CLASS on that grid but newer code (1860) does run CLASS for that grid. Moving to vector-based setups, CLASS would thus run on the last subbasin which probably is not an extra basin. runoff will be routed to the instream channel but I do not think there will additional channel routing for the flow - I am not 100% sure though. I do not think that's critical. It does produce output at the outlet.

The thing is, MESH needs a NEXT value to route to, and assumes the channel to go from a grid/sub to its NEXT one. It's not from the most u/s point within a grid/sub to its most d/s point. I don't think there is channel routing for the last sub and thus we need to add another fictitious one d/s to get the effect. How much difference would that make for the outlet flow, I can't say, but I don't think it's that large.

The vector workflow does not add that extra sub and therefore, I found that Qo = Qi for the last sub for the vector-based Yukon setup. Qo is the channel outflow, Qi is the inflow from u/s subs + local RFF. I made a quick comparison for the Yukon outlet and I do not feel the local runoff is even included. I see all loops go only to NAA and then this is a special treatment for the outlet on lines 958-960 of rte_module.f90:

https://github.com/MESH-Model/MESH-Dev/blob/ff1de25e67ef552844f1e789c0faffb4175a8dac/Routing_Model/RPN_watroute/sa_mesh_process/rte_module.f90#L957-L959

For large basins such as the MRB, YRB, this may not be important - runoff from the last sub/grid would not be that large compared to the huge flow collected from the basin

but for small basins - like those little basins draining to the sea or a lake, ignoring the runoff and routing within the last sub could be significant - depends on the size and relative contribution of that last sub to the flow of the basin. It could be raining a lot on the shore line of a marine basin or a lake shore to make significant contribution.

kasra-keshavarz commented 10 months ago

It can be confirmed that for the "outlet" channel, Qi = Qo, and therefore, it can be concluded that no routing happens. However, RFF (local runoff) is generated for the outlet channel, while, it could be zero or very close to zero, which is concerning and could be related to the upstream.

Still, adding a fictitious channel makes sense to facilitate routing as an interim solution. It has to be assured that the RFF is not generated for the fictitious channel (CLASS should not run), and therefore, the gru fractions for the fictitious sub-basins should be all zero.