MPDATA: A Finite-Difference Solver for Geophysical Flows