/[MITgcm]/manual/s_phys_pkgs/text/packages.tex
ViewVC logotype

Annotation of /manual/s_phys_pkgs/text/packages.tex

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (hide annotations) (download) (as text)
Wed Feb 11 18:09:17 2004 UTC (21 years, 5 months ago) by edhill
Branch: MAIN
File MIME type: application/x-tex
 o added some discussion of packages & genmake2

1 edhill 1.1 % $Header: $
2     % $Name: $
3    
4     \section{Using MITgcm Packages}
5    
6     The set of packages that will be used within a partiucular model can
7     be configured using a combination of both ``compile--time'' and
8     ``run--time'' options. Compile--time options are those used to select
9     which packages will be ``compiled in'' or implemented within the
10     program. Packages excluded at compile time are completely absent from
11     the executable program(s) and thus cannot be later activated by any
12     set of subsequent run--time options.
13    
14     \subsection{Package Inclusion/Exclusion}
15    
16     There are numerous ways that one can specify compile--time package
17     inclusion or exclusion and they are all implemented by the
18     \texttt{genmake2} program which was previously described in Section
19     \ref{sect:buildingCode}. The options are as follows:
20     \begin{enumerate}
21     \item Setting the \texttt{genamake2} options \texttt{--enable PKG}
22     and/or \texttt{--disable PKG} specifies inclusion or exclusion.
23     This method is intended as a convenient way to perform a single
24     (perhaps for a quick test) compilation.
25    
26     \item By creating a text file with the name \texttt{packages.conf} in
27     either the local build directory or the \texttt{-mods=DIR}
28     directory, one can specify a list of packages (one package per line,
29     with '\texttt{\#}' as the comment character) to be included. Since
30     the \texttt{packages.conf} file can be saved, this is the preferred
31     method for setting and recording (for future reference) the package
32     configuration.
33    
34     \item For convenience, a list of ``standard'' package groups is
35     contained in the \texttt{pkg/pkg\_groups} file. By selecting one of
36     the package group names in the \texttt{packages.conf} file, one
37     automatically obtains all packages in that group.
38    
39     \item By default (that is, if a \texttt{packages.conf} file is not
40     found), the \texttt{genmake2} program will use the contents of the
41     \texttt{pkg/pkg\_default} file to obtain a list of packages.
42    
43     \item To help prevent users from creating unusable package groups, the
44     \texttt{genmake2} program will parse the contents of the
45     \texttt{pkg/pkg\_depend} file to determine:
46     \begin{itemize}
47     \item whether any two requested packages cannot be simultaneously
48     included (\textit{eg.} \textit{seaice} and \textit{thsice} are
49     mutually exclusive),
50     \item whether additional packages must be included in order to
51     satisfy package dependencies (\textit{eg.} \textit{rw} depends
52     upon functionality within the \textit{mdsio} package), and
53     \item whether the set of all requested packages is compatible with
54     the dependencies (and producing an error if they aren't).
55     \end{itemize}
56     Thus, as a result of the dependencies, additional packages may be
57     added to those originally requested.
58    
59     \end{enumerate}
60    
61    
62     \subsection{Package Activation}
63    
64     For run--time package control, MITgcm uses flags set through a
65     \texttt{data.pkg} file. While some packages (\textit{eg.}
66     \texttt{debug}, \texttt{mnc}, \texttt{cost}) may have their own
67     conventions, most follow a simple flag naming convention of the
68     form:
69     \begin{verbatim}
70     usePackageName=.TRUE.
71     \end{verbatim}
72     where the \texttt{usePackageName} variable can activate or disable the
73     package at runtime.
74    
75    
76     %\subsection{Modifying or Creating Packages}
77    

  ViewVC Help
Powered by ViewVC 1.1.22