A GPU accelerated adjoint-based optimizer for inverse modeling of the two-dimensional shallow water equations. (10th September 2016)