tatmosphere.rst - pism - [fork] customized build of PISM, the parallel ice sheet model (tillflux branch)
(HTM) git clone git://src.adamsgaard.dk/pism
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
tatmosphere.rst (17748B)
---
1 .. include:: shortcuts.txt
2
3 Atmosphere model components
4 ---------------------------
5
6 .. contents::
7
8 .. _sec-atmosphere-given:
9
10 Reading boundary conditions from a file
11 +++++++++++++++++++++++++++++++++++++++
12
13 :|options|: ``-atmosphere given``
14 :|variables|: :var:`air_temp`, :var:`precipitation` |flux|
15 :|implementation|: ``pism::atmosphere::Given``
16 :|seealso|: :ref:`sec-surface-given`
17
18 .. note:: This is the default choice.
19
20 Command-line options:
21
22 - :opt:`-atmosphere_given_file` prescribes an input file
23 - :opt:`-atmosphere_given_period` (*years*) makes PISM interpret data in
24 ``-atmosphere_given_file`` as periodic. See section :ref:`sec-periodic-forcing`.
25 - :opt:`-atmosphere_given_reference_year` sets the reference model year; see section
26 :ref:`sec-periodic-forcing`.
27
28 A file ``foo.nc`` used with ``-atmosphere given -atmosphere_given_file foo.nc`` should
29 contain several records; the :var:`time` variable should describe what model time these
30 records correspond to.
31
32 This model component was created to force PISM with sampled (possibly periodic) climate
33 data, e.g. using monthly records of :var:`air_temp` and :var:`precipitation`.
34
35 It can also used to drive a temperature-index (PDD) climatic mass balance computation
36 (section :ref:`sec-surface-pdd`).
37
38 .. _sec-atmosphere-yearly-cycle:
39
40 Cosine yearly cycle
41 +++++++++++++++++++
42
43 :|options|: :opt:`-atmosphere yearly_cycle`
44 :|variables|: :var:`air_temp_mean_annual`,
45 :var:`air_temp_mean_july`,
46 :var:`precipitation` |flux|
47 :var:`amplitude_scaling`
48 :|implementation|: ``pism::atmosphere::CosineYearlyCycle``
49
50 This atmosphere model component computes the near-surface air temperature using the
51 following formula:
52
53 .. math::
54
55 T(\mathrm{time}) = T_{\text{mean annual}}
56 + A(\mathrm{time})\cdot(T_{\text{mean July}} - T_{\text{mean annual}}) \cdot \cos(2\pi t),
57
58 where `t` is the year fraction "since last July"; the summer peak of the cycle is on
59 :config:`atmosphere.fausto_air_temp.summer_peak_day`, which is set to day `196` by
60 default (approximately July 15).
61
62 Here `T_{\text{mean annual}}` (variable :var:`air_temp_mean_annual`) and
63 `T_{\text{mean July}}` (variable :var:`air_temp_mean_july`) are read from a file
64 selected using the :opt:`-atmosphere_yearly_cycle_file` command-line option. A
65 time-independent precipitation field (variable :var:`precipitation`) is read from the same
66 file.
67
68 Optionally a time-dependent scalar amplitude scaling `A(t)` can be used. Specify a
69 file to read it from using the :opt:`-atmosphere_yearly_cycle_scaling_file` command-line
70 option. Without this option `A(\mathrm{time}) \equiv 1`.
71
72 .. _sec-atmosphere-searise-greenland:
73
74 SeaRISE-Greenland
75 +++++++++++++++++
76
77 :|options|: ``-atmosphere searise_greenland``
78 :|variables|: :var:`lon`,
79 :var:`lat`,
80 :var:`precipitation` |flux|
81 :|implementation|: ``pism::atmosphere::SeaRISEGreenland``
82 :|seealso|: :ref:`sec-atmosphere-precip-scaling`
83
84 This atmosphere model component implements a longitude, latitude, and elevation dependent
85 near-surface air temperature parameterization and a cosine yearly cycle described in
86 :cite:`Faustoetal2009` and uses a constant in time ice-equivalent precipitation field (in units
87 of thickness per time, variable :var:`precipitation`) that is read from an input (``-i``)
88 file. To read time-independent precipitation from a different file, use the option
89 :opt:`-atmosphere_searise_greenland_file`.
90
91 The air temperature parameterization is controlled by configuration parameters with the
92 ``snow_temp_fausto`` prefix.
93
94 See also the ``-atmosphere ...,precip_scaling`` modifier, section
95 :ref:`sec-atmosphere-precip-scaling`, for an implementation of the SeaRISE-Greenland
96 formula for precipitation adjustment using air temperature offsets relative to present; a
97 7.3\% change of precipitation rate for every one degree Celsius of temperature change
98 :cite:`Huybrechts02`.
99
100 .. _sec-atmosphere-pik:
101
102 PIK
103 +++
104
105 :|options|: :opt:`-atmosphere pik`
106 :|variables|: :var:`lat`, :var:`lon`, :var:`precipitation`
107 :|implementation|: ``pism::atmosphere::PIK``
108
109 This model component reads a time-independent precipitation field from an input file
110 specified by :config:`atmosphere.pik.file` and computes near-surface air temperature using
111 a parameterization selected using :config:`atmosphere.pik.parameterization` (command-line
112 option :opt:`-atmosphere_pik`).
113
114 .. note::
115
116 * Parameterizations implemented in this model are appropriate for the **Antarctic** ice
117 sheet.
118
119 * All parameterizations except for the first one implement a cosine annual cycle of the
120 near-surface air temperature.
121
122 .. list-table:: Near-surface air temperature parameterizations
123 :header-rows: 1
124 :widths: 1,2
125
126 * - Keyword
127 - Description
128
129 * - ``martin`` (default)
130 - Uses equation (1) from :cite:`Martinetal2011` to parameterize mean annual
131 temperature with *no seasonal variation in temperature.*
132
133 * - ``huybrechts_dewolde``
134 - Mean annual and mean summer temperatures are computed using parameterizations for
135 the Antarctic ice sheet described in :cite:`HuybrechtsdeWolde` (equations C1 and C2).
136
137 * - ``martin_huybrechts_dewolde``
138 - Hybrid of the two above: mean annual temperature as in :cite:`Martinetal2011` with
139 the amplitude of the annual cycle from :cite:`HuybrechtsdeWolde`.
140
141 * - ``era_interim``
142 - Mean annual and mean summer temperatures use parameterizations based on multiple
143 regression analysis of ERA INTERIM data.
144
145 * - ``era_interim_sin``
146 - Mean annual and mean summer temperatures use parameterizations based on multiple
147 regression analysis of ERA INTERIM data with a `\sin(\text{latitude})` dependence.
148
149 * - ``era_interim_lon``
150 - Mean annual and mean summer temperatures use parameterizations based on multiple
151 regression analysis of ERA INTERIM data with a `\cos(\text{longitude})` dependence.
152
153 See :ref:`sec-surface-pik` for a surface model that implements the ``martin`` choice as a
154 parameterization of the ice temperature at its top surface.
155
156 .. _sec-atmosphere-one-station:
157
158 One weather station
159 +++++++++++++++++++
160
161 :|options|: :opt:`-atmosphere one_station`
162 :opt:`-atmosphere_one_station_file`
163 :|variables|: :var:`air_temp` [Kelvin],
164 :var:`precipitation` |flux|
165 :|implementation|: ``pism::atmosphere::WeatherStation``
166
167 This model component reads scalar time-series of the near-surface air temperature and
168 precipitation from a file specified using the :opt:`-atmosphere_one_station_file` option
169 and uses them at *all* grid points in the domain. In other words, resulting climate fields
170 are constant in space but not necessarily in time.
171
172 The :opt:`-atmosphere one_station` model should be used with a modifier such as
173 ``elevation_change`` (see section :ref:`sec-atmosphere-elevation-change`) to create spatial
174 variablitity.
175
176 .. _sec-atmosphere-delta-t:
177
178 Scalar temperature offsets
179 ++++++++++++++++++++++++++
180
181 :|options|: ``-atmosphere ...,delta_T``
182 :|variables|: :var:`delta_T`
183 :|implementation|: ``pism::atmosphere::Delta_T``
184
185 This modifier applies scalar time-dependent air temperature offsets to the output of an
186 atmosphere model. It takes the following command-line options.
187
188 - :opt:`-atmosphere_delta_T_file` sets the name of the file PISM will read :var:`delta_T`
189 from.
190 - :opt:`-atmosphere_delta_T_period` (*years*) sets the period of the forcing data (section
191 :ref:`sec-periodic-forcing`).
192 - :opt:`-atmosphere_delta_T_reference_year` sets the reference year (section
193 :ref:`sec-periodic-forcing`).
194
195 Please make sure that :var:`delta_T` has the units of "``Kelvin``".
196
197 .. _sec-atmosphere-delta-p:
198
199 Scalar precipitation offsets
200 ++++++++++++++++++++++++++++
201
202 :|options|: :opt:`-atmosphere ...,delta_P`
203 :|variables|: :var:`delta_P` |flux|
204 :|implementation|: ``pism::atmosphere::Delta_P``
205
206 This modifier applies scalar time-dependent precipitation offsets to the output of an
207 atmosphere model. It takes the following command-line options.
208
209 - :opt:`-atmosphere_delta_P_file` sets the name of the file PISM will read :var:`delta_P`
210 from.
211 - :opt:`-atmosphere_delta_P_period` (*years*) sets the period of the forcing data (section
212 :ref:`sec-periodic-forcing`).
213 - :opt:`-atmosphere_delta_P_reference_year` sets the reference year (section
214 :ref:`sec-periodic-forcing`).
215
216 .. _sec-atmosphere-frac-p:
217
218 Scalar precipitation scaling
219 ++++++++++++++++++++++++++++
220
221 :|options|: ``-atmosphere ...,frac_P``
222 :|variables|: :var:`frac_P` [no unit]
223 :|implementation|: ``pism::atmosphere::Frac_P``
224
225 This modifier scales precipitation output of an atmosphere model using a scalar
226 time-dependent precipitation fraction, with a value of one corresponding to no change in
227 precipitation. It takes the following command-line options:
228
229 - :opt:`-atmosphere_frac_P_file` sets the name of the file PISM will read :var:`frac_P`
230 from.
231 - :opt:`-atmosphere_frac_P_period` (*years*) sets the period of the forcing data (section
232 :ref:`sec-periodic-forcing`).
233 - :opt:`-atmosphere_frac_P_reference_year` sets the reference year (section
234 :ref:`sec-periodic-forcing`).
235
236 .. _sec-atmosphere-precip-scaling:
237
238 Precipitation correction using scalar temperature offsets
239 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
240
241 :|options|: ``-atmosphere ...,precip_scaling``
242 :|variables|: :var:`delta_T` [degrees Kelvin]
243 :|implementation|: ``pism::atmosphere::PrecipitationScaling``
244
245 This modifier implements the SeaRISE-Greenland formula for a precipitation correction from
246 present; a 7.3\% change of precipitation rate for every one degree Celsius of air
247 temperature change :cite:`Huybrechts02`. See `SeaRISE Greenland model initialization
248 <SeaRISE-Greenland_>`_ for details. The input file should contain air temperature offsets
249 in the format used by ``-atmosphere ...,delta_T`` modifier, see section :ref:`sec-atmosphere-delta-t`.
250
251 This mechanisms increases precipitation by `100(\exp(C) - 1)` percent for each degree of
252 temperature increase, where
253
254 `C =` :config:`atmosphere.precip_exponential_factor_for_temperature`.
255
256 It takes the following command-line options.
257
258 - :opt:`-atmosphere_precip_scaling_file` sets the name of the file PISM will read
259 :var:`delta_T` from.
260 - :opt:`-atmosphere_precip_scaling_period` (*years*) sets the period of the forcing data
261 (section :ref:`sec-periodic-forcing`).
262 - :opt:`-atmosphere_precip_scaling_reference_year` sets the reference year (section
263 :ref:`sec-periodic-forcing`).
264
265 .. _sec-atmosphere-elevation-change:
266
267 Adjustments using modeled change in surface elevation
268 +++++++++++++++++++++++++++++++++++++++++++++++++++++
269
270 :|options|: :opt:`-atmosphere ...,elevation_change`
271 :|variables|: :var:`surface_altitude` (CF standard name)
272 :|implementation|: ``pism::atmosphere::ElevationChange``
273
274 The ``elevation_change`` modifier adjusts air temperature and precipitation using modeled
275 changes in surface elevation relative to a reference elevation read from a file.
276
277 The near-surface air temperature is modified using an elevation lapse rate `\gamma_T =`
278 :config:`atmosphere.elevation_change.temperature_lapse_rate`. Here
279
280 .. math::
281 \gamma_T = -\frac{dT}{dz}.
282
283 Two methods of adjusting precipitation are available:
284
285 - Scaling using an exponential factor
286
287 .. math::
288
289 \mathrm{P} = \mathrm{P_{input}} \cdot \exp(C \cdot \Delta T),
290
291 where `C =` :config:`atmosphere.precip_exponential_factor_for_temperature` and `\Delta
292 T` is the temperature difference produced by applying
293 :config:`atmosphere.elevation_change.temperature_lapse_rate`.
294
295 This mechanisms increases precipitation by `100(\exp(C) - 1)` percent for each degree of
296 temperature increase.
297
298 To use this method, set :opt:`-precip_adjustment scale`.
299
300 - Elevation lapse rate for precipitation
301
302 .. math::
303
304 \mathrm{P} = \mathrm{P_{input}} - \Delta h \cdot \gamma_P,
305
306 where `\gamma_P =` :config:`atmosphere.elevation_change.precipitation.lapse_rate` and
307 `\Delta h` is the difference between modeled and reference surface elevations.
308
309 To use this method, set :opt:`-smb_adjustment shift`.
310
311 It uses the following options.
312
313 - :opt:`-temp_lapse_rate` gives the temperature lapse rate, in `K/km`. Note that we
314 use the following definition of the temperature lapse rate:
315 - :opt:`-precip_adjustment` chooses the precipitation lapse rate (``shift``) or scaling
316 precipitation with an exponential factor (``scale``).
317 - :opt:`-precip_lapse_rate` gives the precipitation lapse rate, in :math:`(kg / (m^{2} year)) / km`.
318 Here `\gamma_P = -\frac{dP}{dz}`.
319 - :opt:`-atmosphere_elevation_change_file` specifies a file containing the reference surface
320 elevation field (standard name: :var:`surface_altitude`). This file may contain several
321 surface elevation records to use lapse rate corrections relative to a time-dependent
322 surface. If one record is provided, the reference surface elevation is assumed to be
323 time-independent.
324 - :opt:`-atmosphere_elevation_change_period` gives the period, in model years; see section
325 :ref:`sec-periodic-forcing`.
326 - :opt:`-atmosphere_elevation_change_reference_year` specifies the reference date; see section
327 :ref:`sec-periodic-forcing`.
328
329 .. _sec-atmosphere-anomaly:
330
331 Using climate data anomalies
332 ++++++++++++++++++++++++++++
333
334 :|options|: :opt:`-atmosphere ...,anomaly`
335 :|variables|: :var:`air_temp_anomaly`,
336 :var:`precipitation_anomaly` |flux|
337 :|implementation|: ``pism::atmosphere::Anomaly``
338
339 This modifier implements a spatially-variable version of ``-atmosphere
340 ...,delta_T,delta_P``.
341
342 It takes the following options:
343
344 - :opt:`-atmosphere_anomaly_file` specifies a file containing variables
345 :var:`air_temp_anomaly` and :var:`precipitation_anomaly`.
346 - :opt:`-atmosphere_anomaly_period` (years) specifies the period of the forcing data, in
347 model years; section :ref:`sec-periodic-forcing`.
348 - :opt:`-atmosphere_anomaly_reference_year` specifies the reference year; section
349 :ref:`sec-periodic-forcing`.
350
351 See also to ``-surface ...,anomaly`` (section :ref:`sec-surface-anomaly`), which is
352 similar, but applies anomalies at the surface level.
353
354 .. _sec-orographic-precipitation:
355
356 Orographic precipitation
357 ++++++++++++++++++++++++
358
359 :|options|: :opt:`-atmosphere ...,orographic_precipitation`
360 :|variables|: None
361 :|implementation|: ``pism::atmosphere::OrographicPrecipitation``
362
363 This modifier implements the linear orographic precipitation model described in
364 :cite:`SmithBarstad2004` with a modification incorporating the influence of the Coriolis
365 force from :cite:`SmithBarstadBonneau2005`.
366
367 We compute the Fourier transform of the precipitation field using the formula below (see
368 equation 49 in :cite:`SmithBarstad2004` or equation 3 in :cite:`SmithBarstadBonneau2005`).
369
370 .. math::
371 :label: eq-orographic-precipitation
372
373 \hat P_{\text{LT}}(k, l) = \frac{C_w i \sigma \hat h(k, l)}
374 {(1 - i m H_w) (1 + i \sigma \tau_c) (1 + i \sigma \tau_f)},
375
376 where `h` is the surface elevation, `C_w = \rho_{S_{\text{ref}}} \Gamma_m / \gamma`
377 relates the condensation rate to vertical motion (see the appendix of
378 :cite:`SmithBarstad2004`), `m` is the vertical wavenumber (see equation 6 in
379 :cite:`SmithBarstadBonneau2005`), and `\sigma` is the intrinsic frequency. The rest of the
380 constants are defined in the table below.
381
382 The spatial pattern of precipitation is recovered using an inverse Fourier transform
383 followed by post-processing:
384
385 .. math::
386 :label: eq-orographic-post-processing
387
388 P = \max(P_{\text{pre}} + P_{\text{LT}}, 0) \cdot S + P_{\text{post}}.
389
390 It is implemented as a "modifier" that overrides the precipitation field provided by an
391 input model. Use it with a model providing air temperatures to get a complete model. For
392 example, ``-atmosphere yearly_cycle,orographic_precipitation ...`` would use the annual
393 temperature cycle from ``yearly_cycle`` combined with precipitation computed using this
394 model.
395
396 The only spatially-variable input of this model is the surface elevation (`h` above)
397 modeled by PISM. It is controlled by a number of configuration parameters. See parameters
398 with the prefix ``atmosphere.orographic_precipitation``.
399
400 .. list-table:: Parameters controlling orographic precipitation
401 :header-rows: 1
402 :widths: 1,2
403
404 * - Parameter
405 - Description
406
407 * - ``background_precip_pre``
408 - Background precipitation `P_{\text{pre}}` in :eq:`eq-orographic-post-processing`
409
410 * - ``background_precip_post``
411 - Background precipitation `P_{\text{post}}` in :eq:`eq-orographic-post-processing`
412
413 * - ``scale_factor``
414 - Scaling factor `S` in :eq:`eq-orographic-post-processing`
415
416 * - ``conversion_time``
417 - Conversion time of cloud water into hydrometeors `\tau_c`
418
419 * - ``fallout_time``
420 - Fallout time `\tau_f`
421
422 * - ``water_vapor_scale_height``
423 - Moist layer depth `H_w`
424
425 * - ``moist_stability_frequency``
426 - Moist stability frequency `N_m`
427
428 * - ``wind_speed``
429 - Wind speed
430
431 * - ``wind_direction``
432 - Wind direction. `0` corresponds to the wind from the north, `90` from the east, and
433 so on.
434
435 * - ``lapse_rate``
436 - Lapse rate `\gamma`. Note that here `\gamma < 0`.
437
438 * - ``moist_adiabatic_lapse_rate``
439 - Moist adiabatic lapse rate `\Gamma_m`. Note that here `\Gamma_m < 0`.
440
441 * - ``reference_density``
442 - Reference density `\rho_{S_{\text{ref}}}` (see equation A3 in :cite:`SmithBarstad2004`)
443
444 * - ``coriolis_latitude``
445 - Average latitude of the modeling domain used to include the influence of the
446 Coriolis force (see equation 6 in :cite:`SmithBarstadBonneau2005`)
447
448 * - ``truncate``
449 - If set, negative precipitation values are truncated as in
450 :eq:`eq-orographic-post-processing`, otherwise the post-processing formula is
451
452 `P = (P_{\text{pre}} + P_{\text{LT}}) \cdot S + P_{\text{post}}`.