20 #include "pism/regional/EnthalpyModel_Regional.hh"
26 std::shared_ptr<const Grid> grid,
27 std::shared_ptr<const stressbalance::StressBalance> stress_balance)
28 :
EnthalpyModel(grid, stress_balance), m_basal_melt_rate_stored(m_grid,
"bmr_stored") {
32 .
long_name(
"time-independent basal melt rate in the no-model-strip")
49 climatic_mass_balance, basal_heat_flux);
63 climatic_mass_balance,
73 unsigned int Mz =
m_grid->Mz();
84 for (
auto p =
m_grid->points(); p; p.next()) {
85 const int i = p.i(), j = p.j();
87 if (no_model_mask(i, j) > 0.5) {
92 for (
unsigned int k = 0;
k < Mz; ++
k) {
93 new_enthalpy[
k] = old_enthalpy[
k];
const std::shared_ptr< const Grid > m_grid
grid used by this component
High-level PISM I/O class.
Makes sure that we call begin_access() and end_access() for all accessed array::Arrays.
void copy_from(const Array2D< T > &source)
double * get_column(int i, int j)
SpatialVariableMetadata & metadata(unsigned int N=0)
Returns a reference to the SpatialVariableMetadata object containing metadata for the compoment N.
const array::Scalar & basal_melt_rate() const
Basal melt rate in grounded areas. (It is set to zero elsewhere.)
array::Array3D m_ice_enthalpy
array::Scalar m_basal_melt_rate
virtual void initialize_impl(const array::Scalar &basal_melt_rate, const array::Scalar &ice_thickness, const array::Scalar &surface_temperature, const array::Scalar &climatic_mass_balance, const array::Scalar &basal_heat_flux)
virtual void restart_impl(const File &input_file, int record)
EnthalpyModel_Regional(std::shared_ptr< const Grid > grid, std::shared_ptr< const stressbalance::StressBalance > stress_balance)
virtual void bootstrap_impl(const File &input_file, const array::Scalar &ice_thickness, const array::Scalar &surface_temperature, const array::Scalar &climatic_mass_balance, const array::Scalar &basal_heat_flux)
array::Scalar m_basal_melt_rate_stored
virtual void initialize_impl(const array::Scalar &basal_melt_rate, const array::Scalar &ice_thickness, const array::Scalar &surface_temperature, const array::Scalar &climatic_mass_balance, const array::Scalar &basal_heat_flux)
virtual void restart_impl(const File &input_file, int record)
virtual void bootstrap_impl(const File &input_file, const array::Scalar &ice_thickness, const array::Scalar &surface_temperature, const array::Scalar &climatic_mass_balance, const array::Scalar &basal_heat_flux)
virtual void update_impl(double t, double dt, const Inputs &inputs)=0
The enthalpy-based energy balance model.