diff --git a/cosipy/cpkernel/init.py b/cosipy/cpkernel/init.py index 264b5ec2..75018934 100644 --- a/cosipy/cpkernel/init.py +++ b/cosipy/cpkernel/init.py @@ -26,7 +26,11 @@ def init_snowpack(DATA): # Check for WRF data if "SNOWHEIGHT" in DATA: - initial_snowheight = DATA.SNOWHEIGHT.values + if DATA.SNOWHEIGHT.values.size > 1: + initial_snowheight = DATA.SNOWHEIGHT.values[0] + else: + initial_snowheight = DATA.SNOWHEIGHT.values + if np.isnan(initial_snowheight): initial_snowheight = 0.0 else: diff --git a/cosipy/cpkernel/io.py b/cosipy/cpkernel/io.py index 302df915..bdb2688a 100644 --- a/cosipy/cpkernel/io.py +++ b/cosipy/cpkernel/io.py @@ -249,7 +249,7 @@ def check_input_data(self) -> bool: "PRES": (1080.0, 400.0), "LWin": (400.0, 200.0), "SNOWFALL": (0.1, 0.0), - "SLOPE": (0.0, 90.0), + "SLOPE": (90.0, 0.0), } for key, bounds in data_bounds.items(): diff --git a/cosipy/modules/albedo.py b/cosipy/modules/albedo.py index 2e6afd3e..2767f73a 100644 --- a/cosipy/modules/albedo.py +++ b/cosipy/modules/albedo.py @@ -242,9 +242,8 @@ def method_Bougamont(GRID, surface_temperature: float, albedo_snow: float): temperature-dependant decay timescales.""" # slightly faster than one-liner - t_star_days = float(t_star) * float(dt_days) delta_albedo = albedo_snow - albedo_firn - albedo_snow -= delta_albedo / t_star_days + albedo_snow -= delta_albedo * float(dt_days) / float(t_star) # Reset if snowfall in current timestep if hours_since_snowfall == 0: diff --git a/cosipy/tests/test_parameterisation_albedo.py b/cosipy/tests/test_parameterisation_albedo.py index 89755767..489e0393 100644 --- a/cosipy/tests/test_parameterisation_albedo.py +++ b/cosipy/tests/test_parameterisation_albedo.py @@ -107,8 +107,11 @@ def test_updateAlbedo_method( surface_temperature=270.0, albedo_snow=Constants.albedo_fresh_snow, ) - assert isinstance(surface_albedo, float) - assert isinstance(snow_albedo, float) + for albedo in [surface_albedo, snow_albedo]: + assert isinstance(albedo, float) + assert 0.0 <= albedo <= 1.0 + + @pytest.mark.parametrize("arg_method", ["Wrong Method", "", None]) def test_updateAlbedo_method_error(