0.6.2-dev0
FORCES
FORtran lib for Comp. Env. Sys.
Loading...
Searching...
No Matches
mo_eckhardt_filter Module Reference

Eckhardt filter for baseflow index calculation. More...

Functions/Subroutines

real(dp) function, dimension(:), allocatable, public eckhardt_filter_fit (discharge, mask)
 Eckhardt filter for baseflow calculation from discharge time series with fitting.
 
real(dp) function, public fit_alpha (discharge, mask)
 Fitted alpha parameter for the Eckhardt filter.
 
real(dp) function, dimension(:), allocatable, public eckhardt_filter (alpha, discharge, mask)
 Eckhardt filter for baseflow calculation from discharge time series.
 
real(dp) function, dimension(:), allocatable, public weekly_average (discharge, mask)
 This function returns the 7days-averaged discharge.
 
real(dp) function, public bfi (baseflow, discharge, mask)
 Calculate the baseflow index as ratio between baseflow and discharge.
 
real(dp) function func (pp)
 Target function for fitting Eckhardt filter.
 

Variables

real(dp), dimension(:), allocatable temp_d7
 
logical, dimension(:), allocatable temp_qmin_mask
 
logical, dimension(:), allocatable temp_mask
 

Detailed Description

Eckhardt filter for baseflow index calculation.

This module provides routines for the Eckardt filter to analyse discharge time series and extract the baseflow. The filter was proposed in Eckhardt (2008, doi: 10.1016/j.jhydrol.2008.01.005)

Version
0.1
Authors
Sebastian Mueller
Mariaines Di Dato
Date
Apr 2022

Function/Subroutine Documentation

◆ bfi()

real(dp) function, public mo_eckhardt_filter::bfi ( real(dp), dimension(:), intent(in)  baseflow,
real(dp), dimension(:), intent(in)  discharge,
logical, dimension(:), intent(in), optional  mask 
)

Calculate the baseflow index as ratio between baseflow and discharge.

Returns
baseflow index
Parameters
[in]baseflowarray with daily baseflow values
[in]dischargearray with daily discharge
[in]maskmask for daily discharge

Definition at line 187 of file mo_eckhardt_filter.f90.

References bfi().

Referenced by bfi(), and eckhardt_filter().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ eckhardt_filter()

real(dp) function, dimension(:), allocatable, public mo_eckhardt_filter::eckhardt_filter ( real(dp), intent(in)  alpha,
real(dp), dimension(:), intent(in)  discharge,
logical, dimension(:), intent(in), optional  mask 
)

Eckhardt filter for baseflow calculation from discharge time series.

This filter was proposed in Eckhardt (2008, doi: 10.1016/j.jhydrol.2008.01.005)

Returns
baseflow
Parameters
[in]alphafilter parameter
[in]dischargearray with daily discharge
[in]maskmask for daily discharge

Definition at line 115 of file mo_eckhardt_filter.f90.

References bfi(), and weekly_average().

Referenced by eckhardt_filter_fit(), and func().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ eckhardt_filter_fit()

real(dp) function, dimension(:), allocatable, public mo_eckhardt_filter::eckhardt_filter_fit ( real(dp), dimension(:), intent(in)  discharge,
logical, dimension(:), intent(in), optional  mask 
)

Eckhardt filter for baseflow calculation from discharge time series with fitting.

This filter was proposed in Eckhardt (2008, doi: 10.1016/j.jhydrol.2008.01.005)

Returns
baseflow
Parameters
[in]dischargearray with daily discharge
[in]maskmask for daily discharge

Definition at line 39 of file mo_eckhardt_filter.f90.

References eckhardt_filter(), and fit_alpha().

Here is the call graph for this function:

◆ fit_alpha()

real(dp) function, public mo_eckhardt_filter::fit_alpha ( real(dp), dimension(:), intent(in)  discharge,
logical, dimension(:), intent(in), optional  mask 
)

Fitted alpha parameter for the Eckhardt filter.

This filter was proposed in Eckhardt (2008, doi: 10.1016/j.jhydrol.2008.01.005)

Returns
alpha parameter for eckard filter
Parameters
[in]dischargearray with daily discharge
[in]maskmask for daily discharge

Definition at line 58 of file mo_eckhardt_filter.f90.

References mo_message::error_message(), fit_alpha(), func(), and weekly_average().

Referenced by eckhardt_filter_fit(), and fit_alpha().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ func()

real(dp) function mo_eckhardt_filter::func ( real(dp), dimension(:), intent(in)  pp)
private

Target function for fitting Eckhardt filter.

Returns
Objective value.
Parameters
[in]ppalpha (single value)

Definition at line 207 of file mo_eckhardt_filter.f90.

References eckhardt_filter(), and func().

Referenced by fit_alpha(), and func().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ weekly_average()

real(dp) function, dimension(:), allocatable, public mo_eckhardt_filter::weekly_average ( real(dp), dimension(:), intent(in)  discharge,
logical, dimension(:), intent(in), optional  mask 
)

This function returns the 7days-averaged discharge.

Returns
array with weekly moving average
Parameters
[in]dischargearray with daily discharge
[in]maskmask for daily discharge

Definition at line 158 of file mo_eckhardt_filter.f90.

Referenced by eckhardt_filter(), and fit_alpha().

Here is the caller graph for this function:

Variable Documentation

◆ temp_d7

real(dp), dimension(:), allocatable mo_eckhardt_filter::temp_d7
private

Definition at line 31 of file mo_eckhardt_filter.f90.

◆ temp_mask

logical, dimension(:), allocatable mo_eckhardt_filter::temp_mask
private

Definition at line 32 of file mo_eckhardt_filter.f90.

◆ temp_qmin_mask

logical, dimension(:), allocatable mo_eckhardt_filter::temp_qmin_mask
private

Definition at line 32 of file mo_eckhardt_filter.f90.