We present a GPU implementation for solving shallow water equations. Our implementation achieves 410 GFLOPS on a Nvidia Tesla C2050 device, which is about 40% of the theoretical maximum. The talk addresses important optimizations when using the Lax-Wendroff method on GPUs. In particular, optimizing with texture and avoiding divergence are detailed. Finally, we apply our GPU solver to simulate tsunamis, floods, and dam breaks.