cory_pettijohn@oregonstate_edu
New Member
Hi, I'm worried there may be a bug in how CLM3.5's atmdrvMod.F90 calculates the fraction of total precip. falling as liquid, or 'flfall', using the 1956 'Snow Hydrology'. I don't have this publication on hand, but I am assuming that flfall is simply a linear trend from 0 to 1 between freezing air temp. and air temp + tcrit (273.16 K + 2.5 K). The code reads:
%%%%%% START COPY FROM atmdrvMod.F90 %%%%%%
! Snow and Rain
! Set upper limit of air temperature for snowfall at 275.65K.
! This cut-off was selected based on Fig. 1, Plate 3-1, of Snow
! Hydrology (1956).
if (aV_atm_d2a%rAttr(iprcxy,g1) + aV_atm_d2a%rAttr(iprlxy,g1) > 0._r8) then
if (atm_a2l%forc_t(g) > (SHR_CONST_TKFRZ + tcrit)) then
atm_a2l%forc_rain(g) = aV_atm_d2a%rAttr(iprcxy,g1) + aV_atm_d2a%rAttr(iprlxy,g1)
atm_a2l%forc_snow(g) = 0._r8
atm_a2l%flfall(g) = 1._r8
else
atm_a2l%forc_rain(g) = 0._r8
atm_a2l%forc_snow(g) = aV_atm_d2a%rAttr(iprcxy,g1) + aV_atm_d2a%rAttr(iprlxy,g1)
if (atm_a2l%forc_t(g)
%%%%%% START COPY FROM atmdrvMod.F90 %%%%%%
! Snow and Rain
! Set upper limit of air temperature for snowfall at 275.65K.
! This cut-off was selected based on Fig. 1, Plate 3-1, of Snow
! Hydrology (1956).
if (aV_atm_d2a%rAttr(iprcxy,g1) + aV_atm_d2a%rAttr(iprlxy,g1) > 0._r8) then
if (atm_a2l%forc_t(g) > (SHR_CONST_TKFRZ + tcrit)) then
atm_a2l%forc_rain(g) = aV_atm_d2a%rAttr(iprcxy,g1) + aV_atm_d2a%rAttr(iprlxy,g1)
atm_a2l%forc_snow(g) = 0._r8
atm_a2l%flfall(g) = 1._r8
else
atm_a2l%forc_rain(g) = 0._r8
atm_a2l%forc_snow(g) = aV_atm_d2a%rAttr(iprcxy,g1) + aV_atm_d2a%rAttr(iprlxy,g1)
if (atm_a2l%forc_t(g)