|
PISM, A Parallel Ice Sheet Model 2.2.2-d6b3a29ca committed by Constantine Khrulev on 2025-03-28
|
A class implementing a temperature-index (positive degree-day) scheme to compute melt and runoff, and thus surface mass balance, from precipitation and air temperature. More...
#include <DEBMSimple.hh>
Inheritance diagram for pism::surface::DEBMSimple:Public Member Functions | |
| DEBMSimple (std::shared_ptr< const Grid > g, std::shared_ptr< atmosphere::AtmosphereModel > input) | |
| virtual | ~DEBMSimple ()=default |
| const array::Scalar & | snow_depth () const |
| const array::Scalar & | air_temp_sd () const |
| const array::Scalar & | accumulation_impl () const |
| const array::Scalar & | melt_impl () const |
| const array::Scalar & | runoff_impl () const |
| const array::Scalar & | insolation_driven_melt () const |
| const array::Scalar & | temperature_driven_melt () const |
| const array::Scalar & | offset_melt () const |
| const array::Scalar & | surface_albedo () const |
| const array::Scalar & | atmosphere_transmissivity () const |
| const DEBMSimplePointwise & | pointwise_model () const |
Public Member Functions inherited from pism::surface::SurfaceModel | |
| SurfaceModel (std::shared_ptr< const Grid > g) | |
| SurfaceModel (std::shared_ptr< const Grid > g, std::shared_ptr< SurfaceModel > input) | |
| SurfaceModel (std::shared_ptr< const Grid > g, std::shared_ptr< atmosphere::AtmosphereModel > atmosphere) | |
| virtual | ~SurfaceModel ()=default |
| void | init (const Geometry &geometry) |
| void | update (const Geometry &geometry, double t, double dt) |
| const array::Scalar & | accumulation () const |
| Returns accumulation. | |
| const array::Scalar & | layer_mass () const |
| Returns mass held in the surface layer. | |
| const array::Scalar & | layer_thickness () const |
| Returns thickness of the surface layer. Could be used to compute surface elevation as a sum of elevation of the top surface of the ice and surface layer (firn, etc) thickness. | |
| const array::Scalar & | liquid_water_fraction () const |
| Returns the liquid water fraction of the ice at the top ice surface. | |
| const array::Scalar & | mass_flux () const |
| const array::Scalar & | melt () const |
| Returns melt. | |
| const array::Scalar & | runoff () const |
| Returns runoff. | |
| const array::Scalar & | temperature () const |
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. | |
| void | write_model_state (const File &output) const |
| Write model state variables to an output file. | |
| MaxTimestep | max_timestep (double t) const |
| Reports the maximum time-step the model can take at time t. | |
Private Member Functions | |
| virtual void | init_impl (const Geometry &geometry) |
| virtual void | update_impl (const Geometry &geometry, double t, double dt) |
| virtual MaxTimestep | max_timestep_impl (double t) const |
| virtual void | define_model_state_impl (const File &output) const |
| The default (empty implementation). | |
| virtual void | write_model_state_impl (const File &output) const |
| The default (empty implementation). | |
| virtual DiagnosticList | diagnostics_impl () const |
| virtual const array::Scalar & | mass_flux_impl () const |
| virtual const array::Scalar & | temperature_impl () const |
| double | compute_next_balance_year_start (double time) |
| double | snow_accumulation (double T, double P) const |
| Extracts snow accumulation from mixed (snow and rain) precipitation using a temperature threshold with a linear transition. | |
| unsigned int | timeseries_length (double dt) const |
| The number of points for temperature and precipitation time-series. | |
Private Attributes | |
| DEBMSimplePointwise | m_model |
| double | m_next_balance_year_start |
| array::Scalar | m_mass_flux |
| cached surface mass balance rate | |
| std::shared_ptr< array::Scalar > | m_temperature |
| array::Scalar | m_snow_depth |
| snow depth (reset once a year) | |
| std::shared_ptr< array::Forcing > | m_air_temp_sd |
| standard deviation of the daily variability of the air temperature | |
| std::shared_ptr< array::Scalar > | m_accumulation |
| total accumulation during the last time step | |
| std::shared_ptr< array::Scalar > | m_melt |
| total melt during the last time step | |
| std::shared_ptr< array::Scalar > | m_runoff |
| total runoff during the last time step | |
| array::Scalar | m_temperature_driven_melt |
| total temperature melt during the last time step | |
| array::Scalar | m_insolation_driven_melt |
| total insolation melt during the last time step | |
| array::Scalar | m_offset_melt |
| total offset_melt during the last timestep | |
| array::Scalar | m_surface_albedo |
| albedo field | |
| std::shared_ptr< array::Forcing > | m_input_albedo |
| if albedo is given as input field | |
| array::Scalar | m_transmissivity |
| transmissivity field | |
| double | m_year_length |
| unsigned int | m_n_per_year |
| number of small time steps per year | |
| bool | m_sd_use_param |
| double | m_sd_param_a |
| double | m_sd_param_b |
| bool | m_precip_as_snow |
| interpret all the precipitation as snow (no rain) | |
| double | m_Tmin |
| the temperature below which all precipitation is snow | |
| double | m_Tmax |
| the temperature above which all precipitation is rain | |
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... | |
Protected Member Functions inherited from pism::surface::SurfaceModel | |
| virtual const array::Scalar & | layer_mass_impl () const |
| virtual const array::Scalar & | layer_thickness_impl () const |
| virtual const array::Scalar & | liquid_water_fraction_impl () const |
| virtual TSDiagnosticList | ts_diagnostics_impl () const |
| void | dummy_accumulation (const array::Scalar &smb, array::Scalar &result) |
| void | dummy_melt (const array::Scalar &smb, array::Scalar &result) |
| void | dummy_runoff (const array::Scalar &smb, array::Scalar &result) |
Protected Member Functions inherited from pism::Component | |
| void | regrid (const std::string &module_name, array::Array &variable, RegriddingFlag flag=NO_REGRID_WITHOUT_REGRID_VARS) |
Static Protected Member Functions inherited from pism::surface::SurfaceModel | |
| static std::shared_ptr< array::Scalar > | allocate_layer_mass (std::shared_ptr< const Grid > grid) |
| static std::shared_ptr< array::Scalar > | allocate_layer_thickness (std::shared_ptr< const Grid > grid) |
| static std::shared_ptr< array::Scalar > | allocate_liquid_water_fraction (std::shared_ptr< const Grid > grid) |
| static std::shared_ptr< array::Scalar > | allocate_mass_flux (std::shared_ptr< const Grid > grid) |
| static std::shared_ptr< array::Scalar > | allocate_temperature (std::shared_ptr< const Grid > grid) |
| static std::shared_ptr< array::Scalar > | allocate_accumulation (std::shared_ptr< const Grid > grid) |
| static std::shared_ptr< array::Scalar > | allocate_melt (std::shared_ptr< const Grid > grid) |
| static std::shared_ptr< array::Scalar > | allocate_runoff (std::shared_ptr< const Grid > grid) |
Protected Attributes inherited from pism::surface::SurfaceModel | |
| std::shared_ptr< array::Scalar > | m_liquid_water_fraction |
| std::shared_ptr< array::Scalar > | m_layer_mass |
| std::shared_ptr< array::Scalar > | m_layer_thickness |
| std::shared_ptr< array::Scalar > | m_accumulation |
| std::shared_ptr< array::Scalar > | m_melt |
| std::shared_ptr< array::Scalar > | m_runoff |
| std::shared_ptr< SurfaceModel > | m_input_model |
| std::shared_ptr< atmosphere::AtmosphereModel > | m_atmosphere |
Protected Attributes inherited from pism::Component | |
| const std::shared_ptr< const Grid > | m_grid |
| grid used by this component | |
| const Config::ConstPtr | m_config |
| configuration database used by this component | |
| const units::System::Ptr | m_sys |
| unit system used by this component | |
| const Logger::ConstPtr | m_log |
| logger (for easy access) | |
A class implementing a temperature-index (positive degree-day) scheme to compute melt and runoff, and thus surface mass balance, from precipitation and air temperature.
Temperature-index schemes are far from perfect as a way of modeling surface mass balance on ice sheets which experience surface melt, but they are known to have reasonable data requirements and to do a good job when tuned appropriately [Hock05].
Definition at line 39 of file DEBMSimple.hh.