/[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.3 by heimbach, Fri Jul 15 20:08:42 2005 UTC revision 1.16 by jmc, Fri Dec 9 21:41:30 2016 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
70        \textbf{CPP option}  &  \textbf{Description}  \\        \textbf{CPP option}  &  \textbf{Description}  \\
71        \hline \hline        \hline \hline
72          \texttt{EXF\_VERBOSE} &          \texttt{EXF\_VERBOSE} &
73            verbose mode (recommended only for testing) \\            verbose mode (recommended only for testing) \\
74          \texttt{ALLOW\_ATM\_TEMP} &          \texttt{ALLOW\_ATM\_TEMP} &
75            compute heat/freshwater fluxes from atmos. state input \\            compute heat/freshwater fluxes from atmos. state input \\
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 \texttt{ALLOW\_ATM\_TEMP} or            is used if \texttt{ALLOW\_ATM\_TEMP} or
80            \texttt{ALLOW\_ATM\_WIND} is enabled \\            \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 \\
# Line 68  Table \ref{tab:pkg:exf:cpp} summarizes t Line 85  Table \ref{tab:pkg:exf:cpp} summarizes t
85        \hline        \hline
86           \multicolumn{2}{|c|}{\textit{used in conjunction with relaxation to prescribed (climatological) fields}} \\           \multicolumn{2}{|c|}{\textit{used in conjunction with relaxation to prescribed (climatological) fields}} \\
87           \hline           \hline
         \texttt{ALLOW\_CLIMTEMP\_RELAXATION} &  
           relaxation to 3-D temperature climatology \\  
         \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} &
# Line 85  Table \ref{tab:pkg:exf:cpp} summarizes t Line 98  Table \ref{tab:pkg:exf:cpp} summarizes t
98      \end{tabular}      \end{tabular}
99    }    }
100    \caption{~}    \caption{~}
101      \label{tab:pkg:exf:cpp}
102  \end{table}  \end{table}
103    
   
