SnowAge_grain Subroutine

public subroutine SnowAge_grain(bounds, num_snowc, filter_snowc, num_nosnowc, filter_nosnowc, waterflux_inst, waterstate_inst, temperature_inst, atm2lnd_inst)

* 1. DRY SNOW AGING ***

* 2. WET SNOW AGING ***

We are assuming wet and dry evolution occur simultaneously, and the contributions from both can be summed. This is justified by setting the linear offset constant C1_liq_Brun89 to zero [Brun, 1989]

* 3. SNOWAGE SCALING (TURNED OFF BY DEFAULT) *****

Multiply rate of change of effective radius by some constant, xdrdt * 4. INCREMENT EFFECTIVE RADIUS, ACCOUNTING FOR: *** DRY AGING WET AGING FRESH SNOW RE-FREEZING

new snowfall [kg/m2] * 5. CHECK BOUNDARIES ***

boundary check

Arguments

Type IntentOptional Attributes Name
type(bounds_type), intent(in) :: bounds
integer, intent(in) :: num_snowc
integer, intent(in) :: filter_snowc(:)
integer, intent(in) :: num_nosnowc
integer, intent(in) :: filter_nosnowc(:)
type(waterflux_type), intent(in) :: waterflux_inst
type(waterstate_type), intent(inout) :: waterstate_inst
type(temperature_type), intent(inout) :: temperature_inst
type(atm2lnd_type), intent(in) :: atm2lnd_inst