![]() |
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, 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] | 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_namelists::nml_directories_mhm, mo_namelists::nml_nightdayratio, 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 876 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 1169 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 1249 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 1320 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 1391 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 1087 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 466 of file mo_meteo_handler.f90.
References mo_common_grid::init_lowres_level(), mo_read_spatial_data::read_header_ascii(), and mo_common_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 606 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 1423 of file mo_meteo_handler.f90.
|
private |
whether meteo data should be read completely at the begining
| [in] | idomain | current domain |
Definition at line 458 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 536 of file mo_meteo_handler.f90.