104  %----------------------------------------------------------------------  %----------------------------------------------------------------------
105    
106  \subsubsection{Run-time parameters  \subsubsection{Run-time parameters
107  \label{sec:pkg:exf:runtime}}  \label{sec:pkg:exf:runtime}}
108    
109  Run-time parameters are set in files \texttt{data.pkg},  Run-time parameters are set in files
110  and \texttt{data.pkg\_clim} (for relaxation/climatological fields)  \texttt{data.pkg} and \texttt{data.exf}
111  which are read in \texttt{exf\_readparms.F}.  %\texttt{data.exf\_clim} (for relaxation/climatological fields)
112  Run-time parameters may be broken into 2 categories:  which is read in \texttt{exf\_readparms.F}.
113  (i) general flags and parameters, and  Run-time parameters may be broken into 3 categories:
114  (ii) attributes for each forcing and climatological field.  (i) switching on/off the package at runtime,
115    (ii) general flags and parameters, and
116  \paragraph{General flags and parameters}  (iii) attributes for each forcing and climatological field.
117    
118  ~  \paragraph{Enabling the package}
119    ~ \\
120    %
121    A package is switched on/off at runtime by setting
122    (e.g. for EXF) \texttt{useEXF = .TRUE.} in \texttt{data.pkg}.
123    
124  \begin{table}[h!]  \paragraph{General flags and parameters}
125    \label{tab:pkg:exf:runtime_flags}  ~ \\
126    %
127    \begin{table}[!ht]
128      \centering
129    {\footnotesize    {\footnotesize
130      \begin{tabular}{|l|c|l|}      \begin{tabular}{|l|c|l|}
131        \hline        \hline
132        \textbf{Flag/parameter} & \textbf{default} &  \textbf{Description}  \\        \textbf{Flag/parameter} & \textbf{default} &  \textbf{Description}  \\
133        \hline \hline        \hline \hline
134          useExfCheckRange & \texttt{.TRUE.} &          useExfCheckRange & \texttt{.TRUE.} &
135             check range of input fields and stop if out of range \\             check range of input fields and stop if out of range \\
136          useExfYearlyFields & \texttt{.FALSE.} &          useExfYearlyFields & \texttt{.FALSE.} &
137             append current year postfix of form \texttt{\_YYYY} on filename \\             append current year postfix of form \texttt{\_YYYY} on filename \\
138          twoDigitYear & \texttt{.FALSE.} &          twoDigitYear & \texttt{.FALSE.} &
139             instead of appending \texttt{\_YYYY} append  \texttt{YY} \\             instead of appending \texttt{\_YYYY} append  \texttt{YY} \\
140          repeatPeriod & \texttt{0.0} & $ > 0 $ :          repeatPeriod & \texttt{0.0} & $ > 0 $ :
141             cycle through all input fields at the same period (in seconds) \\             cycle through all input fields at the same period (in seconds) \\
142          ~            & ~            & $ = 0 $ :          ~            & ~            & $ = 0 $ :
143             use period assigned to each field \\             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 \\          exf\_offset\_atemp & \texttt{0.0} & set to 273.16 to convert from deg. Kelvin (assumed input) to Celsius \\
145          windstressmax & \texttt{2.0} &          windstressmax & \texttt{2.0} &
146             max. allowed wind stress $N/m^2$ \\             max. allowed wind stress $N/m^2$ \\
147          exf\_albedo & \texttt{0.1} &          exf\_albedo & \texttt{0.1} &
148            surface albedo used to compute downward vs. net radiative fluxes \\            surface albedo used to compute downward vs. net radiative fluxes \\
149          exf\_iprec  & \texttt{32} &          climtempfreeze & \texttt{-1.9} &
150              ??? \\
151            ocean\_emissivity & \texttt{} &
152              longwave ocean-surface emissivity \\
153            ice\_emissivity & \texttt{} &
154              longwave seaice emissivity \\
155            snow\_emissivity & \texttt{} &
156              longwave  snow  emissivity \\
157            exf\_iceCd & \texttt{1.63E-3} &
158              drag coefficient over sea-ice \\
159            exf\_iceCe & \texttt{1.63E-3} &
160              evaporation transfer coeff. over sea-ice \\
161            exf\_iceCh & \texttt{1.63E-3} &
162              sensible heat transfer coeff. over sea-ice \\
163            exf\_scal\_BulkCdn & \texttt{1.} &
164              overall scaling of neutral drag coeff. \\
165            useStabilityFct\_overIce  & \texttt{.FALSE.} &
166              compute turbulent transfer coeff. over sea-ice \\
167            readStressOnAgrid & \texttt{.FALSE.} &
168              read wind-streess located on model-grid, A-grid point \\
169            readStressOnCgrid & \texttt{.FALSE.} &
170              read wind-streess located on model-grid, C-grid point \\
171            useRelativeWind & \texttt{.FALSE.} &
172              subtract [U/V]VEL or [U/VICE from U/V]WIND before \\
173            ~ & ~ &  computing [U/V]STRESS \\
174            zref & \texttt{10.} &
175              reference height \\
176            hu & \texttt{10.} &
177              height of mean wind \\
178            ht & \texttt{2.} &
179              height of mean temperature and rel. humidity \\
180            umin & \texttt{0.5} &
181              minimum absolute wind speed for computing Cd \\
182            atmrho & \texttt{1.2} &
183              mean atmospheric density [kg/m\^3] \\
184            atmcp & \texttt{1005.} &
185              mean atmospheric specific heat [J/kg/K] \\
186            cdrag\_[n] & \texttt{???} &
187              n = 1,2,3; parameters for drag coeff. function \\
188            cstanton\_[n] & \texttt{???} &
189              n = 1,2; parameters for Stanton number function \\
190            cdalton & \texttt{???} &
191              parameter for Dalton number function \\
192            flamb & \texttt{2500000.} &
193              latent heat of evaporation [J/kg] \\
194            flami & \texttt{334000.} &
195              latent heat of melting of pure ice [J/kg] \\
196            zolmin & \texttt{-100.} &
197              minimum stability parameter \\
198            cvapor\_fac & \texttt{640380.} &
199              ~ \\
200            cvapor\_exp & \texttt{5107.4} &
201              ~ \\
202            cvapor\_fac\_ice & \texttt{11637800.} &
203              ~ \\
204            cvapor\_fac\_ice & \texttt{5897.8} &
205              ~ \\
206            humid\_fac & \texttt{0.606} &
207              parameter for virtual temperature calculation \\
208            gamma\_blk & \texttt{0.010} &
209              adiabatic lapse rate \\
210            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              output frequency [s] \\
216            exf\_iprec  & \texttt{32} &
217            precision of input fields (32-bit or 64-bit) \\            precision of input fields (32-bit or 64-bit) \\
218          exf\_yftype & \texttt{'RL'} &          exf\_yftype & \texttt{'RL'} &
219            precision of arrays ('RL' vs. 'RS') \\            precision of arrays ('RL' vs. 'RS') \\
220        \hline        \hline
221      \end{tabular}      \end{tabular}
222    }    }
223    \caption{~}    \caption{~}
224      \label{tab:pkg:exf:runtime_flags}
225  \end{table}  \end{table}
226    
227    \paragraph{Field attributes}
228  \paragraph{Field attributes} ~ \\  ~ \\
229  %  %
230  All EXF fields are listed in Section \ref{sec:pkg:exf:fields_units}.  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.  Each field has a number of attributes which can be customized.
# Line 155  prepend the field name to the listed att Line 243  prepend the field name to the listed att
243  \end{eqnarray*}  \end{eqnarray*}
244  %  %
245    
246  \begin{table}[h!]  \begin{table}[!ht]
247    \label{tab:pkg:exf:runtime_attributes}    \centering
248    {\footnotesize    {\footnotesize
249      \begin{tabular}{|l|c|l|}      \begin{tabular}{|l|c|l|}
250        \hline        \hline
251        \textbf{attribute} &  \textbf{Default} &  \textbf{Description}  \\        \textbf{attribute} &  \textbf{Default} &  \textbf{Description}  \\
252        \hline \hline        \hline \hline
253           \textit{field}\texttt{file} & ' ' &           \textit{field}\texttt{file} & ' ' &
254             filename; if left empty no file will be read; \texttt{const} will be used instead \\             filename; if left empty no file will be read; \texttt{const} will be used instead \\
255           \textit{field}\texttt{const} & 0. &           \textit{field}\texttt{const} & 0. &
256             constant that will be used if no file is read  \\             constant that will be used if no file is read  \\
257           \textit{field}\texttt{startdate1} & 0. &           \textit{field}\texttt{startdate1} & 0. &
258             format: \texttt{YYYYMMDD}; start year (YYYY), month (MM), day (YY) \\             format: \texttt{YYYYMMDD}; start year (YYYY), month (MM), day (YY) \\
259             ~&~& of field to determine record number \\             ~&~& of field to determine record number \\
260           \textit{field}\texttt{startdate2} & 0. &           \textit{field}\texttt{startdate2} & 0. &
# Line 174  prepend the field name to the listed att Line 262  prepend the field name to the listed att
262             ~&~& of field to determine record number\\             ~&~& of field to determine record number\\
263           \textit{field}\texttt{period} & 0. &           \textit{field}\texttt{period} & 0. &
264             interval in seconds between two records \\             interval in seconds between two records \\
265           \texttt{exf\_inscal\_}\textit{field}& ~ &           \texttt{exf\_inscal\_}\textit{field}& ~ &
266             optional rescaling of input fields to comply with EXF units \\             optional rescaling of input fields to comply with EXF units \\
267           \texttt{exf\_outscal\_}\textit{field}& ~ &           \texttt{exf\_outscal\_}\textit{field}& ~ &
268             optional rescaling of EXF fields when mapped onto MITgcm fields \\             optional rescaling of EXF fields when mapped onto MITgcm fields \\
269           \hline           \hline
270           \multicolumn{3}{|c|}{\textit{used in conjunction with}           \multicolumn{3}{|c|}{\textit{used in conjunction with}
271                                \texttt{EXF\_USE\_INTERPOLATION}} \\                                \texttt{EXF\_USE\_INTERPOLATION}} \\
272           \hline           \hline
273           \textit{field}\texttt{\_lon0} & $thetaMin+delX/2$  &           \textit{field}\texttt{\_lon0} & $xgOrigin+delX/2$  &
274             starting longitude of input \\             starting longitude of input \\
275           \textit{field}\texttt{\_lon\_inc} & $delX$ &           \textit{field}\texttt{\_lon\_inc} & $delX$ &
276             increment in longitude of input \\             increment in longitude of input \\
277           \textit{field}\texttt{\_lat0} &  $phiMin+delY/2$ &           \textit{field}\texttt{\_lat0} &  $ygOrigin+delY/2$ &
278             starting latitude of input \\             starting latitude of input \\
279           \textit{field}\texttt{\_lat\_inc} & $delY$ &           \textit{field}\texttt{\_lat\_inc} & $delY$ &
280             increment in latitude of input \\             increment in latitude of input \\
# Line 197  prepend the field name to the listed att Line 285  prepend the field name to the listed att
285        \hline        \hline
286      \end{tabular}      \end{tabular}
287     }     }
288     \caption{\newline    \caption{\newline
289              Note one exception for the default of             Note one exception for the default of
290              \texttt{atempconst} = celsius2K = 273.16}             \texttt{atempconst} = celsius2K = 273.16}
291      \label{tab:pkg:exf:runtime_attributes}
292  \end{table}  \end{table}
293    
294  \paragraph{Example configuration} ~ \\  \paragraph{Example configuration} ~ \\
295  %  %
296  The following block is taken from the \texttt{data.exf} file  The following block is taken from the \texttt{data.exf} file
297  of the veification experiment \texttt{global\_with\_exf/}.  of the verification experiment \texttt{global\_with\_exf/}.
298  It defines attributes for the heat flux variable \texttt{hflux}:  It defines attributes for the heat flux variable \texttt{hflux}:
299    
300  \begin{verbatim}  \begin{verbatim}
# Line 222  It defines attributes for the heat flux Line 311  It defines attributes for the heat flux
311  \end{verbatim}  \end{verbatim}
312    
313  EXF will read a file of name 'ncep\_qnet.bin'.  EXF will read a file of name 'ncep\_qnet.bin'.
314  Its first record represents January 1st, 1991 at 00:00 UTC.  Its first record represents January 1st, 1992 at 00:00 UTC.
315  Next record is 2592000 seconds (or 30 days) later.  Next record is 2592000 seconds (or 30 days) later.
316    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    forcing from later in the 'ncep\_qnet.bin' file, it suffices to specify
319    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    'ncep\_qnet.bin' must have at least 2 years of data because in this
322    configuration EXF will read 2 years into the file to find the 1994 starting
323    value.
324  Interpolation on-the-fly is used (in the present case trivially  Interpolation on-the-fly is used (in the present case trivially
325  on the same grid, but included nevertheless for illustration),  on the same grid, but included nevertheless for illustration),
326  and input field grid starting coordinates and increments are  and input field grid starting coordinates and increments are
327  supplied as well.  supplied as well.
328    
329  %----------------------------------------------------------------------  %----------------------------------------------------------------------
330    
331  \subsection{EXF input fields and units  \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    \subsubsection{EXF input fields and units
339  \label{sec:pkg:exf:fields_units}}  \label{sec:pkg:exf:fields_units}}
340    
341  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}.
342  It comprises all EXF input fields.  It comprises all EXF input fields.
343    
344  Output fields which EXF provides to the MITgcm are fields  Output fields which EXF provides to the MITgcm are fields
345  \textbf{fu}, \textbf{fv}, \textbf{Qnet}, \textbf{Qsw}, \textbf{EmPmR},  \textbf{fu}, \textbf{fv}, \textbf{Qnet}, \textbf{Qsw}, \textbf{EmPmR},
346  and \textbf{pload}. They are defined in \texttt{FFIELDS.h}.  and \textbf{pload}. They are defined in \texttt{FFIELDS.h}.
347    
348  {\scriptsize  {\footnotesize
349  \begin{verbatim}  \begin{verbatim}
350    
351  c----------------------------------------------------------------------  c----------------------------------------------------------------------
# Line 263  c               |  Typical range: -0.5 < Line 367  c               |  Typical range: -0.5 <
367  c               |  Southwest C-grid V point  c               |  Southwest C-grid V point
368  c               |  Input field  c               |  Input field
369  c----------------------------------------------------------------------  c----------------------------------------------------------------------
370  c     hflux     :: Net upward surface heat flux in W/m^2  c     hs        :: sensible heat flux into ocean in W/m^2
371  c               |  excluding shortwave (on input)  c               |  > 0 for increase in theta (ocean warming)
372  c               |  hflux = latent + sensible + lwflux  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    c     hflux     :: Net upward surface heat flux in W/m^2
377    c               |  (including shortwave)
378    c               |  hflux = latent + sensible + lwflux + swflux
379  c               |  > 0 for decrease in theta (ocean cooling)  c               |  > 0 for decrease in theta (ocean cooling)
380  c               |  Typical range: -250 < hflux < 600  c               |  Typical range: -250 < hflux < 600
381  c               |  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
# Line 299  c               |  Typical range: -10 < Line 409  c               |  Typical range: -10 <
409  c               |  Southwest C-grid V point  c               |  Southwest C-grid V point
410  c               |  Input or input/output field  c               |  Input or input/output field
411  c----------------------------------------------------------------------  c----------------------------------------------------------------------
412    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  c     atemp     :: Surface (2-m) air temperature in deg K  c     atemp     :: Surface (2-m) air temperature in deg K
418  c               |  Typical range: 200 < atemp < 300  c               |  Typical range: 200 < atemp < 300
419  c               |  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
# Line 328  c               |  Typical range: 0 < pr Line 443  c               |  Typical range: 0 < pr
443  c               |  Southwest C-grid tracer point  c               |  Southwest C-grid tracer point
444  c               |  Input or input/output field  c               |  Input or input/output field
445  c----------------------------------------------------------------------  c----------------------------------------------------------------------
446    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  c     runoff    :: River and glacier runoff in m/s  c     runoff    :: River and glacier runoff in m/s
452  c               |  > 0 for decrease in salt (ocean salinity)  c               |  > 0 for decrease in salt (ocean salinity)
453  c               |  Typical range: 0 < runoff < ????  c               |  Typical range: 0 < runoff < ????
# Line 360  c--------------------------------------- Line 480  c---------------------------------------
480    
481  %----------------------------------------------------------------------  %----------------------------------------------------------------------
482    
483  \subsection{Key subroutines  \subsubsection{Key subroutines
484  \label{sec:pkg:exf:subroutines}}  \label{sec:pkg:exf:subroutines}}
485    
486  \subsubsection{Top-level routine: \texttt{exf\_getforcing.F}}  Top-level routine: \texttt{exf\_getforcing.F}
487    
488  {\scriptsize  {\footnotesize
489  \begin{verbatim}  \begin{verbatim}
490    
491  C     !CALLING SEQUENCE:  C     !CALLING SEQUENCE:
# Line 373  c ... Line 493  c ...
493  c  exf_getforcing (TOP LEVEL ROUTINE)  c  exf_getforcing (TOP LEVEL ROUTINE)
494  c  |  c  |
495  c  |-- exf_getclim (get climatological fields used e.g. for relax.)  c  |-- exf_getclim (get climatological fields used e.g. for relax.)
 c  |   |--- exf_set_climtemp (relax. to 3-D temperature field)  
 c  |   |--- exf_set_climsalt (relax. to 3-D salinity field)  
496  c  |   |--- exf_set_climsst  (relax. to 2-D SST field)  c  |   |--- exf_set_climsst  (relax. to 2-D SST field)
497  c  |   |--- exf_set_climsss  (relax. to 2-D SSS field)  c  |   |--- exf_set_climsss  (relax. to 2-D SSS field)
498  c  |   o  c  |   o
# Line 385  c  |   |      depending on CPP options ( Line 503  c  |   |      depending on CPP options (
503  c  |   |      consecutive in time are read in and interpolated onto  c  |   |      consecutive in time are read in and interpolated onto
504  c  |   |      current time step).  c  |   |      current time step).
505  c  |   |   2. If forcing is atmos. state and control is atmos. state,  c  |   |   2. If forcing is atmos. state and control is atmos. state,
506  c  |   |      then the control variable anomalies are read here  c  |   |      then the control variable anomalies are read here via ctrl_get_gen
507  c  |   |          * ctrl_getatemp  c  |   |      (atemp, aqh, precip, swflux, swdown, uwind, vwind).
 c  |   |          * ctrl_getaqh  
 c  |   |          * ctrl_getuwind  
 c  |   |          * ctrl_getvwind  
508  c  |   |      If forcing and control are fluxes, then  c  |   |      If forcing and control are fluxes, then
509  c  |   |      controls are added later.  c  |   |      controls are added later.
510  c  |   o  c  |   o
511  c  |  c  |
512  c  |-- exf_check_range  c  |-- exf_radiation
513  c  |   |   1. Check whether read fields are within assumed range  c  |   |    Compute net or downwelling radiative fluxes via
514  c  |   |      (may capture mismatches in units)  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  c  |   o  c  |   o
519  c  |  c  |
520  c  |-- exf_bulkformulae  c  |-- exf_bulkformulae
521  c  |   |   1. Compute net or downwelling radiative fluxes via  c  |   |   Compute air-sea buoyancy fluxes from
522  c  |   |      Stefan-Boltzmann law in case only one is known.  c  |   |   atmospheric state following Large and Pond, JPO, 1981/82
 c  |   |   2. Compute air-sea momentum and buoyancy fluxes from  
 c  |   |      atmospheric state following Large and Pond, JPO, 1981/82  
523  c  |   o  c  |   o
524  c  |  c  |
525  c  |-- < add time-mean river runoff here, if available >  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  c  |  c  |
533  c  |-- < update tile edges here >  c  |-- < update tile edges here >
534  c  |  c  |
535  c  |-- exf_getsurfacefluxes  c  |-- exf_check_range
536  c  |   |   1. If forcing and control are fluxes, then  c  |   |   Check whether read fields are within assumed range
537  c  |   |      controls are added here.  c  |   |   (may capture mismatches in units)
538  c  |   o  c  |   o
539  c  |  c  |
540  c  |-- < treatment of hflux w.r.t. swflux >  c  |-- < add shortwave to hflux for diagnostics >
541  c  |  c  |
542  c  |-- exf_diagnostics_fill  c  |-- exf_diagnostics_fill
543  c  |   |   1. Do EXF-related diagnostics output here.  c  |   |   Do EXF-related diagnostics output here.
544  c  |   o  c  |   o
545  c  |  c  |
546  c  |-- exf_mapfields  c  |-- exf_mapfields
547  c  |   |   1. Map the EXF variables onto the core MITgcm  c  |   |   Forcing fields from exf package are mapped onto
548  c  |   |      forcing fields.  c  |   |   mitgcm forcing arrays.
549    c  |   |   Mapping enables a runtime rescaling of fields
550  c  |   o  c  |   o
551  c  |  C  o
 c  |-- exf_bulkformulae  
 c  |   If ALLOW_BULKFORMULAE, compute fluxes via bulkformulae  
 c  |  
 c  |-- exf_getsurfacefluxes  
 c  |   If forcing and control is flux, then the  
 c  |   control vector anomalies are read here  
 c  |      * ctrl_getheatflux  
 c  |      * ctrl_getsaltflux  
 c  |      * ctrl_getzonstress  
 c  |      * call ctrl_getmerstress  
 c  |  
 c  |-- exf_mapfields  
 c  |   Forcing fields from exf package are mapped onto  
 c  |   mitgcm forcing arrays.  
 c  |   Mapping enables a runtime rescaling of fields  
   
552  \end{verbatim}  \end{verbatim}
553  }  }
554    
555  \subsubsection{Bulk formula routine: \texttt{exf\_bulkformulae.F}}  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    
561  \subsubsection{Generic I/O routine: \texttt{exf\_set\_gen.F}}  Generic I/O: \texttt{exf\_set\_gen.F}
562    
563  \subsubsection{Interpolation routine: \texttt{exf\_interp.F}}  Interpolation: \texttt{exf\_interp.F}
564    
565  \subsubsection{Header routines}  Header routines
566    
567  %----------------------------------------------------------------------  %----------------------------------------------------------------------
568    
569  \subsection{EXF diagnostics  \subsubsection{EXF diagnostics
570  \label{sec:pkg:exf:diagnostics}}  \label{sec:pkg:exf:diagnostics}}
571    
572  Diagnostics output is available via the diagnostics package  Diagnostics output is available via the diagnostics package
573  (see Section \ref{sec:pkg:diagnostics}).  (see Section \ref{sec:pkg:diagnostics}).
574  Available output fields are summarized in  Available output fields are summarized in
575  Table \ref{tab:pkg:exf:diagnostics}.  Table \ref{tab:pkg:exf:diagnostics}.
576    
577  \begin{table}[h!]  \begin{table}[!ht]
578  \label{tab:pkg:exf:diagnostics}  \centering
579  {\footnotesize  {\footnotesize
580  \begin{verbatim}  \begin{verbatim}
581  ------------------------------------------------------  ---------+----+----+----------------+-----------------
582   <-Name->|Levs|grid|<--  Units   -->|<- Tile (max=80c)   <-Name->|Levs|grid|<--  Units   -->|<- Tile (max=80c)
583  ------------------------------------------------------  ---------+----+----+----------------+-----------------
584     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   EXFlwdn |  1 | SM | W/m^2          | Downward longwave radiation, >0 increases theta   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   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   EXFqnet |  1 | SM | W/m^2          | Net upward heat flux (turb+rad), >0 decreases theta
# Line 477  Table \ref{tab:pkg:exf:diagnostics}. Line 592  Table \ref{tab:pkg:exf:diagnostics}.
592   EXFtauy |  1 | SV | N/m^2          | meridional surface wind stress, >0 increases vVel   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   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   EXFvwind|  1 | SM | m/s            | meridional 10-m wind speed, >0 increases uVel
595     EXFwspee|  1 | SM | m/s            | 10-m wind speed modulus ( >= 0 )
596   EXFatemp|  1 | SM | degK           | surface (2-m) air temperature   EXFatemp|  1 | SM | degK           | surface (2-m) air temperature
597   EXFaqh  |  1 | SM | kg/kg          | surface (2-m) specific humidity   EXFaqh  |  1 | SM | kg/kg          | surface (2-m) specific humidity
598   EXFevap |  1 | SM | m/s            | evaporation, > 0 increases salinity   EXFevap |  1 | SM | m/s            | evaporation, > 0 increases salinity
599   EXFpreci|  1 | SM | m/s            | evaporation, > 0 decreases salinity   EXFpreci|  1 | SM | m/s            | evaporation, > 0 decreases salinity
600     EXFsnow |  1 | SM | m/s            | snow precipitation, > 0 decreases salinity
601   EXFempmr|  1 | SM | m/s            | net upward freshwater flux, > 0 increases salinity   EXFempmr|  1 | SM | m/s            | net upward freshwater flux, > 0 increases salinity
602   EXFpress|  1 | SM | N/m^2          | atmospheric pressure field   EXFpress|  1 | SM | N/m^2          | atmospheric pressure field
603  \end{verbatim}  \end{verbatim}
604  }  }
605  \caption{~}  \caption{~}
606    \label{tab:pkg:exf:diagnostics}
607  \end{table}  \end{table}
608    
609  %----------------------------------------------------------------------  %----------------------------------------------------------------------
610    
611  \subsection{Reference experiments}  \subsubsection{Experiments and tutorials that use exf}
612    \label{sec:pkg:exf:experiments}
 \subsubsection{global\_with\_exf}  
613    
614  \subsubsection{lab\_sea}  \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    
619  %----------------------------------------------------------------------  %----------------------------------------------------------------------
620    
621  \subsection{References}  \subsubsection{References}

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.16

  ViewVC Help
Powered by ViewVC 1.1.22