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 character(256),
dimension(maxNoDomains) :: dir_spf
295 integer(i4) :: timestep_sm_input
296 integer(i4) :: timestep_neutrons_input
297 integer(i4) :: timestep_et_input
298 integer(i4) :: timestep_tws_input
299 integer(i4) :: timestep_spf_input
300 integer(i4) :: weight_for_optional_data
301 integer(i4) :: snow_water_equivalent_threshold_for_spf
316 character(8) :: name =
"panevapo"
317 logical :: read_from_file = .true.
318 real(dp),
dimension(int(YearMonths, i4)) :: evap_coeff
336 character(13) :: name =
"nightdayratio"
337 logical :: read_from_file = .true.
338 logical :: read_meteo_weights
339 real(dp),
dimension(int(YearMonths, i4)) :: fnight_prec
340 real(dp),
dimension(int(YearMonths, i4)) :: fnight_pet
341 real(dp),
dimension(int(YearMonths, i4)) :: fnight_temp
342 real(dp),
dimension(int(YearMonths, i4)) :: fnight_ssrd
343 real(dp),
dimension(int(YearMonths, i4)) :: fnight_strd
359 character(15) :: name =
"nloutputresults"
360 logical :: read_from_file = .true.
361 integer(i4) :: output_deflate_level
362 logical :: output_double_precision
363 integer(i4) :: timestep_model_outputs
364 integer(i4) :: output_time_reference
365 logical,
dimension(nOutFlxState) :: outputflxstate
379 character(15) :: name =
"baseflow_config"
380 logical :: read_from_file = .true.
382 real(dp),
dimension(maxNoDomains) :: bfi_obs
396 character(15) :: name =
"directories_mpr"
397 logical :: read_from_file = .true.
398 character(256),
dimension(maxNoDomains) :: dir_gridded_lai
414 character(8) :: name =
"soildata"
415 logical :: read_from_file = .true.
416 integer(i4) :: iflag_soildb
417 real(dp) :: tillagedepth
418 integer(i4) :: nsoilhorizons_mhm
419 real(dp),
dimension(maxNoSoilHorizons) :: soil_depth
433 character(20) :: name =
"lai_data_information"
434 logical :: read_from_file = .true.
435 character(256) :: inputformat_gridded_lai
436 integer(i4) :: timestep_lai_input
449 character(10) :: name =
"lcover_mpr"
450 logical :: read_from_file = .true.
451 real(dp) :: fracsealed_cityarea
464 character(13) :: name =
"interception1"
465 logical :: read_from_file = .true.
466 real(dp),
dimension(nColPars) :: canopyinterceptionfactor
486 character(5) :: name =
"snow1"
487 logical :: read_from_file = .true.
488 real(dp),
dimension(nColPars) :: snowtreshholdtemperature
489 real(dp),
dimension(nColPars) :: degreedayfactor_forest
490 real(dp),
dimension(nColPars) :: degreedayfactor_impervious
491 real(dp),
dimension(nColPars) :: degreedayfactor_pervious
492 real(dp),
dimension(nColPars) :: increasedegreedayfactorbyprecip
493 real(dp),
dimension(nColPars) :: maxdegreedayfactor_forest
494 real(dp),
dimension(nColPars) :: maxdegreedayfactor_impervious
495 real(dp),
dimension(nColPars) :: maxdegreedayfactor_pervious
524 character(13) :: name =
"soilmoisture1"
525 logical :: read_from_file = .true.
526 real(dp),
dimension(nColPars) :: orgmattercontent_forest
527 real(dp),
dimension(nColPars) :: orgmattercontent_impervious
528 real(dp),
dimension(nColPars) :: orgmattercontent_pervious
530 real(dp),
dimension(nColPars) :: ptf_lower66_5_constant
531 real(dp),
dimension(nColPars) :: ptf_lower66_5_clay
532 real(dp),
dimension(nColPars) :: ptf_lower66_5_db
534 real(dp),
dimension(nColPars) :: ptf_higher66_5_constant
535 real(dp),
dimension(nColPars) :: ptf_higher66_5_clay
536 real(dp),
dimension(nColPars) :: ptf_higher66_5_db
538 real(dp),
dimension(nColPars) :: ptf_ks_constant
539 real(dp),
dimension(nColPars) :: ptf_ks_sand
540 real(dp),
dimension(nColPars) :: ptf_ks_clay
541 real(dp),
dimension(nColPars) :: ptf_ks_curveslope
543 real(dp),
dimension(nColPars) :: rootfractioncoefficient_forest
545 real(dp),
dimension(nColPars) :: rootfractioncoefficient_impervious
547 real(dp),
dimension(nColPars) :: rootfractioncoefficient_pervious
549 real(dp),
dimension(nColPars) :: infiltrationshapefactor
579 character(13) :: name =
"soilmoisture2"
580 logical :: read_from_file = .true.
581 real(dp),
dimension(nColPars) :: orgmattercontent_forest
582 real(dp),
dimension(nColPars) :: orgmattercontent_impervious
583 real(dp),
dimension(nColPars) :: orgmattercontent_pervious
585 real(dp),
dimension(nColPars) :: ptf_lower66_5_constant
586 real(dp),
dimension(nColPars) :: ptf_lower66_5_clay
587 real(dp),
dimension(nColPars) :: ptf_lower66_5_db
589 real(dp),
dimension(nColPars) :: ptf_higher66_5_constant
590 real(dp),
dimension(nColPars) :: ptf_higher66_5_clay
591 real(dp),
dimension(nColPars) :: ptf_higher66_5_db
593 real(dp),
dimension(nColPars) :: ptf_ks_constant
594 real(dp),
dimension(nColPars) :: ptf_ks_sand
595 real(dp),
dimension(nColPars) :: ptf_ks_clay
596 real(dp),
dimension(nColPars) :: ptf_ks_curveslope
598 real(dp),
dimension(nColPars) :: rootfractioncoefficient_forest
600 real(dp),
dimension(nColPars) :: rootfractioncoefficient_impervious
602 real(dp),
dimension(nColPars) :: rootfractioncoefficient_pervious
604 real(dp),
dimension(nColPars) :: infiltrationshapefactor
605 real(dp),
dimension(nColPars) :: jarvis_sm_threshold_c1
639 character(13) :: name =
"soilmoisture3"
640 logical :: read_from_file = .true.
641 real(dp),
dimension(nColPars) :: orgmattercontent_forest
642 real(dp),
dimension(nColPars) :: orgmattercontent_impervious
643 real(dp),
dimension(nColPars) :: orgmattercontent_pervious
645 real(dp),
dimension(nColPars) :: ptf_lower66_5_constant
646 real(dp),
dimension(nColPars) :: ptf_lower66_5_clay
647 real(dp),
dimension(nColPars) :: ptf_lower66_5_db
649 real(dp),
dimension(nColPars) :: ptf_higher66_5_constant
650 real(dp),
dimension(nColPars) :: ptf_higher66_5_clay
651 real(dp),
dimension(nColPars) :: ptf_higher66_5_db
653 real(dp),
dimension(nColPars) :: ptf_ks_constant
654 real(dp),
dimension(nColPars) :: ptf_ks_sand
655 real(dp),
dimension(nColPars) :: ptf_ks_clay
656 real(dp),
dimension(nColPars) :: ptf_ks_curveslope
658 real(dp),
dimension(nColPars) :: rootfractioncoefficient_forest
660 real(dp),
dimension(nColPars) :: rootfractioncoefficient_impervious
662 real(dp),
dimension(nColPars) :: rootfractioncoefficient_pervious
664 real(dp),
dimension(nColPars) :: infiltrationshapefactor
665 real(dp),
dimension(nColPars) :: fcmin_glob
666 real(dp),
dimension(nColPars) :: fcdelta_glob
667 real(dp),
dimension(nColPars) :: rootfractioncoefficient_sand
668 real(dp),
dimension(nColPars) :: rootfractioncoefficient_clay
669 real(dp),
dimension(nColPars) :: jarvis_sm_threshold_c1
702 character(13) :: name =
"soilmoisture4"
703 logical :: read_from_file = .true.
704 real(dp),
dimension(nColPars) :: orgmattercontent_forest
705 real(dp),
dimension(nColPars) :: orgmattercontent_impervious
706 real(dp),
dimension(nColPars) :: orgmattercontent_pervious
708 real(dp),
dimension(nColPars) :: ptf_lower66_5_constant
709 real(dp),
dimension(nColPars) :: ptf_lower66_5_clay
710 real(dp),
dimension(nColPars) :: ptf_lower66_5_db
712 real(dp),
dimension(nColPars) :: ptf_higher66_5_constant
713 real(dp),
dimension(nColPars) :: ptf_higher66_5_clay
714 real(dp),
dimension(nColPars) :: ptf_higher66_5_db
716 real(dp),
dimension(nColPars) :: ptf_ks_constant
717 real(dp),
dimension(nColPars) :: ptf_ks_sand
718 real(dp),
dimension(nColPars) :: ptf_ks_clay
719 real(dp),
dimension(nColPars) :: ptf_ks_curveslope
721 real(dp),
dimension(nColPars) :: rootfractioncoefficient_forest
723 real(dp),
dimension(nColPars) :: rootfractioncoefficient_impervious
725 real(dp),
dimension(nColPars) :: rootfractioncoefficient_pervious
727 real(dp),
dimension(nColPars) :: infiltrationshapefactor
728 real(dp),
dimension(nColPars) :: fcmin_glob
729 real(dp),
dimension(nColPars) :: fcdelta_glob
730 real(dp),
dimension(nColPars) :: rootfractioncoefficient_sand
731 real(dp),
dimension(nColPars) :: rootfractioncoefficient_clay
744 character(13) :: name =
"directrunoff1"
745 logical :: read_from_file = .true.
746 real(dp),
dimension(nColPars) :: imperviousstoragecapacity
764 character(9) :: name =
"petminus1"
765 logical :: read_from_file = .true.
766 real(dp),
dimension(nColPars) :: pet_a_forest
767 real(dp),
dimension(nColPars) :: pet_a_impervious
768 real(dp),
dimension(nColPars) :: pet_a_pervious
769 real(dp),
dimension(nColPars) :: pet_b
770 real(dp),
dimension(nColPars) :: pet_c
786 character(4) :: name =
"pet0"
787 logical :: read_from_file = .true.
788 real(dp),
dimension(nColPars) :: mincorrectionfactorpet
789 real(dp),
dimension(nColPars) :: maxcorrectionfactorpet
790 real(dp),
dimension(nColPars) :: aspecttresholdpet
807 character(4) :: name =
"pet1"
808 logical :: read_from_file = .true.
809 real(dp),
dimension(nColPars) :: mincorrectionfactorpet
810 real(dp),
dimension(nColPars) :: maxcorrectionfactorpet
811 real(dp),
dimension(nColPars) :: aspecttresholdpet
812 real(dp),
dimension(nColPars) :: hargreavessamanicoeff
827 character(4) :: name =
"pet2"
828 logical :: read_from_file = .true.
829 real(dp),
dimension(nColPars) :: priestleytaylorcoeff
830 real(dp),
dimension(nColPars) :: priestleytaylorlaicorr
850 character(4) :: name =
"pet3"
851 logical :: read_from_file = .true.
852 real(dp),
dimension(nColPars) :: canopyheigth_forest
853 real(dp),
dimension(nColPars) :: canopyheigth_impervious
854 real(dp),
dimension(nColPars) :: canopyheigth_pervious
855 real(dp),
dimension(nColPars) :: displacementheight_coeff
856 real(dp),
dimension(nColPars) :: roughnesslength_momentum_coeff
857 real(dp),
dimension(nColPars) :: roughnesslength_heat_coeff
858 real(dp),
dimension(nColPars) :: stomatal_resistance
875 character(10) :: name =
"interflow1"
876 logical :: read_from_file = .true.
877 real(dp),
dimension(nColPars) :: interflowstoragecapacityfactor
878 real(dp),
dimension(nColPars) :: interflowrecession_slope
880 real(dp),
dimension(nColPars) :: fastinterflowrecession_forest
882 real(dp),
dimension(nColPars) :: slowinterflowrecession_ks
884 real(dp),
dimension(nColPars) :: exponentslowinterflow
899 character(12) :: name =
"percolation1"
900 logical :: read_from_file = .true.
901 real(dp),
dimension(nColPars) :: rechargecoefficient
902 real(dp),
dimension(nColPars) :: rechargefactor_karstic
903 real(dp),
dimension(nColPars) :: gain_loss_gwreservoir_karstic
918 character(9) :: name =
"neutrons1"
919 logical :: read_from_file = .true.
920 real(dp),
dimension(nColPars) :: desilets_n0
921 real(dp),
dimension(nColPars) :: desilets_lw0
922 real(dp),
dimension(nColPars) :: desilets_lw1
943 character(9) :: name =
"neutrons2"
944 logical :: read_from_file = .true.
945 real(dp),
dimension(nColPars) :: cosmic_n0
946 real(dp),
dimension(nColPars) :: cosmic_n1
947 real(dp),
dimension(nColPars) :: cosmic_n2
948 real(dp),
dimension(nColPars) :: cosmic_alpha0
949 real(dp),
dimension(nColPars) :: cosmic_alpha1
950 real(dp),
dimension(nColPars) :: cosmic_l30
951 real(dp),
dimension(nColPars) :: cosmic_l31
952 real(dp),
dimension(nColPars) :: cosmic_lw0
953 real(dp),
dimension(nColPars) :: cosmic_lw1
966 character(12) :: name =
"geoparameter"
967 logical :: read_from_file = .true.
969 real(dp),
dimension(maxGeoUnit, nColPars) :: geoparam
986 character(14) :: name =
"mainconfig_mrm"
987 logical :: read_from_file = .true.
989 character(256) :: filenametotalrunoff
990 character(256) :: varnametotalrunoff
991 logical :: gw_coupling
1006 character(15) :: name =
"directories_mrm"
1007 logical :: read_from_file = .true.
1008 character(256),
dimension(maxNoDomains) :: dir_gauges
1009 character(256),
dimension(maxNoDomains) :: dir_total_runoff
1010 character(256),
dimension(maxNoDomains) :: dir_bankfull_runoff
1026 character(17) :: name =
"evaluation_gauges"
1027 logical :: read_from_file = .true.
1028 integer(i4) :: ngaugestotal
1029 integer(i4),
dimension(maxNoDomains) :: nogauges_domain
1030 integer(i4),
dimension(maxNoDomains, maxNoGauges) :: gauge_id
1031 character(256),
dimension(maxNoDomains, maxNoGauges) :: gauge_filename
1048 character(13) :: name =
"inflow_gauges"
1049 logical :: read_from_file = .true.
1050 integer(i4) :: ninflowgaugestotal
1051 integer(i4),
dimension(maxNoDomains) :: noinflowgauges_domain
1052 integer(i4),
dimension(maxNoDomains, maxNoGauges) :: inflowgauge_id
1054 character(256),
dimension(maxNoDomains, maxNoGauges) :: inflowgauge_filename
1056 logical,
dimension(maxNoDomains, maxNoGauges) :: inflowgauge_headwater
1072 character(15) :: name =
"nloutputresults"
1073 logical :: read_from_file = .true.
1074 integer(i4) :: output_deflate_level_mrm
1075 logical :: output_double_precision_mrm
1076 integer(i4) :: output_time_reference_mrm
1077 integer(i4) :: timestep_model_outputs_mrm
1078 logical,
dimension(mrm_nOutFlxState) :: outputflxstate_mrm
1095 character(8) :: name =
"routing1"
1096 logical :: read_from_file = .true.
1097 real(dp),
dimension(nColPars) :: muskingumtraveltime_constant
1098 real(dp),
dimension(nColPars) :: muskingumtraveltime_riverlength
1099 real(dp),
dimension(nColPars) :: muskingumtraveltime_riverslope
1100 real(dp),
dimension(nColPars) :: muskingumtraveltime_impervious
1101 real(dp),
dimension(nColPars) :: muskingumattenuation_riverslope
1114 character(8) :: name =
"routing2"
1115 logical :: read_from_file = .true.
1116 real(dp),
dimension(nColPars) :: streamflow_celerity
1129 character(8) :: name =
"routing3"
1130 logical :: read_from_file = .true.
1131 real(dp),
dimension(nColPars) :: slope_factor
1154 character(15) :: name =
"config_riv_temp"
1155 logical :: read_from_file = .true.
1156 real(dp) :: albedo_water
1157 real(dp) :: pt_a_water
1158 real(dp) :: emissivity_water
1159 real(dp) :: turb_heat_ex_coeff
1160 integer(i4) :: max_iter
1161 real(dp) :: delta_iter
1162 real(dp) :: step_iter
1163 character(256) :: riv_widths_file
1164 character(256) :: riv_widths_name
1165 character(256),
dimension(maxNoDomains) :: dir_riv_widths
1192 character(8) :: name =
"coupling"
1193 logical :: read_from_file = .true.
1195 integer(i4) :: meteo_timestep
1196 logical :: meteo_time_ref_endpoint
1197 logical :: meteo_expect_pre
1198 logical :: meteo_expect_temp
1199 logical :: meteo_expect_pet
1200 logical :: meteo_expect_tmin
1201 logical :: meteo_expect_tmax
1202 logical :: meteo_expect_netrad
1203 logical :: meteo_expect_absvappress
1204 logical :: meteo_expect_windspeed
1205 logical :: meteo_expect_ssrd
1206 logical :: meteo_expect_strd
1207 logical :: meteo_expect_tann
1218 use mo_message,
only: error_message
1219 character(len = *),
intent(in) :: file
1220 integer,
intent(out) :: unit
1222 open(newunit=unit, file=file, iostat=stat, status=
'old', action=
'read', delim=
'apostrophe')
1223 if (stat .ne. 0)
call error_message(
'open_new_nml: could not open namelist file ', trim(file))
1228 use mo_message,
only: error_message
1229 integer,
intent(in) :: unit
1231 close(unit, iostat=stat)
1232 if (stat .ne. 0)
call error_message(
'close_nml: could not close namelist file.')
1239 character(*),
intent(in) :: file
1242 character(1024) :: project_details
1243 character(1024) :: setup_description
1244 character(1024) :: simulation_type
1245 character(256) :: Conventions
1246 character(1024) :: contact
1247 character(1024) :: mHM_details
1248 character(1024) :: history
1250 namelist /project_description/ &
1252 setup_description, &
1259 if ( self%read_from_file )
then
1261 call position_nml(self%name, unit)
1262 read(unit, nml=project_description)
1264 self%project_details = project_details
1265 self%setup_description = setup_description
1266 self%simulation_type = simulation_type
1267 self%Conventions = conventions
1268 self%contact = contact
1269 self%mHM_details = mhm_details
1270 self%history = history
1271 self%read_from_file = .false.
1279 character(*),
intent(in) :: file
1282 character(256) :: dirConfigOut
1283 character(256) :: dirCommonFiles
1284 character(256),
dimension(maxNoDomains) :: mhm_file_RestartOut
1285 character(256),
dimension(maxNoDomains) :: mrm_file_RestartOut
1286 character(256),
dimension(maxNoDomains) :: dir_Morpho
1287 character(256),
dimension(maxNoDomains) :: dir_LCover
1288 character(256),
dimension(maxNoDomains) :: dir_Out
1289 character(256),
dimension(maxNoDomains) :: file_LatLon
1291 namelist /directories_general/ &
1297 mhm_file_restartout, &
1298 mrm_file_restartout, &
1301 if ( self%read_from_file )
then
1303 call position_nml(self%name, unit)
1304 read(unit, nml=directories_general)
1306 self%dirConfigOut = dirconfigout
1307 self%dirCommonFiles = dircommonfiles
1308 self%dir_Morpho = dir_morpho
1309 self%dir_LCover = dir_lcover
1310 self%dir_Out = dir_out
1311 self%mhm_file_RestartOut = mhm_file_restartout
1312 self%mrm_file_RestartOut = mrm_file_restartout
1313 self%file_LatLon = file_latlon
1314 self%read_from_file = .false.
1322 character(*),
intent(in) :: file
1325 integer(i4) :: iFlag_cordinate_sys
1326 real(dp),
dimension(maxNoDomains) :: resolution_Hydrology
1327 integer(i4) :: nDomains
1328 integer(i4),
dimension(maxNoDomains) :: L0Domain
1329 logical :: write_restart
1330 integer(i4),
dimension(maxNoDomains) :: read_opt_domain_data
1332 namelist /mainconfig/ &
1333 iflag_cordinate_sys, &
1334 resolution_hydrology, &
1338 read_opt_domain_data
1340 if ( self%read_from_file )
then
1342 call position_nml(self%name, unit)
1343 read(unit, nml=mainconfig)
1345 self%iFlag_cordinate_sys = iflag_cordinate_sys
1346 self%resolution_Hydrology = resolution_hydrology
1347 self%nDomains = ndomains
1348 self%L0Domain = l0domain
1349 self%write_restart = write_restart
1350 self%read_opt_domain_data = read_opt_domain_data
1351 self%read_from_file = .false.
1359 character(*),
intent(in) :: file
1362 integer(i4),
dimension(nProcesses) :: processCase
1364 namelist /processselection/ &
1367 if ( self%read_from_file )
then
1372 call position_nml(self%name, unit)
1373 read(unit, nml=processselection)
1375 self%processCase = processcase
1376 self%read_from_file = .false.
1384 character(*),
intent(in) :: file
1387 integer(i4) :: nLCoverScene
1388 integer(i4),
dimension(maxNLCovers) :: LCoverYearStart
1389 integer(i4),
dimension(maxNLCovers) :: LCoverYearEnd
1390 character(256),
dimension(maxNLCovers) :: LCoverfName
1398 if ( self%read_from_file )
then
1400 call position_nml(self%name, unit)
1401 read(unit, nml=lcover)
1403 self%nLcoverScene = nlcoverscene
1404 self%LCoverYearStart = lcoveryearstart
1405 self%LCoverYearEnd = lcoveryearend
1406 self%LCoverfName = lcoverfname
1407 self%read_from_file = .false.
1415 character(*),
intent(in) :: file
1418 integer(i4) :: timeStep
1419 real(dp),
dimension(maxNoDomains) :: resolution_Routing
1421 logical :: optimize_restart
1422 integer(i4) :: opti_method
1423 integer(i4) :: opti_function
1424 logical :: read_restart
1425 logical :: mrm_read_river_network
1426 logical :: read_old_style_restart_bounds
1427 logical :: restart_reset_fluxes_states
1428 character(256),
dimension(maxNoDomains) :: mhm_file_RestartIn
1429 character(256),
dimension(maxNoDomains) :: mrm_file_RestartIn
1431 namelist /mainconfig_mhm_mrm/ &
1433 resolution_routing, &
1439 mrm_read_river_network, &
1440 read_old_style_restart_bounds, &
1441 restart_reset_fluxes_states, &
1442 mhm_file_restartin, &
1445 if ( self%read_from_file )
then
1447 mrm_read_river_network = .false.
1448 read_old_style_restart_bounds = .false.
1449 restart_reset_fluxes_states = .false.
1451 call position_nml(self%name, unit)
1452 read(unit, nml=mainconfig_mhm_mrm)
1454 self%timestep = timestep
1455 self%resolution_Routing = resolution_routing
1456 self%optimize = optimize
1457 self%optimize_restart = optimize_restart
1458 self%opti_method = opti_method
1459 self%opti_function = opti_function
1460 self%read_restart = read_restart
1461 self%mrm_read_river_network = mrm_read_river_network
1462 self%read_old_style_restart_bounds = read_old_style_restart_bounds
1463 self%restart_reset_fluxes_states = restart_reset_fluxes_states
1464 self%mhm_file_RestartIn = mhm_file_restartin
1465 self%mrm_file_RestartIn = mrm_file_restartin
1466 self%read_from_file = .false.
1474 character(*),
intent(in) :: file
1476 integer :: unit, status
1477 integer(i4) :: nIterations
1481 integer(i4) :: sce_ngs
1482 integer(i4) :: sce_npg
1483 integer(i4) :: sce_nps
1484 logical :: mcmc_opti
1485 real(dp),
dimension(nerror_model) :: mcmc_error_params
1487 namelist /optimization/ &
1498 if ( self%read_from_file )
then
1509 call position_nml(self%name, unit, status=status)
1510 if (status == 0)
read(unit, nml=optimization)
1512 self%nIterations = niterations
1515 self%sa_temp = sa_temp
1516 self%sce_ngs = sce_ngs
1517 self%sce_npg = sce_npg
1518 self%sce_nps = sce_nps
1519 self%mcmc_opti = mcmc_opti
1520 self%mcmc_error_params = mcmc_error_params
1521 self%read_from_file = .false.
1529 character(*),
intent(in) :: file
1532 integer(i4),
dimension(maxNoDomains) :: warming_Days
1533 type(
period),
dimension(maxNoDomains) :: eval_Per
1535 namelist /time_periods/ &
1539 if ( self%read_from_file )
then
1541 call position_nml(self%name, unit)
1542 read(unit, nml=time_periods)
1544 self%warming_Days = warming_days
1545 self%eval_Per = eval_per
1546 self%read_from_file = .false.
1554 character(*),
intent(in) :: file
1557 character(256) :: inputFormat_meteo_forcings
1559 logical :: bound_error
1560 character(256),
dimension(maxNoDomains) :: dir_meteo_header
1561 character(256),
dimension(maxNoDomains) :: dir_Precipitation
1562 character(256),
dimension(maxNoDomains) :: dir_Temperature
1563 character(256),
dimension(maxNoDomains) :: dir_ReferenceET
1564 character(256),
dimension(maxNoDomains) :: dir_MinTemperature
1565 character(256),
dimension(maxNoDomains) :: dir_MaxTemperature
1566 character(256),
dimension(maxNoDomains) :: dir_absVapPressure
1567 character(256),
dimension(maxNoDomains) :: dir_windspeed
1568 character(256),
dimension(maxNoDomains) :: dir_NetRadiation
1569 character(256),
dimension(maxNoDomains) :: dir_Radiation
1570 integer(i4),
dimension(maxNoDomains) :: time_step_model_inputs
1572 namelist /directories_mhm/ &
1573 inputformat_meteo_forcings, &
1576 dir_precipitation, &
1579 dir_mintemperature, &
1580 dir_maxtemperature, &
1581 dir_absvappressure, &
1585 time_step_model_inputs
1587 if ( self%read_from_file )
then
1588 call set_sentinel(dir_meteo_header)
1589 inputformat_meteo_forcings =
"nc"
1590 bound_error = .true.
1592 call position_nml(self%name, unit)
1593 read(unit, nml=directories_mhm)
1595 self%inputFormat_meteo_forcings = inputformat_meteo_forcings
1596 self%bound_error = bound_error
1597 self%dir_meteo_header = dir_meteo_header
1598 self%dir_Precipitation = dir_precipitation
1599 self%dir_Temperature = dir_temperature
1600 self%dir_ReferenceET = dir_referenceet
1601 self%dir_MinTemperature = dir_mintemperature
1602 self%dir_MaxTemperature = dir_maxtemperature
1603 self%dir_absVapPressure = dir_absvappressure
1604 self%dir_windspeed = dir_windspeed
1605 self%dir_NetRadiation = dir_netradiation
1606 self%dir_Radiation = dir_radiation
1607 self%time_step_model_inputs = time_step_model_inputs
1608 self%read_from_file = .false.
1616 character(*),
intent(in) :: file
1619 integer(i4) :: nSoilHorizons_sm_input
1620 character(256),
dimension(maxNoDomains) :: dir_soil_moisture
1621 character(256),
dimension(maxNoDomains) :: dir_neutrons
1622 character(256),
dimension(maxNoDomains) :: dir_evapotranspiration
1623 character(256),
dimension(maxNoDomains) :: dir_TWS
1624 character(256),
dimension(maxNoDomains) :: dir_spf
1625 integer(i4) :: timeStep_sm_input
1626 integer(i4) :: timeStep_neutrons_input
1627 integer(i4) :: timeStep_et_input
1628 integer(i4) :: timeStep_tws_input
1629 integer(i4) :: timeStep_spf_input
1630 integer(i4) :: weight_for_optional_data
1631 integer(i4) :: snow_water_equivalent_threshold_for_spf
1634 namelist /optional_data/ &
1635 nsoilhorizons_sm_input, &
1636 dir_soil_moisture, &
1638 dir_evapotranspiration, &
1641 timestep_sm_input, &
1642 timestep_neutrons_input, &
1643 timestep_et_input, &
1644 timestep_tws_input, &
1645 timestep_spf_input, &
1646 weight_for_optional_data, &
1647 snow_water_equivalent_threshold_for_spf
1649 if ( self%read_from_file )
then
1651 call position_nml(self%name, unit)
1652 read(unit, nml=optional_data)
1654 self%nSoilHorizons_sm_input = nsoilhorizons_sm_input
1655 self%dir_soil_moisture = dir_soil_moisture
1656 self%dir_neutrons = dir_neutrons
1657 self%dir_evapotranspiration = dir_evapotranspiration
1658 self%dir_TWS = dir_tws
1659 self%dir_spf = dir_spf
1660 self%timeStep_sm_input = timestep_sm_input
1661 self%timeStep_neutrons_input = timestep_neutrons_input
1662 self%timeStep_et_input = timestep_et_input
1663 self%timeStep_tws_input = timestep_tws_input
1664 self%timeStep_spf_input = timestep_spf_input
1665 self%weight_for_optional_data = weight_for_optional_data
1666 self%snow_water_equivalent_threshold_for_spf = snow_water_equivalent_threshold_for_spf
1667 self%read_from_file = .false.
1675 character(*),
intent(in) :: file
1678 real(dp),
dimension(int(YearMonths, i4)) :: evap_coeff
1680 namelist /panevapo/ &
1683 if ( self%read_from_file )
then
1685 call position_nml(self%name, unit)
1686 read(unit, nml=panevapo)
1688 self%evap_coeff = evap_coeff
1689 self%read_from_file = .false.
1697 character(*),
intent(in) :: file
1700 logical :: read_meteo_weights
1701 real(dp),
dimension(int(YearMonths, i4)) :: fnight_prec
1702 real(dp),
dimension(int(YearMonths, i4)) :: fnight_pet
1703 real(dp),
dimension(int(YearMonths, i4)) :: fnight_temp
1704 real(dp),
dimension(int(YearMonths, i4)) :: fnight_ssrd
1705 real(dp),
dimension(int(YearMonths, i4)) :: fnight_strd
1707 namelist /nightdayratio/ &
1708 read_meteo_weights, &
1715 if ( self%read_from_file )
then
1717 fnight_ssrd = 0.0_dp
1718 fnight_strd = 0.45_dp
1720 call position_nml(self%name, unit)
1721 read(unit, nml=nightdayratio)
1723 self%read_meteo_weights = read_meteo_weights
1724 self%fnight_prec = fnight_prec
1725 self%fnight_pet = fnight_pet
1726 self%fnight_temp = fnight_temp
1727 self%fnight_ssrd = fnight_ssrd
1728 self%fnight_strd = fnight_strd
1729 self%read_from_file = .false.
1737 character(*),
intent(in) :: file
1740 integer(i4) :: output_deflate_level
1741 logical :: output_double_precision
1742 integer(i4) :: output_time_reference
1743 integer(i4) :: timeStep_model_outputs
1744 logical,
dimension(nOutFlxState) :: outputFlxState
1746 namelist /nloutputresults/ &
1747 output_deflate_level, &
1748 output_double_precision, &
1749 output_time_reference, &
1750 timestep_model_outputs, &
1753 if ( self%read_from_file )
then
1755 output_deflate_level = 6
1756 output_double_precision = .true.
1757 output_time_reference = 0
1758 outputflxstate = .false.
1760 call position_nml(self%name, unit)
1761 read(unit, nml=nloutputresults)
1763 self%output_deflate_level = output_deflate_level
1764 self%output_double_precision = output_double_precision
1765 self%timeStep_model_outputs = timestep_model_outputs
1766 self%output_time_reference = output_time_reference
1767 self%outputFlxState = outputflxstate
1768 self%read_from_file = .false.
1776 character(*),
intent(in) :: file
1780 real(dp),
dimension(maxNoDomains) :: BFI_obs
1782 namelist /baseflow_config/ &
1786 if ( self%read_from_file )
then
1790 call position_nml(self%name, unit)
1791 read(unit, nml=baseflow_config)
1793 self%BFI_calc = bfi_calc
1794 self%BFI_obs = bfi_obs
1795 self%read_from_file = .false.
1803 character(*),
intent(in) :: file
1806 character(256),
dimension(maxNoDomains) :: dir_gridded_LAI
1808 namelist /directories_mpr/ &
1811 if ( self%read_from_file )
then
1813 call position_nml(self%name, unit)
1814 read(unit, nml=directories_mpr)
1816 self%dir_gridded_LAI = dir_gridded_lai
1817 self%read_from_file = .false.
1825 character(*),
intent(in) :: file
1828 integer(i4) :: iFlag_soilDB
1829 real(dp) :: tillageDepth
1830 integer(i4) :: nSoilHorizons_mHM
1831 real(dp),
dimension(maxNoSoilHorizons) :: soil_Depth
1833 namelist /soildata/ &
1836 nsoilhorizons_mhm, &
1839 if ( self%read_from_file )
then
1842 call position_nml(self%name, unit)
1843 read(unit, nml=soildata)
1845 self%iFlag_soilDB = iflag_soildb
1846 self%tillageDepth = tillagedepth
1847 self%nSoilHorizons_mHM = nsoilhorizons_mhm
1848 self%soil_Depth = soil_depth
1849 self%read_from_file = .false.
1857 character(*),
intent(in) :: file
1860 character(256) :: inputFormat_gridded_LAI
1861 integer(i4) :: timeStep_LAI_input
1863 namelist /lai_data_information/ &
1864 inputformat_gridded_lai, &
1867 if ( self%read_from_file )
then
1869 call position_nml(self%name, unit)
1870 read(unit, nml=lai_data_information)
1872 self%inputFormat_gridded_LAI = inputformat_gridded_lai
1873 self%timeStep_LAI_input = timestep_lai_input
1874 self%read_from_file = .false.
1882 character(*),
intent(in) :: file
1885 real(dp) :: fracSealed_cityArea
1887 namelist /lcover_mpr/ &
1890 if ( self%read_from_file )
then
1892 call position_nml(self%name, unit)
1893 read(unit, nml=lcover_mpr)
1895 self%fracSealed_cityArea = fracsealed_cityarea
1896 self%read_from_file = .false.
1904 character(*),
intent(in) :: file
1907 real(dp),
dimension(nColPars) :: canopyInterceptionFactor
1909 namelist /interception1/ &
1910 canopyinterceptionfactor
1912 if ( self%read_from_file )
then
1914 call position_nml(self%name, unit)
1915 read(unit, nml=interception1)
1917 self%canopyInterceptionFactor = canopyinterceptionfactor
1918 self%read_from_file = .false.
1926 character(*),
intent(in) :: file
1929 real(dp),
dimension(nColPars) :: snowTreshholdTemperature
1930 real(dp),
dimension(nColPars) :: degreeDayFactor_forest
1931 real(dp),
dimension(nColPars) :: degreeDayFactor_impervious
1932 real(dp),
dimension(nColPars) :: degreeDayFactor_pervious
1933 real(dp),
dimension(nColPars) :: increaseDegreeDayFactorByPrecip
1934 real(dp),
dimension(nColPars) :: maxDegreeDayFactor_forest
1935 real(dp),
dimension(nColPars) :: maxDegreeDayFactor_impervious
1936 real(dp),
dimension(nColPars) :: maxDegreeDayFactor_pervious
1939 snowtreshholdtemperature, &
1940 degreedayfactor_forest, &
1941 degreedayfactor_impervious, &
1942 degreedayfactor_pervious, &
1943 increasedegreedayfactorbyprecip, &
1944 maxdegreedayfactor_forest, &
1945 maxdegreedayfactor_impervious, &
1946 maxdegreedayfactor_pervious
1948 if ( self%read_from_file )
then
1950 call position_nml(self%name, unit)
1951 read(unit, nml=snow1)
1953 self%snowTreshholdTemperature = snowtreshholdtemperature
1954 self%degreeDayFactor_forest = degreedayfactor_forest
1955 self%degreeDayFactor_impervious = degreedayfactor_impervious
1956 self%degreeDayFactor_pervious = degreedayfactor_pervious
1957 self%increaseDegreeDayFactorByPrecip = increasedegreedayfactorbyprecip
1958 self%maxDegreeDayFactor_forest = maxdegreedayfactor_forest
1959 self%maxDegreeDayFactor_impervious = maxdegreedayfactor_impervious
1960 self%maxDegreeDayFactor_pervious = maxdegreedayfactor_pervious
1961 self%read_from_file = .false.
1969 character(*),
intent(in) :: file
1972 real(dp),
dimension(nColPars) :: orgMatterContent_forest
1973 real(dp),
dimension(nColPars) :: orgMatterContent_impervious
1974 real(dp),
dimension(nColPars) :: orgMatterContent_pervious
1976 real(dp),
dimension(nColPars) :: PTF_lower66_5_constant
1977 real(dp),
dimension(nColPars) :: PTF_lower66_5_clay
1978 real(dp),
dimension(nColPars) :: PTF_lower66_5_Db
1980 real(dp),
dimension(nColPars) :: PTF_higher66_5_constant
1981 real(dp),
dimension(nColPars) :: PTF_higher66_5_clay
1982 real(dp),
dimension(nColPars) :: PTF_higher66_5_Db
1984 real(dp),
dimension(nColPars) :: PTF_Ks_constant
1985 real(dp),
dimension(nColPars) :: PTF_Ks_sand
1986 real(dp),
dimension(nColPars) :: PTF_Ks_clay
1987 real(dp),
dimension(nColPars) :: PTF_Ks_curveSlope
1989 real(dp),
dimension(nColPars) :: rootFractionCoefficient_forest
1991 real(dp),
dimension(nColPars) :: rootFractionCoefficient_impervious
1993 real(dp),
dimension(nColPars) :: rootFractionCoefficient_pervious
1995 real(dp),
dimension(nColPars) :: infiltrationShapeFactor
1997 namelist /soilmoisture1/ &
1998 orgmattercontent_forest, &
1999 orgmattercontent_impervious, &
2000 orgmattercontent_pervious, &
2001 ptf_lower66_5_constant, &
2002 ptf_lower66_5_clay, &
2004 ptf_higher66_5_constant, &
2005 ptf_higher66_5_clay, &
2006 ptf_higher66_5_db, &
2010 ptf_ks_curveslope, &
2011 rootfractioncoefficient_forest, &
2012 rootfractioncoefficient_impervious, &
2013 rootfractioncoefficient_pervious, &
2014 infiltrationshapefactor
2016 if ( self%read_from_file )
then
2018 call position_nml(self%name, unit)
2019 read(unit, nml=soilmoisture1)
2021 self%orgMatterContent_forest = orgmattercontent_forest
2022 self%orgMatterContent_impervious = orgmattercontent_impervious
2023 self%orgMatterContent_pervious = orgmattercontent_pervious
2024 self%PTF_lower66_5_constant = ptf_lower66_5_constant
2025 self%PTF_lower66_5_clay = ptf_lower66_5_clay
2026 self%PTF_lower66_5_Db = ptf_lower66_5_db
2027 self%PTF_higher66_5_constant = ptf_higher66_5_constant
2028 self%PTF_higher66_5_clay = ptf_higher66_5_clay
2029 self%PTF_higher66_5_Db = ptf_higher66_5_db
2030 self%PTF_Ks_constant = ptf_ks_constant
2031 self%PTF_Ks_sand = ptf_ks_sand
2032 self%PTF_Ks_clay = ptf_ks_clay
2033 self%PTF_Ks_curveSlope = ptf_ks_curveslope
2034 self%rootFractionCoefficient_forest = rootfractioncoefficient_forest
2035 self%rootFractionCoefficient_impervious = rootfractioncoefficient_impervious
2036 self%rootFractionCoefficient_pervious = rootfractioncoefficient_pervious
2037 self%infiltrationShapeFactor = infiltrationshapefactor
2038 self%read_from_file = .false.
2046 character(*),
intent(in) :: file
2049 real(dp),
dimension(nColPars) :: orgMatterContent_forest
2050 real(dp),
dimension(nColPars) :: orgMatterContent_impervious
2051 real(dp),
dimension(nColPars) :: orgMatterContent_pervious
2053 real(dp),
dimension(nColPars) :: PTF_lower66_5_constant
2054 real(dp),
dimension(nColPars) :: PTF_lower66_5_clay
2055 real(dp),
dimension(nColPars) :: PTF_lower66_5_Db
2057 real(dp),
dimension(nColPars) :: PTF_higher66_5_constant
2058 real(dp),
dimension(nColPars) :: PTF_higher66_5_clay
2059 real(dp),
dimension(nColPars) :: PTF_higher66_5_Db
2061 real(dp),
dimension(nColPars) :: PTF_Ks_constant
2062 real(dp),
dimension(nColPars) :: PTF_Ks_sand
2063 real(dp),
dimension(nColPars) :: PTF_Ks_clay
2064 real(dp),
dimension(nColPars) :: PTF_Ks_curveSlope
2066 real(dp),
dimension(nColPars) :: rootFractionCoefficient_forest
2068 real(dp),
dimension(nColPars) :: rootFractionCoefficient_impervious
2070 real(dp),
dimension(nColPars) :: rootFractionCoefficient_pervious
2072 real(dp),
dimension(nColPars) :: infiltrationShapeFactor
2073 real(dp),
dimension(nColPars) :: jarvis_sm_threshold_c1
2075 namelist /soilmoisture2/ &
2076 orgmattercontent_forest, &
2077 orgmattercontent_impervious, &
2078 orgmattercontent_pervious, &
2079 ptf_lower66_5_constant, &
2080 ptf_lower66_5_clay, &
2082 ptf_higher66_5_constant, &
2083 ptf_higher66_5_clay, &
2084 ptf_higher66_5_db, &
2088 ptf_ks_curveslope, &
2089 rootfractioncoefficient_forest, &
2090 rootfractioncoefficient_impervious, &
2091 rootfractioncoefficient_pervious, &
2092 infiltrationshapefactor, &
2093 jarvis_sm_threshold_c1
2095 if ( self%read_from_file )
then
2097 call position_nml(self%name, unit)
2098 read(unit, nml=soilmoisture2)
2100 self%orgMatterContent_forest = orgmattercontent_forest
2101 self%orgMatterContent_impervious = orgmattercontent_impervious
2102 self%orgMatterContent_pervious = orgmattercontent_pervious
2103 self%PTF_lower66_5_constant = ptf_lower66_5_constant
2104 self%PTF_lower66_5_clay = ptf_lower66_5_clay
2105 self%PTF_lower66_5_Db = ptf_lower66_5_db
2106 self%PTF_higher66_5_constant = ptf_higher66_5_constant
2107 self%PTF_higher66_5_clay = ptf_higher66_5_clay
2108 self%PTF_higher66_5_Db = ptf_higher66_5_db
2109 self%PTF_Ks_constant = ptf_ks_constant
2110 self%PTF_Ks_sand = ptf_ks_sand
2111 self%PTF_Ks_clay = ptf_ks_clay
2112 self%PTF_Ks_curveSlope = ptf_ks_curveslope
2113 self%rootFractionCoefficient_forest = rootfractioncoefficient_forest
2114 self%rootFractionCoefficient_impervious = rootfractioncoefficient_impervious
2115 self%rootFractionCoefficient_pervious = rootfractioncoefficient_pervious
2116 self%infiltrationShapeFactor = infiltrationshapefactor
2117 self%jarvis_sm_threshold_c1 = jarvis_sm_threshold_c1
2118 self%read_from_file = .false.
2126 character(*),
intent(in) :: file
2129 real(dp),
dimension(nColPars) :: orgMatterContent_forest
2130 real(dp),
dimension(nColPars) :: orgMatterContent_impervious
2131 real(dp),
dimension(nColPars) :: orgMatterContent_pervious
2133 real(dp),
dimension(nColPars) :: PTF_lower66_5_constant
2134 real(dp),
dimension(nColPars) :: PTF_lower66_5_clay
2135 real(dp),
dimension(nColPars) :: PTF_lower66_5_Db
2137 real(dp),
dimension(nColPars) :: PTF_higher66_5_constant
2138 real(dp),
dimension(nColPars) :: PTF_higher66_5_clay
2139 real(dp),
dimension(nColPars) :: PTF_higher66_5_Db
2141 real(dp),
dimension(nColPars) :: PTF_Ks_constant
2142 real(dp),
dimension(nColPars) :: PTF_Ks_sand
2143 real(dp),
dimension(nColPars) :: PTF_Ks_clay
2144 real(dp),
dimension(nColPars) :: PTF_Ks_curveSlope
2146 real(dp),
dimension(nColPars) :: rootFractionCoefficient_forest
2148 real(dp),
dimension(nColPars) :: rootFractionCoefficient_impervious
2150 real(dp),
dimension(nColPars) :: rootFractionCoefficient_pervious
2152 real(dp),
dimension(nColPars) :: infiltrationShapeFactor
2153 real(dp),
dimension(nColPars) :: FCmin_glob
2154 real(dp),
dimension(nColPars) :: FCdelta_glob
2155 real(dp),
dimension(nColPars) :: rootFractionCoefficient_sand
2156 real(dp),
dimension(nColPars) :: rootFractionCoefficient_clay
2157 real(dp),
dimension(nColPars) :: jarvis_sm_threshold_c1
2159 namelist /soilmoisture3/ &
2160 orgmattercontent_forest, &
2161 orgmattercontent_impervious, &
2162 orgmattercontent_pervious, &
2163 ptf_lower66_5_constant, &
2164 ptf_lower66_5_clay, &
2166 ptf_higher66_5_constant, &
2167 ptf_higher66_5_clay, &
2168 ptf_higher66_5_db, &
2172 ptf_ks_curveslope, &
2173 rootfractioncoefficient_forest, &
2174 rootfractioncoefficient_impervious, &
2175 rootfractioncoefficient_pervious, &
2176 infiltrationshapefactor, &
2177 rootfractioncoefficient_sand, &
2178 rootfractioncoefficient_clay, &
2181 jarvis_sm_threshold_c1
2183 if ( self%read_from_file )
then
2185 call position_nml(self%name, unit)
2186 read(unit, nml=soilmoisture3)
2188 self%orgMatterContent_forest = orgmattercontent_forest
2189 self%orgMatterContent_impervious = orgmattercontent_impervious
2190 self%orgMatterContent_pervious = orgmattercontent_pervious
2191 self%PTF_lower66_5_constant = ptf_lower66_5_constant
2192 self%PTF_lower66_5_clay = ptf_lower66_5_clay
2193 self%PTF_lower66_5_Db = ptf_lower66_5_db
2194 self%PTF_higher66_5_constant = ptf_higher66_5_constant
2195 self%PTF_higher66_5_clay = ptf_higher66_5_clay
2196 self%PTF_higher66_5_Db = ptf_higher66_5_db
2197 self%PTF_Ks_constant = ptf_ks_constant
2198 self%PTF_Ks_sand = ptf_ks_sand
2199 self%PTF_Ks_clay = ptf_ks_clay
2200 self%PTF_Ks_curveSlope = ptf_ks_curveslope
2201 self%rootFractionCoefficient_forest = rootfractioncoefficient_forest
2202 self%rootFractionCoefficient_impervious = rootfractioncoefficient_impervious
2203 self%rootFractionCoefficient_pervious = rootfractioncoefficient_pervious
2204 self%infiltrationShapeFactor = infiltrationshapefactor
2205 self%rootFractionCoefficient_sand = rootfractioncoefficient_sand
2206 self%rootFractionCoefficient_clay = rootfractioncoefficient_clay
2207 self%FCmin_glob = fcmin_glob
2208 self%FCdelta_glob = fcdelta_glob
2209 self%jarvis_sm_threshold_c1 = jarvis_sm_threshold_c1
2210 self%read_from_file = .false.
2218 character(*),
intent(in) :: file
2221 real(dp),
dimension(nColPars) :: orgMatterContent_forest
2222 real(dp),
dimension(nColPars) :: orgMatterContent_impervious
2223 real(dp),
dimension(nColPars) :: orgMatterContent_pervious
2225 real(dp),
dimension(nColPars) :: PTF_lower66_5_constant
2226 real(dp),
dimension(nColPars) :: PTF_lower66_5_clay
2227 real(dp),
dimension(nColPars) :: PTF_lower66_5_Db
2229 real(dp),
dimension(nColPars) :: PTF_higher66_5_constant
2230 real(dp),
dimension(nColPars) :: PTF_higher66_5_clay
2231 real(dp),
dimension(nColPars) :: PTF_higher66_5_Db
2233 real(dp),
dimension(nColPars) :: PTF_Ks_constant
2234 real(dp),
dimension(nColPars) :: PTF_Ks_sand
2235 real(dp),
dimension(nColPars) :: PTF_Ks_clay
2236 real(dp),
dimension(nColPars) :: PTF_Ks_curveSlope
2238 real(dp),
dimension(nColPars) :: rootFractionCoefficient_forest
2240 real(dp),
dimension(nColPars) :: rootFractionCoefficient_impervious
2242 real(dp),
dimension(nColPars) :: rootFractionCoefficient_pervious
2244 real(dp),
dimension(nColPars) :: infiltrationShapeFactor
2245 real(dp),
dimension(nColPars) :: FCmin_glob
2246 real(dp),
dimension(nColPars) :: FCdelta_glob
2247 real(dp),
dimension(nColPars) :: rootFractionCoefficient_sand
2248 real(dp),
dimension(nColPars) :: rootFractionCoefficient_clay
2250 namelist /soilmoisture4/ &
2251 orgmattercontent_forest, &
2252 orgmattercontent_impervious, &
2253 orgmattercontent_pervious, &
2254 ptf_lower66_5_constant, &
2255 ptf_lower66_5_clay, &
2257 ptf_higher66_5_constant, &
2258 ptf_higher66_5_clay, &
2259 ptf_higher66_5_db, &
2263 ptf_ks_curveslope, &
2264 rootfractioncoefficient_forest, &
2265 rootfractioncoefficient_impervious, &
2266 rootfractioncoefficient_pervious, &
2267 infiltrationshapefactor, &
2268 rootfractioncoefficient_sand, &
2269 rootfractioncoefficient_clay, &
2273 if ( self%read_from_file )
then
2275 call position_nml(self%name, unit)
2276 read(unit, nml=soilmoisture4)
2278 self%orgMatterContent_forest = orgmattercontent_forest
2279 self%orgMatterContent_impervious = orgmattercontent_impervious
2280 self%orgMatterContent_pervious = orgmattercontent_pervious
2281 self%PTF_lower66_5_constant = ptf_lower66_5_constant
2282 self%PTF_lower66_5_clay = ptf_lower66_5_clay
2283 self%PTF_lower66_5_Db = ptf_lower66_5_db
2284 self%PTF_higher66_5_constant = ptf_higher66_5_constant
2285 self%PTF_higher66_5_clay = ptf_higher66_5_clay
2286 self%PTF_higher66_5_Db = ptf_higher66_5_db
2287 self%PTF_Ks_constant = ptf_ks_constant
2288 self%PTF_Ks_sand = ptf_ks_sand
2289 self%PTF_Ks_clay = ptf_ks_clay
2290 self%PTF_Ks_curveSlope = ptf_ks_curveslope
2291 self%rootFractionCoefficient_forest = rootfractioncoefficient_forest
2292 self%rootFractionCoefficient_impervious = rootfractioncoefficient_impervious
2293 self%rootFractionCoefficient_pervious = rootfractioncoefficient_pervious
2294 self%infiltrationShapeFactor = infiltrationshapefactor
2295 self%rootFractionCoefficient_sand = rootfractioncoefficient_sand
2296 self%rootFractionCoefficient_clay = rootfractioncoefficient_clay
2297 self%FCmin_glob = fcmin_glob
2298 self%FCdelta_glob = fcdelta_glob
2299 self%read_from_file = .false.
2307 character(*),
intent(in) :: file
2310 real(dp),
dimension(nColPars) :: imperviousStorageCapacity
2312 namelist /directrunoff1/ &
2313 imperviousstoragecapacity
2315 if ( self%read_from_file )
then
2317 call position_nml(self%name, unit)
2318 read(unit, nml=directrunoff1)
2320 self%imperviousStorageCapacity = imperviousstoragecapacity
2321 self%read_from_file = .false.
2329 character(*),
intent(in) :: file
2332 real(dp),
dimension(nColPars) :: PET_a_forest
2333 real(dp),
dimension(nColPars) :: PET_a_impervious
2334 real(dp),
dimension(nColPars) :: PET_a_pervious
2335 real(dp),
dimension(nColPars) :: PET_b
2336 real(dp),
dimension(nColPars) :: PET_c
2338 namelist /petminus1/ &
2345 if ( self%read_from_file )
then
2347 call position_nml(self%name, unit)
2348 read(unit, nml=petminus1)
2350 self%PET_a_forest = pet_a_forest
2351 self%PET_a_impervious = pet_a_impervious
2352 self%PET_a_pervious = pet_a_pervious
2355 self%read_from_file = .false.
2363 character(*),
intent(in) :: file
2366 real(dp),
dimension(nColPars) :: minCorrectionFactorPET
2367 real(dp),
dimension(nColPars) :: maxCorrectionFactorPET
2368 real(dp),
dimension(nColPars) :: aspectTresholdPET
2371 mincorrectionfactorpet, &
2372 maxcorrectionfactorpet, &
2375 if ( self%read_from_file )
then
2377 call position_nml(self%name, unit)
2378 read(unit, nml=pet0)
2380 self%minCorrectionFactorPET = mincorrectionfactorpet
2381 self%maxCorrectionFactorPET = maxcorrectionfactorpet
2382 self%aspectTresholdPET = aspecttresholdpet
2383 self%read_from_file = .false.
2391 character(*),
intent(in) :: file
2394 real(dp),
dimension(nColPars) :: minCorrectionFactorPET
2395 real(dp),
dimension(nColPars) :: maxCorrectionFactorPET
2396 real(dp),
dimension(nColPars) :: aspectTresholdPET
2397 real(dp),
dimension(nColPars) :: HargreavesSamaniCoeff
2400 mincorrectionfactorpet, &
2401 maxcorrectionfactorpet, &
2402 aspecttresholdpet, &
2403 hargreavessamanicoeff
2405 if ( self%read_from_file )
then
2407 call position_nml(self%name, unit)
2408 read(unit, nml=pet1)
2410 self%minCorrectionFactorPET = mincorrectionfactorpet
2411 self%maxCorrectionFactorPET = maxcorrectionfactorpet
2412 self%aspectTresholdPET = aspecttresholdpet
2413 self%HargreavesSamaniCoeff = hargreavessamanicoeff
2414 self%read_from_file = .false.
2422 character(*),
intent(in) :: file
2425 real(dp),
dimension(nColPars) :: PriestleyTaylorCoeff
2426 real(dp),
dimension(nColPars) :: PriestleyTaylorLAIcorr
2429 priestleytaylorcoeff, &
2430 priestleytaylorlaicorr
2432 if ( self%read_from_file )
then
2434 call position_nml(self%name, unit)
2435 read(unit, nml=pet2)
2437 self%PriestleyTaylorCoeff = priestleytaylorcoeff
2438 self%PriestleyTaylorLAIcorr = priestleytaylorlaicorr
2439 self%read_from_file = .false.
2447 character(*),
intent(in) :: file
2450 real(dp),
dimension(nColPars) :: canopyheigth_forest
2451 real(dp),
dimension(nColPars) :: canopyheigth_impervious
2452 real(dp),
dimension(nColPars) :: canopyheigth_pervious
2453 real(dp),
dimension(nColPars) :: displacementheight_coeff
2454 real(dp),
dimension(nColPars) :: roughnesslength_momentum_coeff
2455 real(dp),
dimension(nColPars) :: roughnesslength_heat_coeff
2456 real(dp),
dimension(nColPars) :: stomatal_resistance
2459 canopyheigth_forest, &
2460 canopyheigth_impervious, &
2461 canopyheigth_pervious, &
2462 displacementheight_coeff, &
2463 roughnesslength_momentum_coeff, &
2464 roughnesslength_heat_coeff, &
2467 if ( self%read_from_file )
then
2469 call position_nml(self%name, unit)
2470 read(unit, nml=pet3)
2472 self%canopyheigth_forest = canopyheigth_forest
2473 self%canopyheigth_impervious = canopyheigth_impervious
2474 self%canopyheigth_pervious = canopyheigth_pervious
2475 self%displacementheight_coeff = displacementheight_coeff
2476 self%roughnesslength_momentum_coeff = roughnesslength_momentum_coeff
2477 self%roughnesslength_heat_coeff = roughnesslength_heat_coeff
2478 self%stomatal_resistance = stomatal_resistance
2479 self%read_from_file = .false.
2487 character(*),
intent(in) :: file
2490 real(dp),
dimension(nColPars) :: interflowStorageCapacityFactor
2491 real(dp),
dimension(nColPars) :: interflowRecession_slope
2493 real(dp),
dimension(nColPars) :: fastInterflowRecession_forest
2495 real(dp),
dimension(nColPars) :: slowInterflowRecession_Ks
2497 real(dp),
dimension(nColPars) :: exponentSlowInterflow
2499 namelist /interflow1/ &
2500 interflowstoragecapacityfactor, &
2501 interflowrecession_slope, &
2502 fastinterflowrecession_forest, &
2503 slowinterflowrecession_ks, &
2504 exponentslowinterflow
2506 if ( self%read_from_file )
then
2508 call position_nml(self%name, unit)
2509 read(unit, nml=interflow1)
2511 self%interflowStorageCapacityFactor = interflowstoragecapacityfactor
2512 self%interflowRecession_slope = interflowrecession_slope
2513 self%fastInterflowRecession_forest = fastinterflowrecession_forest
2514 self%slowInterflowRecession_Ks = slowinterflowrecession_ks
2515 self%exponentSlowInterflow = exponentslowinterflow
2516 self%read_from_file = .false.
2524 character(*),
intent(in) :: file
2527 real(dp),
dimension(nColPars) :: rechargeCoefficient
2528 real(dp),
dimension(nColPars) :: rechargeFactor_karstic
2529 real(dp),
dimension(nColPars) :: gain_loss_GWreservoir_karstic
2531 namelist /percolation1/ &
2532 rechargecoefficient, &
2533 rechargefactor_karstic, &
2534 gain_loss_gwreservoir_karstic
2536 if ( self%read_from_file )
then
2538 call position_nml(self%name, unit)
2539 read(unit, nml=percolation1)
2541 self%rechargeCoefficient = rechargecoefficient
2542 self%rechargeFactor_karstic = rechargefactor_karstic
2543 self%gain_loss_GWreservoir_karstic = gain_loss_gwreservoir_karstic
2544 self%read_from_file = .false.
2552 character(*),
intent(in) :: file
2555 real(dp),
dimension(nColPars) :: Desilets_N0
2556 real(dp),
dimension(nColPars) :: Desilets_LW0
2557 real(dp),
dimension(nColPars) :: Desilets_LW1
2559 namelist /neutrons1/ &
2564 if ( self%read_from_file )
then
2566 call position_nml(self%name, unit)
2567 read(unit, nml=neutrons1)
2569 self%Desilets_N0 = desilets_n0
2570 self%Desilets_LW0 = desilets_lw0
2571 self%Desilets_LW1 = desilets_lw1
2572 self%read_from_file = .false.
2580 character(*),
intent(in) :: file
2583 real(dp),
dimension(nColPars) :: COSMIC_N0
2584 real(dp),
dimension(nColPars) :: COSMIC_N1
2585 real(dp),
dimension(nColPars) :: COSMIC_N2
2586 real(dp),
dimension(nColPars) :: COSMIC_alpha0
2587 real(dp),
dimension(nColPars) :: COSMIC_alpha1
2588 real(dp),
dimension(nColPars) :: COSMIC_L30
2589 real(dp),
dimension(nColPars) :: COSMIC_L31
2590 real(dp),
dimension(nColPars) :: COSMIC_LW0
2591 real(dp),
dimension(nColPars) :: COSMIC_LW1
2593 namelist /neutrons2/ &
2604 if ( self%read_from_file )
then
2606 call position_nml(self%name, unit)
2607 read(unit, nml=neutrons2)
2609 self%COSMIC_N0 = cosmic_n0
2610 self%COSMIC_N1 = cosmic_n1
2611 self%COSMIC_N2 = cosmic_n2
2612 self%COSMIC_alpha0 = cosmic_alpha0
2613 self%COSMIC_alpha1 = cosmic_alpha1
2614 self%COSMIC_L30 = cosmic_l30
2615 self%COSMIC_L31 = cosmic_l31
2616 self%COSMIC_LW0 = cosmic_lw0
2617 self%COSMIC_LW1 = cosmic_lw1
2618 self%read_from_file = .false.
2626 character(*),
intent(in) :: file
2630 real(dp),
dimension(maxGeoUnit, nColPars) :: GeoParam
2632 namelist /geoparameter/ &
2635 if ( self%read_from_file )
then
2638 call position_nml(self%name, unit)
2639 read(unit, nml=geoparameter)
2641 self%GeoParam = geoparam
2642 self%read_from_file = .false.
2650 character(*),
intent(in) :: file
2653 logical :: ALMA_convention
2654 character(256) :: filenameTotalRunoff
2655 character(256) :: varnameTotalRunoff
2656 logical :: gw_coupling
2658 namelist /mainconfig_mrm/ &
2660 filenametotalrunoff, &
2661 varnametotalrunoff, &
2664 if ( self%read_from_file )
then
2665 alma_convention = .false.
2666 filenametotalrunoff =
'total_runoff'
2667 varnametotalrunoff =
'total_runoff'
2668 gw_coupling = .false.
2670 call position_nml(self%name, unit)
2671 read(unit, nml=mainconfig_mrm)
2673 self%ALMA_convention = alma_convention
2674 self%filenameTotalRunoff = filenametotalrunoff
2675 self%varnameTotalRunoff = varnametotalrunoff
2676 self%gw_coupling = gw_coupling
2677 self%read_from_file = .false.
2685 character(*),
intent(in) :: file
2688 character(256),
dimension(maxNoDomains) :: dir_Gauges
2689 character(256),
dimension(maxNoDomains) :: dir_Total_Runoff
2690 character(256),
dimension(maxNoDomains) :: dir_Bankfull_Runoff
2692 namelist /directories_mrm/ &
2697 if ( self%read_from_file )
then
2699 call position_nml(self%name, unit)
2700 read(unit, nml=directories_mrm)
2702 self%dir_Gauges = dir_gauges
2703 self%dir_Total_Runoff = dir_total_runoff
2704 self%dir_Bankfull_Runoff = dir_bankfull_runoff
2705 self%read_from_file = .false.
2713 character(*),
intent(in) :: file
2716 integer(i4) :: nGaugesTotal
2717 integer(i4),
dimension(maxNoDomains) :: NoGauges_domain
2718 integer(i4),
dimension(maxNoDomains, maxNoGauges) :: Gauge_id
2719 character(256),
dimension(maxNoDomains, maxNoGauges) :: Gauge_filename
2721 namelist /evaluation_gauges/ &
2727 if ( self%read_from_file )
then
2733 call position_nml(self%name, unit)
2734 read(unit, nml=evaluation_gauges)
2736 self%nGaugesTotal = ngaugestotal
2737 self%NoGauges_domain = nogauges_domain
2738 self%Gauge_id = gauge_id
2739 self%gauge_filename = gauge_filename
2740 self%read_from_file = .false.
2748 character(*),
intent(in) :: file
2751 integer(i4) :: nInflowGaugesTotal
2752 integer(i4),
dimension(maxNoDomains) :: NoInflowGauges_domain
2753 integer(i4),
dimension(maxNoDomains, maxNoGauges) :: InflowGauge_id
2755 character(256),
dimension(maxNoDomains, maxNoGauges) :: InflowGauge_filename
2757 logical,
dimension(maxNoDomains, maxNoGauges) :: InflowGauge_Headwater
2759 namelist /inflow_gauges/ &
2760 ninflowgaugestotal, &
2761 noinflowgauges_domain, &
2763 inflowgauge_filename, &
2764 inflowgauge_headwater
2766 if ( self%read_from_file )
then
2767 ninflowgaugestotal = 0
2768 noinflowgauges_domain = 0
2770 inflowgauge_filename = num2str(
nodata_i4)
2772 call position_nml(self%name, unit)
2773 read(unit, nml=inflow_gauges)
2775 self%nInflowGaugesTotal = ninflowgaugestotal
2776 self%NoInflowGauges_domain = noinflowgauges_domain
2777 self%InflowGauge_id = inflowgauge_id
2778 self%InflowGauge_filename = inflowgauge_filename
2779 self%InflowGauge_Headwater = inflowgauge_headwater
2780 self%read_from_file = .false.
2786 use mo_message,
only : message
2789 character(*),
intent(in) :: file
2792 integer(i4) :: output_deflate_level_mrm
2793 logical :: output_double_precision_mrm
2794 integer(i4) :: output_time_reference_mrm
2795 integer(i4) :: timeStep_model_outputs_mrm
2796 logical,
dimension(mrm_nOutFlxState) :: outputFlxState_mrm
2798 logical :: file_exists
2800 namelist /nloutputresults/ &
2801 output_deflate_level_mrm, &
2802 output_double_precision_mrm, &
2803 output_time_reference_mrm, &
2804 timestep_model_outputs_mrm, &
2807 if ( self%read_from_file )
then
2808 output_deflate_level_mrm = 6
2809 output_double_precision_mrm = .true.
2810 output_time_reference_mrm = 0
2811 outputflxstate_mrm = .false.
2812 timestep_model_outputs_mrm = -2
2813 inquire(file = file, exist = file_exists)
2814 if (file_exists)
then
2816 call position_nml(self%name, unit)
2817 read(unit, nml=nloutputresults)
2820 call message(
'***Warning: No file specifying mRM output fluxes exists')
2822 self%output_deflate_level_mrm = output_deflate_level_mrm
2823 self%output_double_precision_mrm = output_double_precision_mrm
2824 self%output_time_reference_mrm = output_time_reference_mrm
2825 self%timeStep_model_outputs_mrm = timestep_model_outputs_mrm
2826 self%outputFlxState_mrm = outputflxstate_mrm
2827 self%read_from_file = .false.
2835 character(*),
intent(in) :: file
2838 real(dp),
dimension(nColPars) :: muskingumTravelTime_constant
2839 real(dp),
dimension(nColPars) :: muskingumTravelTime_riverLength
2840 real(dp),
dimension(nColPars) :: muskingumTravelTime_riverSlope
2841 real(dp),
dimension(nColPars) :: muskingumTravelTime_impervious
2842 real(dp),
dimension(nColPars) :: muskingumAttenuation_riverSlope
2844 namelist /routing1/ &
2845 muskingumtraveltime_constant, &
2846 muskingumtraveltime_riverlength, &
2847 muskingumtraveltime_riverslope, &
2848 muskingumtraveltime_impervious, &
2849 muskingumattenuation_riverslope
2851 if ( self%read_from_file )
then
2853 call position_nml(self%name, unit)
2854 read(unit, nml=routing1)
2856 self%muskingumTravelTime_constant = muskingumtraveltime_constant
2857 self%muskingumTravelTime_riverLength = muskingumtraveltime_riverlength
2858 self%muskingumTravelTime_riverSlope = muskingumtraveltime_riverslope
2859 self%muskingumTravelTime_impervious = muskingumtraveltime_impervious
2860 self%muskingumAttenuation_riverSlope = muskingumattenuation_riverslope
2861 self%read_from_file = .false.
2869 character(*),
intent(in) :: file
2872 real(dp),
dimension(nColPars) :: streamflow_celerity
2874 namelist /routing2/ &
2876 if ( self%read_from_file )
then
2878 call position_nml(self%name, unit)
2879 read(unit, nml=routing2)
2881 self%streamflow_celerity = streamflow_celerity
2882 self%read_from_file = .false.
2890 character(*),
intent(in) :: file
2893 real(dp),
dimension(nColPars) :: slope_factor
2895 namelist /routing3/ &
2898 if ( self%read_from_file )
then
2900 call position_nml(self%name, unit)
2901 read(unit, nml=routing3)
2903 self%slope_factor = slope_factor
2904 self%read_from_file = .false.
2912 character(*),
intent(in) :: file
2915 real(dp) :: albedo_water
2916 real(dp) :: pt_a_water
2917 real(dp) :: emissivity_water
2918 real(dp) :: turb_heat_ex_coeff
2919 integer(i4) :: max_iter
2920 real(dp) :: delta_iter
2921 real(dp) :: step_iter
2922 character(256) :: riv_widths_file
2923 character(256) :: riv_widths_name
2924 character(256),
dimension(maxNoDomains) :: dir_riv_widths
2926 namelist /config_riv_temp/ &
2930 turb_heat_ex_coeff, &
2938 if ( self%read_from_file )
then
2939 albedo_water = 0.15_dp
2940 pt_a_water = 1.26_dp
2941 emissivity_water = 0.96_dp
2942 turb_heat_ex_coeff = 20.0_dp
2944 delta_iter = 1.0e-02_dp
2947 call position_nml(self%name, unit)
2948 read(unit, nml=config_riv_temp)
2950 self%albedo_water = albedo_water
2951 self%pt_a_water = pt_a_water
2952 self%emissivity_water = emissivity_water
2953 self%turb_heat_ex_coeff = turb_heat_ex_coeff
2954 self%max_iter = max_iter
2955 self%delta_iter = delta_iter
2956 self%step_iter = step_iter
2957 self%riv_widths_file = riv_widths_file
2958 self%riv_widths_name = riv_widths_name
2959 self%dir_riv_widths = dir_riv_widths
2960 self%read_from_file = .false.
2968 character(*),
intent(in) :: file
2970 integer :: unit, status
2972 integer(i4) :: meteo_timestep
2973 logical :: meteo_time_ref_endpoint
2974 logical :: meteo_expect_pre
2975 logical :: meteo_expect_temp
2976 logical :: meteo_expect_pet
2977 logical :: meteo_expect_tmin
2978 logical :: meteo_expect_tmax
2979 logical :: meteo_expect_netrad
2980 logical :: meteo_expect_absvappress
2981 logical :: meteo_expect_windspeed
2982 logical :: meteo_expect_ssrd
2983 logical :: meteo_expect_strd
2984 logical :: meteo_expect_tann
2986 namelist /coupling/ &
2989 meteo_time_ref_endpoint, &
2991 meteo_expect_temp, &
2993 meteo_expect_tmin, &
2994 meteo_expect_tmax, &
2995 meteo_expect_netrad, &
2996 meteo_expect_absvappress, &
2997 meteo_expect_windspeed, &
2998 meteo_expect_ssrd, &
2999 meteo_expect_strd, &
3002 if ( self%read_from_file )
then
3004 meteo_timestep = 0_i4
3005 meteo_time_ref_endpoint = .false.
3006 meteo_expect_pre = .false.
3007 meteo_expect_temp = .false.
3008 meteo_expect_pet = .false.
3009 meteo_expect_tmin = .false.
3010 meteo_expect_tmax = .false.
3011 meteo_expect_netrad = .false.
3012 meteo_expect_absvappress = .false.
3013 meteo_expect_windspeed = .false.
3014 meteo_expect_ssrd = .false.
3015 meteo_expect_strd = .false.
3016 meteo_expect_tann = .false.
3018 call position_nml(self%name, unit, status=status)
3019 if (status == 0)
read(unit, nml=coupling)
3022 self%meteo_timestep = meteo_timestep
3023 self%meteo_time_ref_endpoint = meteo_time_ref_endpoint
3024 self%meteo_expect_pre = meteo_expect_pre
3025 self%meteo_expect_temp = meteo_expect_temp
3026 self%meteo_expect_pet = meteo_expect_pet
3027 self%meteo_expect_tmin = meteo_expect_tmin
3028 self%meteo_expect_tmax = meteo_expect_tmax
3029 self%meteo_expect_netrad = meteo_expect_netrad
3030 self%meteo_expect_absvappress = meteo_expect_absvappress
3031 self%meteo_expect_windspeed = meteo_expect_windspeed
3032 self%meteo_expect_ssrd = meteo_expect_ssrd
3033 self%meteo_expect_strd = meteo_expect_strd
3034 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