Program Listing for File SMU2IceAlbedo.cpp¶
↰ Return to documentation for file (src/SMU2IceAlbedo.cpp)
#include "include/SMU2IceAlbedo.hpp"
#include "include/NextsimPhysics.hpp"
#include <cmath>
namespace Nextsim {
/* This scheme mimics Semtner 76 and Maykut and Untersteiner 71 when
* alb_ice = 0.64 and alb_sn = 0.85 */
const double ICE_ALBEDO = 0.64;
const double SNOW_ALBEDO = 0.85;
double SMU2IceAlbedo::albedo(double temperature, double snowThickness)
{
if (snowThickness > 0.) {
return std::fmin(
SNOW_ALBEDO, ICE_ALBEDO + (SNOW_ALBEDO - ICE_ALBEDO) * snowThickness / 0.2);
} else {
return ICE_ALBEDO + 0.4 * (1 - ICE_ALBEDO) * NextsimPhysics::i0();
}
}
}