mHM
The mesoscale Hydrological Model
|
Class for the river temperature calculations. More...
Data Types | |
module | riv_temp_type |
This is a container to define the river temperature routing in the current time step. More... | |
Functions/Subroutines | |
subroutine | clean_up (self) |
clean up | |
subroutine | config (self, file_namelist, unamelist, file_namelist_param, unamelist_param) |
configure the riv_temp_type class from the mhm namelist | |
subroutine | init (self, ncells) |
initalize the riv_temp_type class for the current domain | |
subroutine | init_area (self, idomain, l11_netperm, l11_fromn, l11_length, nlinks, ncells, nrows, ncols, l11_mask) |
initialize the river area of riv_temp_type class for the current domain | |
subroutine | init_riv_temp (self, temp_air, efecarea, l1_l11_id, l11_areacell, l11_l1_id, map_flag) |
initialize the river temperature of riv_temp_type class for the current domain | |
subroutine | reset_timestep (self) |
reset riv_temp_type class for next timestep | |
subroutine | alloc_lateral (self, ncells) |
allocate lateral temp components of riv_temp_type class for current domain | |
subroutine | dealloc_lateral (self) |
deallocate lateral temp components of riv_temp_type | |
subroutine | acc_source_e (self, fsealed_area_fraction, fast_interflow, slow_interflow, baseflow, direct_runoff, temp_air) |
accumulate energy sources of riv_temp_type | |
subroutine | finalize_source_e (self, efecarea, l1_l11_id, l11_areacell, l11_l1_id, timestep, map_flag) |
finalize energy sources of riv_temp_type | |
real(dp) function | get_lrad_out (self, riv_temp) |
get outgoing longwave radiation of riv_temp_type | |
real(dp) function | get_lat_heat (self, air_temp, netrad) |
latent heat flux of riv_temp_type | |
real(dp) function | get_sens_heat (self, air_temp, riv_temp) |
sensible heat flux of riv_temp_type | |
real(dp) function | get_e_io (self, riv_temp, cell) |
get complete energy source of riv_temp_type at given cell | |
subroutine | l11_routing_e (self, nlinks, netperm, netlink_fromn, netlink_ton, netlink_c1, netlink_c2, ninflowgauges, inflowheadwater, inflownodelist, l11_qtr, l11_qmod) |
execute the temperature routing of riv_temp_type | |
subroutine | init_iter (self) |
initialize iterative solver of riv_temp_type | |
subroutine | next_iter (self, t_est, t_rout) |
execute next iteration with iterative solver of riv_temp_type | |
Class for the river temperature calculations.
River temperature routing on top of mRM.
COPYING
and COPYING.LESSER
provided with this software. The complete GNU license text can also be found at http://www.gnu.org/licenses/.
|
private |
accumulate energy sources of riv_temp_type
[in] | fsealed_area_fraction | sealed area fraction [1] |
[in] | fast_interflow | \( q_0 \) Fast runoff component [mm TS-1] |
[in] | slow_interflow | \( q_1 \) Slow runoff component [mm TS-1] |
[in] | baseflow | \( q_2 \) Baseflow [mm TS-1] |
[in] | direct_runoff | \( q_D \) Direct runoff from impervious areas [mm TS-1] |
[in] | temp_air | air temperature [K] |
Definition at line 449 of file mo_mrm_riv_temp_class.f90.
References mo_mrm_pre_routing::calc_l1_runoff_e().
|
private |
allocate lateral temp components of riv_temp_type class for current domain
[in] | ncells | number of level-1 cells for the current domain |
Definition at line 408 of file mo_mrm_riv_temp_class.f90.
subroutine mo_mrm_riv_temp_class::clean_up | ( | class(riv_temp_type), intent(inout) | self | ) |
clean up
Definition at line 128 of file mo_mrm_riv_temp_class.f90.
|
private |
configure the riv_temp_type class from the mhm namelist
[in] | file_namelist | mhm namelist file |
[in] | file_namelist_param | mhm parameter namelist file |
Definition at line 158 of file mo_mrm_riv_temp_class.f90.
References mo_check::check_dir(), mo_common_variables::domainmeta, mo_common_constants::maxnodomains, and mo_common_constants::nodata_i4.
|
private |
deallocate lateral temp components of riv_temp_type
Definition at line 431 of file mo_mrm_riv_temp_class.f90.
|
private |
finalize energy sources of riv_temp_type
[in] | efecarea | effective area in [km2] at Level 1 |
[in] | l1_l11_id | L11 Ids mapped on L1 |
[in] | l11_areacell | effective area in [km2] at Level 11 |
[in] | l11_l1_id | L1 Ids mapped on L11 |
[in] | timestep | simulation timestep in [h] |
[in] | map_flag | Flag indicating whether routing resolution is higher than hydrologic one |
Definition at line 490 of file mo_mrm_riv_temp_class.f90.
References mo_mrm_pre_routing::l11_meteo_acc(), and mo_mrm_pre_routing::l11_runoff_acc().
|
private |
get complete energy source of riv_temp_type at given cell
[in] | riv_temp | given river temperature in K to calculate heat fluxes |
[in] | cell | cell index in the current domain |
net radiation calc from short and longwave radiation in/out
Definition at line 610 of file mo_mrm_riv_temp_class.f90.
References mo_mhm_constants::h2odens.
|
private |
latent heat flux of riv_temp_type
[in] | air_temp | air temperature in deg C |
[in] | netrad | net radiation in W * m-2 |
Definition at line 571 of file mo_mrm_riv_temp_class.f90.
References mo_pet::slope_satpressure().
|
private |
get outgoing longwave radiation of riv_temp_type
[in] | riv_temp | river temperature in K |
Definition at line 554 of file mo_mrm_riv_temp_class.f90.
|
private |
sensible heat flux of riv_temp_type
[in] | air_temp | air temperature in [deg C] |
[in] | riv_temp | river temperature in [deg C] |
Definition at line 595 of file mo_mrm_riv_temp_class.f90.
|
private |
initalize the riv_temp_type class for the current domain
[in] | ncells | number of level-11 cells for the current domain |
Definition at line 256 of file mo_mrm_riv_temp_class.f90.
References mo_mrm_constants::nroutingstates.
|
private |
initialize the river area of riv_temp_type class for the current domain
[in] | idomain | Domain ID |
[in] | l11_netperm | L11 routing order |
[in] | l11_fromn | L11 source grid cell order |
[in] | l11_length | L11 link length |
[in] | nlinks | number of L11 links in the current domain |
[in] | ncells | number of L11 cells of the current domain |
[in] | ncols | Number of columns |
[in] | nrows | Number of rows |
[in] | l11_mask | the mask for valid cells in the original grid (nrows, ncols) |
Definition at line 296 of file mo_mrm_riv_temp_class.f90.
References mo_read_nc::read_const_nc().
|
private |
initialize iterative solver of riv_temp_type
Definition at line 755 of file mo_mrm_riv_temp_class.f90.
|
private |
initialize the river temperature of riv_temp_type class for the current domain
[in] | temp_air | air temperature [degC] for current timestep |
[in] | efecarea | effective area in [km2] at Level 1 |
[in] | l1_l11_id | L11 Ids mapped on L1 |
[in] | l11_areacell | effective area in [km2] at Level 11 |
[in] | l11_l1_id | L1 Ids mapped on L11 |
[in] | map_flag | Flag indicating whether routing resolution is higher than hydrologic one |
Definition at line 360 of file mo_mrm_riv_temp_class.f90.
References mo_mrm_pre_routing::l11_meteo_acc().
|
private |
execute the temperature routing of riv_temp_type
[in] | nlinks | number of stream segment (reaches) |
[in] | netperm | routing order of a given domain (permutation) |
[in] | netlink_fromn | from node |
[in] | netlink_ton | to node |
[in] | netlink_c1 | routing parameter C1 ([7] p. 25-41) |
[in] | netlink_c2 | routing parameters C2 (id) |
[in] | ninflowgauges | [-] number of inflow points |
[in] | inflowheadwater | [-] if to consider headwater cells of inflow gauge |
[in] | inflownodelist | [-] L11 ID of inflow points |
[in] | l11_qtr | [m3 s-1] Transformed outflow leaving node I at current timestep(Muskingum) |
[in] | l11_qmod | [m3 s-1] Simulated routed discharge |
Definition at line 639 of file mo_mrm_riv_temp_class.f90.
|
private |
execute next iteration with iterative solver of riv_temp_type
[in,out] | t_est | estimated river temperature |
[in] | t_rout | calculated (routed) river temperature |
Definition at line 769 of file mo_mrm_riv_temp_class.f90.
|
private |
reset riv_temp_type class for next timestep
Definition at line 392 of file mo_mrm_riv_temp_class.f90.