mHM merge requestshttps://git.ufz.de/mhm/mhm/-/merge_requests2018-10-10T15:40:02+02:00https://git.ufz.de/mhm/mhm/-/merge_requests/3WIP: Resolve "MPR_STANDALONE does not complile"2018-10-10T15:40:02+02:00Robert SchweppeWIP: Resolve "MPR_STANDALONE does not complile"Closes #20Closes #20https://git.ufz.de/mhm/mhm/-/merge_requests/4Resolve "MPR_STANDALONE does not complile"2018-10-10T15:42:07+02:00Robert SchweppeResolve "MPR_STANDALONE does not complile"- added import for mpr_driver to fix #20
Closes #20- added import for mpr_driver to fix #20
Closes #20Robert SchweppeRobert Schweppehttps://git.ufz.de/mhm/mhm/-/merge_requests/5Resolve "Potential bug in mo_multi_param_reg.f90"2018-10-17T11:27:45+02:00Oldrich RakovecResolve "Potential bug in mo_multi_param_reg.f90"Closes #11Closes #11Oldrich RakovecOldrich Rakovechttps://git.ufz.de/mhm/mhm/-/merge_requests/1Resolve "Failing check-case #2"2019-05-23T15:35:32+02:00Robert SchweppeResolve "Failing check-case #2"Closes #9Closes #9Robert SchweppeRobert Schweppehttps://git.ufz.de/mhm/mhm/-/merge_requests/2Resolve "Muskingum: mRM initialization takes much more time in release 5.9 th...2019-07-05T23:16:33+02:00Robert SchweppeResolve "Muskingum: mRM initialization takes much more time in release 5.9 than in release 5.8 (measurable only for large domains)"Added the pointer attribute to the level0_iBasin variables at all routines in the code. @rakovec please check, if that solves the problem.
Thanks
Closes #10Added the pointer attribute to the level0_iBasin variables at all routines in the code. @rakovec please check, if that solves the problem.
Thanks
Closes #10Oldrich RakovecOldrich Rakovechttps://git.ufz.de/mhm/mhm/-/merge_requests/19Added land cover bug in known bugs list in release v5.10_fixed2020-04-14T23:14:54+02:00Stephan ThoberAdded land cover bug in known bugs list in release v5.10_fixedhttps://git.ufz.de/mhm/mhm/issues/84#note_44166
Update RELEASES.mdhttps://git.ufz.de/mhm/mhm/issues/84#note_44166
Update RELEASES.mdhttps://git.ufz.de/mhm/mhm/-/merge_requests/22Stmac gnu92 config2020-04-14T23:14:54+02:00Stephan ThoberStmac gnu92 confighttps://git.ufz.de/mhm/mhm/-/merge_requests/18Update INSTALL.md2020-04-14T23:14:54+02:00Oldrich RakovecUpdate INSTALL.mdSome update info about required intel related modules for compilation on EVE.Some update info about required intel related modules for compilation on EVE.https://git.ufz.de/mhm/mhm/-/merge_requests/32Add support for the NAG Fortran compiler v6.22020-04-24T10:33:53+02:00Sebastian MüllerAdd support for the NAG Fortran compiler v6.2This merge request adds support for the NAG Fortran compiler v6.2 on EVE.
The following this were added/modfied:
- `moduleLoadScripts/eve.nag62` - loading all needed modules (use `source eve.nag62`)
- `CMakeLists.txt` - added `-fpp` fla...This merge request adds support for the NAG Fortran compiler v6.2 on EVE.
The following this were added/modfied:
- `moduleLoadScripts/eve.nag62` - loading all needed modules (use `source eve.nag62`)
- `CMakeLists.txt` - added `-fpp` flag for NAGs pre-processor and added compiler flags for NAG (RELEASE/DEBUG)
- `.gitlab-ci.yml` - added compilation with NAG; valgrind check for NAG; check-cases with NAG
- `check/run_mhm_checks.py` - added new option to skip certain cases (motivated by NAG, since RNG produces overflows and fails in DEBUG)5.11Stephan ThoberStephan Thoberhttps://git.ufz.de/mhm/mhm/-/merge_requests/35Compiler config2020-06-03T14:04:14+02:00Stephan ThoberCompiler configupdated compiler config for stmacupdated compiler config for stmachttps://git.ufz.de/mhm/mhm/-/merge_requests/36updating config for nagfor for stmac2020-06-04T09:53:26+02:00Stephan Thoberupdating config for nagfor for stmachttps://git.ufz.de/mhm/mhm/-/merge_requests/40WIP: Add mo_os to lib, include path_isfile to mo_read_spatial_data and mo_rea...2020-08-12T14:26:34+02:00Nicola Nadine DöringWIP: Add mo_os to lib, include path_isfile to mo_read_spatial_data and mo_read_timeseriespath_isfile is added to check whether the file that shall be open and read exists. You get a meaningful error message if the file does not exists or the given path does not describe a file and which path it actually is.path_isfile is added to check whether the file that shall be open and read exists. You get a meaningful error message if the file does not exists or the given path does not describe a file and which path it actually is.https://git.ufz.de/mhm/mhm/-/merge_requests/42[FIX] messages about written mhm fluxes AND eve NAG workflow2020-08-31T16:23:16+02:00Sebastian Müller[FIX] messages about written mhm fluxes AND eve NAG workflowThere was a mismatch between the selected fluxes in `mhm_output.nml` and the displayed messages about the fluxes to be written.
See #81
In addition the module versions in the eve NAG loadscript were fixed in order to get a successfu...There was a mismatch between the selected fluxes in `mhm_output.nml` and the displayed messages about the fluxes to be written.
See #81
In addition the module versions in the eve NAG loadscript were fixed in order to get a successful CI run. See #142 5.11Sebastian MüllerSebastian Müllerhttps://git.ufz.de/mhm/mhm/-/merge_requests/45Bugfix setup routing resolution2020-09-15T14:03:04+02:00Sebastian MüllerBugfix setup routing resolutionFixing wrongly matched IDs from L1 to L11 when routing resolution (L11) is finer than L1 resolution.Fixing wrongly matched IDs from L1 to L11 when routing resolution (L11) is finer than L1 resolution.5.11Sebastian MüllerSebastian Müllerhttps://git.ufz.de/mhm/mhm/-/merge_requests/46The length in net_startup is only cut in case there are less then 2 lengths2020-09-15T16:02:08+02:00Maren KaluzaThe length in net_startup is only cut in case there are less then 2 lengthsWhen the network is setup for small river networks the mRM setup failed. The reason for that was that the cell distances were cut after the 60th percentile and set to a fix value. But for small setups the array has too few values. Now, w...When the network is setup for small river networks the mRM setup failed. The reason for that was that the cell distances were cut after the 60th percentile and set to a fix value. But for small setups the array has too few values. Now, when calling the percentile subroutine another if clause tests if there are enough values.5.11Sebastian MüllerSebastian Müllerhttps://git.ufz.de/mhm/mhm/-/merge_requests/44Online Documentation with GitLab pages2020-09-17T15:34:14+02:00Sebastian MüllerOnline Documentation with GitLab pagesThis MR enables the online documentation of mHM based on the present Doxgen documentation:
- switch to select the documented branch (master/develop/v5.11/...) was added to the webpage to switch between versions of mHM.
- the documentat...This MR enables the online documentation of mHM based on the present Doxgen documentation:
- switch to select the documented branch (master/develop/v5.11/...) was added to the webpage to switch between versions of mHM.
- the documentation can later be accessed by: https://mhm.pages.ufz.de/mhm
- by default, the documentation will point to the `master` version (which is not present yet)
- test version can be accessed by: https://muellese.pages.ufz.de/mhm/doc_update (you can only switch to `develop` there, since `master` is not present)
- the `lib` folder was excluded in the documentation, since it will get its own one
- the documentation will be build automatically during CI runs in the `build` stage
- along with the online documentation, a pdf version will be build and provided as an artifact by the Gitlab-runner5.11Sebastian MüllerSebastian Müllerhttps://git.ufz.de/mhm/mhm/-/merge_requests/47corrected unit attributes for lat lon variables2020-09-24T13:39:53+02:00Stephan Thobercorrected unit attributes for lat lon variables5.11Stephan ThoberStephan Thoberhttps://git.ufz.de/mhm/mhm/-/merge_requests/37River temperature module2020-10-01T11:00:36+02:00Sebastian MüllerRiver temperature moduleThis MR introduces a first version of a **river temperature routing process** in an OOP fashioned way.
# Abstract
River temperature determines a wide variety of properties of water and is of great interest as model
output in the fie...This MR introduces a first version of a **river temperature routing process** in an OOP fashioned way.
# Abstract
River temperature determines a wide variety of properties of water and is of great interest as model
output in the field of hydrological modeling.
In this merge request, we propose a suitable implementation, to enable modeling river temperature in mHM [Samaniego et al., 2010, Kumar et al., 2013].
Based on a literature survey, we decided to use a physical based model build up on the work of [Wanders et al., 2019, Beek et al., 2012, Foreman et al., 2001], since its formulation best fits to the structure of mHM.
A reformulation of the governing equations was necessary, to reuse routines of the routing module mRM [Thober et al., 2019], so a numerical solution based on a Muskingum-Cunge discretization [Chow et al., 1988, Thober et al., 2019] could be formulated.
This implementation does not include ice layer at the moment and is not evaluated yet, so we mark it as **EXPERIMENTAL**.
## Governing equations
1. Surface water energy balance equation:
```math
\frac{\partial\left(h\cdot T_{w}\right)}{\partial t}+\frac{\partial\left(q\cdot T_{w}\right)}{\partial A} =\underbrace{\frac{Q^{*}-H-LE}{C_{v}}}_{=:T_{IO}}+\frac{\partial\left(q_{s}\cdot T_{s}\right)}{\partial A}
```
2. Net Radiation:
```math
Q^{*}=S_{I}\cdot\left(1-\alpha_{w}\right)+L_{I}-L_{O}
```
3. Boltzmann equation ([see](https://energyeducation.ca/encyclopedia/Stefan-Boltzmann_law)):
```math
L_{O}=\varepsilon\cdot\sigma\cdot\left(T_{w}\right)^{4}
```
4. Sensible heat flux formula:
```math
H=k_{H}\cdot\left(T_{w}-T_{a}\right)
```
5. Latent heat formula:
```math
LE=\lambda_{v}\cdot ET_{0}
```
6. Lateral flux sum:
```math
q_{s}=q_{dr}+q_{i}+q_{b}
```
7. Temperature runoff components:
- From [Wanders et al., 2019]: (in use)
```math
T_{s}=\frac{q_{dr}}{q_{s}}\cdot\max\left(T_{i},T_{a}-1.5\right)+\frac{q_{i}}{q_{s}}\cdot\max\left(T_{i},T_{a}\right)+\frac{q_{b}}{q_{s}}\cdot\max\left(T_{i}+5,\overline{T_{a}}\right)
```
- From [Beek et al., 2012]: (alternative)
```math
T_{s}=\frac{q_{dr}}{q_{s}}\cdot T_{a}+\frac{q_{i}}{q_{s}}\cdot T_{a}+\frac{q_{b}}{q_{s}}\cdot\overline{T_{a}}
```
## TODOs
- [x] add a test case
- [x] final clean up
- [x] documentation5.11Stephan ThoberStephan Thoberhttps://git.ufz.de/mhm/mhm/-/merge_requests/50Online Coverage Report2020-10-03T12:16:58+02:00Sebastian MüllerOnline Coverage ReportThis MR introduces automatic coverage calculation, which is added as a separate page to the auto-generated online documentation.
![coverage](/uploads/5be173f8f28889d2cf072a8775ba7537/coverage.png)
This uses `gcov` from `gcc7.3`. Co...This MR introduces automatic coverage calculation, which is added as a separate page to the auto-generated online documentation.
![coverage](/uploads/5be173f8f28889d2cf072a8775ba7537/coverage.png)
This uses `gcov` from `gcc7.3`. Coverage was added as a target in the CMakeLists.txt and in order to execute coverage calculation you have to do the following:
```bash
mkdir build && cd build
cmake -DCMAKE_WITH_COVERAGE:STRING=ON ..
make mhm_coverage_CI
```
As an addition, the `mhm` executable can now be called with a passed directory path, where `mhm` should be executed in.
This feature is likely to change in the future.5.11Sebastian MüllerSebastian Müllerhttps://git.ufz.de/mhm/mhm/-/merge_requests/48[EVE] add intel 2020 load scripts and CI workflow2020-10-05T13:48:26+02:00Sebastian Müller[EVE] add intel 2020 load scripts and CI workflowWith this MR, the new EasyBuild workflow for the Intel-compiler chain is added:
- Intel C Compiler v2020.1
- Intel Fortran Compiler v2020.1
- OpenMPI v4.0.3
- Intel MKL v2020.1
Both, normal and MPI workflow are added.With this MR, the new EasyBuild workflow for the Intel-compiler chain is added:
- Intel C Compiler v2020.1
- Intel Fortran Compiler v2020.1
- OpenMPI v4.0.3
- Intel MKL v2020.1
Both, normal and MPI workflow are added.5.11Sebastian MüllerSebastian Müller