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

Diff of /manual/s_phys_pkgs/text/exf.tex

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

revision 1.2 by heimbach, Thu Jul 14 22:04:52 2005 UTC revision 1.7 by heimbach, Mon Oct 3 18:12:27 2005 UTC
# Line 1  Line 1 
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
# Line 31  output is listed in Section \ref{sec:pkg Line 32  output is listed in Section \ref{sec:pkg
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|}
# Line 59  Table \ref{tab:pkg:exf:cpp} summarizes t Line 77  Table \ref{tab:pkg:exf:cpp} summarizes t
77          \texttt{ALLOW\_ATM\_WIND} &          \texttt{ALLOW\_ATM\_WIND} &
78            compute wind stress from wind speed input\\            compute wind stress from wind speed input\\
79          \texttt{ALLOW\_BULKFORMULAE} &          \texttt{ALLOW\_BULKFORMULAE} &
80            is used if either ALLOW\_ATM\_TEMP or ALLOW\_ATM\_WIND is enabled \\            is used if \texttt{ALLOW\_ATM\_TEMP} or
81              \texttt{ALLOW\_ATM\_WIND} is enabled \\
82          \texttt{EXF\_READ\_EVAP} & read evaporation instead of computing it \\          \texttt{EXF\_READ\_EVAP} & read evaporation instead of computing it \\
83          \texttt{ALLOW\_RUNOFF} & read time-constant river/glacier run-off field \\          \texttt{ALLOW\_RUNOFF} & read time-constant river/glacier run-off field \\
84          \texttt{ALLOW\_DOWNWARD\_RADIATION} & compute net from downward or downward from net radiation \\          \texttt{ALLOW\_DOWNWARD\_RADIATION} & compute net from downward or downward from net radiation \\
85          \texttt{USE\_EXF\_INTERPOLATION} & enable on-the-fly bilinear or bicubic interpolation of input fields \\          \texttt{USE\_EXF\_INTERPOLATION} & enable on-the-fly bilinear or bicubic interpolation of input fields \\
86        \hline        \hline
87             \multicolumn{2}{|c|}{\textit{used in conjunction with relaxation to prescribed (climatological) fields}} \\
88             \hline
89          \texttt{ALLOW\_CLIMTEMP\_RELAXATION} &          \texttt{ALLOW\_CLIMTEMP\_RELAXATION} &
90            relaxation to 3-D potential temperature climatology \\            relaxation to 3-D temperature climatology \\
91          \texttt{ALLOW\_CLIMSALT\_RELAXATION} &          \texttt{ALLOW\_CLIMSALT\_RELAXATION} &
92            relaxation to 3-D salinity climatology \\            relaxation to 3-D salinity climatology \\
93          \texttt{ALLOW\_CLIMSST\_RELAXATION} &          \texttt{ALLOW\_CLIMSST\_RELAXATION} &
# Line 74  Table \ref{tab:pkg:exf:cpp} summarizes t Line 95  Table \ref{tab:pkg:exf:cpp} summarizes t
95          \texttt{ALLOW\_CLIMSSS\_RELAXATION} &          \texttt{ALLOW\_CLIMSSS\_RELAXATION} &
96            relaxation to 2-D SSS climatology  \\            relaxation to 2-D SSS climatology  \\
97        \hline        \hline
98          \texttt{SHORTWAVE\_HEATING} & in \texttt{CPP\_OPTIONS.h}: enable shortwave radiation \\           \multicolumn{2}{|c|}{\textit{these are set outside of EXF in} \texttt{CPP\_OPTIONS.h}} \\
99          \texttt{ATMOSPHERIC\_LOADING} &  in \texttt{CPP\_OPTIONS.h}: enable surface pressure forcing \\           \hline
100            \texttt{SHORTWAVE\_HEATING} & enable shortwave radiation \\
101            \texttt{ATMOSPHERIC\_LOADING} & enable surface pressure forcing \\
102        \hline        \hline
103      \end{tabular}      \end{tabular}
104    }    }
# Line 88  Table \ref{tab:pkg:exf:cpp} summarizes t Line 111  Table \ref{tab:pkg:exf:cpp} summarizes t
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  Run-time parameters may be broken into 2 categories:  \texttt{data.exf\_clim} (for relaxation/climatological fields)
117  (i) general flags and parameters, and  which are read in \texttt{exf\_readparms.F}.
118  (ii) attributes for each forcing and climatological field.  Run-time parameters may be broken into 3 categories:
119    (i) switching on/off the package at runtime,
120    (ii) general flags and parameters, and
121    (iii) attributes for each forcing and climatological field.
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}  \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|cl|}      \begin{tabular}{|l|c|l|}
138        \hline        \hline
139        \textbf{Flag/parameter} & \textbf{default} &  \textbf{Description}  \\        \textbf{Flag/parameter} & \textbf{default} &  \textbf{Description}  \\
140        \hline \hline        \hline \hline
141          useExfCheckRange & \texttt{.TRUE.} & ~ \\          useExfCheckRange & \texttt{.TRUE.} &
142          useExfYearlyFields & \texttt{.FALSE.} & ~ \\             check range of input fields and stop if out of range \\
143          twoDigitYear & \texttt{.FALSE.} & ~ \\          useExfYearlyFields & \texttt{.FALSE.} &
144          repeatPeriod & \texttt{0.0} & ~ \\             append current year postfix of form \texttt{\_YYYY} on filename \\
145          windstressmax & \texttt{2.0} & ~ \\          twoDigitYear & \texttt{.FALSE.} &
146          exf\_albedo & \texttt{0.1} & ~ \\             instead of appending \texttt{\_YYYY} append  \texttt{YY} \\
147          exf\_iprec  & \texttt{32} & ~ \\          repeatPeriod & \texttt{0.0} & $ > 0 $ :
148          exf\_yftype & \texttt{'RL'} & ~ \\             cycle through all input fields at the same period (in seconds) \\
149            ~            & ~            & $ = 0 $ :
150               use period assigned to each field \\
151            exf\_offset\_atemp & \texttt{0.0} & set to 273.16 to convert from deg. Kelvin (assumed input) to Celsius \\
152            windstressmax & \texttt{2.0} &
153               max. allowed wind stress $N/m^2$ \\
154            exf\_albedo & \texttt{0.1} &
155              surface albedo used to compute downward vs. net radiative fluxes \\
156            exf\_iprec  & \texttt{32} &
157              precision of input fields (32-bit or 64-bit) \\
158            exf\_yftype & \texttt{'RL'} &
159              precision of arrays ('RL' vs. 'RS') \\
160        \hline        \hline
161      \end{tabular}      \end{tabular}
162    }    }
# Line 118  Run-time parameters may be broken into 2 Line 164  Run-time parameters may be broken into 2
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}.
171    Each field has a number of attributes which can be customized.
172    They are summarized in
173    Table \ref{tab:pkg:exf:runtime_attributes}.
174    To obtain an attribute for a specific field, e.g. \texttt{uwind}
175    prepend the field name to the listed attribute, e.g. for attribute
176    \texttt{period} this yields \texttt{uwindperiod}:
177    %
178    \begin{eqnarray*}
179      \begin{array}{cccccc}
180        ~ & \texttt{field} & \& & \texttt{attribute} & \longrightarrow & \texttt{parameter} \\
181        \text{e.g.} & \text{uwind} & \& & \text{period} & \longrightarrow & \text{uwindperiod} \\
182      \end{array}
183    \end{eqnarray*}
184    %
185    
186    \begin{table}[h!]
187    \centering
188      \label{tab:pkg:exf:runtime_attributes}
189      {\footnotesize
190        \begin{tabular}{|l|c|l|}
191          \hline
192          \textbf{attribute} &  \textbf{Default} &  \textbf{Description}  \\
193          \hline \hline
194             \textit{field}\texttt{file} & ' ' &
195               filename; if left empty no file will be read; \texttt{const} will be used instead \\
196             \textit{field}\texttt{const} & 0. &
197               constant that will be used if no file is read  \\
198             \textit{field}\texttt{startdate1} & 0. &
199               format: \texttt{YYYYMMDD}; start year (YYYY), month (MM), day (YY) \\
200               ~&~& of field to determine record number \\
201             \textit{field}\texttt{startdate2} & 0. &
202               format: \texttt{HHMMSS}; start hour (HH), minute (MM), second(SS) \\
203               ~&~& of field to determine record number\\
204             \textit{field}\texttt{period} & 0. &
205               interval in seconds between two records \\
206             \texttt{exf\_inscal\_}\textit{field}& ~ &
207               optional rescaling of input fields to comply with EXF units \\
208             \texttt{exf\_outscal\_}\textit{field}& ~ &
209               optional rescaling of EXF fields when mapped onto MITgcm fields \\
210             \hline
211             \multicolumn{3}{|c|}{\textit{used in conjunction with}
212                                  \texttt{EXF\_USE\_INTERPOLATION}} \\
213             \hline
214             \textit{field}\texttt{\_lon0} & $thetaMin+delX/2$  &
215               starting longitude of input \\
216             \textit{field}\texttt{\_lon\_inc} & $delX$ &
217               increment in longitude of input \\
218             \textit{field}\texttt{\_lat0} &  $phiMin+delY/2$ &
219               starting latitude of input \\
220             \textit{field}\texttt{\_lat\_inc} & $delY$ &
221               increment in latitude of input \\
222             \textit{field}\texttt{\_nlon} & $Nx$ &
223               number of grid points in longitude of input \\
224             \textit{field}\texttt{\_nlat} & $Ny$ &
225               number of grid points in longitude of input \\
226          \hline
227        \end{tabular}
228       }
229       \caption{\newline
230                Note one exception for the default of
231                \texttt{atempconst} = celsius2K = 273.16}
232    \end{table}
233    
234    \paragraph{Example configuration} ~ \\
235    %
236    The following block is taken from the \texttt{data.exf} file
237    of the veification experiment \texttt{global\_with\_exf/}.
238    It defines attributes for the heat flux variable \texttt{hflux}:
239    
240    \begin{verbatim}
241     hfluxfile       = 'ncep_qnet.bin',
242     hfluxstartdate1 = 19920101,
243     hfluxstartdate2 = 000000,
244     hfluxperiod     = 2592000.0,
245     hflux_lon0      = 2
246     hflux_lon_inc   = 4
247     hflux_lat0      = -78
248     hflux_lat_inc   = 39*4
249     hflux_nlon      = 90
250     hflux_nlat      = 40
251    \end{verbatim}
252    
253    EXF will read a file of name 'ncep\_qnet.bin'.
254    Its first record represents January 1st, 1991 at 00:00 UTC.
255    Next record is 2592000 seconds (or 30 days) later.
256    Interpolation on-the-fly is used (in the present case trivially
257    on the same grid, but included nevertheless for illustration),
258    and input field grid starting coordinates and increments are
259    supplied as well.
260    
261  %----------------------------------------------------------------------  %----------------------------------------------------------------------
262    
263  \subsection{EXF 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}.
267    It comprises all EXF input fields.
268    
269    Output fields which EXF provides to the MITgcm are fields
270    \textbf{fu}, \textbf{fv}, \textbf{Qnet}, \textbf{Qsw}, \textbf{EmPmR},
271    and \textbf{pload}. They are defined in \texttt{FFIELDS.h}.
272    
273  {\footnotesize  {\footnotesize
274  \begin{verbatim}  \begin{verbatim}
275    
276    c----------------------------------------------------------------------
277    c               |
278    c     field     :: Description
279    c               |
280    c----------------------------------------------------------------------
281  c     ustress   :: Zonal surface wind stress in N/m^2  c     ustress   :: Zonal surface wind stress in N/m^2
282  c                  > 0 for increase in uVel, which is west to  c               |  > 0 for increase in uVel, which is west to
283  c                      east for cartesian and spherical polar grids  c               |      east for cartesian and spherical polar grids
284  c                  Typical range: -0.5 < ustress < 0.5  c               |  Typical range: -0.5 < ustress < 0.5
285  c                  Southwest C-grid U point  c               |  Southwest C-grid U point
286  c                  Input field  c               |  Input field
287  c  c----------------------------------------------------------------------
288  c     vstress   :: Meridional surface wind stress in N/m^2  c     vstress   :: Meridional surface wind stress in N/m^2
289  c                  > 0 for increase in vVel, which is south to  c               |  > 0 for increase in vVel, which is south to
290  c                      north for cartesian and spherical polar grids  c               |      north for cartesian and spherical polar grids
291  c                  Typical range: -0.5 < vstress < 0.5  c               |  Typical range: -0.5 < vstress < 0.5
292  c                  Southwest C-grid V point  c               |  Southwest C-grid V point
293  c                  Input field  c               |  Input field
294  c  c----------------------------------------------------------------------
295  c     hflux     :: Net upward surface heat flux in W/m^2  c     hflux     :: Net upward surface heat flux in W/m^2
296  c                  excluding shortwave (on input)  c               |  excluding shortwave (on input)
297  c                  hflux = latent + sensible + lwflux  c               |  hflux = latent + sensible + lwflux
298  c                  > 0 for decrease in theta (ocean cooling)  c               |  > 0 for decrease in theta (ocean cooling)
299  c                  Typical range: -250 < hflux < 600  c               |  Typical range: -250 < hflux < 600
300  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
301  c                  Input field  c               |  Input field
302  c  c----------------------------------------------------------------------
303  c     sflux     :: Net upward freshwater flux in m/s  c     sflux     :: Net upward freshwater flux in m/s
304  c                  sflux = evap - precip - runoff  c               |  sflux = evap - precip - runoff
305  c                  > 0 for increase in salt (ocean salinity)  c               |  > 0 for increase in salt (ocean salinity)
306  c                  Typical range: -1e-7 < sflux < 1e-7  c               |  Typical range: -1e-7 < sflux < 1e-7
307  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
308  c                  Input field  c               |  Input field
309  c  c----------------------------------------------------------------------
310  c     swflux    :: Net upward shortwave radiation in W/m^2  c     swflux    :: Net upward shortwave radiation in W/m^2
311  c                  swflux = - ( swdown - ice and snow absorption - reflected )  c               |  swflux = - ( swdown - ice and snow absorption - reflected )
312  c                  > 0 for decrease in theta (ocean cooling)  c               |  > 0 for decrease in theta (ocean cooling)
313  c                  Typical range: -350 < swflux < 0  c               |  Typical range: -350 < swflux < 0
314  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
315  c                  Input field  c               |  Input field
316  c  c----------------------------------------------------------------------
317  c     uwind     :: Surface (10-m) zonal wind velocity in m/s  c     uwind     :: Surface (10-m) zonal wind velocity in m/s
318  c                  > 0 for increase in uVel, which is west to  c               |  > 0 for increase in uVel, which is west to
319  c                      east for cartesian and spherical polar grids  c               |      east for cartesian and spherical polar grids
320  c                  Typical range: -10 < uwind < 10  c               |  Typical range: -10 < uwind < 10
321  c                  Southwest C-grid U point  c               |  Southwest C-grid U point
322  c                  Input or input/output field  c               |  Input or input/output field
323  c  c----------------------------------------------------------------------
324  c     vwind     :: Surface (10-m) meridional wind velocity in m/s  c     vwind     :: Surface (10-m) meridional wind velocity in m/s
325  c                  > 0 for increase in vVel, which is south to  c               |  > 0 for increase in vVel, which is south to
326  c                      north for cartesian and spherical polar grids  c               |      north for cartesian and spherical polar grids
327  c                  Typical range: -10 < vwind < 10  c               |  Typical range: -10 < vwind < 10
328  c                  Southwest C-grid V point  c               |  Southwest C-grid V point
329  c                  Input or input/output field  c               |  Input or input/output field
330  c  c----------------------------------------------------------------------
331  c     atemp     :: Surface (2-m) air temperature in deg K  c     atemp     :: Surface (2-m) air temperature in deg K
332  c                  Typical range: 200 < atemp < 300  c               |  Typical range: 200 < atemp < 300
333  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
334  c                  Input or input/output field  c               |  Input or input/output field
335  c  c----------------------------------------------------------------------
336  c     aqh       :: Surface (2m) specific humidity in kg/kg  c     aqh       :: Surface (2m) specific humidity in kg/kg
337  c                  Typical range: 0 < aqh < 0.02  c               |  Typical range: 0 < aqh < 0.02
338  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
339  c                  Input or input/output field  c               |  Input or input/output field
340  c  c----------------------------------------------------------------------
341  c     lwflux    :: Net upward longwave radiation in W/m^2  c     lwflux    :: Net upward longwave radiation in W/m^2
342  c                  lwflux = - ( lwdown - ice and snow absorption - emitted )  c               |  lwflux = - ( lwdown - ice and snow absorption - emitted )
343  c                  > 0 for decrease in theta (ocean cooling)  c               |  > 0 for decrease in theta (ocean cooling)
344  c                  Typical range: -20 < lwflux < 170  c               |  Typical range: -20 < lwflux < 170
345  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
346  c                  Input field  c               |  Input field
347  c  c----------------------------------------------------------------------
348  c     evap      :: Evaporation in m/s  c     evap      :: Evaporation in m/s
349  c                  > 0 for increase in salt (ocean salinity)  c               |  > 0 for increase in salt (ocean salinity)
350  c                  Typical range: 0 < evap < 2.5e-7  c               |  Typical range: 0 < evap < 2.5e-7
351  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
352  c                  Input, input/output, or output field  c               |  Input, input/output, or output field
353  c  c----------------------------------------------------------------------
354  c     precip    :: Precipitation in m/s  c     precip    :: Precipitation in m/s
355  c                  > 0 for decrease in salt (ocean salinity)  c               |  > 0 for decrease in salt (ocean salinity)
356  c                  Typical range: 0 < precip < 5e-7  c               |  Typical range: 0 < precip < 5e-7
357  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
358  c                  Input or input/output field  c               |  Input or input/output field
359  c  c----------------------------------------------------------------------
360  c     runoff    :: River and glacier runoff in m/s  c     runoff    :: River and glacier runoff in m/s
361  c                  > 0 for decrease in salt (ocean salinity)  c               |  > 0 for decrease in salt (ocean salinity)
362  c                  Typical range: 0 < runoff < ????  c               |  Typical range: 0 < runoff < ????
363  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
364  c                  Input or input/output field  c               |  Input or input/output field
365  c                  !!! WATCH OUT: Default exf_inscal_runoff !!!  c               |  !!! WATCH OUT: Default exf_inscal_runoff !!!
366  c                  !!! in exf_readparms.F is not 1.0        !!!  c               |  !!! in exf_readparms.F is not 1.0        !!!
367  c  c----------------------------------------------------------------------
368  c     swdown    :: Downward shortwave radiation in W/m^2  c     swdown    :: Downward shortwave radiation in W/m^2
369  c                  > 0 for increase in theta (ocean warming)  c               |  > 0 for increase in theta (ocean warming)
370  c                  Typical range: 0 < swdown < 450  c               |  Typical range: 0 < swdown < 450
371  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
372  c                  Input/output field  c               |  Input/output field
373  c  c----------------------------------------------------------------------
374  c     lwdown    :: Downward longwave radiation in W/m^2  c     lwdown    :: Downward longwave radiation in W/m^2
375  c                  > 0 for increase in theta (ocean warming)  c               |  > 0 for increase in theta (ocean warming)
376  c                  Typical range: 50 < lwdown < 450  c               |  Typical range: 50 < lwdown < 450
377  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
378  c                  Input/output field  c               |  Input/output field
379  c  c----------------------------------------------------------------------
380  c     apressure :: Atmospheric pressure field in N/m^2  c     apressure :: Atmospheric pressure field in N/m^2
381  c                  > 0 for ????  c               |  > 0 for ????
382  c                  Typical range: ???? < apressure < ????  c               |  Typical range: ???? < apressure < ????
383  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
384  c                  Input field  c               |  Input field
385  C  c----------------------------------------------------------------------
386  C  
 c     NOTES:  
 c     ======  
 c  
 c     Input and output units and sign conventions can be customized  
 c     using variables exf_inscal_* and exf_outscal_*, which are set  
 c     by exf_readparms.F  
 c  
 c     Output fields fu, fv, Qnet, Qsw, and EmPmR are  
 c     defined in FFIELDS.h  
 c  
 c     #ifndef SHORTWAVE_HEATING, hflux includes shortwave,  
 c     that is, hflux = latent + sensible + lwflux +swflux  
 c  
 c     If (EXFwindOnBgrid .EQ. .TRUE.), uwind and vwind are  
 c     defined on northeast B-grid U and V points, respectively.  
 c  
 c     Arrays *0 and *1 below are used for temporal interpolation.  
387  \end{verbatim}  \end{verbatim}
388  }  }
389    
390  %----------------------------------------------------------------------  %----------------------------------------------------------------------
391    
392  \subsection{Key subroutines  \subsubsection{Key subroutines
393  \label{sec:pkg:exf:subroutines}}  \label{sec:pkg:exf:subroutines}}
394    
395    Top-level routine: \texttt{exf\_getforcing.F}
396    
397    {\footnotesize
398    \begin{verbatim}
399    
400    C     !CALLING SEQUENCE:
401    c ...
402    c  exf_getforcing (TOP LEVEL ROUTINE)
403    c  |
404    c  |-- exf_getclim (get climatological fields used e.g. for relax.)
405    c  |   |--- exf_set_climtemp (relax. to 3-D temperature field)
406    c  |   |--- exf_set_climsalt (relax. to 3-D salinity field)
407    c  |   |--- exf_set_climsst  (relax. to 2-D SST field)
408    c  |   |--- exf_set_climsss  (relax. to 2-D SSS field)
409    c  |   o
410    c  |
411    c  |-- exf_getffields <- this one does almost everything
412    c  |   |   1. reads in fields, either flux or atmos. state,
413    c  |   |      depending on CPP options (for each variable two fields
414    c  |   |      consecutive in time are read in and interpolated onto
415    c  |   |      current time step).
416    c  |   |   2. If forcing is atmos. state and control is atmos. state,
417    c  |   |      then the control variable anomalies are read here
418    c  |   |          * ctrl_getatemp
419    c  |   |          * ctrl_getaqh
420    c  |   |          * ctrl_getuwind
421    c  |   |          * ctrl_getvwind
422    c  |   |      If forcing and control are fluxes, then
423    c  |   |      controls are added later.
424    c  |   o
425    c  |
426    c  |-- exf_check_range
427    c  |   |   1. Check whether read fields are within assumed range
428    c  |   |      (may capture mismatches in units)
429    c  |   o
430    c  |
431    c  |-- exf_bulkformulae
432    c  |   |   1. Compute net or downwelling radiative fluxes via
433    c  |   |      Stefan-Boltzmann law in case only one is known.
434    c  |   |   2. Compute air-sea momentum and buoyancy fluxes from
435    c  |   |      atmospheric state following Large and Pond, JPO, 1981/82
436    c  |   o
437    c  |
438    c  |-- < add time-mean river runoff here, if available >
439    c  |
440    c  |-- < update tile edges here >
441    c  |
442    c  |-- exf_getsurfacefluxes
443    c  |   |   1. If forcing and control are fluxes, then
444    c  |   |      controls are added here.
445    c  |   o
446    c  |
447    c  |-- < treatment of hflux w.r.t. swflux >
448    c  |
449    c  |-- exf_diagnostics_fill
450    c  |   |   1. Do EXF-related diagnostics output here.
451    c  |   o
452    c  |
453    c  |-- exf_mapfields
454    c  |   |   1. Map the EXF variables onto the core MITgcm
455    c  |   |      forcing fields.
456    c  |   o
457    c  |
458    c  |-- exf_bulkformulae
459    c  |   If ALLOW_BULKFORMULAE, compute fluxes via bulkformulae
460    c  |
461    c  |-- exf_getsurfacefluxes
462    c  |   If forcing and control is flux, then the
463    c  |   control vector anomalies are read here
464    c  |      * ctrl_getheatflux
465    c  |      * ctrl_getsaltflux
466    c  |      * ctrl_getzonstress
467    c  |      * call ctrl_getmerstress
468    c  |
469    c  |-- exf_mapfields
470    c  |   Forcing fields from exf package are mapped onto
471    c  |   mitgcm forcing arrays.
472    c  |   Mapping enables a runtime rescaling of fields
473    
474    \end{verbatim}
475    }
476    
477    Bulk formula routine: \texttt{exf\_bulkformulae.F}
478    
479    Generic I/O routine: \texttt{exf\_set\_gen.F}
480    
481    Interpolation routine: \texttt{exf\_interp.F}
482    
483    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
# Line 275  Diagnostics output is available via the Line 492  Diagnostics output is available via the
492  Available output fields are summarized in  Available output fields are summarized in
493  Table \ref{tab:pkg:exf:diagnostics}.  Table \ref{tab:pkg:exf:diagnostics}.
494    
495  \begin{table}  \begin{table}[h!]
496    \centering
497  \label{tab:pkg:exf:diagnostics}  \label{tab:pkg:exf:diagnostics}
 \caption{~}  
