13 use mo_kind,
only : i4, i8, dp
14 use mo_nml,
only : position_nml
15 use mo_constants,
only : yearmonths
23 use mo_string_utils,
only : num2str
24 use mo_sentinel,
only : set_sentinel
42 character(19) :: name =
"project_description"
43 logical :: read_from_file = .true.
70 character(19) :: name =
"directories_general"
71 logical :: read_from_file = .true.
74 character(256),
dimension(maxNoDomains) :: mhm_file_restartout
75 character(256),
dimension(maxNoDomains) :: mrm_file_restartout
76 character(256),
dimension(maxNoDomains) :: dir_morpho
77 character(256),
dimension(maxNoDomains) :: dir_lcover
78 character(256),
dimension(maxNoDomains) :: dir_out
79 character(256),
dimension(maxNoDomains) :: file_latlon
97 character(10) :: name =
"mainconfig"
98 logical :: read_from_file = .true.
100 real(dp),
dimension(maxNoDomains) :: resolution_hydrology
101 integer(i4) :: ndomains
102 integer(i4),
dimension(maxNoDomains) :: l0domain
104 integer(i4),
dimension(maxNoDomains) :: read_opt_domain_data
117 character(16) :: name =
"processselection"
118 logical :: read_from_file = .true.
119 integer(i4),
dimension(nProcesses) :: processcase
135 character(6) :: name =
"lcover"
136 logical :: read_from_file = .true.
138 integer(i4),
dimension(maxNLCovers) :: lcoveryearstart
139 integer(i4),
dimension(maxNLCovers) :: lcoveryearend
140 character(256),
dimension(maxNLCovers) :: lcoverfname
165 character(18) :: name =
"mainconfig_mhm_mrm"
166 logical :: read_from_file = .true.
168 real(dp),
dimension(maxNoDomains) :: resolution_routing
177 character(256),
dimension(maxNoDomains) :: mhm_file_restartin
178 character(256),
dimension(maxNoDomains) :: mrm_file_restartin
199 character(12) :: name =
"optimization"
200 logical :: read_from_file = .true.
223 character(12) :: name =
"time_periods"
224 logical :: read_from_file = .true.
225 integer(i4),
dimension(maxNoDomains) :: warming_days
226 type(
period),
dimension(maxNoDomains) :: eval_per
251 character(15) :: name =
"directories_mhm"
252 logical :: read_from_file = .true.
254 logical :: bound_error = .true.
255 character(256),
public :: inputformat_meteo_forcings
256 character(256),
dimension(maxNoDomains) :: dir_meteo_header
257 character(256),
dimension(maxNoDomains) :: dir_precipitation
258 character(256),
dimension(maxNoDomains) :: dir_temperature
259 character(256),
dimension(maxNoDomains) :: dir_referenceet
260 character(256),
dimension(maxNoDomains) :: dir_mintemperature
261 character(256),
dimension(maxNoDomains) :: dir_maxtemperature
262 character(256),
dimension(maxNoDomains) :: dir_absvappressure
263 character(256),
dimension(maxNoDomains) :: dir_windspeed
264 character(256),
dimension(maxNoDomains) :: dir_netradiation
265 character(256),
dimension(maxNoDomains) :: dir_radiation
266 integer(i4),
dimension(maxNoDomains) :: time_step_model_inputs
287 character(13) :: name =
"optional_data"
288 logical :: read_from_file = .true.
289 integer(i4) :: nsoilhorizons_sm_input
290 character(256),
dimension(maxNoDomains) :: dir_soil_moisture
291 character(256),
dimension(maxNoDomains) :: dir_neutrons
292 character(256),
dimension(maxNoDomains) :: dir_evapotranspiration
293 character(256),
dimension(maxNoDomains) :: dir_tws
294 integer(i4) :: timestep_sm_input
295 integer(i4) :: timestep_neutrons_input
296 integer(i4) :: timestep_et_input
297 integer(i4) :: timestep_tws_input
310 character(8) :: name =
"panevapo"
311 logical :: read_from_file = .true.
312 real(dp),
dimension(int(YearMonths, i4)) :: evap_coeff
330 character(13) :: name =
"nightdayratio"
331 logical :: read_from_file = .true.
332 logical :: read_meteo_weights
333 real(dp),
dimension(int(YearMonths, i4)) :: fnight_prec
334 real(dp),
dimension(int(YearMonths, i4)) :: fnight_pet
335 real(dp),
dimension(int(YearMonths, i4)) :: fnight_temp
336 real(dp),
dimension(int(YearMonths, i4)) :: fnight_ssrd
337 real(dp),
dimension(int(YearMonths, i4)) :: fnight_strd
353 character(15) :: name =
"nloutputresults"
354 logical :: read_from_file = .true.
355 integer(i4) :: output_deflate_level
356 logical :: output_double_precision
357 integer(i4) :: timestep_model_outputs
358 integer(i4) :: output_time_reference
359 logical,
dimension(nOutFlxState) :: outputflxstate
373 character(15) :: name =
"baseflow_config"
374 logical :: read_from_file = .true.
376 real(dp),
dimension(maxNoDomains) :: bfi_obs
390 character(15) :: name =
"directories_mpr"
391 logical :: read_from_file = .true.
392 character(256),
dimension(maxNoDomains) :: dir_gridded_lai
408 character(8) :: name =
"soildata"
409 logical :: read_from_file = .true.
410 integer(i4) :: iflag_soildb
411 real(dp) :: tillagedepth
412 integer(i4) :: nsoilhorizons_mhm
413 real(dp),
dimension(maxNoSoilHorizons) :: soil_depth
427 character(20) :: name =
"lai_data_information"
428 logical :: read_from_file = .true.
429 character(256) :: inputformat_gridded_lai
430 integer(i4) :: timestep_lai_input
443 character(10) :: name =
"lcover_mpr"
444 logical :: read_from_file = .true.
445 real(dp) :: fracsealed_cityarea
458 character(13) :: name =
"interception1"
459 logical :: read_from_file = .true.
460 real(dp),
dimension(nColPars) :: canopyinterceptionfactor
480 character(5) :: name =
"snow1"
481 logical :: read_from_file = .true.
482 real(dp),
dimension(nColPars) :: snowtreshholdtemperature
483 real(dp),
dimension(nColPars) :: degreedayfactor_forest
484 real(dp),
dimension(nColPars) :: degreedayfactor_impervious
485 real(dp),
dimension(nColPars) :: degreedayfactor_pervious
486 real(dp),
dimension(nColPars) :: increasedegreedayfactorbyprecip
487 real(dp),
dimension(nColPars) :: maxdegreedayfactor_forest
488 real(dp),
dimension(nColPars) :: maxdegreedayfactor_impervious
489 real(dp),
dimension(nColPars) :: maxdegreedayfactor_pervious
518 character(13) :: name =
"soilmoisture1"
519 logical :: read_from_file = .true.
520 real(dp),
dimension(nColPars) :: orgmattercontent_forest
521 real(dp),
dimension(nColPars) :: orgmattercontent_impervious
522 real(dp),
dimension(nColPars) :: orgmattercontent_pervious
524 real(dp),
dimension(nColPars) :: ptf_lower66_5_constant
525 real(dp),
dimension(nColPars) :: ptf_lower66_5_clay
526 real(dp),
dimension(nColPars) :: ptf_lower66_5_db
528 real(dp),
dimension(nColPars) :: ptf_higher66_5_constant
529 real(dp),
dimension(nColPars) :: ptf_higher66_5_clay
530 real(dp),
dimension(nColPars) :: ptf_higher66_5_db
532 real(dp),
dimension(nColPars) :: ptf_ks_constant
533 real(dp),
dimension(nColPars) :: ptf_ks_sand
534 real(dp),
dimension(nColPars) :: ptf_ks_clay
535 real(dp),
dimension(nColPars) :: ptf_ks_curveslope
537 real(dp),
dimension(nColPars) :: rootfractioncoefficient_forest
539 real(dp),
dimension(nColPars) :: rootfractioncoefficient_impervious
541 real(dp),
dimension(nColPars) :: rootfractioncoefficient_pervious
543 real(dp),
dimension(nColPars) :: infiltrationshapefactor
573 character(13) :: name =
"soilmoisture2"
574 logical :: read_from_file = .true.
575 real(dp),
dimension(nColPars) :: orgmattercontent_forest
576 real(dp),
dimension(nColPars) :: orgmattercontent_impervious
577 real(dp),
dimension(nColPars) :: orgmattercontent_pervious
579 real(dp),
dimension(nColPars) :: ptf_lower66_5_constant
580 real(dp),
dimension(nColPars) :: ptf_lower66_5_clay
581 real(dp),
dimension(nColPars) :: ptf_lower66_5_db
583 real(dp),
dimension(nColPars) :: ptf_higher66_5_constant
584 real(dp),
dimension(nColPars) :: ptf_higher66_5_clay
585 real(dp),
dimension(nColPars) :: ptf_higher66_5_db
587 real(dp),
dimension(nColPars) :: ptf_ks_constant
588 real(dp),
dimension(nColPars) :: ptf_ks_sand
589 real(dp),
dimension(nColPars) :: ptf_ks_clay
590 real(dp),
dimension(nColPars) :: ptf_ks_curveslope
592 real(dp),
dimension(nColPars) :: rootfractioncoefficient_forest
594 real(dp),
dimension(nColPars) :: rootfractioncoefficient_impervious
596 real(dp),
dimension(nColPars) :: rootfractioncoefficient_pervious
598 real(dp),
dimension(nColPars) :: infiltrationshapefactor
599 real(dp),
dimension(nColPars) :: jarvis_sm_threshold_c1
633 character(13) :: name =
"soilmoisture3"
634 logical :: read_from_file = .true.
635 real(dp),
dimension(nColPars) :: orgmattercontent_forest
636 real(dp),
dimension(nColPars) :: orgmattercontent_impervious
637 real(dp),
dimension(nColPars) :: orgmattercontent_pervious
639 real(dp),
dimension(nColPars) :: ptf_lower66_5_constant
640 real(dp),
dimension(nColPars) :: ptf_lower66_5_clay
641 real(dp),
dimension(nColPars) :: ptf_lower66_5_db
643 real(dp),
dimension(nColPars) :: ptf_higher66_5_constant
644 real(dp),
dimension(nColPars) :: ptf_higher66_5_clay
645 real(dp),
dimension(nColPars) :: ptf_higher66_5_db
647 real(dp),
dimension(nColPars) :: ptf_ks_constant
648 real(dp),
dimension(nColPars) :: ptf_ks_sand
649 real(dp),
dimension(nColPars) :: ptf_ks_clay
650 real(dp),
dimension(nColPars) :: ptf_ks_curveslope
652 real(dp),
dimension(nColPars) :: rootfractioncoefficient_forest
654 real(dp),
dimension(nColPars) :: rootfractioncoefficient_impervious
656 real(dp),
dimension(nColPars) :: rootfractioncoefficient_pervious
658 real(dp),
dimension(nColPars) :: infiltrationshapefactor
659 real(dp),
dimension(nColPars) :: fcmin_glob
660 real(dp),
dimension(nColPars) :: fcdelta_glob
661 real(dp),
dimension(nColPars) :: rootfractioncoefficient_sand
662 real(dp),
dimension(nColPars) :: rootfractioncoefficient_clay
663 real(dp),
dimension(nColPars) :: jarvis_sm_threshold_c1
696 character(13) :: name =
"soilmoisture4"
697 logical :: read_from_file = .true.
698 real(dp),
dimension(nColPars) :: orgmattercontent_forest
699 real(dp),
dimension(nColPars) :: orgmattercontent_impervious
700 real(dp),
dimension(nColPars) :: orgmattercontent_pervious
702 real(dp),
dimension(nColPars) :: ptf_lower66_5_constant
703 real(dp),
dimension(nColPars) :: ptf_lower66_5_clay
704 real(dp),
dimension(nColPars) :: ptf_lower66_5_db
706 real(dp),
dimension(nColPars) :: ptf_higher66_5_constant
707 real(dp),
dimension(nColPars) :: ptf_higher66_5_clay
708 real(dp),
dimension(nColPars) :: ptf_higher66_5_db
710 real(dp),
dimension(nColPars) :: ptf_ks_constant
711 real(dp),
dimension(nColPars) :: ptf_ks_sand
712 real(dp),
dimension(nColPars) :: ptf_ks_clay
713 real(dp),
dimension(nColPars) :: ptf_ks_curveslope
715 real(dp),
dimension(nColPars) :: rootfractioncoefficient_forest
717 real(dp),
dimension(nColPars) :: rootfractioncoefficient_impervious
719 real(dp),
dimension(nColPars) :: rootfractioncoefficient_pervious
721 real(dp),
dimension(nColPars) :: infiltrationshapefactor
722 real(dp),
dimension(nColPars) :: fcmin_glob
723 real(dp),
dimension(nColPars) :: fcdelta_glob
724 real(dp),
dimension(nColPars) :: rootfractioncoefficient_sand
725 real(dp),
dimension(nColPars) :: rootfractioncoefficient_clay
738 character(13) :: name =
"directrunoff1"
739 logical :: read_from_file = .true.
740 real(dp),
dimension(nColPars) :: imperviousstoragecapacity
758 character(9) :: name =
"petminus1"
759 logical :: read_from_file = .true.
760 real(dp),
dimension(nColPars) :: pet_a_forest
761 real(dp),
dimension(nColPars) :: pet_a_impervious
762 real(dp),
dimension(nColPars) :: pet_a_pervious
763 real(dp),
dimension(nColPars) :: pet_b
764 real(dp),
dimension(nColPars) :: pet_c
780 character(4) :: name =
"pet0"
781 logical :: read_from_file = .true.
782 real(dp),
dimension(nColPars) :: mincorrectionfactorpet
783 real(dp),
dimension(nColPars) :: maxcorrectionfactorpet
784 real(dp),
dimension(nColPars) :: aspecttresholdpet
801 character(4) :: name =
"pet1"
802 logical :: read_from_file = .true.
803 real(dp),
dimension(nColPars) :: mincorrectionfactorpet
804 real(dp),
dimension(nColPars) :: maxcorrectionfactorpet
805 real(dp),
dimension(nColPars) :: aspecttresholdpet
806 real(dp),
dimension(nColPars) :: hargreavessamanicoeff
821 character(4) :: name =
"pet2"
822 logical :: read_from_file = .true.
823 real(dp),
dimension(nColPars) :: priestleytaylorcoeff
824 real(dp),
dimension(nColPars) :: priestleytaylorlaicorr
844 character(4) :: name =
"pet3"
845 logical :: read_from_file = .true.
846 real(dp),
dimension(nColPars) :: canopyheigth_forest
847 real(dp),
dimension(nColPars) :: canopyheigth_impervious
848 real(dp),
dimension(nColPars) :: canopyheigth_pervious
849 real(dp),
dimension(nColPars) :: displacementheight_coeff
850 real(dp),
dimension(nColPars) :: roughnesslength_momentum_coeff
851 real(dp),
dimension(nColPars) :: roughnesslength_heat_coeff
852 real(dp),
dimension(nColPars) :: stomatal_resistance
869 character(10) :: name =
"interflow1"
870 logical :: read_from_file = .true.
871 real(dp),
dimension(nColPars) :: interflowstoragecapacityfactor
872 real(dp),
dimension(nColPars) :: interflowrecession_slope
874 real(dp),
dimension(nColPars) :: fastinterflowrecession_forest
876 real(dp),
dimension(nColPars) :: slowinterflowrecession_ks
878 real(dp),
dimension(nColPars) :: exponentslowinterflow
893 character(12) :: name =
"percolation1"
894 logical :: read_from_file = .true.
895 real(dp),
dimension(nColPars) :: rechargecoefficient
896 real(dp),
dimension(nColPars) :: rechargefactor_karstic
897 real(dp),
dimension(nColPars) :: gain_loss_gwreservoir_karstic
912 character(9) :: name =
"neutrons1"
913 logical :: read_from_file = .true.
914 real(dp),
dimension(nColPars) :: desilets_n0
915 real(dp),
dimension(nColPars) :: desilets_lw0
916 real(dp),
dimension(nColPars) :: desilets_lw1
937 character(9) :: name =
"neutrons2"
938 logical :: read_from_file = .true.
939 real(dp),
dimension(nColPars) :: cosmic_n0
940 real(dp),
dimension(nColPars) :: cosmic_n1
941 real(dp),
dimension(nColPars) :: cosmic_n2
942 real(dp),
dimension(nColPars) :: cosmic_alpha0
943 real(dp),
dimension(nColPars) :: cosmic_alpha1
944 real(dp),
dimension(nColPars) :: cosmic_l30
945 real(dp),
dimension(nColPars) :: cosmic_l31
946 real(dp),
dimension(nColPars) :: cosmic_lw0
947 real(dp),
dimension(nColPars) :: cosmic_lw1
960 character(12) :: name =
"geoparameter"
961 logical :: read_from_file = .true.
963 real(dp),
dimension(maxGeoUnit, nColPars) :: geoparam
980 character(14) :: name =
"mainconfig_mrm"
981 logical :: read_from_file = .true.
983 character(256) :: filenametotalrunoff
984 character(256) :: varnametotalrunoff
985 logical :: gw_coupling
1000 character(15) :: name =
"directories_mrm"
1001 logical :: read_from_file = .true.
1002 character(256),
dimension(maxNoDomains) :: dir_gauges
1003 character(256),
dimension(maxNoDomains) :: dir_total_runoff
1004 character(256),
dimension(maxNoDomains) :: dir_bankfull_runoff
1020 character(17) :: name =
"evaluation_gauges"
1021 logical :: read_from_file = .true.
1022 integer(i4) :: ngaugestotal
1023 integer(i4),
dimension(maxNoDomains) :: nogauges_domain
1024 integer(i4),
dimension(maxNoDomains, maxNoGauges) :: gauge_id
1025 character(256),
dimension(maxNoDomains, maxNoGauges) :: gauge_filename
1042 character(13) :: name =
"inflow_gauges"
1043 logical :: read_from_file = .true.
1044 integer(i4) :: ninflowgaugestotal
1045 integer(i4),
dimension(maxNoDomains) :: noinflowgauges_domain
1046 integer(i4),
dimension(maxNoDomains, maxNoGauges) :: inflowgauge_id
1048 character(256),
dimension(maxNoDomains, maxNoGauges) :: inflowgauge_filename
1050 logical,
dimension(maxNoDomains, maxNoGauges) :: inflowgauge_headwater
1066 character(15) :: name =
"nloutputresults"
1067 logical :: read_from_file = .true.
1068 integer(i4) :: output_deflate_level_mrm
1069 logical :: output_double_precision_mrm
1070 integer(i4) :: output_time_reference_mrm
1071 integer(i4) :: timestep_model_outputs_mrm
1072 logical,
dimension(mrm_nOutFlxState) :: outputflxstate_mrm
1089 character(8) :: name =
"routing1"
1090 logical :: read_from_file = .true.
1091 real(dp),
dimension(nColPars) :: muskingumtraveltime_constant
1092 real(dp),
dimension(nColPars) :: muskingumtraveltime_riverlength
1093 real(dp),
dimension(nColPars) :: muskingumtraveltime_riverslope
1094 real(dp),
dimension(nColPars) :: muskingumtraveltime_impervious
1095 real(dp),
dimension(nColPars) :: muskingumattenuation_riverslope
1108 character(8) :: name =
"routing2"
1109 logical :: read_from_file = .true.
1110 real(dp),
dimension(nColPars) :: streamflow_celerity
1123 character(8) :: name =
"routing3"
1124 logical :: read_from_file = .true.
1125 real(dp),
dimension(nColPars) :: slope_factor
1148 character(15) :: name =
"config_riv_temp"
1149 logical :: read_from_file = .true.
1150 real(dp) :: albedo_water
1151 real(dp) :: pt_a_water
1152 real(dp) :: emissivity_water
1153 real(dp) :: turb_heat_ex_coeff
1154 integer(i4) :: max_iter
1155 real(dp) :: delta_iter
1156 real(dp) :: step_iter
1157 character(256) :: riv_widths_file
1158 character(256) :: riv_widths_name
1159 character(256),
dimension(maxNoDomains) :: dir_riv_widths
1186 character(8) :: name =
"coupling"
1187 logical :: read_from_file = .true.
1189 integer(i4) :: meteo_timestep
1190 logical :: meteo_time_ref_endpoint
1191 logical :: meteo_expect_pre
1192 logical :: meteo_expect_temp
1193 logical :: meteo_expect_pet
1194 logical :: meteo_expect_tmin
1195 logical :: meteo_expect_tmax
1196 logical :: meteo_expect_netrad
1197 logical :: meteo_expect_absvappress
1198 logical :: meteo_expect_windspeed
1199 logical :: meteo_expect_ssrd
1200 logical :: meteo_expect_strd
1201 logical :: meteo_expect_tann
1212 use mo_message,
only: error_message
1213 character(len = *),
intent(in) :: file
1214 integer,
intent(out) :: unit
1216 open(newunit=unit, file=file, iostat=stat, status=
'old', action=
'read', delim=
'apostrophe')
1217 if (stat .ne. 0)
call error_message(
'open_new_nml: could not open namelist file ', trim(file))
1222 use mo_message,
only: error_message
1223 integer,
intent(in) :: unit
1225 close(unit, iostat=stat)
1226 if (stat .ne. 0)
call error_message(
'close_nml: could not close namelist file.')
1233 character(*),
intent(in) :: file
1236 character(1024) :: project_details
1237 character(1024) :: setup_description
1238 character(1024) :: simulation_type
1239 character(256) :: Conventions
1240 character(1024) :: contact
1241 character(1024) :: mHM_details
1242 character(1024) :: history
1244 namelist /project_description/ &
1246 setup_description, &
1253 if ( self%read_from_file )
then
1255 call position_nml(self%name, unit)
1256 read(unit, nml=project_description)
1258 self%project_details = project_details
1259 self%setup_description = setup_description
1260 self%simulation_type = simulation_type
1261 self%Conventions = conventions
1262 self%contact = contact
1263 self%mHM_details = mhm_details
1264 self%history = history
1265 self%read_from_file = .false.
1273 character(*),
intent(in) :: file
1276 character(256) :: dirConfigOut
1277 character(256) :: dirCommonFiles
1278 character(256),
dimension(maxNoDomains) :: mhm_file_RestartOut
1279 character(256),
dimension(maxNoDomains) :: mrm_file_RestartOut
1280 character(256),
dimension(maxNoDomains) :: dir_Morpho
1281 character(256),
dimension(maxNoDomains) :: dir_LCover
1282 character(256),
dimension(maxNoDomains) :: dir_Out
1283 character(256),
dimension(maxNoDomains) :: file_LatLon
1285 namelist /directories_general/ &
1291 mhm_file_restartout, &
1292 mrm_file_restartout, &
1295 if ( self%read_from_file )
then
1297 call position_nml(self%name, unit)
1298 read(unit, nml=directories_general)
1300 self%dirConfigOut = dirconfigout
1301 self%dirCommonFiles = dircommonfiles
1302 self%dir_Morpho = dir_morpho
1303 self%dir_LCover = dir_lcover
1304 self%dir_Out = dir_out
1305 self%mhm_file_RestartOut = mhm_file_restartout
1306 self%mrm_file_RestartOut = mrm_file_restartout
1307 self%file_LatLon = file_latlon
1308 self%read_from_file = .false.
1316 character(*),
intent(in) :: file
1319 integer(i4) :: iFlag_cordinate_sys
1320 real(dp),
dimension(maxNoDomains) :: resolution_Hydrology
1321 integer(i4) :: nDomains
1322 integer(i4),
dimension(maxNoDomains) :: L0Domain
1323 logical :: write_restart
1324 integer(i4),
dimension(maxNoDomains) :: read_opt_domain_data
1326 namelist /mainconfig/ &
1327 iflag_cordinate_sys, &
1328 resolution_hydrology, &
1332 read_opt_domain_data
1334 if ( self%read_from_file )
then
1336 call position_nml(self%name, unit)
1337 read(unit, nml=mainconfig)
1339 self%iFlag_cordinate_sys = iflag_cordinate_sys
1340 self%resolution_Hydrology = resolution_hydrology
1341 self%nDomains = ndomains
1342 self%L0Domain = l0domain
1343 self%write_restart = write_restart
1344 self%read_opt_domain_data = read_opt_domain_data
1345 self%read_from_file = .false.
1353 character(*),
intent(in) :: file
1356 integer(i4),
dimension(nProcesses) :: processCase
1358 namelist /processselection/ &
1361 if ( self%read_from_file )
then
1366 call position_nml(self%name, unit)
1367 read(unit, nml=processselection)
1369 self%processCase = processcase
1370 self%read_from_file = .false.
1378 character(*),
intent(in) :: file
1381 integer(i4) :: nLCoverScene
1382 integer(i4),
dimension(maxNLCovers) :: LCoverYearStart
1383 integer(i4),
dimension(maxNLCovers) :: LCoverYearEnd
1384 character(256),
dimension(maxNLCovers) :: LCoverfName
1392 if ( self%read_from_file )
then
1394 call position_nml(self%name, unit)
1395 read(unit, nml=lcover)
1397 self%nLcoverScene = nlcoverscene
1398 self%LCoverYearStart = lcoveryearstart
1399 self%LCoverYearEnd = lcoveryearend
1400 self%LCoverfName = lcoverfname
1401 self%read_from_file = .false.
1409 character(*),
intent(in) :: file
1412 integer(i4) :: timeStep
1413 real(dp),
dimension(maxNoDomains) :: resolution_Routing
1415 logical :: optimize_restart
1416 integer(i4) :: opti_method
1417 integer(i4) :: opti_function
1418 logical :: read_restart
1419 logical :: mrm_read_river_network
1420 logical :: read_old_style_restart_bounds
1421 logical :: restart_reset_fluxes_states
1422 character(256),
dimension(maxNoDomains) :: mhm_file_RestartIn
1423 character(256),
dimension(maxNoDomains) :: mrm_file_RestartIn
1425 namelist /mainconfig_mhm_mrm/ &
1427 resolution_routing, &
1433 mrm_read_river_network, &
1434 read_old_style_restart_bounds, &
1435 restart_reset_fluxes_states, &
1436 mhm_file_restartin, &
1439 if ( self%read_from_file )
then
1441 mrm_read_river_network = .false.
1442 read_old_style_restart_bounds = .false.
1443 restart_reset_fluxes_states = .false.
1445 call position_nml(self%name, unit)
1446 read(unit, nml=mainconfig_mhm_mrm)
1448 self%timestep = timestep
1449 self%resolution_Routing = resolution_routing
1450 self%optimize = optimize
1451 self%optimize_restart = optimize_restart
1452 self%opti_method = opti_method
1453 self%opti_function = opti_function
1454 self%read_restart = read_restart
1455 self%mrm_read_river_network = mrm_read_river_network
1456 self%read_old_style_restart_bounds = read_old_style_restart_bounds
1457 self%restart_reset_fluxes_states = restart_reset_fluxes_states
1458 self%mhm_file_RestartIn = mhm_file_restartin
1459 self%mrm_file_RestartIn = mrm_file_restartin
1460 self%read_from_file = .false.
1468 character(*),
intent(in) :: file
1470 integer :: unit, status
1471 integer(i4) :: nIterations
1475 integer(i4) :: sce_ngs
1476 integer(i4) :: sce_npg
1477 integer(i4) :: sce_nps
1478 logical :: mcmc_opti
1479 real(dp),
dimension(nerror_model) :: mcmc_error_params
1481 namelist /optimization/ &
1492 if ( self%read_from_file )
then
1503 call position_nml(self%name, unit, status=status)
1504 if (status == 0)
read(unit, nml=optimization)
1506 self%nIterations = niterations
1509 self%sa_temp = sa_temp
1510 self%sce_ngs = sce_ngs
1511 self%sce_npg = sce_npg
1512 self%sce_nps = sce_nps
1513 self%mcmc_opti = mcmc_opti
1514 self%mcmc_error_params = mcmc_error_params
1515 self%read_from_file = .false.
1523 character(*),
intent(in) :: file
1526 integer(i4),
dimension(maxNoDomains) :: warming_Days
1527 type(
period),
dimension(maxNoDomains) :: eval_Per
1529 namelist /time_periods/ &
1533 if ( self%read_from_file )
then
1535 call position_nml(self%name, unit)
1536 read(unit, nml=time_periods)
1538 self%warming_Days = warming_days
1539 self%eval_Per = eval_per
1540 self%read_from_file = .false.
1548 character(*),
intent(in) :: file
1551 character(256) :: inputFormat_meteo_forcings
1553 logical :: bound_error
1554 character(256),
dimension(maxNoDomains) :: dir_meteo_header
1555 character(256),
dimension(maxNoDomains) :: dir_Precipitation
1556 character(256),
dimension(maxNoDomains) :: dir_Temperature
1557 character(256),
dimension(maxNoDomains) :: dir_ReferenceET
1558 character(256),
dimension(maxNoDomains) :: dir_MinTemperature
1559 character(256),
dimension(maxNoDomains) :: dir_MaxTemperature
1560 character(256),
dimension(maxNoDomains) :: dir_absVapPressure
1561 character(256),
dimension(maxNoDomains) :: dir_windspeed
1562 character(256),
dimension(maxNoDomains) :: dir_NetRadiation
1563 character(256),
dimension(maxNoDomains) :: dir_Radiation
1564 integer(i4),
dimension(maxNoDomains) :: time_step_model_inputs
1566 namelist /directories_mhm/ &
1567 inputformat_meteo_forcings, &
1570 dir_precipitation, &
1573 dir_mintemperature, &
1574 dir_maxtemperature, &
1575 dir_absvappressure, &
1579 time_step_model_inputs
1581 if ( self%read_from_file )
then
1582 call set_sentinel(dir_meteo_header)
1583 inputformat_meteo_forcings =
"nc"
1584 bound_error = .true.
1586 call position_nml(self%name, unit)
1587 read(unit, nml=directories_mhm)
1589 self%inputFormat_meteo_forcings = inputformat_meteo_forcings
1590 self%bound_error = bound_error
1591 self%dir_meteo_header = dir_meteo_header
1592 self%dir_Precipitation = dir_precipitation
1593 self%dir_Temperature = dir_temperature
1594 self%dir_ReferenceET = dir_referenceet
1595 self%dir_MinTemperature = dir_mintemperature
1596 self%dir_MaxTemperature = dir_maxtemperature
1597 self%dir_absVapPressure = dir_absvappressure
1598 self%dir_windspeed = dir_windspeed
1599 self%dir_NetRadiation = dir_netradiation
1600 self%dir_Radiation = dir_radiation
1601 self%time_step_model_inputs = time_step_model_inputs
1602 self%read_from_file = .false.
1610 character(*),
intent(in) :: file
1613 integer(i4) :: nSoilHorizons_sm_input
1614 character(256),
dimension(maxNoDomains) :: dir_soil_moisture
1615 character(256),
dimension(maxNoDomains) :: dir_neutrons
1616 character(256),
dimension(maxNoDomains) :: dir_evapotranspiration
1617 character(256),
dimension(maxNoDomains) :: dir_TWS
1618 integer(i4) :: timeStep_sm_input
1619 integer(i4) :: timeStep_neutrons_input
1620 integer(i4) :: timeStep_et_input
1621 integer(i4) :: timeStep_tws_input
1623 namelist /optional_data/ &
1624 nsoilhorizons_sm_input, &
1625 dir_soil_moisture, &
1627 dir_evapotranspiration, &
1629 timestep_sm_input, &
1630 timestep_neutrons_input, &
1631 timestep_et_input, &
1634 if ( self%read_from_file )
then
1636 call position_nml(self%name, unit)
1637 read(unit, nml=optional_data)
1639 self%nSoilHorizons_sm_input = nsoilhorizons_sm_input
1640 self%dir_soil_moisture = dir_soil_moisture
1641 self%dir_neutrons = dir_neutrons
1642 self%dir_evapotranspiration = dir_evapotranspiration
1643 self%dir_TWS = dir_tws
1644 self%timeStep_sm_input = timestep_sm_input
1645 self%timeStep_neutrons_input = timestep_neutrons_input
1646 self%timeStep_et_input = timestep_et_input
1647 self%timeStep_tws_input = timestep_tws_input
1648 self%read_from_file = .false.
1656 character(*),
intent(in) :: file
1659 real(dp),
dimension(int(YearMonths, i4)) :: evap_coeff
1661 namelist /panevapo/ &
1664 if ( self%read_from_file )
then
1666 call position_nml(self%name, unit)
1667 read(unit, nml=panevapo)
1669 self%evap_coeff = evap_coeff
1670 self%read_from_file = .false.
1678 character(*),
intent(in) :: file
1681 logical :: read_meteo_weights
1682 real(dp),
dimension(int(YearMonths, i4)) :: fnight_prec
1683 real(dp),
dimension(int(YearMonths, i4)) :: fnight_pet
1684 real(dp),
dimension(int(YearMonths, i4)) :: fnight_temp
1685 real(dp),
dimension(int(YearMonths, i4)) :: fnight_ssrd
1686 real(dp),
dimension(int(YearMonths, i4)) :: fnight_strd
1688 namelist /nightdayratio/ &
1689 read_meteo_weights, &
1696 if ( self%read_from_file )
then
1698 fnight_ssrd = 0.0_dp
1699 fnight_strd = 0.45_dp
1701 call position_nml(self%name, unit)
1702 read(unit, nml=nightdayratio)
1704 self%read_meteo_weights = read_meteo_weights
1705 self%fnight_prec = fnight_prec
1706 self%fnight_pet = fnight_pet
1707 self%fnight_temp = fnight_temp
1708 self%fnight_ssrd = fnight_ssrd
1709 self%fnight_strd = fnight_strd
1710 self%read_from_file = .false.
1718 character(*),
intent(in) :: file
1721 integer(i4) :: output_deflate_level
1722 logical :: output_double_precision
1723 integer(i4) :: output_time_reference
1724 integer(i4) :: timeStep_model_outputs
1725 logical,
dimension(nOutFlxState) :: outputFlxState
1727 namelist /nloutputresults/ &
1728 output_deflate_level, &
1729 output_double_precision, &
1730 output_time_reference, &
1731 timestep_model_outputs, &
1734 if ( self%read_from_file )
then
1736 output_deflate_level = 6
1737 output_double_precision = .true.
1738 output_time_reference = 0
1739 outputflxstate = .false.
1741 call position_nml(self%name, unit)
1742 read(unit, nml=nloutputresults)
1744 self%output_deflate_level = output_deflate_level
1745 self%output_double_precision = output_double_precision
1746 self%timeStep_model_outputs = timestep_model_outputs
1747 self%output_time_reference = output_time_reference
1748 self%outputFlxState = outputflxstate
1749 self%read_from_file = .false.
1757 character(*),
intent(in) :: file
1761 real(dp),
dimension(maxNoDomains) :: BFI_obs
1763 namelist /baseflow_config/ &
1767 if ( self%read_from_file )
then
1771 call position_nml(self%name, unit)
1772 read(unit, nml=baseflow_config)
1774 self%BFI_calc = bfi_calc
1775 self%BFI_obs = bfi_obs
1776 self%read_from_file = .false.
1784 character(*),
intent(in) :: file
1787 character(256),
dimension(maxNoDomains) :: dir_gridded_LAI
1789 namelist /directories_mpr/ &
1792 if ( self%read_from_file )
then
1794 call position_nml(self%name, unit)
1795 read(unit, nml=directories_mpr)
1797 self%dir_gridded_LAI = dir_gridded_lai
1798 self%read_from_file = .false.
1806 character(*),
intent(in) :: file
1809 integer(i4) :: iFlag_soilDB
1810 real(dp) :: tillageDepth
1811 integer(i4) :: nSoilHorizons_mHM
1812 real(dp),
dimension(maxNoSoilHorizons) :: soil_Depth
1814 namelist /soildata/ &
1817 nsoilhorizons_mhm, &
1820 if ( self%read_from_file )
then
1823 call position_nml(self%name, unit)
1824 read(unit, nml=soildata)
1826 self%iFlag_soilDB = iflag_soildb
1827 self%tillageDepth = tillagedepth
1828 self%nSoilHorizons_mHM = nsoilhorizons_mhm
1829 self%soil_Depth = soil_depth
1830 self%read_from_file = .false.
1838 character(*),
intent(in) :: file
1841 character(256) :: inputFormat_gridded_LAI
1842 integer(i4) :: timeStep_LAI_input
1844 namelist /lai_data_information/ &
1845 inputformat_gridded_lai, &
1848 if ( self%read_from_file )
then
1850 call position_nml(self%name, unit)
1851 read(unit, nml=lai_data_information)
1853 self%inputFormat_gridded_LAI = inputformat_gridded_lai
1854 self%timeStep_LAI_input = timestep_lai_input
1855 self%read_from_file = .false.
1863 character(*),
intent(in) :: file
1866 real(dp) :: fracSealed_cityArea
1868 namelist /lcover_mpr/ &
1871 if ( self%read_from_file )
then
1873 call position_nml(self%name, unit)
1874 read(unit, nml=lcover_mpr)
1876 self%fracSealed_cityArea = fracsealed_cityarea
1877 self%read_from_file = .false.
1885 character(*),
intent(in) :: file
1888 real(dp),
dimension(nColPars) :: canopyInterceptionFactor
1890 namelist /interception1/ &
1891 canopyinterceptionfactor
1893 if ( self%read_from_file )
then
1895 call position_nml(self%name, unit)
1896 read(unit, nml=interception1)
1898 self%canopyInterceptionFactor = canopyinterceptionfactor
1899 self%read_from_file = .false.
1907 character(*),
intent(in) :: file
1910 real(dp),
dimension(nColPars) :: snowTreshholdTemperature
1911 real(dp),
dimension(nColPars) :: degreeDayFactor_forest
1912 real(dp),
dimension(nColPars) :: degreeDayFactor_impervious
1913 real(dp),
dimension(nColPars) :: degreeDayFactor_pervious
1914 real(dp),
dimension(nColPars) :: increaseDegreeDayFactorByPrecip
1915 real(dp),
dimension(nColPars) :: maxDegreeDayFactor_forest
1916 real(dp),
dimension(nColPars) :: maxDegreeDayFactor_impervious
1917 real(dp),
dimension(nColPars) :: maxDegreeDayFactor_pervious
1920 snowtreshholdtemperature, &
1921 degreedayfactor_forest, &
1922 degreedayfactor_impervious, &
1923 degreedayfactor_pervious, &
1924 increasedegreedayfactorbyprecip, &
1925 maxdegreedayfactor_forest, &
1926 maxdegreedayfactor_impervious, &
1927 maxdegreedayfactor_pervious
1929 if ( self%read_from_file )
then
1931 call position_nml(self%name, unit)
1932 read(unit, nml=snow1)
1934 self%snowTreshholdTemperature = snowtreshholdtemperature
1935 self%degreeDayFactor_forest = degreedayfactor_forest
1936 self%degreeDayFactor_impervious = degreedayfactor_impervious
1937 self%degreeDayFactor_pervious = degreedayfactor_pervious
1938 self%increaseDegreeDayFactorByPrecip = increasedegreedayfactorbyprecip
1939 self%maxDegreeDayFactor_forest = maxdegreedayfactor_forest
1940 self%maxDegreeDayFactor_impervious = maxdegreedayfactor_impervious
1941 self%maxDegreeDayFactor_pervious = maxdegreedayfactor_pervious
1942 self%read_from_file = .false.
1950 character(*),
intent(in) :: file
1953 real(dp),
dimension(nColPars) :: orgMatterContent_forest
1954 real(dp),
dimension(nColPars) :: orgMatterContent_impervious
1955 real(dp),
dimension(nColPars) :: orgMatterContent_pervious
1957 real(dp),
dimension(nColPars) :: PTF_lower66_5_constant
1958 real(dp),
dimension(nColPars) :: PTF_lower66_5_clay
1959 real(dp),
dimension(nColPars) :: PTF_lower66_5_Db
1961 real(dp),
dimension(nColPars) :: PTF_higher66_5_constant
1962 real(dp),
dimension(nColPars) :: PTF_higher66_5_clay
1963 real(dp),
dimension(nColPars) :: PTF_higher66_5_Db
1965 real(dp),
dimension(nColPars) :: PTF_Ks_constant
1966 real(dp),
dimension(nColPars) :: PTF_Ks_sand
1967 real(dp),
dimension(nColPars) :: PTF_Ks_clay
1968 real(dp),
dimension(nColPars) :: PTF_Ks_curveSlope
1970 real(dp),
dimension(nColPars) :: rootFractionCoefficient_forest
1972 real(dp),
dimension(nColPars) :: rootFractionCoefficient_impervious
1974 real(dp),
dimension(nColPars) :: rootFractionCoefficient_pervious
1976 real(dp),
dimension(nColPars) :: infiltrationShapeFactor
1978 namelist /soilmoisture1/ &
1979 orgmattercontent_forest, &
1980 orgmattercontent_impervious, &
1981 orgmattercontent_pervious, &
1982 ptf_lower66_5_constant, &
1983 ptf_lower66_5_clay, &
1985 ptf_higher66_5_constant, &
1986 ptf_higher66_5_clay, &
1987 ptf_higher66_5_db, &
1991 ptf_ks_curveslope, &
1992 rootfractioncoefficient_forest, &
1993 rootfractioncoefficient_impervious, &
1994 rootfractioncoefficient_pervious, &
1995 infiltrationshapefactor
1997 if ( self%read_from_file )
then
1999 call position_nml(self%name, unit)
2000 read(unit, nml=soilmoisture1)
2002 self%orgMatterContent_forest = orgmattercontent_forest
2003 self%orgMatterContent_impervious = orgmattercontent_impervious
2004 self%orgMatterContent_pervious = orgmattercontent_pervious
2005 self%PTF_lower66_5_constant = ptf_lower66_5_constant
2006 self%PTF_lower66_5_clay = ptf_lower66_5_clay
2007 self%PTF_lower66_5_Db = ptf_lower66_5_db
2008 self%PTF_higher66_5_constant = ptf_higher66_5_constant
2009 self%PTF_higher66_5_clay = ptf_higher66_5_clay
2010 self%PTF_higher66_5_Db = ptf_higher66_5_db
2011 self%PTF_Ks_constant = ptf_ks_constant
2012 self%PTF_Ks_sand = ptf_ks_sand
2013 self%PTF_Ks_clay = ptf_ks_clay
2014 self%PTF_Ks_curveSlope = ptf_ks_curveslope
2015 self%rootFractionCoefficient_forest = rootfractioncoefficient_forest
2016 self%rootFractionCoefficient_impervious = rootfractioncoefficient_impervious
2017 self%rootFractionCoefficient_pervious = rootfractioncoefficient_pervious
2018 self%infiltrationShapeFactor = infiltrationshapefactor
2019 self%read_from_file = .false.
2027 character(*),
intent(in) :: file
2030 real(dp),
dimension(nColPars) :: orgMatterContent_forest
2031 real(dp),
dimension(nColPars) :: orgMatterContent_impervious
2032 real(dp),
dimension(nColPars) :: orgMatterContent_pervious
2034 real(dp),
dimension(nColPars) :: PTF_lower66_5_constant
2035 real(dp),
dimension(nColPars) :: PTF_lower66_5_clay
2036 real(dp),
dimension(nColPars) :: PTF_lower66_5_Db
2038 real(dp),
dimension(nColPars) :: PTF_higher66_5_constant
2039 real(dp),
dimension(nColPars) :: PTF_higher66_5_clay
2040 real(dp),
dimension(nColPars) :: PTF_higher66_5_Db
2042 real(dp),
dimension(nColPars) :: PTF_Ks_constant
2043 real(dp),
dimension(nColPars) :: PTF_Ks_sand
2044 real(dp),
dimension(nColPars) :: PTF_Ks_clay
2045 real(dp),
dimension(nColPars) :: PTF_Ks_curveSlope
2047 real(dp),
dimension(nColPars) :: rootFractionCoefficient_forest
2049 real(dp),
dimension(nColPars) :: rootFractionCoefficient_impervious
2051 real(dp),
dimension(nColPars) :: rootFractionCoefficient_pervious
2053 real(dp),
dimension(nColPars) :: infiltrationShapeFactor
2054 real(dp),
dimension(nColPars) :: jarvis_sm_threshold_c1
2056 namelist /soilmoisture2/ &
2057 orgmattercontent_forest, &
2058 orgmattercontent_impervious, &
2059 orgmattercontent_pervious, &
2060 ptf_lower66_5_constant, &
2061 ptf_lower66_5_clay, &
2063 ptf_higher66_5_constant, &
2064 ptf_higher66_5_clay, &
2065 ptf_higher66_5_db, &
2069 ptf_ks_curveslope, &
2070 rootfractioncoefficient_forest, &
2071 rootfractioncoefficient_impervious, &
2072 rootfractioncoefficient_pervious, &
2073 infiltrationshapefactor, &
2074 jarvis_sm_threshold_c1
2076 if ( self%read_from_file )
then
2078 call position_nml(self%name, unit)
2079 read(unit, nml=soilmoisture2)
2081 self%orgMatterContent_forest = orgmattercontent_forest
2082 self%orgMatterContent_impervious = orgmattercontent_impervious
2083 self%orgMatterContent_pervious = orgmattercontent_pervious
2084 self%PTF_lower66_5_constant = ptf_lower66_5_constant
2085 self%PTF_lower66_5_clay = ptf_lower66_5_clay
2086 self%PTF_lower66_5_Db = ptf_lower66_5_db
2087 self%PTF_higher66_5_constant = ptf_higher66_5_constant
2088 self%PTF_higher66_5_clay = ptf_higher66_5_clay
2089 self%PTF_higher66_5_Db = ptf_higher66_5_db
2090 self%PTF_Ks_constant = ptf_ks_constant
2091 self%PTF_Ks_sand = ptf_ks_sand
2092 self%PTF_Ks_clay = ptf_ks_clay
2093 self%PTF_Ks_curveSlope = ptf_ks_curveslope
2094 self%rootFractionCoefficient_forest = rootfractioncoefficient_forest
2095 self%rootFractionCoefficient_impervious = rootfractioncoefficient_impervious
2096 self%rootFractionCoefficient_pervious = rootfractioncoefficient_pervious
2097 self%infiltrationShapeFactor = infiltrationshapefactor
2098 self%jarvis_sm_threshold_c1 = jarvis_sm_threshold_c1
2099 self%read_from_file = .false.
2107 character(*),
intent(in) :: file
2110 real(dp),
dimension(nColPars) :: orgMatterContent_forest
2111 real(dp),
dimension(nColPars) :: orgMatterContent_impervious
2112 real(dp),
dimension(nColPars) :: orgMatterContent_pervious
2114 real(dp),
dimension(nColPars) :: PTF_lower66_5_constant
2115 real(dp),
dimension(nColPars) :: PTF_lower66_5_clay
2116 real(dp),
dimension(nColPars) :: PTF_lower66_5_Db
2118 real(dp),
dimension(nColPars) :: PTF_higher66_5_constant
2119 real(dp),
dimension(nColPars) :: PTF_higher66_5_clay
2120 real(dp),
dimension(nColPars) :: PTF_higher66_5_Db
2122 real(dp),
dimension(nColPars) :: PTF_Ks_constant
2123 real(dp),
dimension(nColPars) :: PTF_Ks_sand
2124 real(dp),
dimension(nColPars) :: PTF_Ks_clay
2125 real(dp),
dimension(nColPars) :: PTF_Ks_curveSlope
2127 real(dp),
dimension(nColPars) :: rootFractionCoefficient_forest
2129 real(dp),
dimension(nColPars) :: rootFractionCoefficient_impervious
2131 real(dp),
dimension(nColPars) :: rootFractionCoefficient_pervious
2133 real(dp),
dimension(nColPars) :: infiltrationShapeFactor
2134 real(dp),
dimension(nColPars) :: FCmin_glob
2135 real(dp),
dimension(nColPars) :: FCdelta_glob
2136 real(dp),
dimension(nColPars) :: rootFractionCoefficient_sand
2137 real(dp),
dimension(nColPars) :: rootFractionCoefficient_clay
2138 real(dp),
dimension(nColPars) :: jarvis_sm_threshold_c1
2140 namelist /soilmoisture3/ &
2141 orgmattercontent_forest, &
2142 orgmattercontent_impervious, &
2143 orgmattercontent_pervious, &
2144 ptf_lower66_5_constant, &
2145 ptf_lower66_5_clay, &
2147 ptf_higher66_5_constant, &
2148 ptf_higher66_5_clay, &
2149 ptf_higher66_5_db, &
2153 ptf_ks_curveslope, &
2154 rootfractioncoefficient_forest, &
2155 rootfractioncoefficient_impervious, &
2156 rootfractioncoefficient_pervious, &
2157 infiltrationshapefactor, &
2158 rootfractioncoefficient_sand, &
2159 rootfractioncoefficient_clay, &
2162 jarvis_sm_threshold_c1
2164 if ( self%read_from_file )
then
2166 call position_nml(self%name, unit)
2167 read(unit, nml=soilmoisture3)
2169 self%orgMatterContent_forest = orgmattercontent_forest
2170 self%orgMatterContent_impervious = orgmattercontent_impervious
2171 self%orgMatterContent_pervious = orgmattercontent_pervious
2172 self%PTF_lower66_5_constant = ptf_lower66_5_constant
2173 self%PTF_lower66_5_clay = ptf_lower66_5_clay
2174 self%PTF_lower66_5_Db = ptf_lower66_5_db
2175 self%PTF_higher66_5_constant = ptf_higher66_5_constant
2176 self%PTF_higher66_5_clay = ptf_higher66_5_clay
2177 self%PTF_higher66_5_Db = ptf_higher66_5_db
2178 self%PTF_Ks_constant = ptf_ks_constant
2179 self%PTF_Ks_sand = ptf_ks_sand
2180 self%PTF_Ks_clay = ptf_ks_clay
2181 self%PTF_Ks_curveSlope = ptf_ks_curveslope
2182 self%rootFractionCoefficient_forest = rootfractioncoefficient_forest
2183 self%rootFractionCoefficient_impervious = rootfractioncoefficient_impervious
2184 self%rootFractionCoefficient_pervious = rootfractioncoefficient_pervious
2185 self%infiltrationShapeFactor = infiltrationshapefactor
2186 self%rootFractionCoefficient_sand = rootfractioncoefficient_sand
2187 self%rootFractionCoefficient_clay = rootfractioncoefficient_clay
2188 self%FCmin_glob = fcmin_glob
2189 self%FCdelta_glob = fcdelta_glob
2190 self%jarvis_sm_threshold_c1 = jarvis_sm_threshold_c1
2191 self%read_from_file = .false.
2199 character(*),
intent(in) :: file
2202 real(dp),
dimension(nColPars) :: orgMatterContent_forest
2203 real(dp),
dimension(nColPars) :: orgMatterContent_impervious
2204 real(dp),
dimension(nColPars) :: orgMatterContent_pervious
2206 real(dp),
dimension(nColPars) :: PTF_lower66_5_constant
2207 real(dp),
dimension(nColPars) :: PTF_lower66_5_clay
2208 real(dp),
dimension(nColPars) :: PTF_lower66_5_Db
2210 real(dp),
dimension(nColPars) :: PTF_higher66_5_constant
2211 real(dp),
dimension(nColPars) :: PTF_higher66_5_clay
2212 real(dp),
dimension(nColPars) :: PTF_higher66_5_Db
2214 real(dp),
dimension(nColPars) :: PTF_Ks_constant
2215 real(dp),
dimension(nColPars) :: PTF_Ks_sand
2216 real(dp),
dimension(nColPars) :: PTF_Ks_clay
2217 real(dp),
dimension(nColPars) :: PTF_Ks_curveSlope
2219 real(dp),
dimension(nColPars) :: rootFractionCoefficient_forest
2221 real(dp),
dimension(nColPars) :: rootFractionCoefficient_impervious
2223 real(dp),
dimension(nColPars) :: rootFractionCoefficient_pervious
2225 real(dp),
dimension(nColPars) :: infiltrationShapeFactor
2226 real(dp),
dimension(nColPars) :: FCmin_glob
2227 real(dp),
dimension(nColPars) :: FCdelta_glob
2228 real(dp),
dimension(nColPars) :: rootFractionCoefficient_sand
2229 real(dp),
dimension(nColPars) :: rootFractionCoefficient_clay
2231 namelist /soilmoisture4/ &
2232 orgmattercontent_forest, &
2233 orgmattercontent_impervious, &
2234 orgmattercontent_pervious, &
2235 ptf_lower66_5_constant, &
2236 ptf_lower66_5_clay, &
2238 ptf_higher66_5_constant, &
2239 ptf_higher66_5_clay, &
2240 ptf_higher66_5_db, &
2244 ptf_ks_curveslope, &
2245 rootfractioncoefficient_forest, &
2246 rootfractioncoefficient_impervious, &
2247 rootfractioncoefficient_pervious, &
2248 infiltrationshapefactor, &
2249 rootfractioncoefficient_sand, &
2250 rootfractioncoefficient_clay, &
2254 if ( self%read_from_file )
then
2256 call position_nml(self%name, unit)
2257 read(unit, nml=soilmoisture4)
2259 self%orgMatterContent_forest = orgmattercontent_forest
2260 self%orgMatterContent_impervious = orgmattercontent_impervious
2261 self%orgMatterContent_pervious = orgmattercontent_pervious
2262 self%PTF_lower66_5_constant = ptf_lower66_5_constant
2263 self%PTF_lower66_5_clay = ptf_lower66_5_clay
2264 self%PTF_lower66_5_Db = ptf_lower66_5_db
2265 self%PTF_higher66_5_constant = ptf_higher66_5_constant
2266 self%PTF_higher66_5_clay = ptf_higher66_5_clay
2267 self%PTF_higher66_5_Db = ptf_higher66_5_db
2268 self%PTF_Ks_constant = ptf_ks_constant
2269 self%PTF_Ks_sand = ptf_ks_sand
2270 self%PTF_Ks_clay = ptf_ks_clay
2271 self%PTF_Ks_curveSlope = ptf_ks_curveslope
2272 self%rootFractionCoefficient_forest = rootfractioncoefficient_forest
2273 self%rootFractionCoefficient_impervious = rootfractioncoefficient_impervious
2274 self%rootFractionCoefficient_pervious = rootfractioncoefficient_pervious
2275 self%infiltrationShapeFactor = infiltrationshapefactor
2276 self%rootFractionCoefficient_sand = rootfractioncoefficient_sand
2277 self%rootFractionCoefficient_clay = rootfractioncoefficient_clay
2278 self%FCmin_glob = fcmin_glob
2279 self%FCdelta_glob = fcdelta_glob
2280 self%read_from_file = .false.
2288 character(*),
intent(in) :: file
2291 real(dp),
dimension(nColPars) :: imperviousStorageCapacity
2293 namelist /directrunoff1/ &
2294 imperviousstoragecapacity
2296 if ( self%read_from_file )
then
2298 call position_nml(self%name, unit)
2299 read(unit, nml=directrunoff1)
2301 self%imperviousStorageCapacity = imperviousstoragecapacity
2302 self%read_from_file = .false.
2310 character(*),
intent(in) :: file
2313 real(dp),
dimension(nColPars) :: PET_a_forest
2314 real(dp),
dimension(nColPars) :: PET_a_impervious
2315 real(dp),
dimension(nColPars) :: PET_a_pervious
2316 real(dp),
dimension(nColPars) :: PET_b
2317 real(dp),
dimension(nColPars) :: PET_c
2319 namelist /petminus1/ &
2326 if ( self%read_from_file )
then
2328 call position_nml(self%name, unit)
2329 read(unit, nml=petminus1)
2331 self%PET_a_forest = pet_a_forest
2332 self%PET_a_impervious = pet_a_impervious
2333 self%PET_a_pervious = pet_a_pervious
2336 self%read_from_file = .false.
2344 character(*),
intent(in) :: file
2347 real(dp),
dimension(nColPars) :: minCorrectionFactorPET
2348 real(dp),
dimension(nColPars) :: maxCorrectionFactorPET
2349 real(dp),
dimension(nColPars) :: aspectTresholdPET
2352 mincorrectionfactorpet, &
2353 maxcorrectionfactorpet, &
2356 if ( self%read_from_file )
then
2358 call position_nml(self%name, unit)
2359 read(unit, nml=pet0)
2361 self%minCorrectionFactorPET = mincorrectionfactorpet
2362 self%maxCorrectionFactorPET = maxcorrectionfactorpet
2363 self%aspectTresholdPET = aspecttresholdpet
2364 self%read_from_file = .false.
2372 character(*),
intent(in) :: file
2375 real(dp),
dimension(nColPars) :: minCorrectionFactorPET
2376 real(dp),
dimension(nColPars) :: maxCorrectionFactorPET
2377 real(dp),
dimension(nColPars) :: aspectTresholdPET
2378 real(dp),
dimension(nColPars) :: HargreavesSamaniCoeff
2381 mincorrectionfactorpet, &
2382 maxcorrectionfactorpet, &
2383 aspecttresholdpet, &
2384 hargreavessamanicoeff
2386 if ( self%read_from_file )
then
2388 call position_nml(self%name, unit)
2389 read(unit, nml=pet1)
2391 self%minCorrectionFactorPET = mincorrectionfactorpet
2392 self%maxCorrectionFactorPET = maxcorrectionfactorpet
2393 self%aspectTresholdPET = aspecttresholdpet
2394 self%HargreavesSamaniCoeff = hargreavessamanicoeff
2395 self%read_from_file = .false.
2403 character(*),
intent(in) :: file
2406 real(dp),
dimension(nColPars) :: PriestleyTaylorCoeff
2407 real(dp),
dimension(nColPars) :: PriestleyTaylorLAIcorr
2410 priestleytaylorcoeff, &
2411 priestleytaylorlaicorr
2413 if ( self%read_from_file )
then
2415 call position_nml(self%name, unit)
2416 read(unit, nml=pet2)
2418 self%PriestleyTaylorCoeff = priestleytaylorcoeff
2419 self%PriestleyTaylorLAIcorr = priestleytaylorlaicorr
2420 self%read_from_file = .false.
2428 character(*),
intent(in) :: file
2431 real(dp),
dimension(nColPars) :: canopyheigth_forest
2432 real(dp),
dimension(nColPars) :: canopyheigth_impervious
2433 real(dp),
dimension(nColPars) :: canopyheigth_pervious
2434 real(dp),
dimension(nColPars) :: displacementheight_coeff
2435 real(dp),
dimension(nColPars) :: roughnesslength_momentum_coeff
2436 real(dp),
dimension(nColPars) :: roughnesslength_heat_coeff
2437 real(dp),
dimension(nColPars) :: stomatal_resistance
2440 canopyheigth_forest, &
2441 canopyheigth_impervious, &
2442 canopyheigth_pervious, &
2443 displacementheight_coeff, &
2444 roughnesslength_momentum_coeff, &
2445 roughnesslength_heat_coeff, &
2448 if ( self%read_from_file )
then
2450 call position_nml(self%name, unit)
2451 read(unit, nml=pet3)
2453 self%canopyheigth_forest = canopyheigth_forest
2454 self%canopyheigth_impervious = canopyheigth_impervious
2455 self%canopyheigth_pervious = canopyheigth_pervious
2456 self%displacementheight_coeff = displacementheight_coeff
2457 self%roughnesslength_momentum_coeff = roughnesslength_momentum_coeff
2458 self%roughnesslength_heat_coeff = roughnesslength_heat_coeff
2459 self%stomatal_resistance = stomatal_resistance
2460 self%read_from_file = .false.
2468 character(*),
intent(in) :: file
2471 real(dp),
dimension(nColPars) :: interflowStorageCapacityFactor
2472 real(dp),
dimension(nColPars) :: interflowRecession_slope
2474 real(dp),
dimension(nColPars) :: fastInterflowRecession_forest
2476 real(dp),
dimension(nColPars) :: slowInterflowRecession_Ks
2478 real(dp),
dimension(nColPars) :: exponentSlowInterflow
2480 namelist /interflow1/ &
2481 interflowstoragecapacityfactor, &
2482 interflowrecession_slope, &
2483 fastinterflowrecession_forest, &
2484 slowinterflowrecession_ks, &
2485 exponentslowinterflow
2487 if ( self%read_from_file )
then
2489 call position_nml(self%name, unit)
2490 read(unit, nml=interflow1)
2492 self%interflowStorageCapacityFactor = interflowstoragecapacityfactor
2493 self%interflowRecession_slope = interflowrecession_slope
2494 self%fastInterflowRecession_forest = fastinterflowrecession_forest
2495 self%slowInterflowRecession_Ks = slowinterflowrecession_ks
2496 self%exponentSlowInterflow = exponentslowinterflow
2497 self%read_from_file = .false.
2505 character(*),
intent(in) :: file
2508 real(dp),
dimension(nColPars) :: rechargeCoefficient
2509 real(dp),
dimension(nColPars) :: rechargeFactor_karstic
2510 real(dp),
dimension(nColPars) :: gain_loss_GWreservoir_karstic
2512 namelist /percolation1/ &
2513 rechargecoefficient, &
2514 rechargefactor_karstic, &
2515 gain_loss_gwreservoir_karstic
2517 if ( self%read_from_file )
then
2519 call position_nml(self%name, unit)
2520 read(unit, nml=percolation1)
2522 self%rechargeCoefficient = rechargecoefficient
2523 self%rechargeFactor_karstic = rechargefactor_karstic
2524 self%gain_loss_GWreservoir_karstic = gain_loss_gwreservoir_karstic
2525 self%read_from_file = .false.
2533 character(*),
intent(in) :: file
2536 real(dp),
dimension(nColPars) :: Desilets_N0
2537 real(dp),
dimension(nColPars) :: Desilets_LW0
2538 real(dp),
dimension(nColPars) :: Desilets_LW1
2540 namelist /neutrons1/ &
2545 if ( self%read_from_file )
then
2547 call position_nml(self%name, unit)
2548 read(unit, nml=neutrons1)
2550 self%Desilets_N0 = desilets_n0
2551 self%Desilets_LW0 = desilets_lw0
2552 self%Desilets_LW1 = desilets_lw1
2553 self%read_from_file = .false.
2561 character(*),
intent(in) :: file
2564 real(dp),
dimension(nColPars) :: COSMIC_N0
2565 real(dp),
dimension(nColPars) :: COSMIC_N1
2566 real(dp),
dimension(nColPars) :: COSMIC_N2
2567 real(dp),
dimension(nColPars) :: COSMIC_alpha0
2568 real(dp),
dimension(nColPars) :: COSMIC_alpha1
2569 real(dp),
dimension(nColPars) :: COSMIC_L30
2570 real(dp),
dimension(nColPars) :: COSMIC_L31
2571 real(dp),
dimension(nColPars) :: COSMIC_LW0
2572 real(dp),
dimension(nColPars) :: COSMIC_LW1
2574 namelist /neutrons2/ &
2585 if ( self%read_from_file )
then
2587 call position_nml(self%name, unit)
2588 read(unit, nml=neutrons2)
2590 self%COSMIC_N0 = cosmic_n0
2591 self%COSMIC_N1 = cosmic_n1
2592 self%COSMIC_N2 = cosmic_n2
2593 self%COSMIC_alpha0 = cosmic_alpha0
2594 self%COSMIC_alpha1 = cosmic_alpha1
2595 self%COSMIC_L30 = cosmic_l30
2596 self%COSMIC_L31 = cosmic_l31
2597 self%COSMIC_LW0 = cosmic_lw0
2598 self%COSMIC_LW1 = cosmic_lw1
2599 self%read_from_file = .false.
2607 character(*),
intent(in) :: file
2611 real(dp),
dimension(maxGeoUnit, nColPars) :: GeoParam
2613 namelist /geoparameter/ &
2616 if ( self%read_from_file )
then
2619 call position_nml(self%name, unit)
2620 read(unit, nml=geoparameter)
2622 self%GeoParam = geoparam
2623 self%read_from_file = .false.
2631 character(*),
intent(in) :: file
2634 logical :: ALMA_convention
2635 character(256) :: filenameTotalRunoff
2636 character(256) :: varnameTotalRunoff
2637 logical :: gw_coupling
2639 namelist /mainconfig_mrm/ &
2641 filenametotalrunoff, &
2642 varnametotalrunoff, &
2645 if ( self%read_from_file )
then
2646 alma_convention = .false.
2647 filenametotalrunoff =
'total_runoff'
2648 varnametotalrunoff =
'total_runoff'
2649 gw_coupling = .false.
2651 call position_nml(self%name, unit)
2652 read(unit, nml=mainconfig_mrm)
2654 self%ALMA_convention = alma_convention
2655 self%filenameTotalRunoff = filenametotalrunoff
2656 self%varnameTotalRunoff = varnametotalrunoff
2657 self%gw_coupling = gw_coupling
2658 self%read_from_file = .false.
2666 character(*),
intent(in) :: file
2669 character(256),
dimension(maxNoDomains) :: dir_Gauges
2670 character(256),
dimension(maxNoDomains) :: dir_Total_Runoff
2671 character(256),
dimension(maxNoDomains) :: dir_Bankfull_Runoff
2673 namelist /directories_mrm/ &
2678 if ( self%read_from_file )
then
2680 call position_nml(self%name, unit)
2681 read(unit, nml=directories_mrm)
2683 self%dir_Gauges = dir_gauges
2684 self%dir_Total_Runoff = dir_total_runoff
2685 self%dir_Bankfull_Runoff = dir_bankfull_runoff
2686 self%read_from_file = .false.
2694 character(*),
intent(in) :: file
2697 integer(i4) :: nGaugesTotal
2698 integer(i4),
dimension(maxNoDomains) :: NoGauges_domain
2699 integer(i4),
dimension(maxNoDomains, maxNoGauges) :: Gauge_id
2700 character(256),
dimension(maxNoDomains, maxNoGauges) :: Gauge_filename
2702 namelist /evaluation_gauges/ &
2708 if ( self%read_from_file )
then
2714 call position_nml(self%name, unit)
2715 read(unit, nml=evaluation_gauges)
2717 self%nGaugesTotal = ngaugestotal
2718 self%NoGauges_domain = nogauges_domain
2719 self%Gauge_id = gauge_id
2720 self%gauge_filename = gauge_filename
2721 self%read_from_file = .false.
2729 character(*),
intent(in) :: file
2732 integer(i4) :: nInflowGaugesTotal
2733 integer(i4),
dimension(maxNoDomains) :: NoInflowGauges_domain
2734 integer(i4),
dimension(maxNoDomains, maxNoGauges) :: InflowGauge_id
2736 character(256),
dimension(maxNoDomains, maxNoGauges) :: InflowGauge_filename
2738 logical,
dimension(maxNoDomains, maxNoGauges) :: InflowGauge_Headwater
2740 namelist /inflow_gauges/ &
2741 ninflowgaugestotal, &
2742 noinflowgauges_domain, &
2744 inflowgauge_filename, &
2745 inflowgauge_headwater
2747 if ( self%read_from_file )
then
2748 ninflowgaugestotal = 0
2749 noinflowgauges_domain = 0
2751 inflowgauge_filename = num2str(
nodata_i4)
2753 call position_nml(self%name, unit)
2754 read(unit, nml=inflow_gauges)
2756 self%nInflowGaugesTotal = ninflowgaugestotal
2757 self%NoInflowGauges_domain = noinflowgauges_domain
2758 self%InflowGauge_id = inflowgauge_id
2759 self%InflowGauge_filename = inflowgauge_filename
2760 self%InflowGauge_Headwater = inflowgauge_headwater
2761 self%read_from_file = .false.
2767 use mo_message,
only : message
2770 character(*),
intent(in) :: file
2773 integer(i4) :: output_deflate_level_mrm
2774 logical :: output_double_precision_mrm
2775 integer(i4) :: output_time_reference_mrm
2776 integer(i4) :: timeStep_model_outputs_mrm
2777 logical,
dimension(mrm_nOutFlxState) :: outputFlxState_mrm
2779 logical :: file_exists
2781 namelist /nloutputresults/ &
2782 output_deflate_level_mrm, &
2783 output_double_precision_mrm, &
2784 output_time_reference_mrm, &
2785 timestep_model_outputs_mrm, &
2788 if ( self%read_from_file )
then
2789 output_deflate_level_mrm = 6
2790 output_double_precision_mrm = .true.
2791 output_time_reference_mrm = 0
2792 outputflxstate_mrm = .false.
2793 timestep_model_outputs_mrm = -2
2794 inquire(file = file, exist = file_exists)
2795 if (file_exists)
then
2797 call position_nml(self%name, unit)
2798 read(unit, nml=nloutputresults)
2801 call message(
'***Warning: No file specifying mRM output fluxes exists')
2803 self%output_deflate_level_mrm = output_deflate_level_mrm
2804 self%output_double_precision_mrm = output_double_precision_mrm
2805 self%output_time_reference_mrm = output_time_reference_mrm
2806 self%timeStep_model_outputs_mrm = timestep_model_outputs_mrm
2807 self%outputFlxState_mrm = outputflxstate_mrm
2808 self%read_from_file = .false.
2816 character(*),
intent(in) :: file
2819 real(dp),
dimension(nColPars) :: muskingumTravelTime_constant
2820 real(dp),
dimension(nColPars) :: muskingumTravelTime_riverLength
2821 real(dp),
dimension(nColPars) :: muskingumTravelTime_riverSlope
2822 real(dp),
dimension(nColPars) :: muskingumTravelTime_impervious
2823 real(dp),
dimension(nColPars) :: muskingumAttenuation_riverSlope
2825 namelist /routing1/ &
2826 muskingumtraveltime_constant, &
2827 muskingumtraveltime_riverlength, &
2828 muskingumtraveltime_riverslope, &
2829 muskingumtraveltime_impervious, &
2830 muskingumattenuation_riverslope
2832 if ( self%read_from_file )
then
2834 call position_nml(self%name, unit)
2835 read(unit, nml=routing1)
2837 self%muskingumTravelTime_constant = muskingumtraveltime_constant
2838 self%muskingumTravelTime_riverLength = muskingumtraveltime_riverlength
2839 self%muskingumTravelTime_riverSlope = muskingumtraveltime_riverslope
2840 self%muskingumTravelTime_impervious = muskingumtraveltime_impervious
2841 self%muskingumAttenuation_riverSlope = muskingumattenuation_riverslope
2842 self%read_from_file = .false.
2850 character(*),
intent(in) :: file
2853 real(dp),
dimension(nColPars) :: streamflow_celerity
2855 namelist /routing2/ &
2857 if ( self%read_from_file )
then
2859 call position_nml(self%name, unit)
2860 read(unit, nml=routing2)
2862 self%streamflow_celerity = streamflow_celerity
2863 self%read_from_file = .false.
2871 character(*),
intent(in) :: file
2874 real(dp),
dimension(nColPars) :: slope_factor
2876 namelist /routing3/ &
2879 if ( self%read_from_file )
then
2881 call position_nml(self%name, unit)
2882 read(unit, nml=routing3)
2884 self%slope_factor = slope_factor
2885 self%read_from_file = .false.
2893 character(*),
intent(in) :: file
2896 real(dp) :: albedo_water
2897 real(dp) :: pt_a_water
2898 real(dp) :: emissivity_water
2899 real(dp) :: turb_heat_ex_coeff
2900 integer(i4) :: max_iter
2901 real(dp) :: delta_iter
2902 real(dp) :: step_iter
2903 character(256) :: riv_widths_file
2904 character(256) :: riv_widths_name
2905 character(256),
dimension(maxNoDomains) :: dir_riv_widths
2907 namelist /config_riv_temp/ &
2911 turb_heat_ex_coeff, &
2919 if ( self%read_from_file )
then
2920 albedo_water = 0.15_dp
2921 pt_a_water = 1.26_dp
2922 emissivity_water = 0.96_dp
2923 turb_heat_ex_coeff = 20.0_dp
2925 delta_iter = 1.0e-02_dp
2928 call position_nml(self%name, unit)
2929 read(unit, nml=config_riv_temp)
2931 self%albedo_water = albedo_water
2932 self%pt_a_water = pt_a_water
2933 self%emissivity_water = emissivity_water
2934 self%turb_heat_ex_coeff = turb_heat_ex_coeff
2935 self%max_iter = max_iter
2936 self%delta_iter = delta_iter
2937 self%step_iter = step_iter
2938 self%riv_widths_file = riv_widths_file
2939 self%riv_widths_name = riv_widths_name
2940 self%dir_riv_widths = dir_riv_widths
2941 self%read_from_file = .false.
2949 character(*),
intent(in) :: file
2951 integer :: unit, status
2953 integer(i4) :: meteo_timestep
2954 logical :: meteo_time_ref_endpoint
2955 logical :: meteo_expect_pre
2956 logical :: meteo_expect_temp
2957 logical :: meteo_expect_pet
2958 logical :: meteo_expect_tmin
2959 logical :: meteo_expect_tmax
2960 logical :: meteo_expect_netrad
2961 logical :: meteo_expect_absvappress
2962 logical :: meteo_expect_windspeed
2963 logical :: meteo_expect_ssrd
2964 logical :: meteo_expect_strd
2965 logical :: meteo_expect_tann
2967 namelist /coupling/ &
2970 meteo_time_ref_endpoint, &
2972 meteo_expect_temp, &
2974 meteo_expect_tmin, &
2975 meteo_expect_tmax, &
2976 meteo_expect_netrad, &
2977 meteo_expect_absvappress, &
2978 meteo_expect_windspeed, &
2979 meteo_expect_ssrd, &
2980 meteo_expect_strd, &
2983 if ( self%read_from_file )
then
2985 meteo_timestep = 0_i4
2986 meteo_time_ref_endpoint = .false.
2987 meteo_expect_pre = .false.
2988 meteo_expect_temp = .false.
2989 meteo_expect_pet = .false.
2990 meteo_expect_tmin = .false.
2991 meteo_expect_tmax = .false.
2992 meteo_expect_netrad = .false.
2993 meteo_expect_absvappress = .false.
2994 meteo_expect_windspeed = .false.
2995 meteo_expect_ssrd = .false.
2996 meteo_expect_strd = .false.
2997 meteo_expect_tann = .false.
2999 call position_nml(self%name, unit, status=status)
3000 if (status == 0)
read(unit, nml=coupling)
3003 self%meteo_timestep = meteo_timestep
3004 self%meteo_time_ref_endpoint = meteo_time_ref_endpoint
3005 self%meteo_expect_pre = meteo_expect_pre
3006 self%meteo_expect_temp = meteo_expect_temp
3007 self%meteo_expect_pet = meteo_expect_pet
3008 self%meteo_expect_tmin = meteo_expect_tmin
3009 self%meteo_expect_tmax = meteo_expect_tmax
3010 self%meteo_expect_netrad = meteo_expect_netrad
3011 self%meteo_expect_absvappress = meteo_expect_absvappress
3012 self%meteo_expect_windspeed = meteo_expect_windspeed
3013 self%meteo_expect_ssrd = meteo_expect_ssrd
3014 self%meteo_expect_strd = meteo_expect_strd
3015 self%meteo_expect_tann = meteo_expect_tann
Provides constants commonly used by mHM, mRM and MPR.
integer(i4), parameter, public ncolpars
integer(i4), parameter, public maxnodomains
integer(i4), parameter, public maxnlcovers
real(dp), parameter, public nodata_dp
integer(i4), parameter, public nodata_i4
Provides structures needed by mHM, mRM and/or mpr.
integer(i4), public niterations
logical, public mrm_read_river_network
integer(i4), public sce_nps
integer(i4), public sce_npg
integer(i4), public sce_ngs
logical, public optimize_restart
logical, public restart_reset_fluxes_states
flag to reset fluxes and states read from restart to default values
integer(i4), public opti_method
integer(i4), parameter, public nerror_model
real(dp), dimension(nerror_model), public mcmc_error_params
logical, public read_old_style_restart_bounds
logical, public mcmc_opti
integer(i4), public opti_function
integer(i4), public timestep
logical, public read_restart
Provides common types needed by mHM, mRM and/or mpr.
Provides structures needed by mHM, mRM and/or mpr.
integer(i4), parameter, public nprocesses
character(1024), public history
details on version/creation date
character(1024), public setup_description
any specific description of simulation
logical, public write_restart
character(1024), public project_details
project including funding instituion., PI, etc.
character(1024), public contact
contact details, incl.
character(256), public dirconfigout
character(256), public conventions
convention used for dataset
character(1024), public simulation_type
e.g.
integer(i4), public nlcoverscene
character(256), public dircommonfiles
integer(i4), public iflag_cordinate_sys
character(1024), public mhm_details
developing institution, specific mHM revision
Provides mHM specific constants.
integer(i4), parameter, public noutflxstate
Provides MPR specific constants.
integer(i4), parameter, public maxgeounit
integer(i4), parameter, public maxnosoilhorizons
Provides mRM specific constants.
integer(i4), parameter, public maxnogauges
Module containing all namelists representations.
subroutine read_interception1(self, file)
Read 'interception1' namelist content.
type(nml_soilmoisture3_t), public nml_soilmoisture3
'soilmoisture3' namelist content
type(nml_baseflow_config_t), public nml_baseflow_config
'baseflow_config' namelist content
subroutine read_lcover_mpr(self, file)
Read 'lcover_mpr' namelist content.
type(nml_evaluation_gauges_t), public nml_evaluation_gauges
'evaluation_gauges' namelist content
type(nml_percolation1_t), public nml_percolation1
'percolation1' namelist content
subroutine read_directories_general(self, file)
Read 'directories_general' namelist content.
subroutine read_inflow_gauges(self, file)
Read 'inflow_gauges' namelist content.
type(nml_coupling_t), public nml_coupling
'coupling' namelist content
subroutine read_neutrons2(self, file)
Read 'neutrons2' namelist content.
subroutine close_nml(unit)
Close namelist file.
subroutine read_interflow1(self, file)
Read 'interflow1' namelist content.
subroutine read_routing1(self, file)
Read 'routing1' namelist content.
type(nml_panevapo_t), public nml_panevapo
'panevapo' namelist content
type(nml_pet1_t), public nml_pet1
'pet1' namelist content
type(nml_directories_mrm_t), public nml_directories_mrm
'directories_mrm' namelist content
type(nml_mainconfig_mrm_t), public nml_mainconfig_mrm
'mainconfig_mrm' namelist content
subroutine read_optional_data(self, file)
Read 'optional_data' namelist content.
type(nml_lcover_mpr_t), public nml_lcover_mpr
'lcover_mpr' namelist content
type(nml_interflow1_t), public nml_interflow1
'interflow1' namelist content
subroutine read_directrunoff1(self, file)
Read 'directrunoff1' namelist content.
subroutine read_petminus1(self, file)
Read 'petminus1' namelist content.
type(nml_snow1_t), public nml_snow1
'snow1' namelist content
subroutine read_processselection(self, file)
Read 'processSelection' namelist content.
type(nml_routing3_t), public nml_routing3
'routing3' namelist content
type(nml_lcover_t), public nml_lcover
'LCover' namelist content
subroutine read_config_riv_temp(self, file)
Read 'config_riv_temp' namelist content.
type(nml_petminus1_t), public nml_petminus1
'petminus1' namelist content
type(nml_pet0_t), public nml_pet0
'pet0' namelist content
type(nml_routing1_t), public nml_routing1
'routing1' namelist content
subroutine read_lai_data_information(self, file)
Read 'lai_data_information' namelist content.
type(nml_mainconfig_mhm_mrm_t), public nml_mainconfig_mhm_mrm
'mainconfig_mhm_mrm' namelist content
subroutine read_directories_mhm(self, file)
Read 'directories_mhm' namelist content.
subroutine read_mainconfig(self, file)
Read 'mainconfig' namelist content.
type(nml_pet2_t), public nml_pet2
'pet2' namelist content
subroutine read_pet2(self, file)
Read 'pet2' namelist content.
type(nml_config_riv_temp_t), public nml_config_riv_temp
'config_riv_temp' namelist content
type(nml_neutrons1_t), public nml_neutrons1
'neutrons1' namelist content
type(nml_soilmoisture1_t), public nml_soilmoisture1
'soilmoisture1' namelist content
type(nml_lai_data_information_t), public nml_lai_data_information
'lai_data_information' namelist content
type(nml_optional_data_t), public nml_optional_data
'optional_data' namelist content
subroutine read_panevapo(self, file)
Read 'panevapo' namelist content.
type(nml_inflow_gauges_t), public nml_inflow_gauges
'inflow_gauges' namelist content
subroutine read_mainconfig_mhm_mrm(self, file)
Read 'mainconfig_mhm_mrm' namelist content.
type(nml_processselection_t), public nml_processselection
'processSelection' namelist content
subroutine read_optimization(self, file)
Read 'optimization' namelist content.
subroutine read_nightdayratio(self, file)
Read 'nightdayratio' namelist content.
subroutine read_percolation1(self, file)
Read 'percolation1' namelist content.
subroutine read_soildata(self, file)
Read 'soildata' namelist content.
subroutine read_neutrons1(self, file)
Read 'neutrons1' namelist content.
subroutine read_soilmoisture1(self, file)
Read 'soilmoisture1' namelist content.
type(nml_neutrons2_t), public nml_neutrons2
'neutrons2' namelist content
type(nml_mainconfig_t), public nml_mainconfig
'mainconfig' namelist content
subroutine read_evaluation_gauges(self, file)
Read 'evaluation_gauges' namelist content.
subroutine read_time_periods(self, file)
Read 'time_periods' namelist content.
type(nml_directories_mpr_t), public nml_directories_mpr
'directories_mpr' namelist content
subroutine read_geoparameter(self, file)
Read 'geoparameter' namelist content.
subroutine read_pet3(self, file)
Read 'pet3' namelist content.
subroutine read_coupling(self, file)
Read 'coupling' namelist content.
type(nml_soilmoisture2_t), public nml_soilmoisture2
'soilmoisture2' namelist content
type(nml_pet3_t), public nml_pet3
'pet3' namelist content
type(nml_optimization_t), public nml_optimization
'optimization' namelist content
subroutine read_baseflow_config(self, file)
Read 'baseflow_config' namelist content.
type(nml_mrm_outputs_t), public nml_mrm_outputs
'mrm_outputs' namelist content
type(nml_nloutputresults_t), public nml_nloutputresults
'nloutputresults' namelist content
subroutine open_new_nml(file, unit)
Open namelist file and generate a new unit.
type(nml_time_periods_t), public nml_time_periods
'time_periods' namelist content
type(nml_nightdayratio_t), public nml_nightdayratio
'nightdayratio' namelist content
type(nml_directories_mhm_t), public nml_directories_mhm
'directories_mhm' namelist content
subroutine read_routing2(self, file)
Read 'routing2' namelist content.
type(nml_soildata_t), public nml_soildata
'soildata' namelist content
type(nml_geoparameter_t), public nml_geoparameter
'geoparameter' namelist content
type(nml_directrunoff1_t), public nml_directrunoff1
'directrunoff1' namelist content
subroutine read_directories_mpr(self, file)
Read 'directories_mpr' namelist content.
type(nml_interception1_t), public nml_interception1
'interception1' namelist content
subroutine read_soilmoisture4(self, file)
Read 'soilmoisture4' namelist content.
type(nml_project_description_t), public nml_project_description
'project_description' namelist content
type(nml_soilmoisture4_t), public nml_soilmoisture4
'soilmoisture4' namelist content
subroutine read_pet1(self, file)
Read 'pet1' namelist content.
subroutine read_snow1(self, file)
Read 'snow1' namelist content.
subroutine read_nloutputresults(self, file)
Read 'nloutputresults' namelist content.
subroutine read_directories_mrm(self, file)
Read 'directories_mrm' namelist content.
subroutine read_lcover(self, file)
Read 'LCover' namelist content.
subroutine read_soilmoisture3(self, file)
Read 'soilmoisture3' namelist content.
type(nml_directories_general_t), public nml_directories_general
'directories_general' namelist content
subroutine read_pet0(self, file)
Read 'pet0' namelist content.
subroutine read_soilmoisture2(self, file)
Read 'soilmoisture2' namelist content.
subroutine read_routing3(self, file)
Read 'routing3' namelist content.
subroutine read_mrm_outputs(self, file)
Read 'mrm_outputs' namelist content.
subroutine read_project_description(self, file)
Read 'project_description' namelist content.
subroutine read_mainconfig_mrm(self, file)
Read 'mainconfig_mrm' namelist content.
type(nml_routing2_t), public nml_routing2
'routing2' namelist content
'baseflow_config' namelist content
'config_riv_temp' namelist content
'coupling' namelist content
'directories_general' namelist content
'directories_mhm' namelist content
'directories_mpr' namelist content
'directories_mrm' namelist content
'directrunoff1' namelist content
'evaluation_gauges' namelist content
'geoparameter' namelist content
'inflow_gauges' namelist content
'interception1' namelist content
'interflow1' namelist content
'lcover_mpr' namelist content
'LCover' namelist content
'mainconfig_mhm_mrm' namelist content
'mainconfig_mrm' namelist content
'mainconfig' namelist content
'mrm_outputs' namelist content
'neutrons1' namelist content
'neutrons2' namelist content
'nightdayratio' namelist content
'nloutputresults' namelist content
'optimization' namelist content
'optional_data' namelist content
'panevapo' namelist content
'percolation1' namelist content
'petminus1' namelist content
'processSelection' namelist content
'project_description' namelist content
'routing1' namelist content
'routing2' namelist content
'routing3' namelist content
'soildata' namelist content
'soilmoisture1' namelist content
'soilmoisture2' namelist content
'soilmoisture3' namelist content
'soilmoisture4' namelist content
'time_periods' namelist content