5.13.2-dev0
mHM
The mesoscale Hydrological Model
Loading...
Searching...
No Matches
mo_mrm_pre_routing Module Reference

Performs pre-processing for routing for mHM at level L11. More...

Functions/Subroutines

subroutine, public l11_runoff_acc (qall, efecarea, l1_l11_id, l11_areacell, l11_l1_id, ts, map_flag, qacc)
 total runoff accumulation at L11.
 
subroutine, public add_inflow (ninflowgauges, inflowindexlist, inflowheadwater, inflownodelist, qinflow, qout)
 Adds inflow discharge to the runoff produced at the cell where the inflow is occurring.
 
subroutine l11_e_acc (qall, efecarea, l1_l11_id, l11_areacell, l11_l1_id, ts, map_flag, qacc)
 temperature energy accumulation at L11.
 
subroutine, public calc_l1_runoff_e (fsealed_area_fraction, fast_interflow, slow_interflow, baseflow, direct_runoff, temp_air, mean_temp_air, lateral_e)
 calculate lateral temperature energy from runoff components.
 
subroutine, public l11_meteo_acc (meteo_all, efecarea, l1_l11_id, l11_areacell, l11_l1_id, map_flag, meteo_acc)
 meteo forcing accumulation at L11 for temperature routing.
 

Detailed Description

Performs pre-processing for routing for mHM at level L11.

This module performs runoff accumulation from L1 to L11 and inflow summation.

Changelog
  • Stephan Thober Aug 2015
    • adapted to mRM
  • Sebastian Mueller Jun 2020
    • separate module for pre-processing
Authors
Luis Samaniego
Date
Dec 2012

Function/Subroutine Documentation

◆ add_inflow()

subroutine, public mo_mrm_pre_routing::add_inflow ( integer(i4), intent(in)  ninflowgauges,
integer(i4), dimension(:), intent(in)  inflowindexlist,
logical, dimension(:), intent(in)  inflowheadwater,
integer(i4), dimension(:), intent(in)  inflownodelist,
real(dp), dimension(:), intent(in)  qinflow,
real(dp), dimension(:), intent(inout)  qout 
)

Adds inflow discharge to the runoff produced at the cell where the inflow is occurring.

If a inflow gauge is given, then this routine is adding the values to the runoff produced at the grid cell where the inflow is happening. The values are not directly added to the river network. If this cell is not a headwater then the streamflow produced upstream will be neglected.

Parameters
[in]integer(i4) :: nInflowGauges[-] number of inflow points
[in]integer(i4), dimension(:) :: InflowIndexList[-] index of inflow points
[in]logical, dimension(:) :: InflowHeadwater[-] if to consider headwater cells of inflow gauge
[in]integer(i4), dimension(:) :: InflowNodeList[-] L11 ID of inflow points
[in]real(dp), dimension(:) :: QInflow[m3 s-1] inflowing water
[in,out]real(dp), dimension(:) :: qOut[m3 s-1] Series of attenuated runoff
Authors
Stephan Thober & Matthias Zink
Date
Jul 2016

Definition at line 179 of file mo_mrm_pre_routing.f90.

Referenced by mo_mrm_routing::mrm_routing().

Here is the caller graph for this function:

◆ calc_l1_runoff_e()

subroutine, public mo_mrm_pre_routing::calc_l1_runoff_e ( real(dp), dimension(:), intent(in)  fsealed_area_fraction,
real(dp), dimension(:), intent(in)  fast_interflow,
real(dp), dimension(:), intent(in)  slow_interflow,
real(dp), dimension(:), intent(in)  baseflow,
real(dp), dimension(:), intent(in)  direct_runoff,
real(dp), dimension(:), intent(in)  temp_air,
real(dp), dimension(:), intent(in)  mean_temp_air,
real(dp), dimension(:), intent(inout)  lateral_e 
)

calculate lateral temperature energy from runoff components.

calculate lateral temperature energy from runoff components.

Parameters
[in]REAL(dp) :: fSealed_area_fractionsealed area fraction [1]
[in]REAL(dp) :: fast_interflow\( q_0 \) Fast runoff component [mm TS-1]
[in]REAL(dp) :: slow_interflow\( q_1 \) Slow runoff component [mm TS-1]
[in]REAL(dp) :: baseflow\( q_2 \) Baseflow [mm TS-1]
[in]REAL(dp) :: direct_runoff\( q_D \) Direct runoff from impervious areas [mm TS-1]
[in]REAL(dp) :: temp_airair temperature [K]
[in]REAL(dp) :: mean_temp_airannual mean air temperature [K]
[out]REAL(dp) :: lateral_E\( E_T \) Generated runoff [K mm TS-1]
Authors
Sebastian Mueller
Date
Jun 2020

Definition at line 348 of file mo_mrm_pre_routing.f90.

Referenced by mo_mrm_riv_temp_class::acc_source_e().

Here is the caller graph for this function:

◆ l11_e_acc()

