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}}`.