The analysis of flow in culverts is quite complicated. It is common to use the concepts of "inlet control" and "outlet control" to simplify the analysis. Inlet control flow occurs when the flow capacity of the culvert entrance is less than the flow capacity of the culvert barrel. The control section of a culvert operating under inlet control is located just inside the entrance of the culvert. The water surface passes through critical depth at or near this location, and the flow regime immediately downstream is supercritical. For inlet control, the required upstream energy is computed by assuming that the culvert inlet acts as a sluice gate or as a weir. Therefore, the inlet control capacity depends primarily on the geometry of the culvert entrance. Outlet control flow occurs when the culvert flow capacity is limited by downstream conditions (high tailwater) or by the flow carrying capacity of the culvert barrel. The HECRAS culvert routines compute the upstream energy required to produce a given flow rate through the culvert for inlet control conditions and for outlet control conditions (see figure below). In general, the higher upstream energy "controls" and determines the type of flow in the culvert for a given flow rate and tailwater condition (however, this is not always true). For outlet control, the required upstream energy is computed by performing an energy balance from the downstream section to the upstream section. The HECRAS culvert routines consider entrance losses, friction losses in the culvert barrel, and exit losses at the outlet in computing the outlet control headwater of the culvert.
Culvert performance curve with roadway overtopping

During the computations, if the inlet control answer comes out higher than the outlet control answer, the program will perform some additional computations to evaluate if the inlet control answer can actually persist through the culvert without pressurizing the culvert barrel. The assumption of inlet control is that the flow passes through critical depth near the culvert inlet and transitions into supercritical flow. If the flow persists as low flow through the length of the culvert barrel, then inlet control is assumed to be valid. If the flow goes through a hydraulic jump inside the barrel, and fully develops the entire area of the culvert, it is assumed that this condition will cause the pipe to pressurize over the entire length of the culvert barrel and thus act more like an orifice type of flow. If this occurs, then the outlet control answer (under the assumption of a full flowing barrel) is used instead of the inlet control answer.