mHM
The mesoscale Hydrological Model
|
Class for the meteo handler. More...
Data Types | |
module | meteo_handler_type |
This is a handler for the meteorological forcings. More... | |
Functions/Subroutines | |
subroutine | clean_up (self) |
clean up | |
subroutine | config (self, file_namelist, unamelist, optimize, domainmeta, processmatrix, timestep, couple_cfg) |
configure the meteo_handler_type class from the mhm namelist | |
logical function | single_read (self, idomain) |
whether meteo data should be read completely at the begining | |
subroutine | init_level2 (self, level0, level1) |
Initialize meteo data and level-2 grid. | |
subroutine | update_timestep (self, tt, time, idomain, level1, simper) |
update the current time-step of the meteo_handler_type class | |
subroutine | prepare_data (self, tt, idomain, level1, simper) |
Prepare meteorological forcings data for a given variable. | |
subroutine | get_corrected_pet (self, pet_calc, petlaicorfactorl1, fasp, harsamcoeff, latitude, prietayalpha, aeroresist, surfresist) |
get corrected PET for the current timestep and domain | |
subroutine | get_temp (self, temp_calc) |
get surface temperature for the current timestep and domain | |
subroutine | get_prec (self, prec_calc) |
get precipitation for the current timestep and domain | |
subroutine | get_ssrd (self, ssrd_calc) |
get surface short-wave (solar) radiation downwards for the current timestep and domain | |
subroutine | get_strd (self, strd_calc) |
get surface long-wave (thermal) radiation downwards for the current timestep and domain | |
subroutine | get_tann (self, tann_calc) |
get annual mean surface temperature for the current timestep and domain | |
subroutine | set_meteo (self, year, month, day, hour, pre, temp, pet, tmin, tmax, netrad, absvappress, windspeed, ssrd, strd, tann) |
set meteo_data from coupling | |
Class for the meteo handler.
Handler for meteorological forcings in mHM. Is independent of global variables and provides 3 methods to access forcings:
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_meteo_handler::clean_up | ( | class(meteo_handler_type), intent(inout) | self | ) |
clean up
Definition at line 206 of file mo_meteo_handler.f90.
|
private |
configure the meteo_handler_type class from the mhm namelist
[in] | file_namelist | mhm namelist file |
[in] | unamelist | unit to open namelist file |
[in] | optimize | Optimization flag |
[in] | domainmeta | domain general description |
[in] | processmatrix | Info about which process runs in which option |
[in] | timestep | [h] simulation time step (= TS) in [h] |
[in] | couple_cfg | coupling configuration class |
Definition at line 243 of file mo_meteo_handler.f90.
References mo_common_constants::maxnodomains, mo_common_constants::nodata_i4, and mo_common_variables::nprocesses.
|
private |
get corrected PET for the current timestep and domain
[in,out] | pet_calc | [mm TS-1] estimated PET (if PET is input = corrected values (fAsp*PET)) |
[in] | petlaicorfactorl1 | PET correction factor based on LAI at level 1 |
[in] | fasp | [1] PET correction for Aspect at level 1 |
[in] | harsamcoeff | [1] PET Hargreaves Samani coefficient at level 1 |
[in] | latitude | latitude on level 1 |
[in] | prietayalpha | [1] PET Priestley Taylor coefficient at level 1 |
[in] | aeroresist | [s m-1] PET aerodynamical resitance at level 1 |
[in] | surfresist | [s m-1] PET bulk surface resitance at level 1 |
Definition at line 915 of file mo_meteo_handler.f90.
References mo_mhm_constants::harsamconst, mo_pet::pet_hargreaves(), mo_pet::pet_penman(), mo_pet::pet_priestly(), mo_meteo_temporal_tools::temporal_disagg_flux_daynight(), and mo_meteo_temporal_tools::temporal_disagg_meteo_weights().
|
private |
get precipitation for the current timestep and domain
[in,out] | prec_calc | [mm TS-1] precipitation for current time step |
Definition at line 1208 of file mo_meteo_handler.f90.
References mo_meteo_temporal_tools::temporal_disagg_flux_daynight(), and mo_meteo_temporal_tools::temporal_disagg_meteo_weights().
|
private |
get surface short-wave (solar) radiation downwards for the current timestep and domain
[in,out] | ssrd_calc | [W m2] surface short-wave (solar) radiation downwards for current time step |
Definition at line 1288 of file mo_meteo_handler.f90.
References mo_meteo_temporal_tools::temporal_disagg_state_daynight().
|
private |
get surface long-wave (thermal) radiation downwards for the current timestep and domain
[in,out] | strd_calc | [W m2] surface long-wave (thermal) radiation downwards for current time step |
Definition at line 1359 of file mo_meteo_handler.f90.
References mo_meteo_temporal_tools::temporal_disagg_state_daynight().
|
private |
get annual mean surface temperature for the current timestep and domain
[in,out] | tann_calc | [degC] annual mean air temperature |
Definition at line 1430 of file mo_meteo_handler.f90.
|
private |
get surface temperature for the current timestep and domain
[in,out] | temp_calc | [degC] temperature for current time step |
Definition at line 1126 of file mo_meteo_handler.f90.
References mo_meteo_temporal_tools::temporal_disagg_meteo_weights(), and mo_meteo_temporal_tools::temporal_disagg_state_daynight().
|
private |
Initialize meteo data and level-2 grid.
[in] | level0 | grid information at level-0 |
[in] | level1 | grid information at level-1 if all meteo data is coupled |
Definition at line 505 of file mo_meteo_handler.f90.
References mo_grid::init_lowres_level(), mo_read_spatial_data::read_header_ascii(), and mo_grid::set_domain_indices().
|
private |
Prepare meteorological forcings data for a given variable.
Prepare meteorological forcings data for a given variable. Internally this subroutine calls another routine meteo_wrapper for different meterological variables
[in] | tt | current timestep |
[in] | idomain | Domain number |
[in] | level1 | grid information at hydrologic level |
[in] | simper | warmPer + evalPer |
Definition at line 645 of file mo_meteo_handler.f90.
References mo_meteo_helper::chunk_config(), mo_meteo_helper::meteo_forcings_wrapper(), and mo_meteo_helper::meteo_weights_wrapper().
|
private |
set meteo_data from coupling
Definition at line 1462 of file mo_meteo_handler.f90.
|
private |
whether meteo data should be read completely at the begining
[in] | idomain | current domain |
Definition at line 497 of file mo_meteo_handler.f90.
References single_read().
Referenced by single_read().
|
private |
update the current time-step of the meteo_handler_type class
[in] | tt | current time step |
[in] | time | current decimal Julian day |
[in] | idomain | current domain |
[in] | level1 | grid information at hydrologic level |
[in] | simper | warmPer + evalPer |
Definition at line 575 of file mo_meteo_handler.f90.