19#ifndef PISM_DEBM_SIMPLE_POINTWISE_H
20#define PISM_DEBM_SIMPLE_POINTWISE_H
25#include "pism/util/Mask.hh"
26#include "pism/util/ScalarForcing.hh"
81 double distance_factor,
83 double T_std_deviation,
85 double surface_elevation,
90 double accumulation)
const;
96 double distance_factor,
97 double latitude_degrees)
const;
101 static double hour_angle(
double phi,
double latitude,
double declination);
110 double latitude,
double declination);
double albedo(double melt_rate, MaskValue cell_type) const
static double insolation(double solar_constant, double distance_factor, double hour_angle, double latitude, double declination)
double m_melt_threshold_temp
double m_transmissivity_slope
slope used in the linear parameterization of transmissivity
std::unique_ptr< ScalarForcing > m_eccentricity
double m_constant_obliquity
std::unique_ptr< ScalarForcing > m_obliquity
double m_refreeze_fraction
refreeze fraction
double m_positive_threshold_temperature
threshold temperature for the computation of temperature-driven melt
double eccentricity(double time) const
static double CalovGreveIntegrand(double sigma, double temperature)
static double solar_longitude(double year_fraction, double eccentricity, double perihelion_longitude)
DEBMSimpleMelt melt(double declination, double distance_factor, double dt, double T_std_deviation, double T, double surface_elevation, double lat, double albedo) const
static double distance_factor_paleo(double eccentricity, double true_anomaly)
double m_albedo_slope
slope used in the linear parameterization of the albedo as a function of melt
double insolation_diagnostic(double declination, double distance_factor, double latitude_degrees) const
bool m_refreeze_ice_melt
refreeze melted ice
double perihelion_longitude(double time) const
double m_solar_constant
the solar constant
static double hour_angle(double phi, double latitude, double declination)
static double distance_factor_present_day(double year_fraction)
double m_constant_perihelion_longitude
double m_phi
minimum solar elevation angle above which melt is possible
static double solar_declination_paleo(double obliquity, double solar_longitude)
double atmosphere_transmissivity(double elevation) const
DEBMSimpleOrbitalParameters orbital_parameters(double time) const
double m_constant_eccentricity
std::unique_ptr< ScalarForcing > m_perihelion_longitude
static double solar_declination_present_day(double year_fraction)
DEBMSimpleChanges step(double ice_thickness, double max_melt, double snow_depth, double accumulation) const
Compute the surface mass balance at a location from the amount of melted snow and the solid accumulat...
std::shared_ptr< const Time > m_time
double m_L
latent heat of fusion
double obliquity(double time) const
double m_transmissivity_intercept
A dEBM-simple implementation.