LandscapeDNDC
1.37.0
Loading...
Searching...
No Matches
siteparameterstypes.h
1
9
10
#ifndef LDNDC_INPUT_SITEPARAMETERSTYPES_H_
11
#define LDNDC_INPUT_SITEPARAMETERSTYPES_H_
12
13
#include "crabmeat-common.h"
14
#include "containers/cbm_typewrap.h"
15
16
#ifdef _DEBUG
17
# include "utils/cbm_utils.h"
18
#endif
19
#ifndef __SITEPARAMETER_VALUE__
20
# define __SITEPARAMETER_VALUE__(__name__,__type__) site_params_[__SITEPARAMETER_index_ ## __name__].get_value<__type__>()
21
#endif
22
#define SITEPARAMETER_(__name__,__type__) \
23
public: \
24
__type__ __name__() \
25
const \
26
{ \
27
crabmeat_assert( cbm::is_valid( __SITEPARAMETER_VALUE__(__name__,__type__))); \
28
return __SITEPARAMETER_VALUE__(__name__,__type__); \
29
} \
30
static __type__ __name__##_##MIN() \
31
{ \
32
return SITEPARAMETER_##__name__##_MINVALUE; \
33
} \
34
static __type__ __name__##_##MAX() \
35
{ \
36
return SITEPARAMETER_##__name__##_MAXVALUE; \
37
} \
38
private:
39
#define SITEPARAMETER_BOOL(__name__) SITEPARAMETER_(__name__,siteparameter_t::bool_type)
40
#define SITEPARAMETER_FLT(__name__) SITEPARAMETER_(__name__,siteparameter_t::float_type)
41
#define SITEPARAMETER_INT(__name__) SITEPARAMETER_(__name__,siteparameter_t::int_type)
42
#define SITEPARAMETER_UINT(__name__) SITEPARAMETER_(__name__,siteparameter_t::uint_type)
43
44
#define SITEPARAMETER_INVALID_BOOL false
45
#define SITEPARAMETER_INVALID_FLT ldndc::invalid_t< siteparameter_t::float_type >::value
46
#define SITEPARAMETER_INVALID_INT ldndc::invalid_t< siteparameter_t::int_type >::value
47
#define SITEPARAMETER_INVALID_UINT ldndc::invalid_t< siteparameter_t::uint_type >::value
48
49
#include "io/outputtypes.h"
50
namespace
ldndc
{
namespace
siteparameters
51
{
52
#define LTYPEWRAP_SITE_PARAM_MAGIC 3
53
typedef
ltypewrap_t< ldndc_flt64_t, ldndc_int32_t, ldndc_uint32_t, LTYPEWRAP_SITE_PARAM_MAGIC > siteparameter_t;
54
#define SITEPARAMETERS_bool_type LDNDC_BOOL
55
#define SITEPARAMETERS_float_type LDNDC_FLOAT64
56
#define SITEPARAMETERS_int_type LDNDC_INT32
57
#define SITEPARAMETERS_uint_type LDNDC_UINT32
58
59
#include "siteparameters.h.inc"
60
}}
61
62
#endif
/* !LDNDC_INPUT_SITEPARAMETERSTYPES_H_ */
63
ldndc
Spatially explicit groundwater model.
Definition
airchemistryput.h:15
crabmeat-src
scientific
siteparameters
siteparameterstypes.h
Generated by
1.13.2