Principles of river engineering: the non-tidal alluvial river