In this chapter and in the following chapter, the MITgcm ‘packages’ are
described. While you can carry out many experiments with MITgcm by starting
from case studies in section Section 4, configuring
a brand new experiment or making major changes to an experimental configuration
requires some knowledge of the packages
that make up the full MITgcm code. Packages are used in MITgcm to
help organize and layer various code building blocks that are assembled
and selected to perform a specific experiment. Each of the specific experiments
described in section Section 4 uses a particular combination
of packages.
Figure 8.1 shows the full set of packages that
are available. As shown in the figure packages are classified into different
groupings that layer on top of each other. The top layer packages are
generally specialized to specific simulation types. In this layer there are
packages that deal with biogeochemical processes, ocean interior
and boundary layer processes, atmospheric processes, sea-ice, coupled
simulations and state estimation.
Below this layer are a set of general purpose
numerical and computational packages. The general purpose numerical packages
provide code for kernel numerical algorithms
that apply to
many different simulation types. Similarly, the general purpose computational
packages implement non-numerical algorithms that provide parallelism,
I/O and time-keeping functions that are used in many different scenarios.
Figure 8.1 Hierarchy of code layers that are assembled to make up an MITgcm simulation. Conceptually (and in terms of code organization) MITgcm consists of several layers. At the base is a layer of core software that provides a basic numerical and computational foundation for MITgcm simulations. This layer is shown marked Foundation Code at the bottom of the figure and corresponds to code in the italicised subdirectories on the figure. This layer is not organized into packages. All code above the foundation layer is organized as packages. Much of the code in MITgcm is contained in packages which serve as a useful way of organizing and layering the different levels of functionality that make up the full MITgcm software distribution. The figure shows the different packages in MITgcm as boxes containing bold face upper case names. Directly above the foundation layer are two layers of general purpose infrastructure software that consist of computational and numerical packages. These general purpose packages can be applied to both online and offline simulations and are used in many different physical simulation types. Above these layers are more specialized packages.¶
The following sections describe the packages shown in
Figure 8.1. Section Section 8.1.1
describes the general procedure for using any package in MITgcm.
Sections Section 8 to Section 10
layout the algorithms implemented in specific packages
and describe how to use the individual packages. A brief synopsis of the
function of each package is given in Figure 8.1.
Organizationally package code is assigned a
separate subdirectory in the MITgcm code distribution
(within the source code directory pkg).
The name of this subdirectory is used as the package name in
Figure 8.1.