POP is a member of the Bryan-Cox-Semtner class of ocean models first developed by Kirk Bryan and Michael Cox at the NOAA Geophysical Fluid Dynamics Laboratory in Princeton, NJ in the late 1960’s. POP had its origins in the Semtner-Chervin model, which was rewritten in CM Fortran for the Connection Machine CM-2 and CM-5 massively parallel computers. Experience with the resulting model led to the improvements summarized in Chapter 1. The complete “family tree” of the BCS models is displayed in Figure 1 (courtesy of Bert Semtner, Naval Postgraduate School).
Figure 1: Bryan-Cox-Semtner model family tree
This section will be written later. There are currently no tools for this included in the POP distribution. However, some tools do exist and we are attempting to put them in a form usable by others.
There is a vertical grid generating routine in the tools/grids subdirectory. This code is essentially the same code used to generate vertical grids in POP, but can be used to generate a vertical grid file off-line which can be edited to suit your simulation.
Description of DP-grid with picture
The LANL POP 1.4.3 distribution includes a simple test case that can be used for a variety of purposes, including validation, performance and scaling. The key point is that there are no input fields: the model grid, topography, initial state, equation of state coefficients and wind stress (there is no other forcing enabled) are all generated internally. The only file that is read is pop_in.
The CCSM3.0 POP distribution does not provide this test case. Instead, refer to the CCSM3.0 User's Guide for recommended test procedures for the CCSM3.0 system.
To run the test problem, type ./setup_run_dir test and a directory called test will be created that contains all of the appropriate files. The default model size is 192x128x20 grid points (equal spacing for each of the horizontal dimensions) and the model domain is global with idealized landmasses. Make the executable as described earlier in the guide. The pop_in file defaults to running 20 steps with full diagnostics output every step. Note that for performance benchmarks diagnostics should be output sparingly as in a production run as the diagnostic sums are expensive.
To use this test case for validation, the user can compare their ouput with the file pop/input_templates/pop_sgi.log.test which contains the output of a 20 step calculation run on 4 processors of an SGI Origin2000. The results from other computer platforms should agree reasonably well.
Once the answers have been validated using the 192x128x20 grid, performance and scaling can be investigated by varying the grid size (in model_size.F) and the number of processors (in the *.gnu file).
In addition to the methods mentioned above, a standard set of benchmarks has been developed as part of a Climate-Ocean-Weather (COWbench) benchmarking effort. These benchmarks test three different model sizes using a process similar to that above. There is a README file as part of the distribution that describes how to set up and run these benchmarks.
The bin2nc program accepts an input file that contains the name of a POP binary file that is to be converted to netCDF format and the metadata needed to make the netCDF file self describing. The code is invoked as bin2nc input_file, where input_file contains the following namelist:
&bin2nc_nml | Description |
runid | id for this run-sequence |
binary_file_name | file to be converted |
netcdf_file_name | output file name; defaults to binary_file_name.nc |
imax | global range of i = 1:imax |
jmax | global range of j = 1:jmax |
kmax | range of k = 1:kmax |
horizontal_grid_file | defines lon(i,j) and lat(i,j) |
vertical_grid_file | defines dz(k), the thickness (cm) of the k-th layer |
topography_file | defines kmt(i,j), the k-index of the deepest layer at (i,j) |
time-indicator | time or time-interval (in days since beginning of run-sequence) |
POP has been successfully run on a single-processor Intel PC with Windows NT. POP was built with Digital Visual Fortran 5.0 as a Win32 console application (meaning you run it with a command line in a DOS window).
The make system used for other platforms was not used on the PC. Instead, a standard Visual Studio project was created.
Source files added to the project were
In addition to the defaults, these Fortran preprocessor options needed were
To enable POP to run the test problem without stack overflow, one additional link option was needed: reserve stack memory was set to 64 MB. A lower value may be possible, but 48 MB was not enough.
The debug version required one more link option: /nodefaultlib:libc.
The release version (optimized) ran the test problem in about four minutes (262 seconds) on a 450 MHz, 256 MB Pentium II PC.