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__) \
23public: \
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 } \
38private:
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"
50namespace ldndc{ namespace siteparameters
51{
52#define LTYPEWRAP_SITE_PARAM_MAGIC 3
53typedef 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
Spatially explicit groundwater model.
Definition airchemistryput.h:15