/[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.11 - (hide annotations) (download) (as text)
Tue Jan 15 23:58:53 2008 UTC (16 years, 3 months ago) by heimbach
Branch: MAIN
Changes since 1.10: +4 -5 lines
File MIME type: application/x-tex
Updating

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

  ViewVC Help
Powered by ViewVC 1.1.22