/[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.1 by heimbach, Thu Jul 14 21:04:52 2005 UTC revision 1.16 by jmc, Fri Dec 9 21:41:30 2016 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 21  forcing fields an arbitrary grid onto th Line 22  forcing fields an arbitrary grid onto th
22  CPP options enable or disable different aspects of the package  CPP options enable or disable different aspects of the package
23  (Section \ref{sec:pkg:exf:config}).  (Section \ref{sec:pkg:exf:config}).
24  Runtime options, flags, filenames and field-related dates/times are  Runtime options, flags, filenames and field-related dates/times are
25  set in \texttt{data.exf} and \texttt{data.exf\_clim}  set in \texttt{data.exf}
26  (Section \ref{sec:pkg:exf:runtime}).  (Section \ref{sec:pkg:exf:runtime}).
27  A description of key subroutines is given in Section  A description of key subroutines is given in Section
28  \ref{sec:pkg:exf:subroutines}.  \ref{sec:pkg:exf:subroutines}.
29  Input fields, units and sign conventions are summarized in  Input fields, units and sign conventions are summarized in
30  Section \ref{sec:pkg:exf:fields_units}, and available diagnostics  Section \ref{sec:pkg:exf:fields_units}, and available diagnostics
31  output is listed in Section \ref{sec:pkg:exf:fields_diagnostics}.  output is listed in Section \ref{sec:pkg:exf:diagnostics}.
32    
33  %----------------------------------------------------------------------  %----------------------------------------------------------------------
34    
35  \subsection{EXF configuration \& compiling  \subsubsection{EXF configuration, compiling \& running}
36    
37    \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{sec: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    \label{tab:pkg:exf:cpp}    \centering
67    {\footnotesize    {\footnotesize
68      \begin{tabular}{|l|l|}      \begin{tabular}{|l|l|}
69        \hline        \hline
70        \textbf{CPP option}  &  \textbf{Description}  \\        \textbf{CPP option}  &  \textbf{Description}  \\
71        \hline        \hline \hline
72          \texttt{EXF\_VERBOSE} &          \texttt{EXF\_VERBOSE} &
73            verbose mode (recommended only for testing) \\            verbose mode (recommended only for testing) \\
74          \texttt{ALLOW\_ATM\_TEMP} &          \texttt{ALLOW\_ATM\_TEMP} &
75            compute heat/freshwater fluxes from atmos. state input \\            compute heat/freshwater fluxes from atmos. state input \\
76          \texttt{ALLOW\_ATM\_WIND} &          \texttt{ALLOW\_ATM\_WIND} &
77            compute wind stress from wind speed input\\            compute wind stress from wind speed input\\
78          \texttt{ALLOW\_BULKFORMULAE} &          \texttt{ALLOW\_BULKFORMULAE} &
79            is used if either ALLOW\_ATM\_TEMP or ALLOW\_ATM\_WIND is enabled \\            is used if \texttt{ALLOW\_ATM\_TEMP} or
80              \texttt{ALLOW\_ATM\_WIND} is enabled \\
81          \texttt{EXF\_READ\_EVAP} & read evaporation instead of computing it \\          \texttt{EXF\_READ\_EVAP} & read evaporation instead of computing it \\
82          \texttt{ALLOW\_RUNOFF} & read time-constant river/glacier run-off field \\          \texttt{ALLOW\_RUNOFF} & read time-constant river/glacier run-off field \\
83          \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 \\
84          \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 \\
85        \hline        \hline
86          \texttt{ALLOW\_CLIMTEMP\_RELAXATION} &           \multicolumn{2}{|c|}{\textit{used in conjunction with relaxation to prescribed (climatological) fields}} \\
87            relaxation to 3-D potential temperature field \\           \hline
         \texttt{ALLOW\_CLIMSALT\_RELAXATION} &  
           relaxation to 3-D salinity field \\  
88          \texttt{ALLOW\_CLIMSST\_RELAXATION} &          \texttt{ALLOW\_CLIMSST\_RELAXATION} &
89            relaxation to 2-D SST relaxation \\            relaxation to 2-D SST climatology \\
90          \texttt{ALLOW\_CLIMSSS\_RELAXATION} &          \texttt{ALLOW\_CLIMSSS\_RELAXATION} &
91            relaxation to 2-D SSS relaxation  \\            relaxation to 2-D SSS climatology  \\
92        \hline        \hline
93          \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}} \\
94          \texttt{ATMOSPHERIC\_LOADING} &  in \texttt{CPP\_OPTIONS.h}: enable surface pressure forcing \\           \hline
95            \texttt{SHORTWAVE\_HEATING} & enable shortwave radiation \\
96            \texttt{ATMOSPHERIC\_LOADING} & enable surface pressure forcing \\
97        \hline        \hline
98      \end{tabular}      \end{tabular}
99    }    }
100    \caption{~}    \caption{~}
101      \label{tab:pkg:exf:cpp}
102  \end{table}  \end{table}
103    
   
104  %----------------------------------------------------------------------  %----------------------------------------------------------------------
105    
106  \subsection{EXF runtime parameters  \subsubsection{Run-time parameters
107  \label{sec:pkg:exf:runtime}}  \label{sec:pkg:exf:runtime}}
108    
109    Run-time parameters are set in files
110    \texttt{data.pkg} and \texttt{data.exf}
111    %\texttt{data.exf\_clim} (for relaxation/climatological fields)
112    which is read in \texttt{exf\_readparms.F}.
113    Run-time parameters may be broken into 3 categories:
114    (i) switching on/off the package at runtime,
115    (ii) general flags and parameters, and
116    (iii) attributes for each forcing and climatological field.
117    
118    \paragraph{Enabling the package}
119    ~ \\
120    %
121    A package is switched on/off at runtime by setting
122    (e.g. for EXF) \texttt{useEXF = .TRUE.} in \texttt{data.pkg}.
123    
124    \paragraph{General flags and parameters}
125    ~ \\
126    %
127    \begin{table}[!ht]
128      \centering
129      {\footnotesize
130        \begin{tabular}{|l|c|l|}
131          \hline
132          \textbf{Flag/parameter} & \textbf{default} &  \textbf{Description}  \\
133          \hline \hline
134            useExfCheckRange & \texttt{.TRUE.} &
135               check range of input fields and stop if out of range \\
136            useExfYearlyFields & \texttt{.FALSE.} &
137               append current year postfix of form \texttt{\_YYYY} on filename \\
138            twoDigitYear & \texttt{.FALSE.} &
139               instead of appending \texttt{\_YYYY} append  \texttt{YY} \\
140            repeatPeriod & \texttt{0.0} & $ > 0 $ :
141               cycle through all input fields at the same period (in seconds) \\
142            ~            & ~            & $ = 0 $ :
143               use period assigned to each field \\
144            exf\_offset\_atemp & \texttt{0.0} & set to 273.16 to convert from deg. Kelvin (assumed input) to Celsius \\
145            windstressmax & \texttt{2.0} &
146               max. allowed wind stress $N/m^2$ \\
147            exf\_albedo & \texttt{0.1} &
148              surface albedo used to compute downward vs. net radiative fluxes \\
149            climtempfreeze & \texttt{-1.9} &
150              ??? \\
151            ocean\_emissivity & \texttt{} &
152              longwave ocean-surface emissivity \\
153            ice\_emissivity & \texttt{} &
154              longwave seaice emissivity \\
155            snow\_emissivity & \texttt{} &
156              longwave  snow  emissivity \\
157            exf\_iceCd & \texttt{1.63E-3} &
158              drag coefficient over sea-ice \\
159            exf\_iceCe & \texttt{1.63E-3} &
160              evaporation transfer coeff. over sea-ice \\
161            exf\_iceCh & \texttt{1.63E-3} &
162              sensible heat transfer coeff. over sea-ice \\
163            exf\_scal\_BulkCdn & \texttt{1.} &
164              overall scaling of neutral drag coeff. \\
165            useStabilityFct\_overIce  & \texttt{.FALSE.} &
166              compute turbulent transfer coeff. over sea-ice \\
167            readStressOnAgrid & \texttt{.FALSE.} &
168              read wind-streess located on model-grid, A-grid point \\
169            readStressOnCgrid & \texttt{.FALSE.} &
170              read wind-streess located on model-grid, C-grid point \\
171            useRelativeWind & \texttt{.FALSE.} &
172              subtract [U/V]VEL or [U/VICE from U/V]WIND before \\
173            ~ & ~ &  computing [U/V]STRESS \\
174            zref & \texttt{10.} &
175              reference height \\
176            hu & \texttt{10.} &
177              height of mean wind \\
178            ht & \texttt{2.} &
179              height of mean temperature and rel. humidity \\
180            umin & \texttt{0.5} &
181              minimum absolute wind speed for computing Cd \\
182            atmrho & \texttt{1.2} &
183              mean atmospheric density [kg/m\^3] \\
184            atmcp & \texttt{1005.} &
185              mean atmospheric specific heat [J/kg/K] \\
186            cdrag\_[n] & \texttt{???} &
187              n = 1,2,3; parameters for drag coeff. function \\
188            cstanton\_[n] & \texttt{???} &
189              n = 1,2; parameters for Stanton number function \\
190            cdalton & \texttt{???} &
191              parameter for Dalton number function \\
192            flamb & \texttt{2500000.} &
193              latent heat of evaporation [J/kg] \\
194            flami & \texttt{334000.} &
195              latent heat of melting of pure ice [J/kg] \\
196            zolmin & \texttt{-100.} &
197              minimum stability parameter \\
198            cvapor\_fac & \texttt{640380.} &
199              ~ \\
200            cvapor\_exp & \texttt{5107.4} &
201              ~ \\
202            cvapor\_fac\_ice & \texttt{11637800.} &
203              ~ \\
204            cvapor\_fac\_ice & \texttt{5897.8} &
205              ~ \\
206            humid\_fac & \texttt{0.606} &
207              parameter for virtual temperature calculation \\
208            gamma\_blk & \texttt{0.010} &
209              adiabatic lapse rate \\
210            saltsat & \texttt{0.980} &
211              reduction of saturation vapor pressure over salt-water \\
212            psim\_fac & \texttt{5.} &
213              ~ \\
214            exf\_monFreq & \texttt{monitorFreq} &
215              output frequency [s] \\
216            exf\_iprec  & \texttt{32} &
217              precision of input fields (32-bit or 64-bit) \\
218            exf\_yftype & \texttt{'RL'} &
219              precision of arrays ('RL' vs. 'RS') \\
220          \hline
221        \end{tabular}
222      }
223      \caption{~}
224      \label{tab:pkg:exf:runtime_flags}
225    \end{table}
226    
227    \paragraph{Field attributes}
228    ~ \\
229    %
230    All EXF fields are listed in Section \ref{sec:pkg:exf:fields_units}.
231    Each field has a number of attributes which can be customized.
232    They are summarized in
233    Table \ref{tab:pkg:exf:runtime_attributes}.
234    To obtain an attribute for a specific field, e.g. \texttt{uwind}
235    prepend the field name to the listed attribute, e.g. for attribute
236    \texttt{period} this yields \texttt{uwindperiod}:
237    %
238    \begin{eqnarray*}
239      \begin{array}{cccccc}
240        ~ & \texttt{field} & \& & \texttt{attribute} & \longrightarrow & \texttt{parameter} \\
241        \text{e.g.} & \text{uwind} & \& & \text{period} & \longrightarrow & \text{uwindperiod} \\
242      \end{array}
243    \end{eqnarray*}
244    %
245    
246    \begin{table}[!ht]
247      \centering
248      {\footnotesize
249        \begin{tabular}{|l|c|l|}
250          \hline
251          \textbf{attribute} &  \textbf{Default} &  \textbf{Description}  \\
252          \hline \hline
253             \textit{field}\texttt{file} & ' ' &
254               filename; if left empty no file will be read; \texttt{const} will be used instead \\
255             \textit{field}\texttt{const} & 0. &
256               constant that will be used if no file is read  \\
257             \textit{field}\texttt{startdate1} & 0. &
258               format: \texttt{YYYYMMDD}; start year (YYYY), month (MM), day (YY) \\
259               ~&~& of field to determine record number \\
260             \textit{field}\texttt{startdate2} & 0. &
261               format: \texttt{HHMMSS}; start hour (HH), minute (MM), second(SS) \\
262               ~&~& of field to determine record number\\
263             \textit{field}\texttt{period} & 0. &
264               interval in seconds between two records \\
265             \texttt{exf\_inscal\_}\textit{field}& ~ &
266               optional rescaling of input fields to comply with EXF units \\
267             \texttt{exf\_outscal\_}\textit{field}& ~ &
268               optional rescaling of EXF fields when mapped onto MITgcm fields \\
269             \hline
270             \multicolumn{3}{|c|}{\textit{used in conjunction with}
271                                  \texttt{EXF\_USE\_INTERPOLATION}} \\
272             \hline
273             \textit{field}\texttt{\_lon0} & $xgOrigin+delX/2$  &
274               starting longitude of input \\
275             \textit{field}\texttt{\_lon\_inc} & $delX$ &
276               increment in longitude of input \\
277             \textit{field}\texttt{\_lat0} &  $ygOrigin+delY/2$ &
278               starting latitude of input \\
279             \textit{field}\texttt{\_lat\_inc} & $delY$ &
280               increment in latitude of input \\
281             \textit{field}\texttt{\_nlon} & $Nx$ &
282               number of grid points in longitude of input \\
283             \textit{field}\texttt{\_nlat} & $Ny$ &
284               number of grid points in longitude of input \\
285          \hline
286        \end{tabular}
287       }
288      \caption{\newline
289               Note one exception for the default of
290               \texttt{atempconst} = celsius2K = 273.16}
291      \label{tab:pkg:exf:runtime_attributes}
292    \end{table}
293    
294    \paragraph{Example configuration} ~ \\
295    %
296    The following block is taken from the \texttt{data.exf} file
297    of the verification experiment \texttt{global\_with\_exf/}.
298    It defines attributes for the heat flux variable \texttt{hflux}:
299    
300    \begin{verbatim}
301     hfluxfile       = 'ncep_qnet.bin',
302     hfluxstartdate1 = 19920101,
303     hfluxstartdate2 = 000000,
304     hfluxperiod     = 2592000.0,
305     hflux_lon0      = 2
306     hflux_lon_inc   = 4
307     hflux_lat0      = -78
308     hflux_lat_inc   = 39*4
309     hflux_nlon      = 90
310     hflux_nlat      = 40
311    \end{verbatim}
312    
313    EXF will read a file of name 'ncep\_qnet.bin'.
314    Its first record represents January 1st, 1992 at 00:00 UTC.
315    Next record is 2592000 seconds (or 30 days) later.
316    Note that the first record read and used by the EXF package corresponds to the
317    value 'startDate1' set in data.cal.  Therefore if you want to start the EXF
318    forcing from later in the 'ncep\_qnet.bin' file, it suffices to specify
319    startDate1 in data.cal as a date later than 19920101 (for example, startDate1
320    = 19940101, for starting January 1st, 1994).  For this to work,
321    'ncep\_qnet.bin' must have at least 2 years of data because in this
322    configuration EXF will read 2 years into the file to find the 1994 starting
323    value.
324    Interpolation on-the-fly is used (in the present case trivially
325    on the same grid, but included nevertheless for illustration),
326    and input field grid starting coordinates and increments are
327    supplied as well.
328    
329  %----------------------------------------------------------------------  %----------------------------------------------------------------------
330    
331  \subsection{EXF fields and units  \subsubsection{EXF bulk formulae
332    \label{sec:pkg:exf:bulk_formulae}}
333    
334    T.B.D. (cross-ref. to parameter list table)
335    
336    %----------------------------------------------------------------------
337    
338    \subsubsection{EXF input fields and units
339  \label{sec:pkg:exf:fields_units}}  \label{sec:pkg:exf:fields_units}}
340    
341  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}.
342    It comprises all EXF input fields.
343    
344    Output fields which EXF provides to the MITgcm are fields
345    \textbf{fu}, \textbf{fv}, \textbf{Qnet}, \textbf{Qsw}, \textbf{EmPmR},
346    and \textbf{pload}. They are defined in \texttt{FFIELDS.h}.
347    
348  {\footnotesize  {\footnotesize
349  \begin{verbatim}  \begin{verbatim}
350    
351    c----------------------------------------------------------------------
352    c               |
353    c     field     :: Description
354    c               |
355    c----------------------------------------------------------------------
356  c     ustress   :: Zonal surface wind stress in N/m^2  c     ustress   :: Zonal surface wind stress in N/m^2
357  c                  > 0 for increase in uVel, which is west to  c               |  > 0 for increase in uVel, which is west to
358  c                      east for cartesian and spherical polar grids  c               |      east for cartesian and spherical polar grids
359  c                  Typical range: -0.5 < ustress < 0.5  c               |  Typical range: -0.5 < ustress < 0.5
360  c                  Southwest C-grid U point  c               |  Southwest C-grid U point
361  c                  Input field  c               |  Input field
362  c  c----------------------------------------------------------------------
363  c     vstress   :: Meridional surface wind stress in N/m^2  c     vstress   :: Meridional surface wind stress in N/m^2
364  c                  > 0 for increase in vVel, which is south to  c               |  > 0 for increase in vVel, which is south to
365  c                      north for cartesian and spherical polar grids  c               |      north for cartesian and spherical polar grids
366  c                  Typical range: -0.5 < vstress < 0.5  c               |  Typical range: -0.5 < vstress < 0.5
367  c                  Southwest C-grid V point  c               |  Southwest C-grid V point
368  c                  Input field  c               |  Input field
369  c  c----------------------------------------------------------------------
370  c     hflux     :: Net upward surface heat flux in W/m^2  c     hs        :: sensible heat flux into ocean in W/m^2
371  c                  excluding shortwave (on input)  c               |  > 0 for increase in theta (ocean warming)
372  c                  hflux = latent + sensible + lwflux  c----------------------------------------------------------------------
373  c                  > 0 for decrease in theta (ocean cooling)  c     hl        :: latent   heat flux into ocean in W/m^2
374  c                  Typical range: -250 < hflux < 600  c               |  > 0 for increase in theta (ocean warming)
375  c                  Southwest C-grid tracer point  c----------------------------------------------------------------------
376  c                  Input field  c     hflux     :: Net upward surface heat flux in W/m^2
377  c  c               |  (including shortwave)
378    c               |  hflux = latent + sensible + lwflux + swflux
379    c               |  > 0 for decrease in theta (ocean cooling)
380    c               |  Typical range: -250 < hflux < 600
381    c               |  Southwest C-grid tracer point
382    c               |  Input field
383    c----------------------------------------------------------------------
384  c     sflux     :: Net upward freshwater flux in m/s  c     sflux     :: Net upward freshwater flux in m/s
385  c                  sflux = evap - precip - runoff  c               |  sflux = evap - precip - runoff
386  c                  > 0 for increase in salt (ocean salinity)  c               |  > 0 for increase in salt (ocean salinity)
387  c                  Typical range: -1e-7 < sflux < 1e-7  c               |  Typical range: -1e-7 < sflux < 1e-7
388  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
389  c                  Input field  c               |  Input field
390  c  c----------------------------------------------------------------------
391  c     swflux    :: Net upward shortwave radiation in W/m^2  c     swflux    :: Net upward shortwave radiation in W/m^2
392  c                  swflux = - ( swdown - ice and snow absorption - reflected )  c               |  swflux = - ( swdown - ice and snow absorption - reflected )
393  c                  > 0 for decrease in theta (ocean cooling)  c               |  > 0 for decrease in theta (ocean cooling)
394  c                  Typical range: -350 < swflux < 0  c               |  Typical range: -350 < swflux < 0
395  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
396  c                  Input field  c               |  Input field
397  c  c----------------------------------------------------------------------
398  c     uwind     :: Surface (10-m) zonal wind velocity in m/s  c     uwind     :: Surface (10-m) zonal wind velocity in m/s
399  c                  > 0 for increase in uVel, which is west to  c               |  > 0 for increase in uVel, which is west to
400  c                      east for cartesian and spherical polar grids  c               |      east for cartesian and spherical polar grids
401  c                  Typical range: -10 < uwind < 10  c               |  Typical range: -10 < uwind < 10
402  c                  Southwest C-grid U point  c               |  Southwest C-grid U point
403  c                  Input or input/output field  c               |  Input or input/output field
404  c  c----------------------------------------------------------------------
405  c     vwind     :: Surface (10-m) meridional wind velocity in m/s  c     vwind     :: Surface (10-m) meridional wind velocity in m/s
406  c                  > 0 for increase in vVel, which is south to  c               |  > 0 for increase in vVel, which is south to
407  c                      north for cartesian and spherical polar grids  c               |      north for cartesian and spherical polar grids
408  c                  Typical range: -10 < vwind < 10  c               |  Typical range: -10 < vwind < 10
409  c                  Southwest C-grid V point  c               |  Southwest C-grid V point
410  c                  Input or input/output field  c               |  Input or input/output field
411  c  c----------------------------------------------------------------------
412    c     wspeed    :: Surface (10-m) wind speed in m/s
413    c               |  >= 0 sqrt(u^2+v^2)
414    c               |  Typical range: 0 < wspeed < 10
415    c               |  Input or input/output field
416    c----------------------------------------------------------------------
417  c     atemp     :: Surface (2-m) air temperature in deg K  c     atemp     :: Surface (2-m) air temperature in deg K
418  c                  Typical range: 200 < atemp < 300  c               |  Typical range: 200 < atemp < 300
419  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
420  c                  Input or input/output field  c               |  Input or input/output field
421  c  c----------------------------------------------------------------------
422  c     aqh       :: Surface (2m) specific humidity in kg/kg  c     aqh       :: Surface (2m) specific humidity in kg/kg
423  c                  Typical range: 0 < aqh < 0.02  c               |  Typical range: 0 < aqh < 0.02
424  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
425  c                  Input or input/output field  c               |  Input or input/output field
426  c  c----------------------------------------------------------------------
427  c     lwflux    :: Net upward longwave radiation in W/m^2  c     lwflux    :: Net upward longwave radiation in W/m^2
428  c                  lwflux = - ( lwdown - ice and snow absorption - emitted )  c               |  lwflux = - ( lwdown - ice and snow absorption - emitted )
429  c                  > 0 for decrease in theta (ocean cooling)  c               |  > 0 for decrease in theta (ocean cooling)
430  c                  Typical range: -20 < lwflux < 170  c               |  Typical range: -20 < lwflux < 170
431  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
432  c                  Input field  c               |  Input field
433  c  c----------------------------------------------------------------------
434  c     evap      :: Evaporation in m/s  c     evap      :: Evaporation in m/s
435  c                  > 0 for increase in salt (ocean salinity)  c               |  > 0 for increase in salt (ocean salinity)
436  c                  Typical range: 0 < evap < 2.5e-7  c               |  Typical range: 0 < evap < 2.5e-7
437  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
438  c                  Input, input/output, or output field  c               |  Input, input/output, or output field
439  c  c----------------------------------------------------------------------
440  c     precip    :: Precipitation in m/s  c     precip    :: Precipitation in m/s
441  c                  > 0 for decrease in salt (ocean salinity)  c               |  > 0 for decrease in salt (ocean salinity)
442  c                  Typical range: 0 < precip < 5e-7  c               |  Typical range: 0 < precip < 5e-7
443  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
444  c                  Input or input/output field  c               |  Input or input/output field
445  c  c----------------------------------------------------------------------
446    c    snowprecip :: snow in m/s
447    c               |  > 0 for decrease in salt (ocean salinity)
448    c               |  Typical range: 0 < precip < 5e-7
449    c               |  Input or input/output field
450    c----------------------------------------------------------------------
451  c     runoff    :: River and glacier runoff in m/s  c     runoff    :: River and glacier runoff in m/s
452  c                  > 0 for decrease in salt (ocean salinity)  c               |  > 0 for decrease in salt (ocean salinity)
453  c                  Typical range: 0 < runoff < ????  c               |  Typical range: 0 < runoff < ????
454  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
455  c                  Input or input/output field  c               |  Input or input/output field
456  c                  !!! WATCH OUT: Default exf_inscal_runoff !!!  c               |  !!! WATCH OUT: Default exf_inscal_runoff !!!
457  c                  !!! in exf_readparms.F is not 1.0        !!!  c               |  !!! in exf_readparms.F is not 1.0        !!!
458  c  c----------------------------------------------------------------------
459  c     swdown    :: Downward shortwave radiation in W/m^2  c     swdown    :: Downward shortwave radiation in W/m^2
460  c                  > 0 for increase in theta (ocean warming)  c               |  > 0 for increase in theta (ocean warming)
461  c                  Typical range: 0 < swdown < 450  c               |  Typical range: 0 < swdown < 450
462  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
463  c                  Input/output field  c               |  Input/output field
464  c  c----------------------------------------------------------------------
465  c     lwdown    :: Downward longwave radiation in W/m^2  c     lwdown    :: Downward longwave radiation in W/m^2
466  c                  > 0 for increase in theta (ocean warming)  c               |  > 0 for increase in theta (ocean warming)
467  c                  Typical range: 50 < lwdown < 450  c               |  Typical range: 50 < lwdown < 450
468  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
469  c                  Input/output field  c               |  Input/output field
470  c  c----------------------------------------------------------------------
471  c     apressure :: Atmospheric pressure field in N/m^2  c     apressure :: Atmospheric pressure field in N/m^2
472  c                  > 0 for ????  c               |  > 0 for ????
473  c                  Typical range: ???? < apressure < ????  c               |  Typical range: ???? < apressure < ????
474  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
475  c                  Input field  c               |  Input field
476  C  c----------------------------------------------------------------------
477  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.  
478  \end{verbatim}  \end{verbatim}
479  }  }
480    
481  %----------------------------------------------------------------------  %----------------------------------------------------------------------
482    
483  \subsection{Key subroutines  \subsubsection{Key subroutines
484  \label{sec:pkg:exf:subroutines}}  \label{sec:pkg:exf:subroutines}}
485    
486    Top-level routine: \texttt{exf\_getforcing.F}
487    
488    {\footnotesize
489    \begin{verbatim}
490    
491    C     !CALLING SEQUENCE:
492    c ...
493    c  exf_getforcing (TOP LEVEL ROUTINE)
494    c  |
495    c  |-- exf_getclim (get climatological fields used e.g. for relax.)
496    c  |   |--- exf_set_climsst  (relax. to 2-D SST field)
497    c  |   |--- exf_set_climsss  (relax. to 2-D SSS field)
498    c  |   o
499    c  |
500    c  |-- exf_getffields <- this one does almost everything
501    c  |   |   1. reads in fields, either flux or atmos. state,
502    c  |   |      depending on CPP options (for each variable two fields
503    c  |   |      consecutive in time are read in and interpolated onto
504    c  |   |      current time step).
505    c  |   |   2. If forcing is atmos. state and control is atmos. state,
506    c  |   |      then the control variable anomalies are read here via ctrl_get_gen
507    c  |   |      (atemp, aqh, precip, swflux, swdown, uwind, vwind).
508    c  |   |      If forcing and control are fluxes, then
509    c  |   |      controls are added later.
510    c  |   o
511    c  |
512    c  |-- exf_radiation
513    c  |   |    Compute net or downwelling radiative fluxes via
514    c  |   |    Stefan-Boltzmann law in case only one is known.
515    c  |   o
516    c  |-- exf_wind
517    c  |   |   Computes wind speed and stresses, if required.
518    c  |   o
519    c  |
520    c  |-- exf_bulkformulae
521    c  |   |   Compute air-sea buoyancy fluxes from
522    c  |   |   atmospheric state following Large and Pond, JPO, 1981/82
523    c  |   o
524    c  |
525    c  |-- < hflux is sum of sensible, latent, longwave rad. >
526    c  |-- < sflux is sum of evap. minus precip. minus runoff  >
527    c  |
528    c  |-- exf_getsurfacefluxes
529    c  |   If forcing and control is flux, then the
530    c  |   control vector anomalies are read here via ctrl_get_gen
531    c  |   (hflux, sflux, ustress, vstress)
532    c  |
533    c  |-- < update tile edges here >
534    c  |
535    c  |-- exf_check_range
536    c  |   |   Check whether read fields are within assumed range
537    c  |   |   (may capture mismatches in units)
538    c  |   o
539    c  |
540    c  |-- < add shortwave to hflux for diagnostics >
541    c  |
542    c  |-- exf_diagnostics_fill
543    c  |   |   Do EXF-related diagnostics output here.
544    c  |   o
545    c  |
546    c  |-- exf_mapfields
547    c  |   |   Forcing fields from exf package are mapped onto
548    c  |   |   mitgcm forcing arrays.
549    c  |   |   Mapping enables a runtime rescaling of fields
550    c  |   o
551    C  o
552    \end{verbatim}
553    }
554    
555    Radiation calculation: \texttt{exf\_radiation.F}
556    
557    Wind speed and stress calculation: \texttt{exf\_wind.F}
558    
559    Bulk formula: \texttt{exf\_bulkformulae.F}
560    
561    Generic I/O: \texttt{exf\_set\_gen.F}
562    
563    Interpolation: \texttt{exf\_interp.F}
564    
565    Header routines
566    
567  %----------------------------------------------------------------------  %----------------------------------------------------------------------
568    
569  \subsection{EXF diagnostics  \subsubsection{EXF diagnostics
570  \label{sec:pkg:exf:diagnostics}}  \label{sec:pkg:exf:diagnostics}}
571    
572  Diagnostics output is available via the diagnostics package  Diagnostics output is available via the diagnostics package
573  (see Section \ref{sec:pkg:diagnostics}).  (see Section \ref{sec:pkg:diagnostics}).
574  Available output fields are summarized in  Available output fields are summarized in
575  Table \ref{tab:pkg:exf:diagnostics}.  Table \ref{tab:pkg:exf:diagnostics}.
576    
577  \begin{table}  \begin{table}[!ht]
578  \label{tab:pkg:exf:diagnostics}  \centering
 \caption{~}  
