PISM, A Parallel Ice Sheet Model
stable v2.1.1 committed by Constantine Khrulev on 2024-12-04 13:36:58 -0900
|
#include <PrecipitationScaling.hh>
Public Member Functions | |
PrecipitationScaling (std::shared_ptr< const Grid > g, std::shared_ptr< AtmosphereModel > in) | |
virtual | ~PrecipitationScaling ()=default |
Public Member Functions inherited from pism::atmosphere::AtmosphereModel | |
AtmosphereModel (std::shared_ptr< const Grid > g) | |
AtmosphereModel (std::shared_ptr< const Grid > g, std::shared_ptr< AtmosphereModel > input) | |
virtual | ~AtmosphereModel ()=default |
void | init (const Geometry &geometry) |
void | update (const Geometry &geometry, double t, double dt) |
const array::Scalar & | precipitation () const |
Sets result to the mean precipitation, in "kg m-2 second-1". More... | |
const array::Scalar & | air_temperature () const |
Sets result to the mean near-surface air temperature, in degrees Kelvin. More... | |
void | begin_pointwise_access () const |
void | end_pointwise_access () const |
void | init_timeseries (const std::vector< double > &ts) const |
void | precip_time_series (int i, int j, std::vector< double > &result) const |
Sets a pre-allocated N-element array "result" to the time-series of ice-equivalent precipitation (m/s) at the point i,j on the grid. More... | |
void | temp_time_series (int i, int j, std::vector< double > &result) const |
Sets a pre-allocated N-element array "result" to the time-series of near-surface air temperature (degrees Kelvin) at the point i,j on the grid. Times (in years) are specified in ts. NB! Has to be surrounded by begin_pointwise_access() and end_pointwise_access() More... | |
Public Member Functions inherited from pism::Component | |
Component (std::shared_ptr< const Grid > grid) | |
virtual | ~Component ()=default |
DiagnosticList | diagnostics () const |
TSDiagnosticList | ts_diagnostics () const |
std::shared_ptr< const Grid > | grid () const |
const Time & | time () const |
const Profiling & | profiling () const |
void | define_model_state (const File &output) const |
Define model state variables in an output file. More... | |
void | write_model_state (const File &output) const |
Write model state variables to an output file. More... | |
MaxTimestep | max_timestep (double t) const |
Reports the maximum time-step the model can take at time t. More... | |
Protected Member Functions | |
void | init_impl (const Geometry &geometry) |
void | update_impl (const Geometry &geometry, double t, double dt) |
void | init_timeseries_impl (const std::vector< double > &ts) const |
const array::Scalar & | precipitation_impl () const |
void | precip_time_series_impl (int i, int j, std::vector< double > &values) const |
Protected Member Functions inherited from pism::atmosphere::AtmosphereModel | |
virtual void | define_model_state_impl (const File &output) const |
The default (empty implementation). More... | |
virtual void | write_model_state_impl (const File &output) const |
The default (empty implementation). More... | |
virtual MaxTimestep | max_timestep_impl (double my_t) const |
virtual const array::Scalar & | air_temperature_impl () const |
virtual void | begin_pointwise_access_impl () const |
virtual void | end_pointwise_access_impl () const |
virtual void | temp_time_series_impl (int i, int j, std::vector< double > &result) const |
virtual DiagnosticList | diagnostics_impl () const |
virtual TSDiagnosticList | ts_diagnostics_impl () const |
Protected Member Functions inherited from pism::Component | |
void | regrid (const std::string &module_name, array::Array &variable, RegriddingFlag flag=NO_REGRID_WITHOUT_REGRID_VARS) |
Protected Attributes | |
double | m_exp_factor |
std::shared_ptr< ScalarForcing > | m_forcing |
std::vector< double > | m_scaling_values |
std::shared_ptr< array::Scalar > | m_precipitation |
Protected Attributes inherited from pism::atmosphere::AtmosphereModel | |
std::vector< double > | m_ts_times |
std::shared_ptr< AtmosphereModel > | m_input_model |
Protected Attributes inherited from pism::Component | |
const std::shared_ptr< const Grid > | m_grid |
grid used by this component More... | |
const Config::ConstPtr | m_config |
configuration database used by this component More... | |
const units::System::Ptr | m_sys |
unit system used by this component More... | |
const Logger::ConstPtr | m_log |
logger (for easy access) More... | |
Additional Inherited Members | |
Protected Types inherited from pism::Component | |
enum | RegriddingFlag { REGRID_WITHOUT_REGRID_VARS , NO_REGRID_WITHOUT_REGRID_VARS } |
This flag determines whether a variable is read from the -regrid_file file even if it is not listed among variables in -regrid_vars . More... | |
Static Protected Member Functions inherited from pism::atmosphere::AtmosphereModel | |
static std::shared_ptr< array::Scalar > | allocate_temperature (std::shared_ptr< const Grid > grid) |
static std::shared_ptr< array::Scalar > | allocate_precipitation (std::shared_ptr< const Grid > grid) |
Scaling precipitation using air temperature offsets
This class implements the adjustment used to capture the influence of changing air temperature on precipitation. It uses scalar temperature offsets read from a file as an input.
\[ P_{G}(x,y,t) = P_{G}(x,y,0)exp\left[\frac{0.169}{d}\left({\Delta}T(t)+ {\Delta}T_{SC}(t)\right)\right] \]
where \(P_G(x,y,0)\) is the precipitation for the present Greenland ice sheet, obtained from the atmosphere model used as an input of this class. The time dependent precipitation is \(P_G(x,y,t)\), \(d\) is the \({\delta}_{18}\) conversion factor of \(2.4^{\circ}C/\frac{0}{00}\), and \({\Delta}T_{SC}\) is a correction term for the change of altitude of the central dome during the Greenland ice sheet's evolution. The coefficient " @f$ 0.169/d @f$ " corresponds to a 7.3% change of precipitation rate for every \(1^{\circ}C\) of temperature change (Huybrechts et al. 2002).
One possible scheme for \({\Delta}T_{SC}(t)\) (used in PISM) is to take it to be zero, which regards the height correction as belonging to the set of uncertainties related to the conversion between isotopic and temperature signals.
Definition at line 56 of file PrecipitationScaling.hh.