pPOM: A nested, scalable, parallel and Fortran 90 implementation of the Princeton Ocean Model