579  {\footnotesize  {\footnotesize
580  \begin{verbatim}  \begin{verbatim}
581  ------------------------------------------------------  ---------+----+----+----------------+-----------------
582   <-Name->|Levs|grid|<--  Units   -->|<- Tile (max=80c)   <-Name->|Levs|grid|<--  Units   -->|<- Tile (max=80c)
583  ------------------------------------------------------  ---------+----+----+----------------+-----------------
584   EXFlwdn |  1 | SM |W/m^2           |Downward longwave radiation, >0 increases theta   EXFhs   |  1 | SM | W/m^2          | Sensible heat flux into ocean, >0 increases theta
585   EXFswdn |  1 | SM |W/m^2           |Downward shortwave radiation, >0 increases theta   EXFhl   |  1 | SM | W/m^2          | Latent heat flux into ocean, >0 increases theta
586   EXFqnet |  1 | SM |W/m^2           |Net upward heat flux (turb+rad), >0 decreases theta   EXFlwnet|  1 | SM | W/m^2          | Net upward longwave radiation, >0 decreases theta
587   EXFtaux |  1 | SU |N/m^2           |zonal surface wind stress, >0 increases uVel   EXFswnet|  1 | SM | W/m^2          | Net upward shortwave radiation, >0 decreases theta
588   EXFtauy |  1 | SV |N/m^2           |meridional surface wind stress, >0 increases vVel   EXFlwdn |  1 | SM | W/m^2          | Downward longwave radiation, >0 increases theta
589   EXFuwind|  1 | SM |m/s             |zonal 10-m wind speed, >0 increases uVel   EXFswdn |  1 | SM | W/m^2          | Downward shortwave radiation, >0 increases theta
590   EXFvwind|  1 | SM |m/s             |meridional 10-m wind speed, >0 increases uVel   EXFqnet |  1 | SM | W/m^2          | Net upward heat flux (turb+rad), >0 decreases theta
591   EXFatemp|  1 | SM |degK            |surface (2-m) air temperature   EXFtaux |  1 | SU | N/m^2          | zonal surface wind stress, >0 increases uVel
592   EXFaqh  |  1 | SM |kg/kg           |surface (2-m) specific humidity   EXFtauy |  1 | SV | N/m^2          | meridional surface wind stress, >0 increases vVel
593   EXFevap |  1 | SM |m/s             |evaporation, > 0 increases salinity   EXFuwind|  1 | SM | m/s            | zonal 10-m wind speed, >0 increases uVel
594   EXFpreci|  1 | SM |m/s             |evaporation, > 0 decreases salinity   EXFvwind|  1 | SM | m/s            | meridional 10-m wind speed, >0 increases uVel
595   EXFempmr|  1 | SM |m/s             |net upward freshwater flux, > 0 increases salinity   EXFwspee|  1 | SM | m/s            | 10-m wind speed modulus ( >= 0 )
596   EXFpress|  1 | SM |N/m^2           |atmospheric pressure field   EXFatemp|  1 | SM | degK           | surface (2-m) air temperature
597     EXFaqh  |  1 | SM | kg/kg          | surface (2-m) specific humidity
598     EXFevap |  1 | SM | m/s            | evaporation, > 0 increases salinity
599     EXFpreci|  1 | SM | m/s            | evaporation, > 0 decreases salinity
600     EXFsnow |  1 | SM | m/s            | snow precipitation, > 0 decreases salinity
601     EXFempmr|  1 | SM | m/s            | net upward freshwater flux, > 0 increases salinity
602     EXFpress|  1 | SM | N/m^2          | atmospheric pressure field
603  \end{verbatim}  \end{verbatim}
604  }  }
605    \caption{~}
606    \label{tab:pkg:exf:diagnostics}
607  \end{table}  \end{table}
608    
609  %----------------------------------------------------------------------  %----------------------------------------------------------------------
610    
611  \subsection{Reference experiments}  \subsubsection{Experiments and tutorials that use exf}
612    \label{sec:pkg:exf:experiments}
613    
614    \begin{itemize}
615    \item{Global Ocean experiment, in global\_with\_exf verification directory }
616    \item{Labrador Sea experiment, in lab\_sea verification directory }
617    \end{itemize}
618    
619  %----------------------------------------------------------------------  %----------------------------------------------------------------------
620    
621  \subsection{References}  \subsubsection{References}

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.16

  ViewVC Help
Powered by ViewVC 1.1.22