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

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

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


Revision 1.10 - (hide annotations) (download) (as text)
Tue Jan 15 21:37:14 2008 UTC (16 years, 4 months ago) by heimbach
Branch: MAIN
Changes since 1.9: +74 -0 lines
File MIME type: application/x-tex
Update various new parameters.

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

  ViewVC Help
Powered by ViewVC 1.1.22