Stony Brook Parallel Ocean Model

Welcome to sbPOM

The Stony Brook Parallel Ocean Model (sbPOM) is a parallel, free-surface, sigma-coordinate, primitive equations ocean modeling code based on the Princeton Ocean Model (POM). The POM is a simple-to-run yet powerful ocean modeling code used by the scientific community for a wide-range of applications. To maintain the POM legacy, the sbPOM uses a relatively simple parallelization scheme (two-dimensional data decomposition of the horizontal domain with a halo of ghost cells). However, the sbPOM achieves very good scalability on a wide range of compute nodes. The code is meant for solving very large problem. We have, for example, run the code for more than 1K nodes.

The sbPOM is derived with minimal modifications from the POM, although it is re-arranged into several files and subroutines following the example of Dr. Miyazawa with the MPI-POM. The sbPOM is composed of the following files (in the pom folder):

  • pom.f is the main driver.
  • initialize.f sets up the problem.
  • advance.f advances the code in time.
  • bounds_forcing.f specifies boundary conditions, atmospheric forcing...
  • solver.f solves the basic dynamics.
  • parallel_mpi.f makes the parallel tasks (communications between processors).
  • io_pnetcdf.F makes the parallel input/output (I/O) operations.
  • This should provide POM developers/users with a familiar code that they can easily use or modify. The user community is encouraged to parallelize recent advances in POM such as the wetting and drying scheme and the surface wave-ocean current coupling.

    For more details, see Jordi A. and Wang D.-P. (2012), sbPOM: A parallel implementation of Princenton Ocean Model, Environmental Modelling & Software, 39, 58-61 (doi:10.1016/j.envsoft.2012.05.013).


    Antoni JordiIMEDEA (UIB-CSIC)