16 USE mo_kind,
ONLY : i4, dp
17 use mo_message,
only: message, error_message
109 use mo_string_utils,
only : num2str
113 character(*),
intent(in) :: file_namelist
115 integer(i4) :: idomain, domainid
118 character(256),
dimension(maxNoDomains) :: dir_soil_moisture
121 character(256),
dimension(maxNoDomains) :: dir_neutrons
124 character(256),
dimension(maxNoDomains) :: dir_evapotranspiration
127 character(256),
dimension(maxNoDomains) :: dir_tws
129 integer(i4) :: timestep_tws_input
130 integer(i4) :: timestep_et_input
131 integer(i4) :: timestep_sm_input
132 integer(i4) :: timestep_neutrons_input
149 case(10 : 13, 15, 17, 27 : 30, 33)
171 l1_smobs(idomain)%dir = dir_soil_moisture(domainid)
172 l1_smobs(idomain)%timeStepInput = timestep_sm_input
176 call error_message(
'***ERROR: Number of soil horizons representative for input soil moisture exceeded', raise=.false.)
177 call error_message(
' defined number of soil horizions: ', adjustl(trim(num2str(
maxnosoilhorizons))),
'!')
192 l1_etobs(idomain)%dir = dir_evapotranspiration(domainid)
193 l1_etobs(idomain)%timeStepInput = timestep_et_input
201 l1_twsaobs(idomain)%timeStepInput = timestep_tws_input
208 l1_etobs(idomain)%dir = dir_evapotranspiration(domainid)
209 l1_etobs(idomain)%timeStepInput = timestep_et_input
216 l1_twsaobs(idomain)%timeStepInput = timestep_tws_input
243 call message(
'Following output will be written:')
246 call message(
' NetCDF output precision: double')
248 call message(
' NetCDF output precision: single')
252 call message(
' NetCDF output time reference point: start of time interval')
254 call message(
' NetCDF output time reference point: center of time interval')
256 call message(
' NetCDF output time reference point: end of time interval')
258 call message(
' STATES:')
260 call message(
' interceptional storage (L1_inter) [mm]')
263 call message(
' height of snowpack (L1_snowpack) [mm]')
266 call message(
' soil water content in the single layers (L1_soilMoist) [mm]')
269 call message(
' volumetric soil moisture in the single layers [mm/mm]')
272 call message(
' mean volum. soil moisture averaged over all soil layers [mm/mm]')
275 call message(
' waterdepth in reservoir of sealed areas (L1_sealSTW) [mm]')
278 call message(
' waterdepth in reservoir of unsat. soil zone (L1_unsatSTW) [mm]')
281 call message(
' waterdepth in reservoir of sat. soil zone (L1_satSTW) [mm]')
285 call message(
' ground albedo neutrons (L1_neutrons) [cph]')
288 call message(
' FLUXES:')
290 call message(
' potential evapotranspiration PET (L1_pet) [mm/T]')
293 call message(
' actual evapotranspiration aET (L1_aETCanopy) [mm/T]')
296 call message(
' total discharge generated per cell (L1_total_runoff) [mm/T]')
299 call message(
' direct runoff generated per cell (L1_runoffSeal) [mm/T]')
302 call message(
' fast interflow generated per cell (L1_fastRunoff) [mm/T]')
305 call message(
' slow interflow generated per cell (L1_slowRunoff) [mm/T]')
308 call message(
' baseflow generated per cell (L1_baseflow) [mm/T]')
311 call message(
' groundwater recharge (L1_percol) [mm/T]')
314 call message(
' infiltration (L1_infilSoil) [mm/T]')
317 call message(
' actual evapotranspiration from soil layers (L1_aETSoil) [mm/T]')
320 call message(
' effective precipitation (L1_preEffect) [mm/T]')
323 call message(
' snow melt (L1_melt) [mm/T]')
326 call message(
'FINISHED reading config')
330 call message(
'WARNING: FLUXES and STATES netCDF will be not written since optimization flag is TRUE ')
Provides constants commonly used by mHM, mRM and MPR.
integer(i4), parameter, public maxnodomains
integer(i4), parameter, public nodata_i4
Reading of main model configurations.
subroutine, public common_check_resolution(do_message, allow_subgrid_routing)
check resolution
Provides structures needed by mHM, mRM and/or mpr.
integer(i4), public opti_function
Provides structures needed by mHM, mRM and/or mpr.
type(domain_meta), public domainmeta
integer(i4), dimension(nprocesses, 3), public processmatrix
Provides file names and units for mHM.
character(:), allocatable file_defoutput
file defining mHM's outputs
Main global variables for mHM.
logical, dimension(noutflxstate) outputflxstate
Define model outputs see "mhm_outputs.nml" dim1 = number of output variables to be written.
type(optidata), dimension(:), allocatable, public l1_twsaobs
this stores L1_tws, the mask, the directory of the observerd data, and the timestepInput of the simul...
logical, public bfi_calc
calculate observed BFI from gauges with Eckhardt filter
type(optidata), dimension(:), allocatable, public l1_neutronsobs
type(optidata), dimension(:), allocatable, public l1_smobs
integer(i4) timestep_model_outputs
timestep for writing model outputs
integer(i4) output_deflate_level
deflate level in nc files
logical output_double_precision
output precision in nc files
integer(i4) output_time_reference
time reference point location in output nc files
real(dp), dimension(int(yearmonths, i4)), public evap_coeff
[-] Evap.
integer(i4) nsoilhorizons_sm_input
type(optidata), dimension(:), allocatable, public l1_etobs
real(dp), dimension(:), allocatable, public bfi_obs
given base-flow index per domain
Reading of main model configurations.
subroutine, public mhm_read_config(file_namelist)
Read main configurations for mHM.
Provides MPR specific constants.
integer(i4), parameter, public maxnosoilhorizons
Global variables for mpr only.
integer(i4), public nsoilhorizons_mhm
Module containing all namelists representations.
type(nml_baseflow_config_t), public nml_baseflow_config
'baseflow_config' namelist content
type(nml_panevapo_t), public nml_panevapo
'panevapo' namelist content
type(nml_optional_data_t), public nml_optional_data
'optional_data' namelist content
type(nml_nloutputresults_t), public nml_nloutputresults
'nloutputresults' namelist content