23 #include "pism/coupler/ocean/CompleteOceanModel.hh"
25 #include "pism/coupler/ocean/PicoGeometry.hh"
40 Pico(std::shared_ptr<const Grid>
g);
68 std::vector<double> &temperature,
69 std::vector<double> &salinity)
const;
76 const std::vector<double> &basin_temperature,
77 const std::vector<double> &basin_salinity,
119 std::vector<double> &result)
const;
124 std::vector<double> &result)
const;
High-level PISM I/O class.
Combines the max. time step with the flag indicating if a restriction is active. Makes is possible to...
"Cell type" mask. Adds convenience methods to array::Scalar.
void set_ocean_input_fields(const PicoPhysics &physics, const array::Scalar &ice_thickness, const array::CellType1 &mask, const array::Scalar &basin_mask, const array::Scalar &shelf_mask, const std::vector< double > &basin_temperature, const std::vector< double > &basin_salinity, array::Scalar &Toc_box0, array::Scalar &Soc_box0) const
Set ocean ocean input from box 0 as boundary condition for box 1.
std::shared_ptr< array::Forcing > m_salinity_ocean
void write_model_state_impl(const File &output) const
The default (empty implementation).
MaxTimestep max_timestep_impl(double t) const
void process_box1(const PicoPhysics &physics, const array::Scalar &ice_thickness, const array::Scalar &shelf_mask, const array::Scalar &box_mask, const array::Scalar &Toc_box0, const array::Scalar &Soc_box0, array::Scalar &basal_melt_rate, array::Scalar &basal_temperature, array::Scalar &T_star, array::Scalar &Toc, array::Scalar &Soc, array::Scalar &overturning)
void compute_box_area(int box_id, const array::Scalar &shelf_mask, const array::Scalar &box_mask, std::vector< double > &result) const
void define_model_state_impl(const File &output) const
The default (empty implementation).
Pico(std::shared_ptr< const Grid > g)
array::Scalar1 m_basal_melt_rate
void update_impl(const Geometry &geometry, double t, double dt)
void compute_ocean_input_per_basin(const PicoPhysics &physics, const array::Scalar &basin_mask, const array::Scalar &continental_shelf_mask, const array::Scalar &salinity_ocean, const array::Scalar &theta_ocean, std::vector< double > &temperature, std::vector< double > &salinity) const
Compute temperature and salinity input from ocean data by averaging.
void compute_box_average(int box_id, const array::Scalar &field, const array::Scalar &shelf_mask, const array::Scalar &box_mask, std::vector< double > &result) const
std::shared_ptr< array::Forcing > m_theta_ocean
void process_other_boxes(const PicoPhysics &physics, const array::Scalar &ice_thickness, const array::Scalar &shelf_mask, const array::Scalar &box_mask, array::Scalar &basal_melt_rate, array::Scalar &basal_temperature, array::Scalar &T_star, array::Scalar &Toc, array::Scalar &Soc) const
void init_impl(const Geometry &geometry)
void beckmann_goosse(const PicoPhysics &physics, const array::Scalar &ice_thickness, const array::Scalar &shelf_mask, const array::CellType &cell_type, const array::Scalar &Toc_box0, const array::Scalar &Soc_box0, array::Scalar &basal_melt_rate, array::Scalar &basal_temperature, array::Scalar &Toc, array::Scalar &Soc)
std::map< std::string, Diagnostic::Ptr > diagnostics_impl() const
array::Scalar m_overturning
bool ocean(int M)
An ocean cell (floating ice or ice-free).