5.13.2-dev0
mHM
The mesoscale Hydrological Model
Loading...
Searching...
No Matches
mhm_driver.f90
Go to the documentation of this file.
1!> \file mhm_driver.f90
2!> \brief \copybrief mhm_driver
3!> \details \copydetails mhm_driver
4
5!> \brief Distributed precipitation-runoff model mHM
6!> \details This is the main driver of mHM, which calls
7!! one instance of mHM for a multiple domains and a given period.
8!! \image html mhm5-logo.png "Typical mHM cell"
9!! \image latex mhm5-logo.pdf "Typical mHM cell" width=10cm
10!> \changelog
11!! - Stephan Thober Nov 2013
12!! - added read in of latitude longitude fields
13!! - Matthias Zink Mar 2013
14!! - edited screen output for gauges added inflow gauges
15!! - Matthias Cuntz & Juliane Mai Mar 2014
16!! - Likelihood Kavetski uses 2 more parameters for the
17!! error model global_parameters -> local_parameters
18!! - Rohini Kumar Apr 2014
19!! - implementation of the mHM run on a single cell configuration also for the routing mode.
20!! - run mHM at the input data level i.e. L0 grid
21!! - Rohini Kumar May 2014
22!! - model run on a regular lat-lon grid or on a regular X-Y coordinate system
23!! - Stephan Thober May 2014
24!! - moved read meteo forcings to mo_mhm_eval
25!! - Matthias Cuntz & Juliane Mai Nov 2014
26!! - LAI input from daily, monthly or yearly files
27!! - Matthias Zink Mar 2015
28!! - added optional soil mositure read in for calibration
29!! - Luis Samaniego Jul 2015
30!! - added temporal directories for optimization
31!! - Stephan Thober Aug 2015
32!! - removed routing related variables
33!! - Stephan Thober Oct 2015
34!! - reorganized optimization (now compatible with mRM)
35!! - Oldrich Rakovec, Rohini Kumar Oct 2015
36!! - added reading of domain averaged TWS and objective function 15
37!! for simultaneous calibration based on runoff and TWS
38!! - Rohini Kumar Mar 2016
39!! - options to handle different soil databases modified MPR to included soil horizon specific properties/parameters
40!! - Stephan Thober Nov 2016
41!! - implemented adaptive timestep for routing
42!! - Rohini Kumar Dec 2016
43!! - options to read (monthly mean) LAI fields
44!! - Robert Schweppe Jun 2018
45!! - refactoring and reformatting
46!! - Maren Kaluza Oct 2019
47!! - TWS to data structure
48!! - M.C. Demirel, Simon Stisen Jun 2020
49!! - New Soil Moisture Process: Feddes and FC dependency on root fraction coefficient processCase(3) = 4
50!! - Sebastian Müller Nov 2021
51!! - refactoring driver to use provided interfaces
52!> \authors Luis Samaniego & Rohini Kumar (UFZ)
53!> \date Jun 2018
54!> \version \htmlinclude version.txt \latexinclude version.txt
55!> \copyright Copyright 2005-\today, the mHM Developers, Luis Samaniego, Sabine Attinger: All rights reserved.
56!! mHM is released under the LGPLv3+ license \license_note
57!> \ingroup f_mhm
60 use mo_common_mpi_tools, only: &
64 use mo_mhm_interface, only: &
69
70 IMPLICIT NONE
71
72 ! setup MPI if wanted (does nothing if not compiled with MPI support)
73 call mpi_tools_init()
74
75 ! parse command line arguments
77
78 ! initialize mhm
80
81 ! RUN OR OPTIMIZE
82 if (optimize) then
84 else
85 ! single mhm run with current settings
87 end if
88
89 ! WRITE RESTART files and RUNOFF and finish
91
92 ! finalize MPI (does nothing if not compiled with MPI support)
94
95END PROGRAM mhm_driver
program mhm_driver
Distributed precipitation-runoff model mHM.
Provides structures needed by mHM, mRM and/or mpr.
tools for MPI communication that are mHM or mRM specific
subroutine, public mpi_tools_finalize()
Finalize the MPI run of mHM.
subroutine, public mpi_tools_init()
Finalize the MPI run of mHM.
Module to parse command line arguments of mHM.
subroutine, public parse_command_line()
parse the given command line arguments.
Module providing interfaces for mHM.
subroutine, public mhm_interface_init(namelist_mhm, namelist_mhm_param, namelist_mhm_output, namelist_mrm_output, cwd)
initialize mHM from given namelist paths.
subroutine, public mhm_interface_run()
Run mHM with current settings.
subroutine, public mhm_interface_run_optimization()
Run mHM optimization with current settings.
subroutine, public mhm_interface_finalize()
Write mHM restart.