diff --git a/docs/src/changelog.md b/docs/src/changelog.md index 2f65cb8a2..44812af88 100644 --- a/docs/src/changelog.md +++ b/docs/src/changelog.md @@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `BMI.get_time_units` now gets called on the model rather than the type, like all other BMI functions, except `BMI.initialize`. Also it returns "s" instead of "seconds since 1970-01-01T00:00:00", in line with the BMI specification. +- Added the `interception` component to total actual evapotranspiration `actevap` of `SBM` + (was defined as the sum of soil evaporation, transpiration and open water evaporation). ### Changed - The time values returned in the BMI interface are no longer in seconds since 1970, but in diff --git a/docs/src/model_docs/params_vertical.md b/docs/src/model_docs/params_vertical.md index d8f3033e0..56bac933c 100644 --- a/docs/src/model_docs/params_vertical.md +++ b/docs/src/model_docs/params_vertical.md @@ -77,7 +77,7 @@ specific_leaf = "Sl" | `transpiration` | transpiration | mm Δt``^{-1}`` | - | | `ae_ustore` | actual evaporation from unsaturated store | mm Δt``^{-1}`` | - | | `interception` | interception | mm Δt``^{-1}`` | - | -| `soilevap` | soil evaporation from unsaturated store | mm Δt``^{-1}`` | - | +| `soilevap` | total soil evaporation from unsaturated and saturated store | mm Δt``^{-1}`` | - | | `soilevapsat` | soil evaporation from saturated store | mm Δt``^{-1}`` | - | | `actcapflux` | actual capillary rise | mm Δt``^{-1}`` | - | | `actevapsat` | actual transpiration from saturated store | mm Δt``^{-1}`` | - | diff --git a/src/sbm.jl b/src/sbm.jl index 5f46ec9ad..f0d8d24b1 100644 --- a/src/sbm.jl +++ b/src/sbm.jl @@ -86,7 +86,7 @@ ae_ustore::Vector{T} # Interception [mm Δt⁻¹] interception::Vector{T} - # Soil evaporation from unsaturated store [mm Δt⁻¹] + # Soil evaporation from unsaturated and saturated store [mm Δt⁻¹] soilevap::Vector{T} # Soil evaporation from saturated store [mm Δt⁻¹] soilevapsat::Vector{T} @@ -933,7 +933,7 @@ function update_until_recharge(sbm::SBM, config) # recharge (mm) for saturated zone recharge = (transfer - actcapflux - actleakage - actevapsat - soilevapsat) transpiration = actevapsat + actevapustore - actevap = soilevap + transpiration + ae_openw_r + ae_openw_l + actevap = soilevap + transpiration + ae_openw_r + ae_openw_l + sbm.interception[i] # update the outputs and states sbm.n_unsatlayers[i] = n_usl