5.13.2-dev0
mHM
The mesoscale Hydrological Model
Loading...
Searching...
No Matches
mo_common_mHM_mRM_variables.f90
Go to the documentation of this file.
1!> \file mo_common_mHM_mRM_variables.f90
2!> \brief \copybrief mo_common_mhm_mrm_variables
3!> \details \copydetails mo_common_mhm_mrm_variables
4
5!> \brief Provides structures needed by mHM, mRM and/or mpr.
6!> \details Provides the global structure period that is used by both mHM and mRM.
7!> \changelog
8!! - Stephan Thober Nov 2016
9!! - moved processdescription from mo_global_variables to here
10!! - Robert Schweppe Dec 2017
11!! - merged more duplicated variables from mhm and mrm global variables
12!! - Robert Schweppe Jun 2018
13!! - refactoring and reformatting
14!> \authors Stephan Thober
15!> \date Sep 2015
16!> \copyright Copyright 2005-\today, the mHM Developers, Luis Samaniego, Sabine Attinger: All rights reserved.
17!! mHM is released under the LGPLv3+ license \license_note
18!> \ingroup f_common
20
21 use mo_kind, only : i4, i8, dp
22 use mo_common_types, only: period
23 implicit none
24
25 ! -------------------------------------------------------------------
26 ! INPUT variables for configuration of main part
27 ! -------------------------------------------------------------------
28 integer(i4) :: mrm_coupling_mode !-1 = no mrm (mHM only)
29 ! ! 0 = stand alone (mRM only)
30 ! ! 1 = general coupling to a model (not used)
31 ! ! 2 = specific coupling to mHM (mHM and mRM)
32
33 integer(i4), public :: timestep ! [h] simulation time step (= TS) in [h]
34 real(dp), public :: c2tstu ! Unit transformation = timeStep/24
35 real(dp), dimension(:), allocatable, public :: resolutionrouting ! [m or degree] resolution of routing - Level 11
36 logical, public :: read_restart ! flag
37 logical, public :: mrm_read_river_network ! flag
38 logical, public :: read_old_style_restart_bounds ! flag
39 logical, public :: restart_reset_fluxes_states !< flag to reset fluxes and states read from restart to default values
40
41
42 type(period), dimension(:), allocatable, public :: warmper ! time period for warming
43 type(period), dimension(:), allocatable, public :: evalper ! time period for model evaluation
44 type(period), dimension(:), allocatable, public :: simper ! warmPer + evalPer
45 integer(i4), dimension(:), allocatable, public :: warmingdays ! number of days for warm up period
46 integer(i4), dimension(:, :), allocatable, public :: lcyearid ! Mapping of landcover scenes (1, 2,..) for each domain
47
48 ! ------------------------------------------------------------------
49 ! CONSTANT
50 ! ------------------------------------------------------------------
51 integer(i4), public :: ntstepday ! Number of time intervals per day
52
53 ! ------------------------------------------------------------------
54 ! DIRECTORIES
55 ! ------------------------------------------------------------------
56 ! has the dimension of nDomains
57 character(256), dimension(:), allocatable, public :: mhmfilerestartin! Directory where input of restart is read from
58 character(256), dimension(:), allocatable, public :: mrmfilerestartin! Directory where input of restart is read from
59
60 ! -------------------------------------------------------------------
61 ! OPTIMIZATION
62 ! -------------------------------------------------------------------
63 integer(i4), public :: opti_method ! Optimization algorithm:
64 ! ! 1 - DDS
65 ! ! 2 - Simulated Annealing
66 ! ! 3 - SCE
67 integer(i4), public :: opti_function ! Objective function:
68 ! ! 1 - 1.0-NSE
69 ! ! 2 - 1.0-lnNSE
70 ! ! 3 - 1.0-0.5*(NSE+lnNSE)
71 logical, public :: optimize ! Optimization (.true. ) or
72 ! ! Evaluation run (.false.)
73 logical, public :: optimize_restart ! Optimization will be restarted from
74 ! ! mo_<opti_method>.restart file (.true.)
75 ! settings for optimization algorithms:
76 integer(i8), public :: seed ! seed used for optimization
77 ! ! default: -9 --> system time
78 integer(i4), public :: niterations ! number of iterations for optimization
79 real(dp), public :: dds_r ! DDS: perturbation rate
80 ! ! default: 0.2
81 real(dp), public :: sa_temp ! SA: initial temperature
82 ! ! default: -9.0 --> estimated
83 integer(i4), public :: sce_ngs ! SCE: # of complexes
84 ! ! default: 2
85 integer(i4), public :: sce_npg ! SCE: # of points per complex
86 ! ! default: -9 --> 2n+1
87 integer(i4), public :: sce_nps ! SCE: # of points per subcomplex
88 ! ! default: -9 --> n+1
89 logical, public :: mcmc_opti ! MCMC: Optimization (.true. ) or
90 ! ! Only parameter uncertainty (.false.)
91 integer(i4), public, parameter :: nerror_model = 2 ! # possible parameters in error model
92 ! ! e.g. for opti_function=8: 2
93 real(dp), public, dimension(nerror_model) :: mcmc_error_params ! Parameters of error model if mcmc_opti=.false.
94 ! ! e.g. for opti_function=8: 0.01, 0.3
95
Provides structures needed by mHM, mRM and/or mpr.
character(256), dimension(:), allocatable, public mrmfilerestartin
logical, public restart_reset_fluxes_states
flag to reset fluxes and states read from restart to default values
type(period), dimension(:), allocatable, public warmper
character(256), dimension(:), allocatable, public mhmfilerestartin
integer(i4), parameter, public nerror_model
real(dp), dimension(:), allocatable, public resolutionrouting
real(dp), dimension(nerror_model), public mcmc_error_params
integer(i4), dimension(:), allocatable, public warmingdays
integer(i4), dimension(:, :), allocatable, public lcyearid
type(period), dimension(:), allocatable, public simper
type(period), dimension(:), allocatable, public evalper
Provides common types needed by mHM, mRM and/or mpr.