6 |
<!-- CMIREDIR:packages: --> |
<!-- CMIREDIR:packages: --> |
7 |
\end{rawhtml} |
\end{rawhtml} |
8 |
|
|
9 |
Within this chapter, the MITgcm ``packages'' are described. |
In this chapter and in the following chapter, the MITgcm ``packages'' are |
10 |
Initially, ``packages'' were conceived to group source code files |
described. While you can carry out many experiments with MITgcm by starting |
11 |
together based upon their functionality. Each package was assigned a |
from case studies in section \ref{sect:tutorials}, configuring |
12 |
separate subdirectory (within \texttt{pkg}) and, usually, contained |
a brand new experiment or making major changes to an experimental configuration |
13 |
source code for implimenting different physical parametizations. This |
requires some knowledge of the {\it packages} |
14 |
was a convenient method for both segregating and rapidly including or |
that make up the full MITgcm code. Packages are used in MITgcm to |
15 |
excluding parameterizations during the software build process. |
help organize and layer various code building blocks that are assembled |
16 |
|
and selected to perform a specific experiment. Each of the specific experiments |
17 |
|
described in section \ref{sect:tutorials} uses a particular combination |
18 |
|
of packages. |
19 |
|
Figure \ref{fig:package_organigramme} shows the full set of packages that |
20 |
|
are available. As shown in the figure packages are classified into different |
21 |
|
groupings that layer on top of each other. The top layer packages are |
22 |
|
generally specialized to specific simulation types. In this layer there are |
23 |
|
packages that deal with biogeochemical processes, ocean interior |
24 |
|
and boundary layer processes, atmospheric processes, sea-ice, coupled |
25 |
|
simulations and state estimation. |
26 |
|
Below this layer are a set of general purpose |
27 |
|
numerical and computational packages. The general purpose numerical packages |
28 |
|
provide code for kernel numerical alogorithms |
29 |
|
that apply to |
30 |
|
many different simulation types. Similarly, the general purpose computational |
31 |
|
packages implement non-numerical alogorithms that provide parallelism, |
32 |
|
I/O and time-keeping functions that are used in many different scenarios. |
33 |
|
|
34 |
Over time, package use has increased. The number of packages has |
|
35 |
grown and they have evolved to contain much of the model functionality |
\begin{figure} |
36 |
including momentum schemes, I/O utilities, diagnostics, ``exchange'' |
\begin{minipage}{12cm} |
37 |
algorithms for domain decomposition, and numerous physical |
\marginsize{0cm}{0cm}{0cm}{0cm} |
38 |
parameterizations. The following sections describe how to use the |
%% \scalefig{0.6} |
39 |
existing packages and how to modify them and create new ones. |
%% \epsfbox{part6/organigramme_mitgcm_pkg.eps} |
40 |
|
\epsfig{file=part6/organigramme_mitgcm_pkg.eps, angle=-90, scale=0.85, width=17cm} |
41 |
|
\end{minipage} |
42 |
|
\label{fig:package_organigramme} |
43 |
|
\caption{ Hierarchy of code layers that are assembled to make up an MITgcm |
44 |
|
simulation. Conceptually (and in terms of code organization) MITgcm consists |
45 |
|
of several layers. At the base is a layer of core software that provides a |
46 |
|
basic numerical and computational foundation for MITgcm simulations. This |
47 |
|
layer is shown marked {\bf Foundation Code} at the bottom of the figure |
48 |
|
and corresponds to code in the italicised subdirectories on the figure. |
49 |
|
This layer is not organized into packages. All code above the foundation layer |
50 |
|
is organized as packages. Much of the code in MITgcm is contained in packages |
51 |
|
which serve as a useful way of organizing and layering the different levels of |
52 |
|
functionality that make up the full MITgcm software distribution. |
53 |
|
The figure shows the different packages in MITgcm as boxes containing bold |
54 |
|
face upper case names. Directly above the foundation layer are two layers of |
55 |
|
general purpose infrastructure software that consist of computational and |
56 |
|
numerical packages. These general purpose packages can be applied to both |
57 |
|
online and offline simulations and are used in many different physical |
58 |
|
simulation types. Above these layers are more specialized packages. } |
59 |
|
\end{figure} |
60 |
|
|
61 |
|
The following sections describe the packages shown in |
62 |
|
figure \ref{fig:package_organiigramme}. The sections |
63 |
|
layout the algorithms implemented in each package |
64 |
|
and describe how to use the package. A synopsis of the function |
65 |
|
of each package is given in table \ref{tab:package_summary_tab}. |
66 |
|
Organizationally package code is assigned a |
67 |
|
separate subdirectory in the MITgcm code distribution |
68 |
|
(within the source code directory \texttt{pkg}). |
69 |
|
The name of this subdirectory is used as the package name in |
70 |
|
table \ref{tab:package_summary_tab}. |
71 |
|
|
72 |
%% In this chapter the schemes for parameterizing processes that are not |
%% In this chapter the schemes for parameterizing processes that are not |
73 |
%% represented explicitly in MITgcm are described. Some of these |
%% represented explicitly in MITgcm are described. Some of these |