498  {\footnotesize  {\footnotesize
499  \begin{verbatim}  \begin{verbatim}
500  ------------------------------------------------------  ------------------------------------------------------
501   <-Name->|Levs|grid|<--  Units   -->|<- Tile (max=80c)   <-Name->|Levs|grid|<--  Units   -->|<- Tile (max=80c)
502  ------------------------------------------------------  ------------------------------------------------------
503   EXFlwdn |  1 | SM |W/m^2           |Downward longwave radiation, >0 increases theta   EXFlwdn |  1 | SM | W/m^2          | Downward longwave radiation, >0 increases theta
504   EXFswdn |  1 | SM |W/m^2           |Downward shortwave radiation, >0 increases theta   EXFswdn |  1 | SM | W/m^2          | Downward shortwave radiation, >0 increases theta
505   EXFqnet |  1 | SM |W/m^2           |Net upward heat flux (turb+rad), >0 decreases theta   EXFqnet |  1 | SM | W/m^2          | Net upward heat flux (turb+rad), >0 decreases theta
506   EXFtaux |  1 | SU |N/m^2           |zonal surface wind stress, >0 increases uVel   EXFtaux |  1 | SU | N/m^2          | zonal surface wind stress, >0 increases uVel
507   EXFtauy |  1 | SV |N/m^2           |meridional surface wind stress, >0 increases vVel   EXFtauy |  1 | SV | N/m^2          | meridional surface wind stress, >0 increases vVel
508   EXFuwind|  1 | SM |m/s             |zonal 10-m wind speed, >0 increases uVel   EXFuwind|  1 | SM | m/s            | zonal 10-m wind speed, >0 increases uVel
509   EXFvwind|  1 | SM |m/s             |meridional 10-m wind speed, >0 increases uVel   EXFvwind|  1 | SM | m/s            | meridional 10-m wind speed, >0 increases uVel
510   EXFatemp|  1 | SM |degK            |surface (2-m) air temperature   EXFatemp|  1 | SM | degK           | surface (2-m) air temperature
511   EXFaqh  |  1 | SM |kg/kg           |surface (2-m) specific humidity   EXFaqh  |  1 | SM | kg/kg          | surface (2-m) specific humidity
512   EXFevap |  1 | SM |m/s             |evaporation, > 0 increases salinity   EXFevap |  1 | SM | m/s            | evaporation, > 0 increases salinity
513   EXFpreci|  1 | SM |m/s             |evaporation, > 0 decreases salinity   EXFpreci|  1 | SM | m/s            | evaporation, > 0 decreases salinity
514   EXFempmr|  1 | SM |m/s             |net upward freshwater flux, > 0 increases salinity   EXFempmr|  1 | SM | m/s            | net upward freshwater flux, > 0 increases salinity
515   EXFpress|  1 | SM |N/m^2           |atmospheric pressure field   EXFpress|  1 | SM | N/m^2          | atmospheric pressure field
516  \end{verbatim}  \end{verbatim}
517  }  }
518    \caption{~}
519  \end{table}  \end{table}
520    
521  %----------------------------------------------------------------------  %----------------------------------------------------------------------
522    
523  \subsection{Reference experiments}  \subsubsection{Reference experiments}
524    
525    global\_with\_exf:
526    
527    lab\_sea:
528    
529  %----------------------------------------------------------------------  %----------------------------------------------------------------------
530    
531  \subsection{References}  \subsubsection{References}

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.7

  ViewVC Help
Powered by ViewVC 1.1.22