This model uses a looping container to remove a time step delay in reservoir releases that supply water to irrigation demands downstream. A previous value element looks at the value from the previous container loop in order to reference the irrigation shortage at the dam. The element called "Irrigation_Release_Req" in the container "Flow_Solver" is the amount of water needed in order to supply the irrigation demand plus any additional releases to address irrigation shortages.
Note that if you have losses in the river upstream of the diversion point, the problem gets a little more complex and you will need to add more makeup flows to the release. The element called "Makeup_Flow" increments flow on each loop of the container until the downstream shortage is reduced to some threshold. If you remove the river loss from the equation, then you don't need this makeup flow function and just need to loop the container 2-3 times every time step to remove the delay in the irrigation release.