22 #include "pism/coupler/ocean/CompleteOceanModel.hh"
29 GivenTH(std::shared_ptr<const Grid>
g);
69 double sea_water_salinity,
70 double sea_water_potential_temperature,
72 double *shelf_base_temperature_out,
73 double *shelf_base_melt_rate_out);
76 double sea_water_salinity,
77 double sea_water_potential_temperature,
79 double *shelf_base_salinity);
82 double sea_water_salinity,
83 double sea_water_potential_temperature,
85 double *shelf_base_salinity);
88 double sea_water_salinity,
89 double sea_water_potential_temperature,
91 double *shelf_base_salinity);
94 double sea_water_salinity,
95 double sea_water_potential_temperature,
97 double *shelf_base_salinity);
A class for storing and accessing PISM configuration flags and parameters.
Combines the max. time step with the flag indicating if a restriction is active. Makes is possible to...
Constants(const Config &config)
double gamma_S
Turbulent salt transfer coefficient:
double ice_thermal_diffusivity
double water_latent_heat_fusion
double shelf_top_surface_temperature
double ice_specific_heat_capacity
bool limit_salinity_range
double sea_water_specific_heat_capacity
double gamma_T
Turbulent heat transfer coefficient:
GivenTH(std::shared_ptr< const Grid > g)
virtual ~GivenTH()=default
void subshelf_salinity_diffusion_only(const Constants &constants, double sea_water_salinity, double sea_water_potential_temperature, double ice_thickness, double *shelf_base_salinity)
Compute basal salinity in the case of no basal melt and no freeze-on, with the diffusion-only tempera...
void subshelf_salinity_melt(const Constants &constants, double sea_water_salinity, double sea_water_potential_temperature, double ice_thickness, double *shelf_base_salinity)
std::shared_ptr< array::Forcing > m_salinity_ocean
std::shared_ptr< array::Forcing > m_theta_ocean
void subshelf_salinity_freeze_on(const Constants &constants, double sea_water_salinity, double sea_water_potential_temperature, double ice_thickness, double *shelf_base_salinity)
MaxTimestep max_timestep_impl(double t) const
void pointwise_update(const Constants &constants, double sea_water_salinity, double sea_water_potential_temperature, double ice_thickness, double *shelf_base_temperature_out, double *shelf_base_melt_rate_out)
Compute temperature and melt rate at the base of the shelf. Based on [HellmerOlbers1989] and [Holland...
void subshelf_salinity(const Constants &constants, double sea_water_salinity, double sea_water_potential_temperature, double ice_thickness, double *shelf_base_salinity)
Compute the basal salinity and make sure that it is consistent with the basal melt rate.
void update_impl(const Geometry &geometry, double t, double dt)
void init_impl(const Geometry &geometry)
bool ocean(int M)
An ocean cell (floating ice or ice-free).