![]() |
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, file_namelist_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, sink_cells, 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 400 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 359 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, mo_namelists::nml_config_riv_temp, and mo_common_constants::nodata_i4.
|
private |
deallocate lateral temp components of riv_temp_type
Definition at line 382 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 441 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 561 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 522 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 505 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 546 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 207 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 247 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 711 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 311 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 ([CMM1988] 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 590 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 725 of file mo_mrm_riv_temp_class.f90.
|
private |
reset riv_temp_type class for next timestep
Definition at line 343 of file mo_mrm_riv_temp_class.f90.