|
PISM, A Parallel Ice Sheet Model 2.2.2-d6b3a29ca committed by Constantine Khrulev on 2025-03-28
|
#include <Runoff_SMB.hh>
Inheritance diagram for pism::ocean::Runoff_SMB:Public Member Functions | |
| Runoff_SMB (std::shared_ptr< const Grid > g, std::shared_ptr< OceanModel > in) | |
| virtual | ~Runoff_SMB () |
Public Member Functions inherited from pism::ocean::OceanModel | |
| OceanModel (std::shared_ptr< const Grid > g, std::shared_ptr< OceanModel > input) | |
| OceanModel (std::shared_ptr< const Grid > g) | |
| virtual | ~OceanModel ()=default |
| void | init (const Geometry &geometry) |
| void | update (const Geometry &geometry, double t, double dt) |
| const array::Scalar & | shelf_base_temperature () const |
| const array::Scalar & | shelf_base_mass_flux () const |
| const array::Scalar & | average_water_column_pressure () 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 | |
| void | init_impl (const Geometry &geometry) |
| void | update_impl (const Geometry &geometry, double t, double dt) |
| void | mass_flux (double delta_T, array::Scalar &result) const |
Private Attributes | |
| double | m_temp_to_runoff_a |
| double | m_runoff_to_ocean_melt_b |
| double | m_runoff_to_ocean_melt_power_alpha |
| double | m_runoff_to_ocean_melt_power_beta |
| std::shared_ptr< array::Scalar > | m_shelf_base_mass_flux |
| std::unique_ptr< ScalarForcing > | m_forcing |
Additional Inherited Members | |
Static Public Member Functions inherited from pism::ocean::OceanModel | |
| static std::shared_ptr< array::Scalar > | allocate_shelf_base_temperature (std::shared_ptr< const Grid > g) |
| static std::shared_ptr< array::Scalar > | allocate_shelf_base_mass_flux (std::shared_ptr< const Grid > g) |
| static std::shared_ptr< array::Scalar > | allocate_water_column_pressure (std::shared_ptr< const Grid > g) |
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::ocean::OceanModel | |
| 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 TSDiagnosticList | ts_diagnostics_impl () const |
| virtual const array::Scalar & | shelf_base_temperature_impl () const |
| virtual const array::Scalar & | shelf_base_mass_flux_impl () const |
| virtual const array::Scalar & | average_water_column_pressure_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 inherited from pism::ocean::OceanModel | |
| std::shared_ptr< OceanModel > | m_input_model |
| std::shared_ptr< array::Scalar > | m_water_column_pressure |
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) | |
Modify the shelf base mass flux using a function of air temperature changes.
This modifier multiplies the input shelf base mass flux by a factor \( F \), which depends on the change in the global average near-surface air temperature =delta_T= read from an input file.
The parameterization described below is inspired by [Xu2013] with the relationship between air temperatures and subglacial runoff flux parameterized using a linear function (a fit to results of GCM simulations).
\[ F(\Delta T) = 1 + B \times (a \Delta T)^\alpha \times (\Delta T)^\beta. \]
Here \( a \), \( B \), \( \alpha \), and \( \beta \) are constants.
The paper [Xu2013] approximates the sub-shelf melt rate as a function of ocean temperature above the freezing point and the subglacial runoff.
We assume that the lag between the air and ocean temperatures is negligible and a change in air temperature is directly translated into a change in ocean temperature.
Definition at line 53 of file Runoff_SMB.hh.