A Hybrid Flow Direction Algorithm for Water Routing on DEMs