14 use mo_kind,
only : dp
15 use mo_message,
only : message
61 subroutine reg_rout(param, length, slope, fFPimp, TS, C1, C2)
65 real(dp),
dimension(5),
intent(in) :: param
68 real(dp),
dimension(:),
intent(in) :: length
71 real(dp),
dimension(:),
intent(in) :: slope
75 real(dp),
dimension(:),
intent(in) :: ffpimp
78 real(dp),
intent(in) :: ts
81 real(dp),
dimension(:),
intent(out) :: c1
84 real(dp),
dimension(:),
intent(out) :: c2
90 real(dp),
dimension(size(fFPimp, 1)) :: k
93 real(dp),
dimension(size(fFPimp, 1)) :: xi
97 ssmax = maxval(slope(:))
100 k = param(1) + param(2) * (length * 0.001_dp) &
105 xi = param(5) * (1.0_dp + slope / ssmax)
108 xi = merge(0.5_dp, xi, xi > 0.5_dp)
109 xi = merge(0.005_dp, xi, xi < 0.005_dp)
112 k = merge(0.5_dp * ts / xi, k, k > 0.5_dp * ts / xi)
113 k = merge(0.5_dp * ts / (1.0_dp - xi), k, k < 0.5_dp * ts / (1.0_dp - xi))
116 c1 = ts / (k * (1.0_dp - xi) + 0.5_dp * ts)
117 c2 = 1.0_dp - c1 * k / ts
147 use mo_constants,
only : hoursecs
150 use mo_kind,
only : dp, i4
153 use mo_string_utils,
only : num2str
154 use mo_utils,
only : locate, notequal
160 integer(i4),
intent(in) :: idomain
163 real(dp),
dimension(:),
intent(in) :: param
175 integer(i4) :: s11, e11
184 if (idomain .eq. 1 .and. .not.
allocated(
l11_tsrout))
then
192 if ( notequal(mod(hoursecs * 24.0_dp,
l11_tsrout(idomain)), 0.0_dp) .and. &
193 (
domain_mrm(idomain)%nInflowGauges .gt. 0))
then
194 call message(
'***WARNING: routing timestep is not a multiple of 24 h.')
195 call message(
' Inflowgauge timeseries is averaged over values')
196 call message(
' of different days, small mismatches at')
197 call message(
' inflowgauge location might occur.')
208 call message(
' domain: '//num2str(idomain,
'(i3)'))
209 call message(
' routing resolution [s]:. '//num2str(
l11_tsrout(idomain),
'(f7.0)'))
210 call message(
' routing factor:......... '//num2str(
l11_tsrout(idomain) / (
timestep * hoursecs),
'(f5.2)'))
212 if ( notequal(mod(hoursecs * 24.0_dp,
l11_tsrout(idomain)), 0.0_dp) .and. &
213 (
domain_mrm(idomain)%nInflowGauges .gt. 0))
then
214 call message(
'***WARNING: routing timestep is not a multiple of 24 h.')
215 call message(
' Inflowgauge timeseries is averaged over values')
216 call message(
' of different days, small mismatches at')
217 call message(
' inflowgauge location might occur.')
243 use mo_kind,
only: i4, dp
255 use mo_utils,
only: locate
258 use mo_constants,
only: hoursecs
259 use mo_string_utils,
only: num2str
260 use mo_utils,
only: locate
265 integer(i4),
intent(in) :: idomain
268 real(dp),
intent(in),
dimension(1) :: param
272 integer(i4) :: nnodes
279 real(dp),
allocatable :: length(:)
282 real(dp),
allocatable :: k(:)
290 nnodes =
level11(idomain)%nCells
316 if (ind .lt. 1) ind = 1
Provides structures needed by mHM, mRM and/or mpr.
real(dp), dimension(:), allocatable, public resolutionrouting
integer(i4), public timestep
Provides structures needed by mHM, mRM and/or mpr.
type(domain_meta), public domainmeta
integer(i4), public iflag_cordinate_sys
integer(i4), dimension(nprocesses, 3), public processmatrix
Provides mRM specific constants.
real(dp), dimension(19), parameter given_ts
real(dp), parameter, public rout_space_weight
Global variables for mRM only.
real(dp), dimension(:), allocatable, public l11_length
type(domaininfo_mrm), dimension(:), allocatable, target, public domain_mrm
type(grid), dimension(:), allocatable, target, public level11
real(dp), dimension(:), allocatable, public l11_c1
real(dp), dimension(:), allocatable, public l11_celerity
integer(i4), dimension(:), allocatable, public l11_noutlets
real(dp), dimension(:), allocatable, public l11_tsrout
real(dp), dimension(:), allocatable, public l11_c2
Perform Multiscale Parameter Regionalization on Routing Parameters.
subroutine, public reg_rout(param, length, slope, ffpimp, ts, c1, c2)
Regionalized routing.
subroutine, public mrm_init_param(idomain, param)
TODO: add description.
subroutine, public mrm_update_param(idomain, param)
TODO: add description.
Startup drainage network for mHM.
subroutine, public l11_calc_celerity(idomain, param)
L11 celerity based on L0 elevation and L0 fAcc.