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

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.
 

Detailed Description

Startup drainage network for mHM.

This module initializes the drainage network at L11 in mHM.

  • Delineation of drainage network at level 11.
  • Setting network topology (i.e. nodes and link).
  • Determining routing order.
  • Determining cell locations for network links.
  • Find drainage outlet.
  • Determine stream (links) features.
Changelog
  • Rohini Kumar May 2014
    • cell area calulation based on a regular lat-lon grid or on a regular X-Y coordinate system
  • Robert Schweppe Jun 2018
    • refactoring and reformatting
Authors
Luis Samaniego
Date
Dec 2012

Function/Subroutine Documentation

◆ celllength()

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

Parameters
[in]integer(i4) :: iDomain
[in]integer(i4) :: fDir
[in]integer(i4) :: iRow
[in]integer(i4) :: jCol
[in]integer(i4) :: iCoorSystem
[out]real(dp) :: length
Authors
Robert Schweppe
Date
Jun 2018

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().

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

◆ get_distance_two_lat_lon_points()

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

Parameters
[in]real(dp) :: lat1, long1, lat2, long2latitude of point-1
[in]real(dp) :: lat1, long1, lat2, long2longitude of point-1
[in]real(dp) :: lat1, long1, lat2, long2latitude of point-2
[in]real(dp) :: lat1, long1, lat2, long2longitude of point-2
[out]real(dp) :: distance_outdistance between two points [m]
Authors
Rohini Kumar
Date
May 2014

Definition at line 1926 of file mo_mrm_net_startup.f90.

Referenced by celllength().

Here is the caller graph for this function:

◆ l11_calc_celerity()

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

Parameters
[in]

author Matthias Kelbling

Date
Oct 2017

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().

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

◆ l11_flow_accumulation()

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

Author
Matthias Kelbling
Date
Aug 2017

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().

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

◆ l11_flow_direction()

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

Authors
Luis Samaniego
Date
Dec 2005

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().

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

◆ l11_fraction_sealed_floodplain()

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"

Authors
Luis Samaniego
Date
Dec 2005

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().

Here is the caller graph for this function:

◆ l11_l1_mapping()

subroutine, public mo_mrm_net_startup::l11_l1_mapping ( integer(i4), intent(in)  idomain)

TODO: add description.

TODO: add description

Parameters
[in]integer(i4) :: iDomaindomain
Authors
Robert Schweppe
Date
Jun 2018

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().

Here is the caller graph for this function:

◆ l11_link_location()

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

Parameters
[in]integer(i4) :: iDomainDomain Id
Authors
Luis Samaniego
Date
Dec 2005

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().

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

◆ l11_routing_order()

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

Parameters
[in]integer(i4) :: iDomainDomain Id
Authors
Luis Samaniego
Date
Dec 2005

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().

Here is the caller graph for this function:

◆ l11_set_drain_outlet_gauges()

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:

  • Draining cell identification (cell at L0 to draining cell outlet at L11).
  • Set gauging nodes 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
    Parameters
    [in]integer(i4) :: iDomainDomain Id
    Authors
    Luis Samaniego
    Date
    Dec 2005

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().

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

◆ l11_set_network_topology()

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.

Parameters
[in]integer(i4) :: iDomainDomain Id
Authors
Luis Samaniego
Date
Dec 2005

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().

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

◆ l11_stream_features()

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

Parameters
[in]integer(i4) :: iDomainDomain Id
Authors
Luis Samaniego
Date
Dec 2005

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().

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

◆ movedownonecell()

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

Parameters
[in]integer(i4) :: fDir
[in,out]integer(i4) :: iRow, jCol
[in,out]integer(i4) :: iRow, jCol
Authors
Robert Schweppe
Date
Jun 2018

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().

Here is the caller graph for this function:

◆ moveup()

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

Parameters
[in]real(dp), dimension(:, :) :: elev0
[in]integer(i4), dimension(:, :) :: fDir0
[in]integer(i4) :: fi, fjco-ordinate of the stream bed
[in]integer(i4) :: fi, fjco-ordinate of the stream bed
[in,out]integer(i4), dimension(:, :) :: ss
[in,out]integer(i4) :: nn
Authors
Robert Schweppe
Date
Jun 2018

Definition at line 1595 of file mo_mrm_net_startup.f90.

References mo_mrm_constants::deltah.

Referenced by l11_stream_features().

Here is the caller graph for this function: