PISM, A Parallel Ice Sheet Model  stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
pism::atmosphere::PrecipitationScaling Class Reference

#include <PrecipitationScaling.hh>

+ Inheritance diagram for pism::atmosphere::PrecipitationScaling:

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::Scalarprecipitation () const
 Sets result to the mean precipitation, in "kg m-2 second-1". More...
 
const array::Scalarair_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 Gridgrid () const
 
const Timetime () const
 
const Profilingprofiling () 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::Scalarprecipitation_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::Scalarair_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< ScalarForcingm_forcing
 
std::vector< double > m_scaling_values
 
std::shared_ptr< array::Scalarm_precipitation
 
- Protected Attributes inherited from pism::atmosphere::AtmosphereModel
std::vector< double > m_ts_times
 
std::shared_ptr< AtmosphereModelm_input_model
 
- Protected Attributes inherited from pism::Component
const std::shared_ptr< const Gridm_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::Scalarallocate_temperature (std::shared_ptr< const Grid > grid)
 
static std::shared_ptr< array::Scalarallocate_precipitation (std::shared_ptr< const Grid > grid)
 

Detailed Description

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.


The documentation for this class was generated from the following files: