1 |
% $Header$ |
% $Header$ |
2 |
% $Name$ |
% $Name$ |
3 |
|
|
4 |
\chapter{Physical Parameterization and Packages} |
\chapter{Physical Parameterizations - Packages I} |
5 |
|
\label{chap:packagesI} |
6 |
|
|
7 |
|
\begin{rawhtml} |
8 |
|
<!-- CMIREDIR:packages: --> |
9 |
|
\end{rawhtml} |
10 |
|
|
11 |
|
In this chapter and in the following chapter, the MITgcm ``packages'' are |
12 |
|
described. While you can carry out many experiments with MITgcm by starting |
13 |
|
from case studies in section \ref{sec:modelExamples}, configuring |
14 |
|
a brand new experiment or making major changes to an experimental configuration |
15 |
|
requires some knowledge of the {\it packages} |
16 |
|
that make up the full MITgcm code. Packages are used in MITgcm to |
17 |
|
help organize and layer various code building blocks that are assembled |
18 |
|
and selected to perform a specific experiment. Each of the specific experiments |
19 |
|
described in section \ref{sec:modelExamples} uses a particular combination |
20 |
|
of packages. |
21 |
|
Figure \ref{fig:package_organigramme} shows the full set of packages that |
22 |
|
are available. As shown in the figure packages are classified into different |
23 |
|
groupings that layer on top of each other. The top layer packages are |
24 |
|
generally specialized to specific simulation types. In this layer there are |
25 |
|
packages that deal with biogeochemical processes, ocean interior |
26 |
|
and boundary layer processes, atmospheric processes, sea-ice, coupled |
27 |
|
simulations and state estimation. |
28 |
|
Below this layer are a set of general purpose |
29 |
|
numerical and computational packages. The general purpose numerical packages |
30 |
|
provide code for kernel numerical alogorithms |
31 |
|
that apply to |
32 |
|
many different simulation types. Similarly, the general purpose computational |
33 |
|
packages implement non-numerical alogorithms that provide parallelism, |
34 |
|
I/O and time-keeping functions that are used in many different scenarios. |
35 |
|
|
36 |
|
\begin{figure} |
37 |
|
%%\begin{minipage}{12cm} |
38 |
|
%%\marginsize{0cm}{0cm}{0cm}{0cm} |
39 |
|
%% \scalefig{0.6} |
40 |
|
%% \epsfbox{s_phys_pkgs/figs/organigramme_mitgcm_pkg.eps} |
41 |
|
%%\epsfig{file=s_phys_pkgs/figs/organigramme_mitgcm_pkg.eps, angle=-90, scale=0.85, width=17cm} |
42 |
|
%%\end{minipage} |
43 |
|
%\resizebox{5.5in}{!}{\includegraphics{s_phys_pkgs/figs/organigramme_mitgcm_pkg2.eps}} |
44 |
|
\resizebox{5.5in}{!}{\includegraphics{s_phys_pkgs/figs/mitgcm_package_organisation.eps}} |
45 |
|
\\ |
46 |
|
\caption{ Hierarchy of code layers that are assembled to make up an MITgcm |
47 |
|
simulation. Conceptually (and in terms of code organization) MITgcm consists |
48 |
|
of several layers. At the base is a layer of core software that provides a |
49 |
|
basic numerical and computational foundation for MITgcm simulations. This |
50 |
|
layer is shown marked {\bf Foundation Code} at the bottom of the figure |
51 |
|
and corresponds to code in the italicised subdirectories on the figure. |
52 |
|
This layer is not organized into packages. All code above the foundation layer |
53 |
|
is organized as packages. Much of the code in MITgcm is contained in packages |
54 |
|
which serve as a useful way of organizing and layering the different levels of |
55 |
|
functionality that make up the full MITgcm software distribution. |
56 |
|
The figure shows the different packages in MITgcm as boxes containing bold |
57 |
|
face upper case names. Directly above the foundation layer are two layers of |
58 |
|
general purpose infrastructure software that consist of computational and |
59 |
|
numerical packages. These general purpose packages can be applied to both |
60 |
|
online and offline simulations and are used in many different physical |
61 |
|
simulation types. Above these layers are more specialized packages. } |
62 |
|
\label{fig:package_organigramme} |
63 |
|
\end{figure} |
64 |
|
|
65 |
|
The following sections describe the packages shown in |
66 |
|
figure \ref{fig:package_organigramme}. Section \ref{sec:pkg:using} |
67 |
|
describes the general procedure for using any package in MITgcm. |
68 |
|
Following that sections \ref{sec:pkg:gad}-\ref{sec:pkg:monitor} |
69 |
|
layout the algorithms implemented in specific packages |
70 |
|
and describe how to use the individual packages. A brief synopsis of the |
71 |
|
function of each package is given in table \ref{tab:package_summary_tab}. |
72 |
|
Organizationally package code is assigned a |
73 |
|
separate subdirectory in the MITgcm code distribution |
74 |
|
(within the source code directory \texttt{pkg}). |
75 |
|
The name of this subdirectory is used as the package name in |
76 |
|
table \ref{tab:package_summary_tab}. |
77 |
|
|
78 |
|
%% In this chapter the schemes for parameterizing processes that are not |
79 |
|
%% represented explicitly in MITgcm are described. Some of these |
80 |
|
%% processes are sub-grid scale (SGS) phenomena, other processes, such as |
81 |
|
%% open-boundaries, are external to the simulation. |
82 |
|
|
83 |
|
\begin{table} |
84 |
|
\caption{~} |
85 |
|
\label{tab:package_summary_tab}. |
86 |
|
\end{table} |
87 |
|
|
88 |
|
% Overview |
89 |
|
\newpage |
90 |
|
\input{s_phys_pkgs/text/packages.tex} |
91 |
|
|
92 |
|
% Packages Related to Hydrodynamical Kernel |
93 |
|
\newpage |
94 |
|
\section{Packages Related to Hydrodynamical Kernel} |
95 |
|
\input{s_phys_pkgs/text/generic_advdiff.tex} |
96 |
|
|
97 |
|
\newpage |
98 |
|
\input{s_phys_pkgs/text/shap_filt.tex} |
99 |
|
|
100 |
|
\newpage |
101 |
|
\input{s_phys_pkgs/text/zonal_filt.tex} |
102 |
|
|
103 |
|
\newpage |
104 |
|
\input{s_phys_pkgs/text/exch2.tex} |
105 |
|
|
106 |
|
\newpage |
107 |
|
\input{s_phys_pkgs/text/gridalt.tex} |
108 |
|
|
109 |
|
% Some Mention of Packages that are part of the main model document |
110 |
|
\newpage |
111 |
|
\section{General purpose numerical infrastructure packages} |
112 |
|
\input{s_phys_pkgs/text/obcs.tex} |
113 |
|
|
114 |
|
\newpage |
115 |
|
\input{s_phys_pkgs/text/rbcs.tex} |
116 |
|
|
117 |
|
\newpage |
118 |
|
\input{s_phys_pkgs/text/ptracers.tex} |
119 |
|
|
120 |
|
% Ocean Packages |
121 |
|
\newpage |
122 |
|
\section{Ocean Packages} |
123 |
|
\input{s_phys_pkgs/text/gmredi.tex} |
124 |
|
|
125 |
|
\newpage |
126 |
|
\input{s_phys_pkgs/text/kpp.tex} |
127 |
|
|
128 |
|
\newpage |
129 |
|
\input{s_phys_pkgs/text/ggl90.tex} |
130 |
|
|
131 |
|
\newpage |
132 |
|
\input{s_phys_pkgs/text/opps.tex} |
133 |
|
|
134 |
|
\newpage |
135 |
|
\input{s_phys_pkgs/text/kl10.tex} |
136 |
|
|
137 |
|
\newpage |
138 |
|
\input{s_phys_pkgs/text/bulk_force.tex} |
139 |
|
|
140 |
|
\newpage |
141 |
|
\input{s_phys_pkgs/text/exf.tex} |
142 |
|
|
143 |
|
\newpage |
144 |
|
\input{s_phys_pkgs/text/cal.tex} |
145 |
|
|
146 |
|
\newpage |
147 |
|
\section{Atmosphere Packages} |
148 |
|
\input{s_phys_pkgs/text/aim.tex} |
149 |
|
|
150 |
|
\newpage |
151 |
|
\input{s_phys_pkgs/text/land.tex} |
152 |
|
|
153 |
|
\newpage |
154 |
|
\input{s_phys_pkgs/text/fizhi.tex} |
155 |
|
|
156 |
|
\newpage |
157 |
|
\section{Sea Ice Packages} |
158 |
|
\input{s_phys_pkgs/text/thsice.tex} |
159 |
|
|
160 |
|
\newpage |
161 |
|
\input{s_phys_pkgs/text/seaice.tex} |
162 |
|
|
163 |
|
\newpage |
164 |
|
\input{s_phys_pkgs/text/shelfice.tex} |
165 |
|
|
166 |
|
\newpage |
167 |
|
\input{s_phys_pkgs/text/streamice.tex} |
168 |
|
|
169 |
|
\newpage |
170 |
|
\section{Packages Related to Coupled Model} |
171 |
|
\input{s_phys_pkgs/text/aim_compon_interf.tex} |
172 |
|
|
173 |
|
\newpage |
174 |
|
\input{s_phys_pkgs/text/atm_ocn_coupler.tex} |
175 |
|
|
176 |
|
\newpage |
177 |
|
\input{s_phys_pkgs/text/component_communications.tex} |
178 |
|
|
179 |
|
\newpage |
180 |
|
\section{Biogeochemistry Packages} |
181 |
|
\input{s_phys_pkgs/text/gchem.tex} |
182 |
|
|
183 |
|
\newpage |
184 |
|
\input{s_phys_pkgs/text/dic.tex} |