subroutine mo_mrm_pre_routing::l11_e_acc ( real(dp), dimension(:), intent(in)  qall,
real(dp), dimension(:), intent(in)  efecarea,
integer(i4), dimension(:), intent(in)  l1_l11_id,
real(dp), dimension(:), intent(in)  l11_areacell,
integer(i4), dimension(:), intent(in)  l11_l1_id,
integer(i4), intent(in)  ts,
logical, intent(in)  map_flag,
real(dp), dimension(:), intent(out)  qacc 
)
private

temperature energy accumulation at L11.

Upscales energy in space from L1 to L11 if routing resolution is higher than hydrology resolution (map_flag equals .true.) or downscales runoff from L1 to L11 if routing resolution is lower than hydrology resolution.

Parameters
[in]real(dp), dimension(:) :: qalltotal runoff L1 [mm K TS-1]
[in]real(dp), dimension(:) :: efecareaeffective area in [km2] at Level 1
[in]integer(i4), dimension(:) :: L1_L11_IdL11 Ids mapped on L1
[in]real(dp), dimension(:) :: L11_areacelleffective area in [km2] at Level 11
[in]integer(i4), dimension(:) :: L11_L1_IdL1 Ids mapped on L11
[in]integer(i4) :: TStime step in [s]
[in]logical :: map_flagFlag indicating whether routing resolution is higher than hydrologic one
[out]real(dp), dimension(:) :: qAccaggregated runoff at L11 [m3 K s-1]
Authors
Luis Samaniego
Date
Jan 2013

Definition at line 255 of file mo_mrm_pre_routing.f90.

References mo_common_constants::nodata_dp.

Referenced by mo_mrm_routing::mrm_routing().

Here is the caller graph for this function:

◆ l11_meteo_acc()

subroutine, public mo_mrm_pre_routing::l11_meteo_acc ( real(dp), dimension(:), intent(in)  meteo_all,
real(dp), dimension(:), intent(in)  efecarea,
integer(i4), dimension(:), intent(in)  l1_l11_id,
real(dp), dimension(:), intent(in)  l11_areacell,
integer(i4), dimension(:), intent(in)  l11_l1_id,
logical, intent(in)  map_flag,
real(dp), dimension(:), intent(out)  meteo_acc 
)

meteo forcing accumulation at L11 for temperature routing.

Upscales meteo forcing in space from L1 to L11 if routing resolution is higher than hydrology resolution (map_flag equals .true.) or downscales meteo forcing from L1 to L11 if routing resolution is lower than hydrology resolution.

Parameters
[in]real(dp), dimension(:) :: meteo_allmeteo forcing
[in]real(dp), dimension(:) :: efecareaeffective area in [km2] at Level 1
[in]integer(i4), dimension(:) :: L1_L11_IdL11 Ids mapped on L1
[in]real(dp), dimension(:) :: L11_areacelleffective area in [km2] at Level 11
[in]integer(i4), dimension(:) :: L11_L1_IdL1 Ids mapped on L11
[in]logical :: map_flagFlag indicating whether routing resolution is higher than hydrologic one
[out]real(dp), dimension(:) :: meteo_accaggregated meteo forcing
Authors
Sebastian Mueller
Date
Jul 2020

Definition at line 422 of file mo_mrm_pre_routing.f90.

References mo_common_constants::nodata_dp.

Referenced by mo_mrm_riv_temp_class::finalize_source_e(), and mo_mrm_riv_temp_class::init_riv_temp().

Here is the caller graph for this function:

◆ l11_runoff_acc()

subroutine, public mo_mrm_pre_routing::l11_runoff_acc ( real(dp), dimension(:), intent(in)  qall,
real(dp), dimension(:), intent(in)  efecarea,
integer(i4), dimension(:), intent(in)  l1_l11_id,
real(dp), dimension(:), intent(in)  l11_areacell,
integer(i4), dimension(:), intent(in)  l11_l1_id,
integer(i4), intent(in)  ts,
logical, intent(in)  map_flag,
real(dp), dimension(:), intent(out)  qacc 
)

total runoff accumulation at L11.

Upscales runoff in space from L1 to L11 if routing resolution is higher than hydrology resolution (map_flag equals .true.) or downscales runoff from L1 to L11 if routing resolution is lower than hydrology resolution.

Parameters
[in]real(dp), dimension(:) :: qalltotal runoff L1 [mm TS-1]
[in]real(dp), dimension(:) :: efecareaeffective area in [km2] at Level 1
[in]integer(i4), dimension(:) :: L1_L11_IdL11 Ids mapped on L1
[in]real(dp), dimension(:) :: L11_areacelleffective area in [km2] at Level 11
[in]integer(i4), dimension(:) :: L11_L1_IdL1 Ids mapped on L11
[in]integer(i4) :: TStime step in [s]
[in]logical :: map_flagFlag indicating whether routing resolution is higher than hydrologic one
[out]real(dp), dimension(:) :: qAccaggregated runoff at L11 [m3 s-1]
Authors
Luis Samaniego
Date
Jan 2013

Definition at line 77 of file mo_mrm_pre_routing.f90.

References mo_common_constants::nodata_dp.

Referenced by mo_mrm_riv_temp_class::finalize_source_e(), and mo_mrm_routing::mrm_routing().

Here is the caller graph for this function: