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 | Private Member Functions | Private Attributes | List of all members
pism::ocean::Runoff_SMB Class Reference

#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::Scalarshelf_base_temperature () const
 
const array::Scalarshelf_base_mass_flux () const
 
const array::Scalaraverage_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 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...
 

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::Scalarm_shelf_base_mass_flux
 
std::unique_ptr< ScalarForcingm_forcing
 

Additional Inherited Members

- Static Public Member Functions inherited from pism::ocean::OceanModel
static std::shared_ptr< array::Scalarallocate_shelf_base_temperature (std::shared_ptr< const Grid > g)
 
static std::shared_ptr< array::Scalarallocate_shelf_base_mass_flux (std::shared_ptr< const Grid > g)
 
static std::shared_ptr< array::Scalarallocate_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). More...
 
virtual void write_model_state_impl (const File &output) const
 The default (empty implementation). More...
 
virtual DiagnosticList diagnostics_impl () const
 
virtual TSDiagnosticList ts_diagnostics_impl () const
 
virtual const array::Scalarshelf_base_temperature_impl () const
 
virtual const array::Scalarshelf_base_mass_flux_impl () const
 
virtual const array::Scalaraverage_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< OceanModelm_input_model
 
std::shared_ptr< array::Scalarm_water_column_pressure
 
- 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...
 

Detailed Description

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.


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