diff --git a/src/MizurouteV1.jl b/src/MizurouteV1.jl index 45d0e23..7326c40 100644 --- a/src/MizurouteV1.jl +++ b/src/MizurouteV1.jl @@ -12,6 +12,8 @@ function MizurouteHillslope{FT}() where {FT <: AbstractFloat} return MizurouteHillslope(shape,timescale) end +function update_state_from_hillslope!(river_state, hillslope_model, environment) +end struct MizurouteChannelV1{FT <: AbstractFloat} <: AbstractChannelModel "Wave velocity, C [m/day]" @@ -26,3 +28,9 @@ function MizurouteChannel{FT}() where {FT <: AbstractFloat} return MizurouteHillslope(wave_velocity, diffusivity) end + +function update_state_from_channel!(river_state, hillslope_model, environment) +end + + + diff --git a/src/RiverModels.jl b/src/RiverModels.jl index ac864f7..3652c3f 100644 --- a/src/RiverModels.jl +++ b/src/RiverModels.jl @@ -8,11 +8,26 @@ abstract type AbstractRiverModel end abstract type AbstractHillslopeModel end abstract type AbstractChannelModel end -struct HillslopeChannelRiverModel{HS <: AbstractHillslopeModel, CH <: AbstractChannelModel} <: RiverModel +struct HillslopeChannelModel{HS <: AbstractHillslopeModel, CH <: AbstractChannelModel} <: RiverModel hillslope_model::HS channel_model::CH end + +function calculate_streamflow!( + river_state::RS, + river_model::HCM, + environment::E, + ) where { + RS <:RiverState, + HCM <: HillslopeChannelModel, + E <: Environment, + } + + update_state_from_hillslope!(river_state, river_model.hillslope_model, environment) + update_state_from_channel!(river_state, river_model.channel_model, environment) + return calculate_streamflow(river_state) +end # Specific hillslope-channel models loaded here: include("MizurouteV1.jl")