19#include "pism/coupler/atmosphere/Delta_P.hh"
21#include "pism/util/Config.hh"
22#include "pism/util/ScalarForcing.hh"
23#include "pism/coupler/util/options.hh"
24#include "pism/util/array/Forcing.hh"
25#include "pism/util/Logger.hh"
26#include "pism/util/io/IO_Flags.hh"
35 prefix =
"atmosphere.delta_P",
36 variable_name =
"delta_P",
37 long_name =
"precipitation offsets",
38 units =
"kg m^-2 second^-1",
39 external_units =
"kg m^-2 year^-1";
48 bool scalar = input.
dimensions(variable_name).size() == 1;
54 units, external_units,
57 auto buffer_size =
m_config->get_number(
"input.forcing.buffer_size");
63 static_cast<unsigned int>(buffer_size),
69 .output_units(external_units);
79 "* Initializing precipitation forcing using scalar offsets...\n");
94 for (
unsigned int k = 0;
k < ts.size(); ++
k) {
151 for (
size_t k = 0;
k < result.size(); ++
k) {
std::shared_ptr< const Grid > grid() const
std::shared_ptr< const Config > m_config
configuration database used by this component
const std::shared_ptr< const Grid > m_grid
grid used by this component
std::shared_ptr< const Logger > m_log
logger (for easy access)
std::vector< std::string > dimensions(const std::string &variable_name) const
High-level PISM I/O class.
virtual void init_timeseries_impl(const std::vector< double > &ts) const
std::shared_ptr< AtmosphereModel > m_input_model
static std::shared_ptr< array::Scalar > allocate_precipitation(std::shared_ptr< const Grid > grid)
A purely virtual class defining the interface of a PISM Atmosphere Model.
void precip_time_series_impl(int i, int j, std::vector< double > &result) const
void init_timeseries_impl(const std::vector< double > &ts) const
const array::Scalar & precipitation_impl() const
void end_pointwise_access_impl() const
void init_impl(const Geometry &geometry)
void begin_pointwise_access_impl() const
std::shared_ptr< ScalarForcing > m_1d_offsets
std::vector< double > m_offset_values
std::shared_ptr< array::Forcing > m_2d_offsets
void update_impl(const Geometry &geometry, double t, double dt)
Delta_P(std::shared_ptr< const Grid > g, std::shared_ptr< AtmosphereModel > in)
std::shared_ptr< array::Scalar > m_precipitation
@ PISM_READONLY
open an existing file for reading only