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. |
110 |
\subsubsection{Run-time parameters |
\subsubsection{Run-time parameters |
111 |
\label{sec:pkg:exf:runtime}} |
\label{sec:pkg:exf:runtime}} |
112 |
|
|
113 |
Run-time parameters are set in files \texttt{data.pkg}, |
Run-time parameters are set in files |
114 |
and \texttt{data.pkg\_clim} (for relaxation/climatological fields) |
\texttt{data.pkg}, \texttt{data.exf}, and |
115 |
|
\texttt{data.exf\_clim} (for relaxation/climatological fields) |
116 |
which are read in \texttt{exf\_readparms.F}. |
which are read in \texttt{exf\_readparms.F}. |
117 |
Run-time parameters may be broken into 2 categories: |
Run-time parameters may be broken into 3 categories: |
118 |
(i) general flags and parameters, and |
(i) switching on/off the package at runtime, |
119 |
(ii) attributes for each forcing and climatological field. |
(ii) general flags and parameters, and |
120 |
|
(iii) attributes for each forcing and climatological field. |
|
\paragraph{General flags and parameters} |
|
121 |
|
|
122 |
~ |
\paragraph{Enabling the package} |
123 |
|
~ \\ |
124 |
|
% |
125 |
|
A package is usually switched on/off at runtime by setting |
126 |
|
(e.g. for EXF) \texttt{useEXF = .TRUE.} in \texttt{data.pkg}. |
127 |
|
For EXF this flag is omitted, i.e. EXF is always ON if it is compiled. |
128 |
|
|
129 |
|
\paragraph{General flags and parameters} |
130 |
|
~ \\ |
131 |
|
% |
132 |
\begin{table}[h!] |
\begin{table}[h!] |
133 |
\label{tab:pkg:exf:runtime_flags} |
\label{tab:pkg:exf:runtime_flags} |
134 |
{\footnotesize |
{\footnotesize |
162 |
\end{table} |
\end{table} |
163 |
|
|
164 |
|
|
165 |
\paragraph{Field attributes} ~ \\ |
\paragraph{Field attributes} |
166 |
|
~ \\ |
167 |
% |
% |
168 |
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}. |
169 |
Each field has a number of attributes which can be customized. |
Each field has a number of attributes which can be customized. |
257 |
|
|
258 |
%---------------------------------------------------------------------- |
%---------------------------------------------------------------------- |
259 |
|
|
260 |
\subsection{EXF input fields and units |
\subsubsection{EXF input fields and units |
261 |
\label{sec:pkg:exf:fields_units}} |
\label{sec:pkg:exf:fields_units}} |
262 |
|
|
263 |
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}. |
267 |
\textbf{fu}, \textbf{fv}, \textbf{Qnet}, \textbf{Qsw}, \textbf{EmPmR}, |
\textbf{fu}, \textbf{fv}, \textbf{Qnet}, \textbf{Qsw}, \textbf{EmPmR}, |
268 |
and \textbf{pload}. They are defined in \texttt{FFIELDS.h}. |
and \textbf{pload}. They are defined in \texttt{FFIELDS.h}. |
269 |
|
|
270 |
{\scriptsize |
{\footnotesize |
271 |
\begin{verbatim} |
\begin{verbatim} |
272 |
|
|
273 |
c---------------------------------------------------------------------- |
c---------------------------------------------------------------------- |
386 |
|
|
387 |
%---------------------------------------------------------------------- |
%---------------------------------------------------------------------- |
388 |
|
|
389 |
\subsection{Key subroutines |
\subsubsection{Key subroutines |
390 |
\label{sec:pkg:exf:subroutines}} |
\label{sec:pkg:exf:subroutines}} |
391 |
|
|
392 |
\subsubsection{Top-level routine: \texttt{exf\_getforcing.F}} |
Top-level routine: \texttt{exf\_getforcing.F} |
393 |
|
|
394 |
{\scriptsize |
{\footnotesize |
395 |
\begin{verbatim} |
\begin{verbatim} |
396 |
|
|
397 |
C !CALLING SEQUENCE: |
C !CALLING SEQUENCE: |
471 |
\end{verbatim} |
\end{verbatim} |
472 |
} |
} |
473 |
|
|
474 |
\subsubsection{Bulk formula routine: \texttt{exf\_bulkformulae.F}} |
Bulk formula routine: \texttt{exf\_bulkformulae.F} |
475 |
|
|
476 |
\subsubsection{Generic I/O routine: \texttt{exf\_set\_gen.F}} |
Generic I/O routine: \texttt{exf\_set\_gen.F} |
477 |
|
|
478 |
\subsubsection{Interpolation routine: \texttt{exf\_interp.F}} |
Interpolation routine: \texttt{exf\_interp.F} |
479 |
|
|
480 |
\subsubsection{Header routines} |
Header routines |
481 |
|
|
482 |
%---------------------------------------------------------------------- |
%---------------------------------------------------------------------- |
483 |
|
|
484 |
\subsection{EXF diagnostics |
\subsubsection{EXF diagnostics |
485 |
\label{sec:pkg:exf:diagnostics}} |
\label{sec:pkg:exf:diagnostics}} |
486 |
|
|
487 |
Diagnostics output is available via the diagnostics package |
Diagnostics output is available via the diagnostics package |
516 |
|
|
517 |
%---------------------------------------------------------------------- |
%---------------------------------------------------------------------- |
518 |
|
|
519 |
\subsection{Reference experiments} |
\subsubsection{Reference experiments} |
520 |
|
|
521 |
\subsubsection{global\_with\_exf} |
global\_with\_exf: |
522 |
|
|
523 |
\subsubsection{lab\_sea} |
lab\_sea: |
524 |
|
|
525 |
%---------------------------------------------------------------------- |
%---------------------------------------------------------------------- |
526 |
|
|
527 |
\subsection{References} |
\subsubsection{References} |