/[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.16 - (hide annotations) (download) (as text)
Fri Dec 9 21:41:30 2016 UTC (8 years, 7 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint01, HEAD
Changes since 1.15: +69 -71 lines
File MIME type: application/x-tex
update description of "hflux" (was changed in EXF_FIELDS.h on Oct 10, 2013).

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 jmc 1.16 \hline
70 heimbach 1.1 \textbf{CPP option} & \textbf{Description} \\
71 heimbach 1.2 \hline \hline
72 jmc 1.16 \texttt{EXF\_VERBOSE} &
73 heimbach 1.1 verbose mode (recommended only for testing) \\
74 jmc 1.16 \texttt{ALLOW\_ATM\_TEMP} &
75 heimbach 1.1 compute heat/freshwater fluxes from atmos. state input \\
76 jmc 1.16 \texttt{ALLOW\_ATM\_WIND} &
77 heimbach 1.1 compute wind stress from wind speed input\\
78 jmc 1.16 \texttt{ALLOW\_BULKFORMULAE} &
79     is used if \texttt{ALLOW\_ATM\_TEMP} or
80 heimbach 1.3 \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 heimbach 1.2 \subsubsection{Run-time parameters
107 heimbach 1.1 \label{sec:pkg:exf:runtime}}
108    
109 jmc 1.16 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 heimbach 1.5 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 heimbach 1.11 A package is switched on/off at runtime by setting
122 heimbach 1.5 (e.g. for EXF) \texttt{useEXF = .TRUE.} in \texttt{data.pkg}.
123 heimbach 1.2
124     \paragraph{General flags and parameters}
125 heimbach 1.5 ~ \\
126     %
127 jmc 1.13 \begin{table}[!ht]
128     \centering
129 heimbach 1.2 {\footnotesize
130 heimbach 1.3 \begin{tabular}{|l|c|l|}
131 jmc 1.16 \hline
132 heimbach 1.2 \textbf{Flag/parameter} & \textbf{default} & \textbf{Description} \\
133     \hline \hline
134 jmc 1.16 useExfCheckRange & \texttt{.TRUE.} &
135 heimbach 1.3 check range of input fields and stop if out of range \\
136 jmc 1.16 useExfYearlyFields & \texttt{.FALSE.} &
137 heimbach 1.3 append current year postfix of form \texttt{\_YYYY} on filename \\
138 jmc 1.16 twoDigitYear & \texttt{.FALSE.} &
139 heimbach 1.3 instead of appending \texttt{\_YYYY} append \texttt{YY} \\
140 jmc 1.16 repeatPeriod & \texttt{0.0} & $ > 0 $ :
141 heimbach 1.3 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 jmc 1.16 windstressmax & \texttt{2.0} &
146 heimbach 1.3 max. allowed wind stress $N/m^2$ \\
147 jmc 1.16 exf\_albedo & \texttt{0.1} &
148 heimbach 1.3 surface albedo used to compute downward vs. net radiative fluxes \\
149 jmc 1.16 climtempfreeze & \texttt{-1.9} &
150 heimbach 1.10 ??? \\
151 jmc 1.16 ocean\_emissivity & \texttt{} &
152 heimbach 1.10 longwave ocean-surface emissivity \\
153 jmc 1.16 ice\_emissivity & \texttt{} &
154 heimbach 1.10 longwave seaice emissivity \\
155 jmc 1.16 snow\_emissivity & \texttt{} &
156 heimbach 1.10 longwave snow emissivity \\
157 jmc 1.16 exf\_iceCd & \texttt{1.63E-3} &
158 heimbach 1.10 drag coefficient over sea-ice \\
159 jmc 1.16 exf\_iceCe & \texttt{1.63E-3} &
160 heimbach 1.10 evaporation transfer coeff. over sea-ice \\
161 jmc 1.16 exf\_iceCh & \texttt{1.63E-3} &
162 heimbach 1.10 sensible heat transfer coeff. over sea-ice \\
163 jmc 1.16 exf\_scal\_BulkCdn & \texttt{1.} &
164 heimbach 1.10 overall scaling of neutral drag coeff. \\
165 jmc 1.16 useStabilityFct\_overIce & \texttt{.FALSE.} &
166 heimbach 1.10 compute turbulent transfer coeff. over sea-ice \\
167 jmc 1.16 readStressOnAgrid & \texttt{.FALSE.} &
168 heimbach 1.10 read wind-streess located on model-grid, A-grid point \\
169 jmc 1.16 readStressOnCgrid & \texttt{.FALSE.} &
170 heimbach 1.10 read wind-streess located on model-grid, C-grid point \\
171 jmc 1.16 useRelativeWind & \texttt{.FALSE.} &
172 heimbach 1.10 subtract [U/V]VEL or [U/VICE from U/V]WIND before \\
173     ~ & ~ & computing [U/V]STRESS \\
174 jmc 1.16 zref & \texttt{10.} &
175 heimbach 1.10 reference height \\
176 jmc 1.16 hu & \texttt{10.} &
177 heimbach 1.10 height of mean wind \\
178 jmc 1.16 ht & \texttt{2.} &
179 heimbach 1.10 height of mean temperature and rel. humidity \\
180 jmc 1.16 umin & \texttt{0.5} &
181 heimbach 1.10 minimum absolute wind speed for computing Cd \\
182 jmc 1.16 atmrho & \texttt{1.2} &
183 heimbach 1.10 mean atmospheric density [kg/m\^3] \\
184 jmc 1.16 atmcp & \texttt{1005.} &
185 heimbach 1.10 mean atmospheric specific heat [J/kg/K] \\
186 jmc 1.16 cdrag\_[n] & \texttt{???} &
187 heimbach 1.10 n = 1,2,3; parameters for drag coeff. function \\
188 jmc 1.16 cstanton\_[n] & \texttt{???} &
189 heimbach 1.10 n = 1,2; parameters for Stanton number function \\
190 jmc 1.16 cdalton & \texttt{???} &
191 heimbach 1.10 parameter for Dalton number function \\
192 jmc 1.16 flamb & \texttt{2500000.} &
193 heimbach 1.10 latent heat of evaporation [J/kg] \\
194 jmc 1.16 flami & \texttt{334000.} &
195 heimbach 1.10 latent heat of melting of pure ice [J/kg] \\
196 jmc 1.16 zolmin & \texttt{-100.} &
197 heimbach 1.10 minimum stability parameter \\
198 jmc 1.16 cvapor\_fac & \texttt{640380.} &
199 heimbach 1.10 ~ \\
200 jmc 1.16 cvapor\_exp & \texttt{5107.4} &
201 heimbach 1.10 ~ \\
202 jmc 1.16 cvapor\_fac\_ice & \texttt{11637800.} &
203 heimbach 1.10 ~ \\
204 jmc 1.16 cvapor\_fac\_ice & \texttt{5897.8} &
205 heimbach 1.10 ~ \\
206 jmc 1.16 humid\_fac & \texttt{0.606} &
207 heimbach 1.10 parameter for virtual temperature calculation \\
208 jmc 1.16 gamma\_blk & \texttt{0.010} &
209 heimbach 1.10 adiabatic lapse rate \\
210 jmc 1.16 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 heimbach 1.10 output frequency [s] \\
216 jmc 1.16 exf\_iprec & \texttt{32} &
217 heimbach 1.3 precision of input fields (32-bit or 64-bit) \\
218 jmc 1.16 exf\_yftype & \texttt{'RL'} &
219 heimbach 1.3 precision of arrays ('RL' vs. 'RS') \\
220 heimbach 1.2 \hline
221     \end{tabular}
222     }
223     \caption{~}
224 jmc 1.13 \label{tab:pkg:exf:runtime_flags}
225 heimbach 1.2 \end{table}
226    
227 jmc 1.16 \paragraph{Field attributes}
228 heimbach 1.5 ~ \\
229 heimbach 1.3 %
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 heimbach 1.2
246 jmc 1.13 \begin{table}[!ht]
247     \centering
248 heimbach 1.3 {\footnotesize
249     \begin{tabular}{|l|c|l|}
250 jmc 1.16 \hline
251 heimbach 1.3 \textbf{attribute} & \textbf{Default} & \textbf{Description} \\
252     \hline \hline
253 jmc 1.16 \textit{field}\texttt{file} & ' ' &
254 heimbach 1.3 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 jmc 1.16 \textit{field}\texttt{startdate1} & 0. &
258 heimbach 1.3 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 jmc 1.16 \texttt{exf\_inscal\_}\textit{field}& ~ &
266 heimbach 1.3 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 jmc 1.16 \multicolumn{3}{|c|}{\textit{used in conjunction with}
271 heimbach 1.3 \texttt{EXF\_USE\_INTERPOLATION}} \\
272     \hline
273 jmc 1.16 \textit{field}\texttt{\_lon0} & $xgOrigin+delX/2$ &
274 heimbach 1.3 starting longitude of input \\
275     \textit{field}\texttt{\_lon\_inc} & $delX$ &
276     increment in longitude of input \\
277 jmc 1.12 \textit{field}\texttt{\_lat0} & $ygOrigin+delY/2$ &
278 heimbach 1.3 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 jmc 1.13 \caption{\newline
289 jmc 1.16 Note one exception for the default of
290 jmc 1.13 \texttt{atempconst} = celsius2K = 273.16}
291     \label{tab:pkg:exf:runtime_attributes}
292 heimbach 1.3 \end{table}
293 heimbach 1.2
294 heimbach 1.3 \paragraph{Example configuration} ~ \\
295     %
296     The following block is taken from the \texttt{data.exf} file
297 jmc 1.15 of the verification experiment \texttt{global\_with\_exf/}.
298 heimbach 1.3 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 dimitri 1.14 Its first record represents January 1st, 1992 at 00:00 UTC.
315 heimbach 1.3 Next record is 2592000 seconds (or 30 days) later.
316 dimitri 1.14 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 jmc 1.15 forcing from later in the 'ncep\_qnet.bin' file, it suffices to specify
319 dimitri 1.14 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 jmc 1.15 'ncep\_qnet.bin' must have at least 2 years of data because in this
322 dimitri 1.14 configuration EXF will read 2 years into the file to find the 1994 starting
323     value.
324 heimbach 1.3 Interpolation on-the-fly is used (in the present case trivially
325 jmc 1.16 on the same grid, but included nevertheless for illustration),
326     and input field grid starting coordinates and increments are
327 heimbach 1.3 supplied as well.
328 heimbach 1.2
329 heimbach 1.1 %----------------------------------------------------------------------
330    
331 heimbach 1.10 \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 molod 1.4 \subsubsection{EXF input fields and units
339 heimbach 1.1 \label{sec:pkg:exf:fields_units}}
340    
341 jmc 1.16 The following list is taken from the header file \texttt{EXF\_FIELDS.h}.
342 heimbach 1.3 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 heimbach 1.1
348 heimbach 1.5 {\footnotesize
349 heimbach 1.1 \begin{verbatim}
350    
351 heimbach 1.3 c----------------------------------------------------------------------
352     c |
353     c field :: Description
354     c |
355     c----------------------------------------------------------------------
356 heimbach 1.1 c ustress :: Zonal surface wind stress in N/m^2
357 heimbach 1.3 c | > 0 for increase in uVel, which is west to
358     c | east for cartesian and spherical polar grids
359     c | Typical range: -0.5 < ustress < 0.5
360     c | Southwest C-grid U point
361     c | Input field
362     c----------------------------------------------------------------------
363 heimbach 1.1 c vstress :: Meridional surface wind stress in N/m^2
364 heimbach 1.3 c | > 0 for increase in vVel, which is south to
365     c | north for cartesian and spherical polar grids
366     c | Typical range: -0.5 < vstress < 0.5
367     c | Southwest C-grid V point
368     c | Input field
369     c----------------------------------------------------------------------
370 heimbach 1.8 c hs :: sensible heat flux into ocean in W/m^2
371     c | > 0 for increase in theta (ocean warming)
372     c----------------------------------------------------------------------
373     c hl :: latent heat flux into ocean in W/m^2
374     c | > 0 for increase in theta (ocean warming)
375     c----------------------------------------------------------------------
376 jmc 1.16 c hflux :: Net upward surface heat flux in W/m^2
377     c | (including shortwave)
378     c | hflux = latent + sensible + lwflux + swflux
379 heimbach 1.3 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 heimbach 1.1 c sflux :: Net upward freshwater flux in m/s
385 heimbach 1.3 c | sflux = evap - precip - runoff
386     c | > 0 for increase in salt (ocean salinity)
387     c | Typical range: -1e-7 < sflux < 1e-7
388     c | Southwest C-grid tracer point
389     c | Input field
390     c----------------------------------------------------------------------
391 heimbach 1.1 c swflux :: Net upward shortwave radiation in W/m^2
392 heimbach 1.3 c | swflux = - ( swdown - ice and snow absorption - reflected )
393     c | > 0 for decrease in theta (ocean cooling)
394     c | Typical range: -350 < swflux < 0
395     c | Southwest C-grid tracer point
396     c | Input field
397     c----------------------------------------------------------------------
398 heimbach 1.1 c uwind :: Surface (10-m) zonal wind velocity in m/s
399 heimbach 1.3 c | > 0 for increase in uVel, which is west to
400     c | east for cartesian and spherical polar grids
401     c | Typical range: -10 < uwind < 10
402     c | Southwest C-grid U point
403     c | Input or input/output field
404     c----------------------------------------------------------------------
405 heimbach 1.1 c vwind :: Surface (10-m) meridional wind velocity in m/s
406 heimbach 1.3 c | > 0 for increase in vVel, which is south to
407     c | north for cartesian and spherical polar grids
408     c | Typical range: -10 < vwind < 10
409     c | Southwest C-grid V point
410     c | Input or input/output field
411     c----------------------------------------------------------------------
412 heimbach 1.8 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 heimbach 1.1 c atemp :: Surface (2-m) air temperature in deg K
418 heimbach 1.3 c | Typical range: 200 < atemp < 300
419     c | Southwest C-grid tracer point
420     c | Input or input/output field
421     c----------------------------------------------------------------------
422 heimbach 1.1 c aqh :: Surface (2m) specific humidity in kg/kg
423 heimbach 1.3 c | Typical range: 0 < aqh < 0.02
424     c | Southwest C-grid tracer point
425     c | Input or input/output field
426     c----------------------------------------------------------------------
427 heimbach 1.1 c lwflux :: Net upward longwave radiation in W/m^2
428 heimbach 1.3 c | lwflux = - ( lwdown - ice and snow absorption - emitted )
429     c | > 0 for decrease in theta (ocean cooling)
430     c | Typical range: -20 < lwflux < 170
431     c | Southwest C-grid tracer point
432     c | Input field
433     c----------------------------------------------------------------------
434 heimbach 1.1 c evap :: Evaporation in m/s
435 heimbach 1.3 c | > 0 for increase in salt (ocean salinity)
436     c | Typical range: 0 < evap < 2.5e-7
437     c | Southwest C-grid tracer point
438     c | Input, input/output, or output field
439     c----------------------------------------------------------------------
440 heimbach 1.1 c precip :: Precipitation in m/s
441 heimbach 1.3 c | > 0 for decrease in salt (ocean salinity)
442     c | Typical range: 0 < precip < 5e-7
443     c | Southwest C-grid tracer point
444     c | Input or input/output field
445     c----------------------------------------------------------------------
446 heimbach 1.8 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 heimbach 1.1 c runoff :: River and glacier runoff in m/s
452 heimbach 1.3 c | > 0 for decrease in salt (ocean salinity)
453     c | Typical range: 0 < runoff < ????
454     c | Southwest C-grid tracer point
455     c | Input or input/output field
456     c | !!! WATCH OUT: Default exf_inscal_runoff !!!
457     c | !!! in exf_readparms.F is not 1.0 !!!
458     c----------------------------------------------------------------------
459 heimbach 1.1 c swdown :: Downward shortwave radiation in W/m^2
460 heimbach 1.3 c | > 0 for increase in theta (ocean warming)
461     c | Typical range: 0 < swdown < 450
462     c | Southwest C-grid tracer point
463     c | Input/output field
464     c----------------------------------------------------------------------
465 heimbach 1.1 c lwdown :: Downward longwave radiation in W/m^2
466 heimbach 1.3 c | > 0 for increase in theta (ocean warming)
467     c | Typical range: 50 < lwdown < 450
468     c | Southwest C-grid tracer point
469     c | Input/output field
470     c----------------------------------------------------------------------
471 heimbach 1.1 c apressure :: Atmospheric pressure field in N/m^2
472 heimbach 1.3 c | > 0 for ????
473     c | Typical range: ???? < apressure < ????
474     c | Southwest C-grid tracer point
475     c | Input field
476     c----------------------------------------------------------------------
477    
478 heimbach 1.1 \end{verbatim}
479     }
480    
481     %----------------------------------------------------------------------
482    
483 molod 1.4 \subsubsection{Key subroutines
484 heimbach 1.1 \label{sec:pkg:exf:subroutines}}
485    
486 molod 1.4 Top-level routine: \texttt{exf\_getforcing.F}
487 heimbach 1.3
488 heimbach 1.5 {\footnotesize
489 heimbach 1.3 \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 heimbach 1.8 c | | then the control variable anomalies are read here via ctrl_get_gen
507     c | | (atemp, aqh, precip, swflux, swdown, uwind, vwind).
508 heimbach 1.3 c | | If forcing and control are fluxes, then
509     c | | controls are added later.
510     c | o
511     c |
512 heimbach 1.8 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 heimbach 1.3 c | o
519     c |
520     c |-- exf_bulkformulae
521 heimbach 1.8 c | | Compute air-sea buoyancy fluxes from
522     c | | atmospheric state following Large and Pond, JPO, 1981/82
523 heimbach 1.3 c | o
524     c |
525 heimbach 1.8 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 heimbach 1.3 c |
533     c |-- < update tile edges here >
534     c |
535 heimbach 1.8 c |-- exf_check_range
536     c | | Check whether read fields are within assumed range
537     c | | (may capture mismatches in units)
538 heimbach 1.3 c | o
539     c |
540 heimbach 1.8 c |-- < add shortwave to hflux for diagnostics >
541 heimbach 1.3 c |
542     c |-- exf_diagnostics_fill
543 heimbach 1.8 c | | Do EXF-related diagnostics output here.
544 heimbach 1.3 c | o
545     c |
546     c |-- exf_mapfields
547 heimbach 1.8 c | | Forcing fields from exf package are mapped onto
548     c | | mitgcm forcing arrays.
549     c | | Mapping enables a runtime rescaling of fields
550 heimbach 1.3 c | o
551 heimbach 1.8 C o
552 heimbach 1.3 \end{verbatim}
553     }
554    
555 heimbach 1.8 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 heimbach 1.3
561 heimbach 1.8 Generic I/O: \texttt{exf\_set\_gen.F}
562 heimbach 1.3
563 heimbach 1.8 Interpolation: \texttt{exf\_interp.F}
564 heimbach 1.3
565 molod 1.4 Header routines
566 heimbach 1.3
567 heimbach 1.1 %----------------------------------------------------------------------
568    
569 molod 1.4 \subsubsection{EXF diagnostics
570 heimbach 1.1 \label{sec:pkg:exf:diagnostics}}
571    
572     Diagnostics output is available via the diagnostics package
573     (see Section \ref{sec:pkg:diagnostics}).
574 jmc 1.16 Available output fields are summarized in
575 heimbach 1.1 Table \ref{tab:pkg:exf:diagnostics}.
576    
577 jmc 1.13 \begin{table}[!ht]
578 heimbach 1.7 \centering
579 heimbach 1.1 {\footnotesize
580     \begin{verbatim}
581 heimbach 1.11 ---------+----+----+----------------+-----------------
582 heimbach 1.1 <-Name->|Levs|grid|<-- Units -->|<- Tile (max=80c)
583 heimbach 1.11 ---------+----+----+----------------+-----------------
584 heimbach 1.8 EXFhs | 1 | SM | W/m^2 | Sensible heat flux into ocean, >0 increases theta
585     EXFhl | 1 | SM | W/m^2 | Latent heat flux into ocean, >0 increases theta
586     EXFlwnet| 1 | SM | W/m^2 | Net upward longwave radiation, >0 decreases theta
587     EXFswnet| 1 | SM | W/m^2 | Net upward shortwave radiation, >0 decreases theta
588 heimbach 1.3 EXFlwdn | 1 | SM | W/m^2 | Downward longwave radiation, >0 increases theta
589     EXFswdn | 1 | SM | W/m^2 | Downward shortwave radiation, >0 increases theta
590     EXFqnet | 1 | SM | W/m^2 | Net upward heat flux (turb+rad), >0 decreases theta
591     EXFtaux | 1 | SU | N/m^2 | zonal surface wind stress, >0 increases uVel
592     EXFtauy | 1 | SV | N/m^2 | meridional surface wind stress, >0 increases vVel
593     EXFuwind| 1 | SM | m/s | zonal 10-m wind speed, >0 increases uVel
594     EXFvwind| 1 | SM | m/s | meridional 10-m wind speed, >0 increases uVel
595 heimbach 1.8 EXFwspee| 1 | SM | m/s | 10-m wind speed modulus ( >= 0 )
596 heimbach 1.3 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 heimbach 1.8 EXFsnow | 1 | SM | m/s | snow precipitation, > 0 decreases salinity
601 heimbach 1.3 EXFempmr| 1 | SM | m/s | net upward freshwater flux, > 0 increases salinity
602     EXFpress| 1 | SM | N/m^2 | atmospheric pressure field
603 heimbach 1.1 \end{verbatim}
604     }
605 heimbach 1.3 \caption{~}
606 jmc 1.13 \label{tab:pkg:exf:diagnostics}
607 heimbach 1.1 \end{table}
608    
609     %----------------------------------------------------------------------
610    
611 molod 1.9 \subsubsection{Experiments and tutorials that use exf}
612     \label{sec:pkg:exf:experiments}
613 heimbach 1.1
614 molod 1.9 \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 heimbach 1.3
619 heimbach 1.1 %----------------------------------------------------------------------
620    
621 molod 1.4 \subsubsection{References}

  ViewVC Help
Powered by ViewVC 1.1.22