5.13.3-dev0
mHM
The mesoscale Hydrological Model
Loading...
Searching...
No Matches
cli.py
Go to the documentation of this file.
1"""!
2Module to provide a script to execute mHM.
3
4@copyright Copyright 2005-@today, the mHM Developers, Luis Samaniego, Sabine Attinger: All rights reserved.
5 mHM is released under the LGPLv3+ license @license_note
6"""
7
8import argparse
9
10from .wrapper import model
11
12try:
13 from ._version import __version__
14except ModuleNotFoundError: # pragma: no cover
15 # package is not installed
16 __version__ = "0.0.0.dev0"
17
18
20 return model.version().decode("utf-8").strip()
21
22
23def mhm(): # pragma: no cover
24 """Execute mhm as a command line program."""
25 parser = argparse.ArgumentParser(
26 description="The mesoscale hydrological model - mHM with Python bindings",
27 formatter_class=argparse.ArgumentDefaultsHelpFormatter,
28 )
29 parser.add_argument(
30 "-V",
31 "--version",
32 action="version",
33 version=f_version(),
34 help="show mHM version and exit",
35 )
36 parser.add_argument(
37 "--pyversion",
38 action="version",
39 version=__version__,
40 help="show mHM Python bindings version and exit",
41 )
42 parser.add_argument(
43 "-n", "--nml", default="mhm.nml", help="The mHM configuration namelist."
44 )
45 parser.add_argument(
46 "-p",
47 "--parameter",
48 default="mhm_parameter.nml",
49 help="The mHM parameter namelist.",
50 )
51 parser.add_argument(
52 "-o", "--mhm_output", default="mhm_outputs.nml", help="The mHM output namelist."
53 )
54 parser.add_argument(
55 "-r", "--mrm_output", default="mrm_outputs.nml", help="The mRM output namelist."
56 )
57 parser.add_argument(
58 "-q", "--quiet", action="count", default=0, help="Decrease verbosity level."
59 )
60 parser.add_argument(
61 "cwd", nargs="?", default=".", help="The desired working directory."
62 )
63
64 args = parser.parse_args()
65 # set verbosity
66 model.set_verbosity(level=3 - args.quiet)
67 # init model
69 namelist_mhm=args.nml,
70 namelist_mhm_param=args.parameter,
71 namelist_mhm_output=args.mhm_output,
72 namelist_mrm_output=args.mrm_output,
73 cwd=args.cwd,
74 )
75 # simple run or optimization
77 # finalize will deallocate all variables.
mhm()
Execute mhm as a command line program.
Definition cli.py:23
f_version()
Definition cli.py:19
subroutine version(ver_string)
Get the mHM version.
Definition wrapper.f90:144
subroutine set_verbosity(level)
Set verbosity level of mHM.
Definition wrapper.f90:159
subroutine run_or_optimize()
Execute a mHM model or an optimization depending on the configuration.
Definition wrapper.f90:128
subroutine init(namelist_mhm, namelist_mhm_param, namelist_mhm_output, namelist_mrm_output, cwd)
Initialize a mHM model.
Definition wrapper.f90:86
subroutine finalize()
Finalize a mHM model.
Definition wrapper.f90:152