/[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.15 - (hide annotations) (download) (as text)
Wed Jun 22 02:06:29 2011 UTC (14 years, 1 month ago) by jmc
Branch: MAIN
Changes since 1.14: +3 -3 lines
File MIME type: application/x-tex
fix previous modif (was stopping in the 1rst step when making manual.dvi)

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

  ViewVC Help
Powered by ViewVC 1.1.22