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

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

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

revision 1.2 by heimbach, Thu Jul 14 22:04:52 2005 UTC revision 1.15 by jmc, Wed Jun 22 02:06:29 2011 UTC
# Line 1  Line 1 
1  \section{EXF: The external forcing package  \subsection{EXF: The external forcing package
2  \label{sec:pkg:exf}}  \label{sec:pkg:exf}}
3  \begin{rawhtml}  \begin{rawhtml}
4  <!-- CMIREDIR:sectionexf: -->  <!-- CMIREDIR:sectionexf: -->
5  \end{rawhtml}  \end{rawhtml}
6    
7    Authors: Patrick Heimbach and Dimitris Menemenlis
8    
9  \subsection{Introduction  \subsubsection{Introduction
10  \label{sec:pkg:exf:intro}}  \label{sec:pkg:exf:intro}}
11    
12  The external forcing package, in conjunction with the  The external forcing package, in conjunction with the
# Line 21  forcing fields an arbitrary grid onto th Line 22  forcing fields an arbitrary grid onto th
22  CPP options enable or disable different aspects of the package  CPP options enable or disable different aspects of the package
23  (Section \ref{sec:pkg:exf:config}).  (Section \ref{sec:pkg:exf:config}).
24  Runtime options, flags, filenames and field-related dates/times are  Runtime options, flags, filenames and field-related dates/times are
25  set in \texttt{data.exf} and \texttt{data.exf\_clim}  set in \texttt{data.exf}
26  (Section \ref{sec:pkg:exf:runtime}).  (Section \ref{sec:pkg:exf:runtime}).
27  A description of key subroutines is given in Section  A description of key subroutines is given in Section
28  \ref{sec:pkg:exf:subroutines}.  \ref{sec:pkg:exf:subroutines}.
29  Input fields, units and sign conventions are summarized in  Input fields, units and sign conventions are summarized in
30  Section \ref{sec:pkg:exf:fields_units}, and available diagnostics  Section \ref{sec:pkg:exf:fields_units}, and available diagnostics
31  output is listed in Section \ref{sec:pkg:exf:fields_diagnostics}.  output is listed in Section \ref{sec:pkg:exf:diagnostics}.
32    
33  %----------------------------------------------------------------------  %----------------------------------------------------------------------
34    
35  \subsection{EXF configuration, compiling \& running}  \subsubsection{EXF configuration, compiling \& running}
36    
37  \subsubsection{Compile-time options  \paragraph{Compile-time options
38  \label{sec:pkg:exf:config}}  \label{sec:pkg:exf:config}}
39    ~
40    
41  As with all MITgcm packages, EXF can be turned on or off at compile time  As with all MITgcm packages, EXF can be turned on or off at compile time
42  using the \texttt{packages.conf} file or the \texttt{genmake2}  %
43  \texttt{-enable=exf} or \texttt{-disable=exf} switches.  \begin{itemize}
44    %
45    \item
46    using the \texttt{packages.conf} file by adding \texttt{exf} to it,
47    %
48    \item
49    or using \texttt{genmake2} adding
50    \texttt{-enable=exf} or \texttt{-disable=exf} switches
51    %
52    \item
53    \textit{required packages and CPP options}: \\
54    EXF requires the calendar package \texttt{cal} to be enabled;
55    no additional CPP options are required.
56    %
57    \end{itemize}
58    (see Section \ref{sec:buildingCode}).
59    
60  Parts of the exf code can be enabled or disabled at compile time  Parts of the EXF code can be enabled or disabled at compile time
61  via CPP preprocessor flags. These options are set in either  via CPP preprocessor flags. These options are set in either
62  \texttt{EXF\_OPTIONS.h} or in \texttt{ECCO\_CPPOPTIONS.h}.  \texttt{EXF\_OPTIONS.h} or in \texttt{ECCO\_CPPOPTIONS.h}.
63  Table \ref{tab:pkg:exf:cpp} summarizes these options.  Table \ref{tab:pkg:exf:cpp} summarizes these options.
64    
65  \begin{table}[b!]  \begin{table}[b!]
66    \label{tab:pkg:exf:cpp}    \centering
67    {\footnotesize    {\footnotesize
68      \begin{tabular}{|l|l|}      \begin{tabular}{|l|l|}
69        \hline        \hline
# Line 59  Table \ref{tab:pkg:exf:cpp} summarizes t Line 76  Table \ref{tab:pkg:exf:cpp} summarizes t
76          \texttt{ALLOW\_ATM\_WIND} &          \texttt{ALLOW\_ATM\_WIND} &
77            compute wind stress from wind speed input\\            compute wind stress from wind speed input\\
78          \texttt{ALLOW\_BULKFORMULAE} &          \texttt{ALLOW\_BULKFORMULAE} &
79            is used if either ALLOW\_ATM\_TEMP or ALLOW\_ATM\_WIND is enabled \\            is used if \texttt{ALLOW\_ATM\_TEMP} or
80              \texttt{ALLOW\_ATM\_WIND} is enabled \\
81          \texttt{EXF\_READ\_EVAP} & read evaporation instead of computing it \\          \texttt{EXF\_READ\_EVAP} & read evaporation instead of computing it \\
82          \texttt{ALLOW\_RUNOFF} & read time-constant river/glacier run-off field \\          \texttt{ALLOW\_RUNOFF} & read time-constant river/glacier run-off field \\
83          \texttt{ALLOW\_DOWNWARD\_RADIATION} & compute net from downward or downward from net radiation \\          \texttt{ALLOW\_DOWNWARD\_RADIATION} & compute net from downward or downward from net radiation \\
84          \texttt{USE\_EXF\_INTERPOLATION} & enable on-the-fly bilinear or bicubic interpolation of input fields \\          \texttt{USE\_EXF\_INTERPOLATION} & enable on-the-fly bilinear or bicubic interpolation of input fields \\
85        \hline        \hline
86          \texttt{ALLOW\_CLIMTEMP\_RELAXATION} &           \multicolumn{2}{|c|}{\textit{used in conjunction with relaxation to prescribed (climatological) fields}} \\
87            relaxation to 3-D potential temperature climatology \\           \hline
         \texttt{ALLOW\_CLIMSALT\_RELAXATION} &  
           relaxation to 3-D salinity climatology \\  
88          \texttt{ALLOW\_CLIMSST\_RELAXATION} &          \texttt{ALLOW\_CLIMSST\_RELAXATION} &
89            relaxation to 2-D SST climatology \\            relaxation to 2-D SST climatology \\
90          \texttt{ALLOW\_CLIMSSS\_RELAXATION} &          \texttt{ALLOW\_CLIMSSS\_RELAXATION} &
91            relaxation to 2-D SSS climatology  \\            relaxation to 2-D SSS climatology  \\
92        \hline        \hline
93          \texttt{SHORTWAVE\_HEATING} & in \texttt{CPP\_OPTIONS.h}: enable shortwave radiation \\           \multicolumn{2}{|c|}{\textit{these are set outside of EXF in} \texttt{CPP\_OPTIONS.h}} \\
94          \texttt{ATMOSPHERIC\_LOADING} &  in \texttt{CPP\_OPTIONS.h}: enable surface pressure forcing \\           \hline
95            \texttt{SHORTWAVE\_HEATING} & enable shortwave radiation \\
96            \texttt{ATMOSPHERIC\_LOADING} & enable surface pressure forcing \\
97        \hline        \hline
98      \end{tabular}      \end{tabular}
99    }    }
100    \caption{~}    \caption{~}
101      \label{tab:pkg:exf:cpp}
102  \end{table}  \end{table}
103    
104    
# Line 88  Table \ref{tab:pkg:exf:cpp} summarizes t Line 107  Table \ref{tab:pkg:exf:cpp} summarizes t
107  \subsubsection{Run-time parameters  \subsubsection{Run-time parameters
108  \label{sec:pkg:exf:runtime}}  \label{sec:pkg:exf:runtime}}
109    
110  Run-time parameters are set in files \texttt{data.pkg},  Run-time parameters are set in files
111  and \texttt{data.pkg\_clim} (for relaxation/climatological fields).  \texttt{data.pkg}, \texttt{data.exf}, and
112  Run-time parameters may be broken into 2 categories:  \texttt{data.exf\_clim} (for relaxation/climatological fields)
113  (i) general flags and parameters, and  which are read in \texttt{exf\_readparms.F}.
114  (ii) attributes for each forcing and climatological field.  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 switched on/off at runtime by setting
123    (e.g. for EXF) \texttt{useEXF = .TRUE.} in \texttt{data.pkg}.
124    
125  \paragraph{General flags and parameters}  \paragraph{General flags and parameters}
126    ~ \\
127  \begin{table}[h!]  %
128    \label{tab:pkg:exf:runtime_flags}  \begin{table}[!ht]
129      \centering
130    {\footnotesize    {\footnotesize
131      \begin{tabular}{|l|cl|}      \begin{tabular}{|l|c|l|}
132        \hline        \hline
133        \textbf{Flag/parameter} & \textbf{default} &  \textbf{Description}  \\        \textbf{Flag/parameter} & \textbf{default} &  \textbf{Description}  \\
134        \hline \hline        \hline \hline
135          useExfCheckRange & \texttt{.TRUE.} & ~ \\          useExfCheckRange & \texttt{.TRUE.} &
136          useExfYearlyFields & \texttt{.FALSE.} & ~ \\             check range of input fields and stop if out of range \\
137          twoDigitYear & \texttt{.FALSE.} & ~ \\          useExfYearlyFields & \texttt{.FALSE.} &
138          repeatPeriod & \texttt{0.0} & ~ \\             append current year postfix of form \texttt{\_YYYY} on filename \\
139          windstressmax & \texttt{2.0} & ~ \\          twoDigitYear & \texttt{.FALSE.} &
140          exf\_albedo & \texttt{0.1} & ~ \\             instead of appending \texttt{\_YYYY} append  \texttt{YY} \\
141          exf\_iprec  & \texttt{32} & ~ \\          repeatPeriod & \texttt{0.0} & $ > 0 $ :
142          exf\_yftype & \texttt{'RL'} & ~ \\             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            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            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        \hline        \hline
222      \end{tabular}      \end{tabular}
223    }    }
224    \caption{~}    \caption{~}
225      \label{tab:pkg:exf:runtime_flags}
226  \end{table}  \end{table}
227    
228    
229  \paragraph{Field attributes}  \paragraph{Field attributes}
230    ~ \\
231    %
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    
248    \begin{table}[!ht]
249      \centering
250      {\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             \textit{field}\texttt{\_lon0} & $xgOrigin+delX/2$  &
276               starting longitude of input \\
277             \textit{field}\texttt{\_lon\_inc} & $delX$ &
278               increment in longitude of input \\
279             \textit{field}\texttt{\_lat0} &  $ygOrigin+delY/2$ &
280               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      \caption{\newline
291               Note one exception for the default of
292               \texttt{atempconst} = celsius2K = 273.16}
293      \label{tab:pkg:exf:runtime_attributes}
294    \end{table}
295    
296    \paragraph{Example configuration} ~ \\
297    %
298    The following block is taken from the \texttt{data.exf} file
299    of the verification 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, 1992 at 00:00 UTC.
317    Next record is 2592000 seconds (or 30 days) later.
318    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    forcing from later in the 'ncep\_qnet.bin' file, it suffices to specify
321    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    'ncep\_qnet.bin' must have at least 2 years of data because in this
324    configuration EXF will read 2 years into the file to find the 1994 starting
325    value.
326    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    
331    %----------------------------------------------------------------------
332    
333    \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  \subsection{EXF fields and units  \subsubsection{EXF input fields and units
341  \label{sec:pkg:exf:fields_units}}  \label{sec:pkg:exf:fields_units}}
342    
343  The following list is taken from the header file \texttt{exf\_fields.h}.  The following list is taken from the header file \texttt{exf\_fields.h}.
344    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    
350  {\footnotesize  {\footnotesize
351  \begin{verbatim}  \begin{verbatim}
352    
353    c----------------------------------------------------------------------
354    c               |
355    c     field     :: Description
356    c               |
357    c----------------------------------------------------------------------
358  c     ustress   :: Zonal surface wind stress in N/m^2  c     ustress   :: Zonal surface wind stress in N/m^2
359  c                  > 0 for increase in uVel, which is west to  c               |  > 0 for increase in uVel, which is west to
360  c                      east for cartesian and spherical polar grids  c               |      east for cartesian and spherical polar grids
361  c                  Typical range: -0.5 < ustress < 0.5  c               |  Typical range: -0.5 < ustress < 0.5
362  c                  Southwest C-grid U point  c               |  Southwest C-grid U point
363  c                  Input field  c               |  Input field
364  c  c----------------------------------------------------------------------
365  c     vstress   :: Meridional surface wind stress in N/m^2  c     vstress   :: Meridional surface wind stress in N/m^2
366  c                  > 0 for increase in vVel, which is south to  c               |  > 0 for increase in vVel, which is south to
367  c                      north for cartesian and spherical polar grids  c               |      north for cartesian and spherical polar grids
368  c                  Typical range: -0.5 < vstress < 0.5  c               |  Typical range: -0.5 < vstress < 0.5
369  c                  Southwest C-grid V point  c               |  Southwest C-grid V point
370  c                  Input field  c               |  Input field
371  c  c----------------------------------------------------------------------
372    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  c     hflux     :: Net upward surface heat flux in W/m^2  c     hflux     :: Net upward surface heat flux in W/m^2
379  c                  excluding shortwave (on input)  c               |  excluding shortwave (on input)
380  c                  hflux = latent + sensible + lwflux  c               |  hflux = latent + sensible + lwflux
381  c                  > 0 for decrease in theta (ocean cooling)  c               |  > 0 for decrease in theta (ocean cooling)
382  c                  Typical range: -250 < hflux < 600  c               |  Typical range: -250 < hflux < 600
383  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
384  c                  Input field  c               |  Input field
385  c  c----------------------------------------------------------------------
386  c     sflux     :: Net upward freshwater flux in m/s  c     sflux     :: Net upward freshwater flux in m/s
387  c                  sflux = evap - precip - runoff  c               |  sflux = evap - precip - runoff
388  c                  > 0 for increase in salt (ocean salinity)  c               |  > 0 for increase in salt (ocean salinity)
389  c                  Typical range: -1e-7 < sflux < 1e-7  c               |  Typical range: -1e-7 < sflux < 1e-7
390  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
391  c                  Input field  c               |  Input field
392  c  c----------------------------------------------------------------------
393  c     swflux    :: Net upward shortwave radiation in W/m^2  c     swflux    :: Net upward shortwave radiation in W/m^2
394  c                  swflux = - ( swdown - ice and snow absorption - reflected )  c               |  swflux = - ( swdown - ice and snow absorption - reflected )
395  c                  > 0 for decrease in theta (ocean cooling)  c               |  > 0 for decrease in theta (ocean cooling)
396  c                  Typical range: -350 < swflux < 0  c               |  Typical range: -350 < swflux < 0
397  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
398  c                  Input field  c               |  Input field
399  c  c----------------------------------------------------------------------
400  c     uwind     :: Surface (10-m) zonal wind velocity in m/s  c     uwind     :: Surface (10-m) zonal wind velocity in m/s
401  c                  > 0 for increase in uVel, which is west to  c               |  > 0 for increase in uVel, which is west to
402  c                      east for cartesian and spherical polar grids  c               |      east for cartesian and spherical polar grids
403  c                  Typical range: -10 < uwind < 10  c               |  Typical range: -10 < uwind < 10
404  c                  Southwest C-grid U point  c               |  Southwest C-grid U point
405  c                  Input or input/output field  c               |  Input or input/output field
406  c  c----------------------------------------------------------------------
407  c     vwind     :: Surface (10-m) meridional wind velocity in m/s  c     vwind     :: Surface (10-m) meridional wind velocity in m/s
408  c                  > 0 for increase in vVel, which is south to  c               |  > 0 for increase in vVel, which is south to
409  c                      north for cartesian and spherical polar grids  c               |      north for cartesian and spherical polar grids
410  c                  Typical range: -10 < vwind < 10  c               |  Typical range: -10 < vwind < 10
411  c                  Southwest C-grid V point  c               |  Southwest C-grid V point
412  c                  Input or input/output field  c               |  Input or input/output field
413  c  c----------------------------------------------------------------------
414    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  c     atemp     :: Surface (2-m) air temperature in deg K  c     atemp     :: Surface (2-m) air temperature in deg K
420  c                  Typical range: 200 < atemp < 300  c               |  Typical range: 200 < atemp < 300
421  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
422  c                  Input or input/output field  c               |  Input or input/output field
423  c  c----------------------------------------------------------------------
424  c     aqh       :: Surface (2m) specific humidity in kg/kg  c     aqh       :: Surface (2m) specific humidity in kg/kg
425  c                  Typical range: 0 < aqh < 0.02  c               |  Typical range: 0 < aqh < 0.02
426  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
427  c                  Input or input/output field  c               |  Input or input/output field
428  c  c----------------------------------------------------------------------
429  c     lwflux    :: Net upward longwave radiation in W/m^2  c     lwflux    :: Net upward longwave radiation in W/m^2
430  c                  lwflux = - ( lwdown - ice and snow absorption - emitted )  c               |  lwflux = - ( lwdown - ice and snow absorption - emitted )
431  c                  > 0 for decrease in theta (ocean cooling)  c               |  > 0 for decrease in theta (ocean cooling)
432  c                  Typical range: -20 < lwflux < 170  c               |  Typical range: -20 < lwflux < 170
433  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
434  c                  Input field  c               |  Input field
435  c  c----------------------------------------------------------------------
436  c     evap      :: Evaporation in m/s  c     evap      :: Evaporation in m/s
437  c                  > 0 for increase in salt (ocean salinity)  c               |  > 0 for increase in salt (ocean salinity)
438  c                  Typical range: 0 < evap < 2.5e-7  c               |  Typical range: 0 < evap < 2.5e-7
439  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
440  c                  Input, input/output, or output field  c               |  Input, input/output, or output field
441  c  c----------------------------------------------------------------------
442  c     precip    :: Precipitation in m/s  c     precip    :: Precipitation in m/s
443  c                  > 0 for decrease in salt (ocean salinity)  c               |  > 0 for decrease in salt (ocean salinity)
444  c                  Typical range: 0 < precip < 5e-7  c               |  Typical range: 0 < precip < 5e-7
445  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
446  c                  Input or input/output field  c               |  Input or input/output field
447  c  c----------------------------------------------------------------------
448    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  c     runoff    :: River and glacier runoff in m/s  c     runoff    :: River and glacier runoff in m/s
454  c                  > 0 for decrease in salt (ocean salinity)  c               |  > 0 for decrease in salt (ocean salinity)
455  c                  Typical range: 0 < runoff < ????  c               |  Typical range: 0 < runoff < ????
456  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
457  c                  Input or input/output field  c               |  Input or input/output field
458  c                  !!! WATCH OUT: Default exf_inscal_runoff !!!  c               |  !!! WATCH OUT: Default exf_inscal_runoff !!!
459  c                  !!! in exf_readparms.F is not 1.0        !!!  c               |  !!! in exf_readparms.F is not 1.0        !!!
460  c  c----------------------------------------------------------------------
461  c     swdown    :: Downward shortwave radiation in W/m^2  c     swdown    :: Downward shortwave radiation in W/m^2
462  c                  > 0 for increase in theta (ocean warming)  c               |  > 0 for increase in theta (ocean warming)
463  c                  Typical range: 0 < swdown < 450  c               |  Typical range: 0 < swdown < 450
464  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
465  c                  Input/output field  c               |  Input/output field
466  c  c----------------------------------------------------------------------
467  c     lwdown    :: Downward longwave radiation in W/m^2  c     lwdown    :: Downward longwave radiation in W/m^2
468  c                  > 0 for increase in theta (ocean warming)  c               |  > 0 for increase in theta (ocean warming)
469  c                  Typical range: 50 < lwdown < 450  c               |  Typical range: 50 < lwdown < 450
470  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
471  c                  Input/output field  c               |  Input/output field
472  c  c----------------------------------------------------------------------
473  c     apressure :: Atmospheric pressure field in N/m^2  c     apressure :: Atmospheric pressure field in N/m^2
474  c                  > 0 for ????  c               |  > 0 for ????
475  c                  Typical range: ???? < apressure < ????  c               |  Typical range: ???? < apressure < ????
476  c                  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
477  c                  Input field  c               |  Input field
478  C  c----------------------------------------------------------------------
479  C  
 c     NOTES:  
 c     ======  
 c  
 c     Input and output units and sign conventions can be customized  
 c     using variables exf_inscal_* and exf_outscal_*, which are set  
 c     by exf_readparms.F  
 c  
 c     Output fields fu, fv, Qnet, Qsw, and EmPmR are  
 c     defined in FFIELDS.h  
 c  
 c     #ifndef SHORTWAVE_HEATING, hflux includes shortwave,  
 c     that is, hflux = latent + sensible + lwflux +swflux  
 c  
 c     If (EXFwindOnBgrid .EQ. .TRUE.), uwind and vwind are  
 c     defined on northeast B-grid U and V points, respectively.  
 c  
 c     Arrays *0 and *1 below are used for temporal interpolation.  
480  \end{verbatim}  \end{verbatim}
481  }  }
482    
483  %----------------------------------------------------------------------  %----------------------------------------------------------------------
484    
485  \subsection{Key subroutines  \subsubsection{Key subroutines
486  \label{sec:pkg:exf:subroutines}}  \label{sec:pkg:exf:subroutines}}
487    
488    Top-level routine: \texttt{exf\_getforcing.F}
489    
490    {\footnotesize
491    \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    c  |   |      then the control variable anomalies are read here via ctrl_get_gen
509    c  |   |      (atemp, aqh, precip, swflux, swdown, uwind, vwind).
510    c  |   |      If forcing and control are fluxes, then
511    c  |   |      controls are added later.
512    c  |   o
513    c  |
514    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    c  |   o
521    c  |
522    c  |-- exf_bulkformulae
523    c  |   |   Compute air-sea buoyancy fluxes from
524    c  |   |   atmospheric state following Large and Pond, JPO, 1981/82
525    c  |   o
526    c  |
527    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    c  |
535    c  |-- < update tile edges here >
536    c  |
537    c  |-- exf_check_range
538    c  |   |   Check whether read fields are within assumed range
539    c  |   |   (may capture mismatches in units)
540    c  |   o
541    c  |
542    c  |-- < add shortwave to hflux for diagnostics >
543    c  |
544    c  |-- exf_diagnostics_fill
545    c  |   |   Do EXF-related diagnostics output here.
546    c  |   o
547    c  |
548    c  |-- exf_mapfields
549    c  |   |   Forcing fields from exf package are mapped onto
550    c  |   |   mitgcm forcing arrays.
551    c  |   |   Mapping enables a runtime rescaling of fields
552    c  |   o
553    C  o
554    \end{verbatim}
555    }
556    
557    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    
563    Generic I/O: \texttt{exf\_set\_gen.F}
564    
565    Interpolation: \texttt{exf\_interp.F}
566    
567    Header routines
568    
569  %----------------------------------------------------------------------  %----------------------------------------------------------------------
570    
571  \subsection{EXF diagnostics  \subsubsection{EXF diagnostics
572  \label{sec:pkg:exf:diagnostics}}  \label{sec:pkg:exf:diagnostics}}
573    
574  Diagnostics output is available via the diagnostics package  Diagnostics output is available via the diagnostics package
# Line 275  Diagnostics output is available via the Line 576  Diagnostics output is available via the
576  Available output fields are summarized in  Available output fields are summarized in
577  Table \ref{tab:pkg:exf:diagnostics}.  Table \ref{tab:pkg:exf:diagnostics}.
578    
579  \begin{table}  \begin{table}[!ht]
580  \label{tab:pkg:exf:diagnostics}  \centering
 \caption{~}  
581  {\footnotesize  {\footnotesize
582  \begin{verbatim}  \begin{verbatim}
583  ------------------------------------------------------  ---------+----+----+----------------+-----------------
584   <-Name->|Levs|grid|<--  Units   -->|<- Tile (max=80c)   <-Name->|Levs|grid|<--  Units   -->|<- Tile (max=80c)
585  ------------------------------------------------------  ---------+----+----+----------------+-----------------
586   EXFlwdn |  1 | SM |W/m^2           |Downward longwave radiation, >0 increases theta   EXFhs   |  1 | SM | W/m^2          | Sensible heat flux into ocean, >0 increases theta
587   EXFswdn |  1 | SM |W/m^2           |Downward shortwave radiation, >0 increases theta   EXFhl   |  1 | SM | W/m^2          | Latent heat flux into ocean, >0 increases theta
588   EXFqnet |  1 | SM |W/m^2           |Net upward heat flux (turb+rad), >0 decreases theta   EXFlwnet|  1 | SM | W/m^2          | Net upward longwave radiation, >0 decreases theta
589   EXFtaux |  1 | SU |N/m^2           |zonal surface wind stress, >0 increases uVel   EXFswnet|  1 | SM | W/m^2          | Net upward shortwave radiation, >0 decreases theta
590   EXFtauy |  1 | SV |N/m^2           |meridional surface wind stress, >0 increases vVel   EXFlwdn |  1 | SM | W/m^2          | Downward longwave radiation, >0 increases theta
591   EXFuwind|  1 | SM |m/s             |zonal 10-m wind speed, >0 increases uVel   EXFswdn |  1 | SM | W/m^2          | Downward shortwave radiation, >0 increases theta
592   EXFvwind|  1 | SM |m/s             |meridional 10-m wind speed, >0 increases uVel   EXFqnet |  1 | SM | W/m^2          | Net upward heat flux (turb+rad), >0 decreases theta
593   EXFatemp|  1 | SM |degK            |surface (2-m) air temperature   EXFtaux |  1 | SU | N/m^2          | zonal surface wind stress, >0 increases uVel
594   EXFaqh  |  1 | SM |kg/kg           |surface (2-m) specific humidity   EXFtauy |  1 | SV | N/m^2          | meridional surface wind stress, >0 increases vVel
595   EXFevap |  1 | SM |m/s             |evaporation, > 0 increases salinity   EXFuwind|  1 | SM | m/s            | zonal 10-m wind speed, >0 increases uVel
596   EXFpreci|  1 | SM |m/s             |evaporation, > 0 decreases salinity   EXFvwind|  1 | SM | m/s            | meridional 10-m wind speed, >0 increases uVel
597   EXFempmr|  1 | SM |m/s             |net upward freshwater flux, > 0 increases salinity   EXFwspee|  1 | SM | m/s            | 10-m wind speed modulus ( >= 0 )
598   EXFpress|  1 | SM |N/m^2           |atmospheric pressure field   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     EXFsnow |  1 | SM | m/s            | snow precipitation, > 0 decreases salinity
603     EXFempmr|  1 | SM | m/s            | net upward freshwater flux, > 0 increases salinity
604     EXFpress|  1 | SM | N/m^2          | atmospheric pressure field
605  \end{verbatim}  \end{verbatim}
606  }  }
607    \caption{~}
608    \label{tab:pkg:exf:diagnostics}
609  \end{table}  \end{table}
610    
611  %----------------------------------------------------------------------  %----------------------------------------------------------------------
612    
613  \subsection{Reference experiments}  \subsubsection{Experiments and tutorials that use exf}
614    \label{sec:pkg:exf:experiments}
615    
616    \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    
621  %----------------------------------------------------------------------  %----------------------------------------------------------------------
622    
623  \subsection{References}  \subsubsection{References}

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.15

  ViewVC Help
Powered by ViewVC 1.1.22