mHM
The mesoscale Hydrological Model
|
Startup drainage network for mHM. More...
Functions/Subroutines | |
subroutine, public | l11_l1_mapping (idomain) |
TODO: add description. | |
subroutine, public | l11_flow_direction (idomain) |
Determine the flow direction of the upscaled river network at level L11. | |
subroutine, public | l11_set_network_topology (idomain) |
Set network topology. | |
subroutine, public | l11_routing_order (idomain) |
Find routing order, headwater cells and sink. | |
subroutine, public | l11_link_location (idomain) |
Estimate the LO (row,col) location for each routing link at level L11. | |
subroutine, public | l11_set_drain_outlet_gauges (idomain) |
Draining cell identification and Set gauging node. | |
subroutine, public | l11_stream_features (idomain) |
Stream features (stream network and floodplain) | |
subroutine, public | l11_fraction_sealed_floodplain (lcclassimp, do_init) |
Fraction of the flood plain with impervious cover. | |
subroutine | moveup (elev0, fdir0, fi, fj, ss, nn) |
TODO: add description. | |
subroutine | movedownonecell (fdir, irow, jcol) |
TODO: add description. | |
subroutine | celllength (idomain, fdir, irow, jcol, icoorsystem, length) |
TODO: add description. | |
subroutine, public | get_distance_two_lat_lon_points (lat1, long1, lat2, long2, distance_out) |
estimate distance in [m] between two points in a lat-lon | |
subroutine, public | l11_flow_accumulation (idomain) |
Calculates L11 flow accumulation per grid cell. | |
subroutine, public | l11_calc_celerity (idomain, param) |
L11 celerity based on L0 elevation and L0 fAcc. | |
Startup drainage network for mHM.
This module initializes the drainage network at L11 in mHM.
COPYING
and COPYING.LESSER
provided with this software. The complete GNU license text can also be found at http://www.gnu.org/licenses/. subroutine mo_mrm_net_startup::celllength | ( | integer(i4), intent(in) | idomain, |
integer(i4), intent(in) | fdir, | ||
integer(i4), intent(in) | irow, | ||
integer(i4), intent(in) | jcol, | ||
integer(i4), intent(in) | icoorsystem, | ||
real(dp), intent(out) | length | ||
) |
TODO: add description.
TODO: add description
[in] | integer(i4) :: iDomain | |
[in] | integer(i4) :: fDir | |
[in] | integer(i4) :: iRow | |
[in] | integer(i4) :: jCol | |
[in] | integer(i4) :: iCoorSystem | |
[out] | real(dp) :: length |
Definition at line 1831 of file mo_mrm_net_startup.f90.
References mo_common_variables::domainmeta, get_distance_two_lat_lon_points(), mo_common_variables::level0, and movedownonecell().
Referenced by mo_mrm_river_head::calc_slope(), and l11_stream_features().
subroutine, public mo_mrm_net_startup::get_distance_two_lat_lon_points | ( | real(dp), intent(in) | lat1, |
real(dp), intent(in) | long1, | ||
real(dp), intent(in) | lat2, | ||
real(dp), intent(in) | long2, | ||
real(dp), intent(out) | distance_out | ||
) |
estimate distance in [m] between two points in a lat-lon
estimate distance in [m] between two points in a lat-lon Code is based on one that is implemented in the VIC-3L model
[in] | real(dp) :: lat1, long1, lat2, long2 | latitude of point-1 |
[in] | real(dp) :: lat1, long1, lat2, long2 | longitude of point-1 |
[in] | real(dp) :: lat1, long1, lat2, long2 | latitude of point-2 |
[in] | real(dp) :: lat1, long1, lat2, long2 | longitude of point-2 |
[out] | real(dp) :: distance_out | distance between two points [m] |
Definition at line 1926 of file mo_mrm_net_startup.f90.
Referenced by celllength().
subroutine, public mo_mrm_net_startup::l11_calc_celerity | ( | integer(i4), intent(in) | idomain, |
real(dp), dimension(:), intent(in) | param | ||
) |
L11 celerity based on L0 elevation and L0 fAcc.
L11 celerity based on L0 elevation and L0 fAcc
[in] |
author Matthias Kelbling
Definition at line 2212 of file mo_mrm_net_startup.f90.
References mo_common_variables::domainmeta, mo_mrm_global_variables::l0_celerity, mo_mrm_global_variables::l0_facc, mo_mrm_global_variables::l0_fdir, mo_mpr_global_variables::l0_slope, mo_mrm_global_variables::l0_streamnet, mo_mrm_global_variables::l11_celerity, mo_mrm_global_variables::l11_fcol, mo_mrm_global_variables::l11_frow, mo_mrm_global_variables::l11_netperm, mo_mrm_global_variables::l11_noutlets, mo_mrm_global_variables::l11_tcol, mo_mrm_global_variables::l11_trow, mo_common_variables::level0, mo_mrm_global_variables::level11, movedownonecell(), mo_common_constants::nodata_dp, and mo_common_constants::nodata_i4.
Referenced by mo_mrm_mpr::mrm_init_param(), and mo_mrm_mpr::mrm_update_param().
subroutine, public mo_mrm_net_startup::l11_flow_accumulation | ( | integer(i4), intent(in) | idomain | ) |
Calculates L11 flow accumulation per grid cell.
Calculates L11 flow accumulation per grid cell using L11_fDir and L11_cellarea. L11_flow_accumulation contains the recursiv subroutine calculate_L11_flow_accumulation iDomain
Definition at line 2022 of file mo_mrm_net_startup.f90.
References calculate_l11_flow_accumulation(), mo_mrm_global_variables::l11_facc, mo_mrm_global_variables::l11_fdir, mo_mrm_global_variables::level11, mo_common_constants::nodata_dp, and mo_common_constants::nodata_i4.
Referenced by mo_mrm_init::mrm_init().
subroutine, public mo_mrm_net_startup::l11_flow_direction | ( | integer(i4), intent(in) | idomain | ) |
Determine the flow direction of the upscaled river network at level L11.
The hydrographs generated at each cell are routed through the drainage network at level-11 towards their outlets. The drainage network at level-11 is conceptualized as a graph whose nodes are hypothetically located at the center of each grid cell connected by links that represent the river reaches. The flow direction of a link correspond to the direction towards a neighboring cell in which the net flow accumulation (outflows minus inflows) attains its maximum value. The net flow accumulation across a cell's boundary at level-11 is estimated based on flow direction and flow accumulation obtained at level-0 (Routing Network"). Note: level-1 denotes the modeling level, whereas level-L11 is at least as coarse as level-1. Experience has shown that routing can be done at a coarser resolution as level-1, hence the level-11 was introduced. @image html routing.png "Upscaling routing network from L0 to L1 (or L11)" @anchor fig_routing@image latex routing.pdf "Upscaling routing network from L0 to L1 (or L11)" width=14cm The left panel depicts a schematic derivation of a drainage network at the level-11 based on level-0 flow direction and flow accumulation. The dotted line circle denotes the point with the highest flow accumulation within a grid cell. The topology of a tipical drainage routing network at level-11 is shown in the right panel. Gray color areas denote the flood plains estimated in mo_init_mrm, where the network upscaling is also carried out. For the sake of simplicity, it is assumed that all runoff leaving a given cell would exit through a major direction. Note that multiple outlets can exist within the modelling domain. If a variable is added or removed here, then it also has to be added or removed in the subroutine L11_config_set in module mo_restart and in the subroutine set_L11_config in module mo_set_netcdf_restart ADDITIONAL INFORMATION L11_flow_direction @param [in] "integer(i4) :: iDomain" Domain Id
Definition at line 227 of file mo_mrm_net_startup.f90.
References mo_mrm_global_variables::domain_mrm, mo_common_variables::domainmeta, mo_mrm_global_variables::l0_drasc, mo_mrm_global_variables::l0_facc, mo_mrm_global_variables::l0_fdir, mo_mrm_global_variables::l0_l11_remap, mo_mrm_global_variables::l11_colout, mo_mrm_global_variables::l11_fdir, mo_mrm_global_variables::l11_noutlets, mo_mrm_global_variables::l11_rowout, mo_common_variables::level0, mo_mrm_global_variables::level11, movedownonecell(), and mo_common_constants::nodata_i4.
Referenced by mo_mrm_init::mrm_init().
subroutine, public mo_mrm_net_startup::l11_fraction_sealed_floodplain | ( | integer(i4), intent(in) | lcclassimp, |
logical, intent(in) | do_init | ||
) |
Fraction of the flood plain with impervious cover.
Fraction of the flood plain with impervious cover (Routing Network"). This proportion is used to regionalize the Muskingum parameters. Samaniego et al. @cite SB05 found out that this fraction is one of the statistically significant predictor variables of peak discharge in mesoscale Domains. If a variable is added or removed here, then it also has to be added or removed in the subroutine L11_config_set in module mo_restart and in the subroutine set_L11_config in module mo_set_netcdf_restart @param [in] "integer(i4) :: LCClassImp" Impervious land cover class Id, e.g. = 2 (old code) @param [in] "logical :: do_init"
Definition at line 1510 of file mo_mrm_net_startup.f90.
References mo_common_variables::domainmeta, mo_mrm_global_variables::l0_floodplain, mo_common_variables::l0_lcover, mo_mrm_global_variables::l11_afloodplain, mo_mrm_global_variables::l11_nlinkfracfpimp, mo_mrm_global_variables::l11_noutlets, mo_common_variables::level0, mo_mrm_global_variables::level11, mo_common_variables::nlcoverscene, and mo_common_constants::nodata_dp.
Referenced by mo_mrm_init::mrm_init().
subroutine, public mo_mrm_net_startup::l11_l1_mapping | ( | integer(i4), intent(in) | idomain | ) |
TODO: add description.
TODO: add description
[in] | integer(i4) :: iDomain | domain |
Definition at line 61 of file mo_mrm_net_startup.f90.
References mo_mrm_global_variables::l11_l1_id, mo_mrm_global_variables::l1_l11_id, mo_common_variables::level1, mo_mrm_global_variables::level11, and mo_common_constants::nodata_i4.
Referenced by mo_mrm_init::mrm_init().
subroutine, public mo_mrm_net_startup::l11_link_location | ( | integer(i4), intent(in) | idomain | ) |
Estimate the LO (row,col) location for each routing link at level L11.
If a variable is added or removed here, then it also has to be added or removed in the subroutine L11_config_set in module mo_restart and in the subroutine set_L11_config in module mo_set_netcdf_restart
[in] | integer(i4) :: iDomain | Domain Id |
Definition at line 887 of file mo_mrm_net_startup.f90.
References mo_mrm_global_variables::domain_mrm, mo_common_variables::domainmeta, mo_mrm_global_variables::l0_drasc, mo_mrm_global_variables::l0_fdir, mo_mrm_global_variables::l11_colout, mo_mrm_global_variables::l11_fcol, mo_mrm_global_variables::l11_fromn, mo_mrm_global_variables::l11_frow, mo_mrm_global_variables::l11_netperm, mo_mrm_global_variables::l11_noutlets, mo_mrm_global_variables::l11_rowout, mo_mrm_global_variables::l11_tcol, mo_mrm_global_variables::l11_trow, mo_common_variables::level0, mo_mrm_global_variables::level11, movedownonecell(), and mo_common_constants::nodata_i4.
Referenced by mo_mrm_init::mrm_init().
subroutine, public mo_mrm_net_startup::l11_routing_order | ( | integer(i4), intent(in) | idomain | ) |
Find routing order, headwater cells and sink.
Find routing order, headwater cells and sink. If a variable is added or removed here, then it also has to be added or removed in the subroutine L11_config_set in module mo_restart and in the subroutine set_L11_config in module mo_set_netcdf_restart
[in] | integer(i4) :: iDomain | Domain Id |
Definition at line 728 of file mo_mrm_net_startup.f90.
References mo_mrm_global_variables::l11_fdir, mo_mrm_global_variables::l11_fromn, mo_mrm_global_variables::l11_label, mo_mrm_global_variables::l11_netperm, mo_mrm_global_variables::l11_noutlets, mo_mrm_global_variables::l11_rorder, mo_mrm_global_variables::l11_sink, mo_mrm_global_variables::l11_ton, mo_mrm_global_variables::level11, and mo_common_constants::nodata_i4.
Referenced by mo_mrm_init::mrm_init().
subroutine, public mo_mrm_net_startup::l11_set_drain_outlet_gauges | ( | integer(i4), intent(in) | idomain | ) |
Draining cell identification and Set gauging node.
Perform the following tasks:
[in] | integer(i4) :: iDomain | Domain Id |
Definition at line 1088 of file mo_mrm_net_startup.f90.
References mo_mrm_global_variables::domain_mrm, mo_common_variables::domainmeta, mo_mrm_global_variables::l0_dracell, mo_mrm_global_variables::l0_drasc, mo_mrm_global_variables::l0_fdir, mo_mrm_global_variables::l0_gaugeloc, mo_mrm_global_variables::l0_inflowgaugeloc, mo_mrm_global_variables::l0_l11_remap, mo_common_variables::level0, movedownonecell(), and mo_common_constants::nodata_i4.
Referenced by mo_mrm_init::mrm_init().
subroutine, public mo_mrm_net_startup::l11_set_network_topology | ( | integer(i4), intent(in) | idomain | ) |
Set network topology.
Set network topology from and to node for all links at level-11 (Routing Network). If a variable is added or removed here, then it also has to be added or removed in the subroutine L11_config_set in module mo_restart and in the subroutine set_L11_config in module mo_set_netcdf_restart.
[in] | integer(i4) :: iDomain | Domain Id |
Definition at line 630 of file mo_mrm_net_startup.f90.
References mo_mrm_global_variables::l11_fdir, mo_mrm_global_variables::l11_fromn, mo_mrm_global_variables::l11_ton, mo_mrm_global_variables::level11, movedownonecell(), and mo_common_constants::nodata_i4.
Referenced by mo_mrm_init::mrm_init().
subroutine, public mo_mrm_net_startup::l11_stream_features | ( | integer(i4), intent(in) | idomain | ) |
Stream features (stream network and floodplain)
Stream features (stream network and floodplain) If a variable is added or removed here, then it also has to be added or removed in the subroutine L11_config_set in module mo_restart and in the subroutine set_L11_config in module mo_set_netcdf_restart
[in] | integer(i4) :: iDomain | Domain Id |
Definition at line 1233 of file mo_mrm_net_startup.f90.
References celllength(), mo_common_variables::domainmeta, mo_common_variables::iflag_cordinate_sys, mo_common_variables::l0_elev, mo_mrm_global_variables::l0_fdir, mo_mrm_global_variables::l0_floodplain, mo_mrm_global_variables::l0_streamnet, mo_mrm_global_variables::l11_afloodplain, mo_mrm_global_variables::l11_fcol, mo_mrm_global_variables::l11_frow, mo_mrm_global_variables::l11_length, mo_mrm_global_variables::l11_netperm, mo_mrm_global_variables::l11_noutlets, mo_mrm_global_variables::l11_slope, mo_mrm_global_variables::l11_tcol, mo_mrm_global_variables::l11_trow, mo_common_variables::level0, mo_mrm_global_variables::level11, movedownonecell(), moveup(), mo_common_constants::nodata_dp, mo_common_constants::nodata_i4, and mo_common_variables::processmatrix.
Referenced by mo_mrm_init::mrm_init().
subroutine mo_mrm_net_startup::movedownonecell | ( | integer(i4), intent(in) | fdir, |
integer(i4), intent(inout) | irow, | ||
integer(i4), intent(inout) | jcol | ||
) |
TODO: add description.
TODO: add description
[in] | integer(i4) :: fDir | |
[in,out] | integer(i4) :: iRow, jCol | |
[in,out] | integer(i4) :: iRow, jCol |
Definition at line 1768 of file mo_mrm_net_startup.f90.
Referenced by mo_mrm_river_head::calc_slope(), celllength(), l11_calc_celerity(), l11_flow_direction(), l11_link_location(), l11_set_drain_outlet_gauges(), l11_set_network_topology(), and l11_stream_features().
subroutine mo_mrm_net_startup::moveup | ( | real(dp), dimension(:, :), intent(in), allocatable | elev0, |
integer(i4), dimension(:, :), intent(in), allocatable | fdir0, | ||
integer(i4), intent(in) | fi, | ||
integer(i4), intent(in) | fj, | ||
integer(i4), dimension(:, :), intent(inout) | ss, | ||
integer(i4), intent(inout) | nn | ||
) |
TODO: add description.
TODO: add description
[in] | real(dp), dimension(:, :) :: elev0 | |
[in] | integer(i4), dimension(:, :) :: fDir0 | |
[in] | integer(i4) :: fi, fj | co-ordinate of the stream bed |
[in] | integer(i4) :: fi, fj | co-ordinate of the stream bed |
[in,out] | integer(i4), dimension(:, :) :: ss | |
[in,out] | integer(i4) :: nn |
Definition at line 1595 of file mo_mrm_net_startup.f90.
References mo_mrm_constants::deltah.
Referenced by l11_stream_features().