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