The first solution through the culvert is under the assumption that all of the flow is going through the culvert barrels. Once a final upstream energy is obtained, the program checks to see if the energy elevation is greater than the minimum elevation for weir flow to occur. If the computed energy is less than the minimum elevation for weir flow, then the solution is final. If the computed energy is greater than the minimum elevation for weir flow, the program performs an iterative procedure to determine the amount of flow over the weir and through the culverts. During this iterative procedure, the program recalculates both inlet and outlet control culvert solutions for each estimate of the culvert flow. In general the higher of the two is used for the culvert portion of the solution, unless the program feels that inlet control cannot be maintained. The program will continue to iterate until it finds a flow split that produces the same upstream energy (within the error tolerance) for both weir and culvert flow.