22#include "pism/coupler/surface/EISMINTII.hh"
23#include "pism/util/ConfigInterface.hh"
24#include "pism/util/pism_options.hh"
25#include "pism/util/Grid.hh"
26#include "pism/util/MaxTimestep.hh"
42 "setting parameters for surface mass balance"
43 " and temperature in EISMINT II experiment %c ... \n",
47 m_S_b = convert(
m_sys, 1.0e-2 * 1e-3,
"year-1",
"second-1");
48 m_S_T = 1.67e-2 * 1e-3;
63 m_M_max = convert(
m_sys, 0.25,
"m year-1",
"m second-1");
81 m_M_max = convert(
m_sys, Mmax,
"m year-1",
"m second-1");
86 convert(
m_sys,
m_S_b,
"m second-1/m",
"m year-1/km"));
88 m_S_b = convert(
m_sys, Sb,
"m year-1/km",
"m second-1/m");
118 double cx = 0.0, cy = 0.0;
126 for (
auto p =
m_grid->points(); p; p.next()) {
127 const int i = p.i(), j = p.j();
129 const double r = sqrt(pow(
m_grid->x(i) - cx, 2) + pow(
m_grid->y(j) - cy, 2));
const units::System::Ptr m_sys
unit system used by this component
const Config::ConstPtr m_config
configuration database used by this component
const Logger::ConstPtr m_log
logger (for easy access)
const std::shared_ptr< const Grid > m_grid
grid used by this component
Combines the max. time step with the flag indicating if a restriction is active. Makes is possible to...
Makes sure that we call begin_access() and end_access() for all accessed array::Arrays.
EISMINTII(std::shared_ptr< const Grid > g, int experiment)
void update_impl(const Geometry &geometry, double t, double dt)
virtual MaxTimestep max_timestep_impl(double t) const
void init_impl(const Geometry &geometry)
void initialize_using_formulas()
void dummy_accumulation(const array::Scalar &smb, array::Scalar &result)
std::shared_ptr< array::Scalar > m_melt
std::shared_ptr< array::Scalar > m_runoff
void dummy_melt(const array::Scalar &smb, array::Scalar &result)
std::shared_ptr< array::Scalar > m_accumulation
void dummy_runoff(const array::Scalar &smb, array::Scalar &result)
double convert(System::Ptr system, double input, const std::string &spec1, const std::string &spec2)
Convert a quantity from unit1 to unit2.