POP is an ocean circulation model derived from earlier models of Bryan, Cox, Semtner and Chervin in which depth is used as the vertical coordinate. The model solves the three-dimensional primitive equations for fluid motions on the sphere under hydrostatic and Boussinesq approximations. Spatial derivatives are computed using finite-difference discretizations which are formulated to handle any generalized orthogonal grid on a sphere, including dipole and tripole grids which shift the North Pole singularity into land masses to avoid time step constraints due to grid convergence.
Time integration of the model is split into two parts. The three-dimensional vertically-varying (baroclinic) tendencies are integrated explicitly using a leapfrog scheme. The very fast vertically-uniform (barotropic) modes are integrated using an implicit free surface formulation in which a preconditioned conjugate gradient solver is used to solve for the two-dimensional surface pressure.
A wide variety of physical parameterizations and other features are available in the model and are described in detail in a reference manual distributed with the code. Because POP is a public code, many improvements to its physical parameterizations have resulted from external collaborations with other ocean modeling groups and such development is very much a community effort. Detailed descriptions of the numerical discretizations and methods are described in the reference manual and in other publications.
Although POP was originally developed for the Connection Machine, it was designed from the start for portability by isolating all routines involving communication into a small set (5) of modules which can be modified for specific architectures. Currently, versions of these routines exist for MPI and SHMEM communication libraries and also for serial execution. The appropriate directory is chosen at compile time and no pre-processor directives are used to support different machines. Support for hybrid programming using threads and message passing has recently been added (v2.0 and later) and is described in the User's Guide.
POP is the ocean component of the Community Climate System Model and has been used extensively at LANL in ocean-only mode for eddy-resolving simulations of the global ocean and for ocean-ice coupled simulations with the CICE model.
The Parallel Ocean Program (POP) was developed at LANL under the sponsorship of the Department of Energy's CHAMMP program, which brought massively parallel computers to the realm of climate modeling. POP is a descendent of the Bryan-Cox-Semtner class of ocean models first developed by Kirk Bryan and Michael Cox (see references in Users Guide) at the NOAA Geophysical Fluid Dynamics Laboratory in Princeton, NJ in the late 1960’s. POP had its origins in a version of the model developed by Semtner and Chervin (see references in User's Guide). The complete family tree of the BCS models is displayed in the figure below.
Under the CHAMMP program, the Semtner-Chervin version was rewritten in CM Fortran for the Connection Machine CM-2 and CM-5 massively parallel computers. Experience with the resulting model led to a number of changes resulting in what is now known as the Parallel Ocean Program (POP). Although originally motivated by the adaptation of POP for massively parallel computers, many of these changes improved not only its computational performance but the fidelity of the model’s physical representation of the real ocean. These improvements included a free-surface boundary, an implicit surface pressure formulation of the barotropic mode and the introduction of pressure-averaging. Details can be found in the model documentation and in publications.
After these improvements were added, the primitive equations were reformulated and discretized to allow the use of any locally orthogonal horizontal grid. This provides alternatives to the standard latitude-longitude grid with its singularity at the North Pole. This generalization made possible the use of displaced-pole grids and tripole grids which move the singularity arising from convergence of meridians at the North Pole into an adjacent landmass such as North America, Russia or Greenland. Such a displaced pole leaves a smooth, singularity-free grid in the Arctic Ocean. That grid joins smoothly at the equator with a standard Mercator grid in the Southern Hemisphere.
Originally, the code was written using a data-parallel approach for the Thinking Machines Connection Machine. Later versions used a more traditional domain decomposition style using MPI or SHMEM for inter-processor communications. More recent versions (v2.0 and later) of the code can support hybrid parallism (threads/message-passing). The flexibility of mixing thread-based and message-passing programming models gives the user the option of choosing the best combination of styles to suit a given machine.
In the period 1994-97, POP was used to perform high resolution (0.28 degrees at the Equator) global ocean simulations, running on the Thinking Machines CM5 computer then located at LANL's Advanced Computing Laboratory. The primary motivation for performing such high-resolution simulations is to resolve mesoscale eddies that play an important role in the dynamics of the ocean. Comparison of sea-surface height variability measured by the TOPEX/Poseidon satellite with that simulated by POP gave convincing evidence that still higher resolution was required. At the time, it was not possible to do a higher resolution calculation on the global scale, so an Atlantic Ocean simulation was done with 0.1 degree resolution at the Equator. This calculation agreed well with observations of sea-surface height variability in the Gulf Stream. Many other features of the flow were also well simulated (see Publication and Data sections of this web site). Using the 0.1 degree case as a benchmark, lower resolution cases were done at 0.2 degrees and 0.4 degrees. Later we were finally able to run a 0.1 degree global simulation and some data from this simulation is also available.
Both a user's guide and reference manual for POP are available and can be downloaded through the links below. These are also available in the standard POP distribution in the doc directory.
Download: User's Guide in [ pdf ] format.
Download: Reference manual in [postcript] format.
If you would like announcements about bugs, releases and other POP information, you can subscribe to the pop-users list. To subscribe, send an e-mail to email@example.com with the message "subscribe pop-users".
The current release of POP is version 2.0.1 released on 21 Jan 2004:
Changes made in the source code since the previous version are summarized in the release notes. If you find a bug in this version, please email us for now - we are currently installing bug tracking software and will make that available soon.
We are currently putting together a 2.1 release. For this release, we will be making many changes, both cosmetic and substantive. We now have a source code repository accessible by anyone (for reading). This is a subversion repository and anyone with subversion may check the code out and keep up with changes as we make them, rather than waiting for an official release. Keep in mind that only the official releases will be fully tested. If you wish to check the code out directly from the repository, you can check out the latest trunk, or wait for a tagged release.
We are currently focused on the 2.1 release as noted above. We are also planning new designs for the forcing modules and the diagnostic modules. Most other development effort is directed toward our new HYPOP model.