if (ice_vol > 0.0) {
// ice_vol in km3 and ice_area in km2
ice_vol *= cell_area / MMPERMETER / METERS_PER_KM;
ice_area_old *= veg_con[iveg].Cv * cell_area;
Since we already multiplied ice_area_old by veg_con[iveg].Cv in the earlier loop, I don’t think we need to do it again (we don’t do it for ice_vol either, so I think that the second ice_area_old should just be calculated as ice_area_old *= cell_area;. (note that cell_area is already in units of km2 (first calculation in this function). In the end, I am not sure this affects the area hugely (since we calculate the new ice area in part on glacier volume, which is not affected by this), but if it is wrong we should fix it.
Via slack discussion with Bart Nijssen, Joe Hamman, and Naoki Mizukami:
From Bart Nijssen:
In: https://github.com/UW-Hydro/VIC/blob/support/VIC.4.2.glacier/src/glacier.c#L74-L79 We determine the amount of glacier volume and area:
then a few lines later (https://github.com/UW-Hydro/VIC/blob/support/VIC.4.2.glacier/src/glacier.c#L81-L84) we scale volume and area to get actual volumes and areas so that we can apply the scaling relationships:
Since we already multiplied ice_area_old by veg_con[iveg].Cv in the earlier loop, I don’t think we need to do it again (we don’t do it for ice_vol either, so I think that the second ice_area_old should just be calculated as ice_area_old *= cell_area;. (note that cell_area is already in units of km2 (first calculation in this function). In the end, I am not sure this affects the area hugely (since we calculate the new ice area in part on glacier volume, which is not affected by this), but if it is wrong we should fix it.