mHM
The mesoscale Hydrological Model
|
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. | |
Performs pre-processing for routing for mHM at level L11.
This module performs runoff accumulation from L1 to L11 and inflow summation.
COPYING
and COPYING.LESSER
provided with this software. The complete GNU license text can also be found at http://www.gnu.org/licenses/. 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.
[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 |
Definition at line 179 of file mo_mrm_pre_routing.f90.
Referenced by mo_mrm_routing::mrm_routing().
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.
[in] | REAL(dp) :: fSealed_area_fraction | sealed 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_air | air temperature [K] |
[in] | REAL(dp) :: mean_temp_air | annual mean air temperature [K] |
[out] | REAL(dp) :: lateral_E | \( E_T \) Generated runoff [K mm TS-1] |
Definition at line 348 of file mo_mrm_pre_routing.f90.
Referenced by mo_mrm_riv_temp_class::acc_source_e().
|
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.
[in] | real(dp), dimension(:) :: qall | total runoff L1 [mm K TS-1] |
[in] | real(dp), dimension(:) :: efecarea | effective area in [km2] at Level 1 |
[in] | integer(i4), dimension(:) :: L1_L11_Id | L11 Ids mapped on L1 |
[in] | real(dp), dimension(:) :: L11_areacell | effective area in [km2] at Level 11 |
[in] | integer(i4), dimension(:) :: L11_L1_Id | L1 Ids mapped on L11 |
[in] | integer(i4) :: TS | time step in [s] |
[in] | logical :: map_flag | Flag indicating whether routing resolution is higher than hydrologic one |
[out] | real(dp), dimension(:) :: qAcc | aggregated runoff at L11 [m3 K s-1] |
Definition at line 255 of file mo_mrm_pre_routing.f90.
References mo_common_constants::nodata_dp.
Referenced by mo_mrm_routing::mrm_routing().
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.
[in] | real(dp), dimension(:) :: meteo_all | meteo forcing |
[in] | real(dp), dimension(:) :: efecarea | effective area in [km2] at Level 1 |
[in] | integer(i4), dimension(:) :: L1_L11_Id | L11 Ids mapped on L1 |
[in] | real(dp), dimension(:) :: L11_areacell | effective area in [km2] at Level 11 |
[in] | integer(i4), dimension(:) :: L11_L1_Id | L1 Ids mapped on L11 |
[in] | logical :: map_flag | Flag indicating whether routing resolution is higher than hydrologic one |
[out] | real(dp), dimension(:) :: meteo_acc | aggregated meteo forcing |
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().
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.
[in] | real(dp), dimension(:) :: qall | total runoff L1 [mm TS-1] |
[in] | real(dp), dimension(:) :: efecarea | effective area in [km2] at Level 1 |
[in] | integer(i4), dimension(:) :: L1_L11_Id | L11 Ids mapped on L1 |
[in] | real(dp), dimension(:) :: L11_areacell | effective area in [km2] at Level 11 |
[in] | integer(i4), dimension(:) :: L11_L1_Id | L1 Ids mapped on L11 |
[in] | integer(i4) :: TS | time step in [s] |
[in] | logical :: map_flag | Flag indicating whether routing resolution is higher than hydrologic one |
[out] | real(dp), dimension(:) :: qAcc | aggregated runoff at L11 [m3 s-1] |
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().