1 |
\section{EXF: The external forcing package |
\subsection{EXF: The external forcing package |
2 |
\label{sec:pkg:exf}} |
\label{sec:pkg:exf}} |
3 |
\begin{rawhtml} |
\begin{rawhtml} |
4 |
<!-- CMIREDIR:sectionexf: --> |
<!-- CMIREDIR:sectionexf: --> |
5 |
\end{rawhtml} |
\end{rawhtml} |
6 |
|
|
7 |
|
Authors: Patrick Heimbach and Dimitris Menemenlis |
8 |
|
|
9 |
\subsection{Introduction |
\subsubsection{Introduction |
10 |
\label{sec:pkg:exf:intro}} |
\label{sec:pkg:exf:intro}} |
11 |
|
|
12 |
The external forcing package, in conjunction with the |
The external forcing package, in conjunction with the |
32 |
|
|
33 |
%---------------------------------------------------------------------- |
%---------------------------------------------------------------------- |
34 |
|
|
35 |
\subsection{EXF configuration, compiling \& running} |
\subsubsection{EXF configuration, compiling \& running} |
36 |
|
|
37 |
\subsubsection{Compile-time options |
\paragraph{Compile-time options |
38 |
\label{sec:pkg:exf:config}} |
\label{sec:pkg:exf:config}} |
39 |
|
~ |
40 |
|
|
41 |
As with all MITgcm packages, EXF can be turned on or off at compile time |
As with all MITgcm packages, EXF can be turned on or off at compile time |
42 |
using the \texttt{packages.conf} file or the \texttt{genmake2} |
% |
43 |
\texttt{-enable=exf} or \texttt{-disable=exf} switches. |
\begin{itemize} |
44 |
|
% |
45 |
|
\item |
46 |
|
using the \texttt{packages.conf} file by adding \texttt{exf} to it, |
47 |
|
% |
48 |
|
\item |
49 |
|
or using \texttt{genmake2} adding |
50 |
|
\texttt{-enable=exf} or \texttt{-disable=exf} switches |
51 |
|
% |
52 |
|
\item |
53 |
|
\textit{required packages and CPP options}: \\ |
54 |
|
EXF requires the calendar package \texttt{cal} to be enabled; |
55 |
|
no additional CPP options are required. |
56 |
|
% |
57 |
|
\end{itemize} |
58 |
|
(see Section \ref{sect:buildingCode}). |
59 |
|
|
60 |
Parts of the exf code can be enabled or disabled at compile time |
Parts of the EXF code can be enabled or disabled at compile time |
61 |
via CPP preprocessor flags. These options are set in either |
via CPP preprocessor flags. These options are set in either |
62 |
\texttt{EXF\_OPTIONS.h} or in \texttt{ECCO\_CPPOPTIONS.h}. |
\texttt{EXF\_OPTIONS.h} or in \texttt{ECCO\_CPPOPTIONS.h}. |
63 |
Table \ref{tab:pkg:exf:cpp} summarizes these options. |
Table \ref{tab:pkg:exf:cpp} summarizes these options. |
64 |
|
|
65 |
\begin{table}[b!] |
\begin{table}[b!] |
66 |
|
\centering |
67 |
\label{tab:pkg:exf:cpp} |
\label{tab:pkg:exf:cpp} |
68 |
{\footnotesize |
{\footnotesize |
69 |
\begin{tabular}{|l|l|} |
\begin{tabular}{|l|l|} |
111 |
\subsubsection{Run-time parameters |
\subsubsection{Run-time parameters |
112 |
\label{sec:pkg:exf:runtime}} |
\label{sec:pkg:exf:runtime}} |
113 |
|
|
114 |
Run-time parameters are set in files \texttt{data.pkg}, |
Run-time parameters are set in files |
115 |
and \texttt{data.pkg\_clim} (for relaxation/climatological fields) |
\texttt{data.pkg}, \texttt{data.exf}, and |
116 |
|
\texttt{data.exf\_clim} (for relaxation/climatological fields) |
117 |
which are read in \texttt{exf\_readparms.F}. |
which are read in \texttt{exf\_readparms.F}. |
118 |
Run-time parameters may be broken into 2 categories: |
Run-time parameters may be broken into 3 categories: |
119 |
(i) general flags and parameters, and |
(i) switching on/off the package at runtime, |
120 |
(ii) attributes for each forcing and climatological field. |
(ii) general flags and parameters, and |
121 |
|
(iii) attributes for each forcing and climatological field. |
|
\paragraph{General flags and parameters} |
|
122 |
|
|
123 |
~ |
\paragraph{Enabling the package} |
124 |
|
~ \\ |
125 |
|
% |
126 |
|
A package is usually switched on/off at runtime by setting |
127 |
|
(e.g. for EXF) \texttt{useEXF = .TRUE.} in \texttt{data.pkg}. |
128 |
|
For EXF this flag is omitted, i.e. EXF is always ON if it is compiled. |
129 |
|
|
130 |
|
\paragraph{General flags and parameters} |
131 |
|
~ \\ |
132 |
|
% |
133 |
\begin{table}[h!] |
\begin{table}[h!] |
134 |
|
\centering |
135 |
\label{tab:pkg:exf:runtime_flags} |
\label{tab:pkg:exf:runtime_flags} |
136 |
{\footnotesize |
{\footnotesize |
137 |
\begin{tabular}{|l|c|l|} |
\begin{tabular}{|l|c|l|} |
164 |
\end{table} |
\end{table} |
165 |
|
|
166 |
|
|
167 |
\paragraph{Field attributes} ~ \\ |
\paragraph{Field attributes} |
168 |
|
~ \\ |
169 |
% |
% |
170 |
All EXF fields are listed in Section \ref{sec:pkg:exf:fields_units}. |
All EXF fields are listed in Section \ref{sec:pkg:exf:fields_units}. |
171 |
Each field has a number of attributes which can be customized. |
Each field has a number of attributes which can be customized. |
184 |
% |
% |
185 |
|
|
186 |
\begin{table}[h!] |
\begin{table}[h!] |
187 |
|
\centering |
188 |
\label{tab:pkg:exf:runtime_attributes} |
\label{tab:pkg:exf:runtime_attributes} |
189 |
{\footnotesize |
{\footnotesize |
190 |
\begin{tabular}{|l|c|l|} |
\begin{tabular}{|l|c|l|} |
260 |
|
|
261 |
%---------------------------------------------------------------------- |
%---------------------------------------------------------------------- |
262 |
|
|
263 |
\subsection{EXF input fields and units |
\subsubsection{EXF input fields and units |
264 |
\label{sec:pkg:exf:fields_units}} |
\label{sec:pkg:exf:fields_units}} |
265 |
|
|
266 |
The following list is taken from the header file \texttt{exf\_fields.h}. |
The following list is taken from the header file \texttt{exf\_fields.h}. |
270 |
\textbf{fu}, \textbf{fv}, \textbf{Qnet}, \textbf{Qsw}, \textbf{EmPmR}, |
\textbf{fu}, \textbf{fv}, \textbf{Qnet}, \textbf{Qsw}, \textbf{EmPmR}, |
271 |
and \textbf{pload}. They are defined in \texttt{FFIELDS.h}. |
and \textbf{pload}. They are defined in \texttt{FFIELDS.h}. |
272 |
|
|
273 |
{\scriptsize |
{\footnotesize |
274 |
\begin{verbatim} |
\begin{verbatim} |
275 |
|
|
276 |
c---------------------------------------------------------------------- |
c---------------------------------------------------------------------- |
389 |
|
|
390 |
%---------------------------------------------------------------------- |
%---------------------------------------------------------------------- |
391 |
|
|
392 |
\subsection{Key subroutines |
\subsubsection{Key subroutines |
393 |
\label{sec:pkg:exf:subroutines}} |
\label{sec:pkg:exf:subroutines}} |
394 |
|
|
395 |
\subsubsection{Top-level routine: \texttt{exf\_getforcing.F}} |
Top-level routine: \texttt{exf\_getforcing.F} |
396 |
|
|
397 |
{\scriptsize |
{\footnotesize |
398 |
\begin{verbatim} |
\begin{verbatim} |
399 |
|
|
400 |
C !CALLING SEQUENCE: |
C !CALLING SEQUENCE: |
474 |
\end{verbatim} |
\end{verbatim} |
475 |
} |
} |
476 |
|
|
477 |
\subsubsection{Bulk formula routine: \texttt{exf\_bulkformulae.F}} |
Bulk formula routine: \texttt{exf\_bulkformulae.F} |
478 |
|
|
479 |
\subsubsection{Generic I/O routine: \texttt{exf\_set\_gen.F}} |
Generic I/O routine: \texttt{exf\_set\_gen.F} |
480 |
|
|
481 |
\subsubsection{Interpolation routine: \texttt{exf\_interp.F}} |
Interpolation routine: \texttt{exf\_interp.F} |
482 |
|
|
483 |
\subsubsection{Header routines} |
Header routines |
484 |
|
|
485 |
%---------------------------------------------------------------------- |
%---------------------------------------------------------------------- |
486 |
|
|
487 |
\subsection{EXF diagnostics |
\subsubsection{EXF diagnostics |
488 |
\label{sec:pkg:exf:diagnostics}} |
\label{sec:pkg:exf:diagnostics}} |
489 |
|
|
490 |
Diagnostics output is available via the diagnostics package |
Diagnostics output is available via the diagnostics package |
493 |
Table \ref{tab:pkg:exf:diagnostics}. |
Table \ref{tab:pkg:exf:diagnostics}. |
494 |
|
|
495 |
\begin{table}[h!] |
\begin{table}[h!] |
496 |
|
\centering |
497 |
\label{tab:pkg:exf:diagnostics} |
\label{tab:pkg:exf:diagnostics} |
498 |
{\footnotesize |
{\footnotesize |
499 |
\begin{verbatim} |
\begin{verbatim} |
520 |
|
|
521 |
%---------------------------------------------------------------------- |
%---------------------------------------------------------------------- |
522 |
|
|
523 |
\subsection{Reference experiments} |
\subsubsection{Reference experiments} |
524 |
|
|
525 |
\subsubsection{global\_with\_exf} |
global\_with\_exf: |
526 |
|
|
527 |
\subsubsection{lab\_sea} |
lab\_sea: |
528 |
|
|
529 |
%---------------------------------------------------------------------- |
%---------------------------------------------------------------------- |
530 |
|
|
531 |
\subsection{References} |
\subsubsection{References} |