Maximum flow is a fundamental problem in Combinatorial Optimization that has numerous applications in both theory and practice. In this paper, we study the flow network simplification problem, which asks to remove all the useless arcs from the graph. To be precise, an arc is useless if it does not participate in any simple s,t-path. Weihe [FOCS'94, JCSS'97] showed if there exists an \(O(n \log n)\)-time algorithm for simplifying a flow network, then a maximum s,t-flow in directed planar graphs can be computed in \(O(n \log n)\)-time. However, there was no known algorithm that could determine all the useless arcs in \(O(n \log n)\)-time. Although an \(O(n \log n)\)-time algorithm for computing maximum flow on directed planar graphs without simplifying a flow network has been later discovered Borradaile and Klein [SODA'06, J.ACM'09], it remains open whether a directed planar flow network can be simplified in \(O(n \log n)\)-time. Here we present an algorithm that determines all the useless arcs in \(O(n \log n)\)-time, thus completing the framework of Weihe. Our algorithm improves upon the previous best running time of \(O(n^2)\) for removing all the useless by Misiolek and Chen [COCOON'05, IPL'06] and by Biedl, Brejova and Vinar [MFCS'00].