直渠道

对于mode='F',检查洪水曲线的可能性。除了hup ≥ hk < he(缓坡)外,在所有条件下都是可行的。为了计算洪水曲线,使用梯形法则对Bress方程进行积分。为此,将从hup到目标高度的区间分成(ndata-1)个长度为Δh的区间。对于缓坡,目标高度为hk(即洪水曲线随着渠道长度坐标s的增加而接近hk;这对应于A3曲线),对于陡坡,目标高度为he;这对应于B2或B3曲线。目前,ndata在radflowload.c中设置为100。已知hi和si的值,通过h{i+1}=h_i+Δh获得h{i+1}。然后评估Bress方程以获得dh/ds(s_i)和dh/ds(s_{i+1}),由此确定虚拟的dh/ds*=[dh/ds(s_i)+dh/ds(s_{i+1}]/2。然后s_{i+1}=s_i+Δh/(dh/ds*)。对于陡坡,将在i

对于mode='B',回水曲线从ndo开始。在hdo ≤ hk > he(陡坡)之外的所有条件下,回水曲线都是可行的。该方法与洪水曲线的计算类似。对于陡坡(B1曲线),目标高度为hk;对于缓坡(A1或A2曲线),目标高度为he。s和h的值现在存储在字段sba(1..ndata,j)和hba(1..ndata,j)中。注意,积分现在从ndo开始并向上游方向移动,但积分点编号却向下游方向增加。因此,积分从积分点ndata开始。值jumpdo(j)表示实际积分点的最低数量,1 ≤ jumpup(j) ≤ ndata+1。值为ndata+1表示该渠道单元中的曲线是完整的洪水曲线。对于mode='B',持续检查是否发生水跃。为此使用hns.f例程。如果发生水跃,值jumpup(j)对应于水跃上游洪水曲线字段sfr和hfr中的最后一个积分点,而jumpdo(j)对应于水跃下游回水曲线字段sba和hba中的第一个积分点。