Atmosphere model components¶
Contents
Boundary conditions read from a file¶
- Options
-atmosphere given
- Variables
air_temp
,precipitation
\(kg / (m^{2} s)\)- C++ class
pism::atmosphere::Given
- See also
Note
This is the default choice.
A file foo.nc
used with -atmosphere given -atmosphere_given_file foo.nc
should
contain several records; the time
variable should describe what model time these
records correspond to.
This model component was created to force PISM with sampled (possibly periodic) climate
data, e.g. using monthly records of air_temp
and precipitation
.
It can also be used to drive a temperature-index (PDD) climatic mass balance computation (section Temperature-index scheme).
Parameters
Prefix: atmosphere.given.
air_temperature_interpolation
(piecewise_linear
) Temporal interpolation type used for near-surface air temperaturesfile
Name of the file containing climate forcing fields.periodic
(no) If true, interpret forcing data as periodic in time
Cosine yearly cycle¶
- Options
-atmosphere yearly_cycle
- Variables
air_temp_mean_annual
,air_temp_mean_july
,precipitation
\(kg / (m^{2} s)\)amplitude_scaling
- C++ class
pism::atmosphere::CosineYearlyCycle
This atmosphere model component computes the near-surface air temperature using the following formula:
where \(t\) is the year fraction “since last July”; the summer peak of the cycle is on
atmosphere
.fausto_air_temp
.summer_peak_day
, which is set to day \(196\) by
default (approximately July 15).
Here \(T_{\text{mean annual}}\) (variable air_temp_mean_annual
) and \(T_{\text{mean
July}}\) (variable air_temp_mean_july
) are read from a file selected using the
command-line option -atmosphere_yearly_cycle_file
. A time-independent precipitation
field (variable precipitation
) is read from the same file.
Optionally a time-dependent scalar amplitude scaling \(A(t)\) can be used. Specify a
file to read it from using the -atmosphere_yearly_cycle_scaling_file
command-line
option. Without this option \(A(\mathrm{time}) \equiv 1\).
Parameters
Prefix: atmosphere.yearly_cycle.
file
Name of the file containing mean annual and mean July temperatures (air_temp_mean_annual
andair_temp_mean_summer
) and theprecipitation
field.scaling
.file
Name of the file containing amplitude scaling (amplitude_scaling
) for the near-surface air temperature.scaling
.periodic
(no) If true, interpret forcing data as periodic in time
SeaRISE-Greenland¶
- Options
-atmosphere searise_greenland
- Variables
lon
,lat
,precipitation
\(kg / (m^{2} s)\)- C++ class
pism::atmosphere::SeaRISEGreenland
- See also
This atmosphere model component implements a longitude, latitude, and elevation dependent
near-surface air temperature parameterization and a cosine yearly cycle described in
[145] and uses a constant in time ice-equivalent precipitation field (in units
of thickness per time, variable precipitation
) that is read from an input (-i
)
file. To read time-independent precipitation from a different file, use the option
-atmosphere_searise_greenland_file
.
The air temperature parameterization is controlled by configuration parameters with the
prefix atmosphere.fausto_air_temp
:
c_ma
(-0.7189 Kelvin / degree_north) latitude-dependence coefficient for formula (1) in [145]c_mj
(-0.1585 Kelvin / degree_north) latitude-dependence coefficient for formula (2) in [145]d_ma
(314.98 Kelvin) 41.83+273.15; base temperature for formula (1) in [145]d_mj
(287.85 Kelvin) = 14.70+273.15; base temperature for formula (2) in [145]gamma_ma
(-0.006309 Kelvin / meter) = -6.309 / 1km; mean slope lapse rate for formula (1) in [145]gamma_mj
(-0.005426 Kelvin / meter) = -5.426 / 1km; mean slope lapse rate for formula (2) in [145]kappa_ma
(0.0672 Kelvin / degree_west) longitude-dependence coefficient for formula (1) in [145]kappa_mj
(0.0518 Kelvin / degree_west) longitude-dependence coefficient for formula (2) in [145]summer_peak_day
(196 ordinal day number) day of year for July 15; used in corrected formula (4) in [145]
See Precipitation correction using scalar temperature offsets for an implementation of the SeaRISE-Greenland formula for precipitation adjustment using air temperature offsets relative to present; a 7.3% change of precipitation rate for every one degree Celsius of temperature change [31].
PIK¶
- Options
-atmosphere pik
- Variables
lat
,lon
,precipitation
- C++ class
pism::atmosphere::PIK
This model component reads a time-independent precipitation field from an input file
specified by atmosphere
.pik
.file
and computes near-surface air temperature using
a parameterization selected using atmosphere
.pik
.parameterization
.
Note
Parameterizations implemented in this model are appropriate for the Antarctic ice sheet.
All parameterizations except for the first one implement a cosine annual cycle of the near-surface air temperature.
Keyword |
Description |
---|---|
|
Uses equation (1) from [52] to parameterize mean annual temperature with no seasonal variation in temperature. |
|
Mean annual and mean summer temperatures are computed using parameterizations for the Antarctic ice sheet described in [45] (equations C1 and C2). |
|
Hybrid of the two above: mean annual temperature as in [52] with the amplitude of the annual cycle from [45]. |
|
Mean annual and mean summer temperatures use parameterizations based on multiple regression analysis of ERA INTERIM data. |
|
Mean annual and mean summer temperatures use parameterizations based on multiple regression analysis of ERA INTERIM data with a \(\sin(\text{latitude})\) dependence. |
|
Mean annual and mean summer temperatures use parameterizations based on multiple regression analysis of ERA INTERIM data with a \(\cos(\text{longitude})\) dependence. |
See PIK for a surface model that implements the martin
choice as a
parameterization of the ice temperature at its top surface.
One weather station¶
- Options
-atmosphere one_station
-atmosphere_one_station_file
- Variables
air_temp
[Kelvin],precipitation
\(kg / (m^{2} s)\)- C++ class
pism::atmosphere::WeatherStation
This model component reads scalar time-series of the near-surface air temperature and
precipitation from a file specified using atmosphere
.one_station
.file
and uses them at all grid points in the domain. In other words, resulting climate fields
are constant in space but not necessarily in time.
The -atmosphere one_station
model should be used with a modifier such as
elevation_change
(see section Adjustments using modeled change in surface elevation) to create spatial
variablitity.
Scalar temperature offsets¶
- Options
-atmosphere ...,delta_T
- Variables
delta_T
- C++ class
pism::atmosphere::Delta_T
This modifier applies scalar time-dependent air temperature offsets to the output of an atmosphere model.
Please make sure that delta_T
has the units of “Kelvin
”.
Parameters
Prefix: atmosphere.delta_T.
Scalar precipitation offsets¶
- Options
-atmosphere ...,delta_P
- Variables
delta_P
\(kg / (m^{2} s)\)- C++ class
pism::atmosphere::Delta_P
This modifier applies scalar time-dependent precipitation offsets to the output of an atmosphere model.
Parameters
Prefix: atmosphere.delta_P.
Precipitation scaling¶
- Options
-atmosphere ...,frac_P
- Variables
frac_P
[1]- C++ class
pism::atmosphere::Frac_P
This modifier scales precipitation output of an atmosphere model using a time-dependent precipitation fraction, with a value of one corresponding to no change in precipitation. It supports both 1D (scalar) and 2D (spatially-variable) factors.
If the variable frac_P
in the input file (see atmosphere
.frac_P
.file
) depends
on time only it is used as a time-dependent constant-in-space scaling factor.
If the variable frac_P
has more than one dimension PISM tries to use it as a
time-and-space-dependent scaling factor.
Parameters
Prefix: atmosphere.frac_P.
Precipitation correction using scalar temperature offsets¶
- Options
-atmosphere ...,precip_scaling
- Variables
delta_T
[degrees Kelvin]- C++ class
pism::atmosphere::PrecipitationScaling
This modifier implements the SeaRISE-Greenland formula for a precipitation correction from
present; a 7.3% change of precipitation rate for every one degree Celsius of air
temperature change [31]. See SeaRISE Greenland model initialization for details. The input file should contain air temperature offsets
in the format used by -atmosphere ...,delta_T
modifier, see section Scalar temperature offsets.
This mechanisms increases precipitation by \(100(\exp(C) - 1)\) percent for each degree of temperature increase, where
\(C =\) atmosphere
.precip_exponential_factor_for_temperature
.
Parameters
Prefix: atmosphere.precip_scaling.
Adjustments using modeled change in surface elevation¶
- Options
-atmosphere ...,elevation_change
- Variables
surface_altitude
(CF standard name)- C++ class
pism::atmosphere::ElevationChange
The elevation_change
modifier adjusts air temperature and precipitation using modeled
changes in surface elevation relative to a reference elevation read from a file.
The near-surface air temperature is modified using an elevation lapse rate \(\gamma_T =\)
atmosphere
.elevation_change
.temperature_lapse_rate
. Here
Warning
Some atmosphere models (PIK, for example) use elevation-dependent near-surface air temperature parameterizations that include an elevation lapse rate.
In most cases one should not combine such a temperature parameterization with an additional elevation lapse rate for temperature.
Two methods of adjusting precipitation are available:
Scaling using an exponential factor
\[\mathrm{P} = \mathrm{P_{input}} \cdot \exp(C \cdot \Delta T),\]where \(C =\)
atmosphere
.precip_exponential_factor_for_temperature
and \(\Delta T\) is the temperature difference produced by applying the lapse rateatmosphere
.elevation_change
.precipitation
.temp_lapse_rate
.This mechanisms increases precipitation by \(100(\exp(C) - 1)\) percent for each degree of temperature increase.
To use this method, set
-precip_adjustment scale
.Elevation lapse rate for precipitation
\[\mathrm{P} = \mathrm{P_{input}} - \Delta h \cdot \gamma_P,\]where \(\gamma_P =\)
atmosphere
.elevation_change
.precipitation
.lapse_rate
and \(\Delta h\) is the difference between modeled and reference surface elevations.To use this method, set
-smb_adjustment shift
.
Parameters
Prefix: atmosphere.elevation_change.
file
Name of the file containing the reference surface elevation field (variableusurf
).periodic
(no) If true, interpret forcing data as periodic in timeprecipitation
.lapse_rate
(0 (kg m-2 / year) / km) Elevation lapse rate for the precipitationprecipitation
.method
(shift
) Choose the precipitation adjustment method.scale
: use temperature-change-dependent scaling factor.shift
: use the precipitation lapse rate.precipitation
.temp_lapse_rate
(0 Kelvin / km) Elevation lapse rate for the surface temperature used to compute \(\Delta T\) in the precipitation scaling factor \(\exp(C \cdot \Delta T)\)temperature_lapse_rate
(0 Kelvin / km) Elevation lapse rate for the surface temperature
The file specified using atmosphere
.elevation_change
.file
may contain several
surface elevation records to use lapse rate corrections relative to a time-dependent
surface. If one record is provided, the reference surface elevation is assumed to be
time-independent.
Using climate data anomalies¶
- Options
-atmosphere ...,anomaly
- Variables
air_temp_anomaly
,precipitation_anomaly
\(kg / (m^{2} s)\)- C++ class
pism::atmosphere::Anomaly
This modifier implements a spatially-variable version of -atmosphere
...,delta_T,delta_P
.
Parameters
Prefix: atmosphere.anomaly.
file
Name of the file containing climate forcing fields.periodic
(no) If true, interpret forcing data as periodic in time
See also to -surface ...,anomaly
(section Using climate data anomalies), which is
similar but applies anomalies at the surface level.
Orographic precipitation¶
- Options
-atmosphere ...,orographic_precipitation
- Variables
None
- C++ class
pism::atmosphere::OrographicPrecipitation
This modifier implements the linear orographic precipitation model described in [162] with a modification incorporating the influence of the Coriolis force from [163].
We compute the Fourier transform of the precipitation field using the formula below (see equation 49 in [162] or equation 3 in [163]).
where \(h\) is the surface elevation, \(C_w = \rho_{S_{\text{ref}}} \Gamma_m / \gamma\) relates the condensation rate to vertical motion (see the appendix of [162]), \(m\) is the vertical wavenumber (see equation 6 in [163]), and \(\sigma\) is the intrinsic frequency. The rest of the constants are defined below.
The spatial pattern of precipitation is recovered using an inverse Fourier transform followed by post-processing:
Note
Discontinuities in the surface gradient (e.g. at ice margins) may cause oscillations in the computed precipitation field (probably due to the Gibbs phenomenon). To address this our implementation includes the ability to smooth the surface topography using a Gaussian filter. Set
atmosphere
.orographic_precipitation
.smoothing_standard_deviation
to a positive number to enable smoothing. Values around \(\dx\) appear to be effective.The spectral method used to implement this model requires that the input (i.e. surface elevation \(h\)) is periodic in \(x\) and \(y\). To simulate periodic \(h\) the implementation uses an extended grid (see
atmosphere
.orographic_precipitation
.grid_size_factor
) and pads modeled surface elevation with zeros.It is worth noting that the resulting precipitation field \(P_{\text{LT}}\) is also periodic in \(x\) and \(y\) on the extended grid. The appropriate size of this extended grid may differ depending on the spatial scale of the domain and values of model parameters.
It is implemented as a “modifier” that overrides the precipitation field provided by an
input model. Use it with a model providing air temperatures to get a complete model. For
example, -atmosphere yearly_cycle,orographic_precipitation ...
would use the annual
temperature cycle from yearly_cycle
combined with precipitation computed using this
model.
The only spatially-variable input of this model is the surface elevation (\(h\) above) modeled by PISM.
Parameters
Prefix: atmosphere.orographic_precipitation.
background_precip_post
(0 mm/hr) Background precipitation \(P_{\mathrm{post}}\) added after the truncation.background_precip_pre
(0 mm/hr) Background precipitation \(P_{\mathrm{pre}}\) added before the truncation.conversion_time
(1000 s) Cloud conversion time \(\tau_c\)coriolis_latitude
(0 degrees_N) Latitude used to compute Coriolis forcefallout_time
(1000 s) Fallout time \(\tau_f\)grid_size_factor
(2) The size of the extended grid is(Z*(grid.Mx - 1) + 1, Z*(grid.My - 1) + 1)
whereZ
is given by this parameter.lapse_rate
(-5.8 K / km) Lapse rate \(\gamma\)moist_adiabatic_lapse_rate
(-6.5 K / km) Moist adiabatic lapse rate \(\Gamma_m\)moist_stability_frequency
(0.05 1/s) Moist stability frequency \(N_m\)reference_density
(0.0074 kg m-3) Reference density \(\rho_{S_{\text{ref}}}\)scale_factor
(1) Precipitation scaling factor \(S\).smoothing_standard_deviation
(0 m) Standard deviation of the Gaussian filter used to smooth surface elevation or zero if disabledtruncate
(true) Truncate precipitation at 0, disallowing negative precipitation values.water_vapor_scale_height
(2500 m) Water vapor scale height \(H_w\)wind_direction
(270 degrees) The direction the wind is coming fromwind_speed
(10 m/s) The wind speed.
Previous | Up | Next |