Line data Source code
1 : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2 : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3 : !!!! !!!!
4 : !!!! ParaMonte: Parallel Monte Carlo and Machine Learning Library. !!!!
5 : !!!! !!!!
6 : !!!! Copyright (C) 2012-present, The Computational Data Science Lab !!!!
7 : !!!! !!!!
8 : !!!! This file is part of the ParaMonte library. !!!!
9 : !!!! !!!!
10 : !!!! LICENSE !!!!
11 : !!!! !!!!
12 : !!!! https://github.com/cdslaborg/paramonte/blob/main/LICENSE.md !!!!
13 : !!!! !!!!
14 : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
15 : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
16 :
17 : !> \brief
18 : !> This module contains the **internal** classes and procedures for setting up the attributes of the ParaMonte library samplers and optimizers.<br>
19 : !>
20 : !> \details
21 : !> For more information, see the description of the attributes within the bodies of their constructors in this module.<br>
22 : !> Alternatively, a description of these simulation specifications is always printed out the in `_report.txt` files of each ParaMonte exploration simulation.
23 : !>
24 : !> \note
25 : !> The contents of this module are not meant to be used by the end users of the ParaMonte library.<br>
26 : !>
27 : !> \devnote
28 : !> CMake is totally incapable of understanding the dependency between the modules declared in this file and the included files.<br>
29 : !> As such, any change to the interfaces in the included implementation file requires
30 : !> manual change in this file to trigger interface module file generation by CMake.<br>
31 : !>
32 : !> \author
33 : !> \AmirShahmoradi, Monday 00:01 AM, January 1, 2018, Institute for Computational Engineering and Sciences, University of Texas Austin
34 :
35 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
36 :
37 : module pm_sampling_base_RK5
38 : #if RK5_ENABLED
39 : use pm_kind, only: RKC => RK5
40 : #define pm_sampling_scio pm_sampling_scio_RK5
41 : #include "pm_sampling_base.imp.F90"
42 : #undef pm_sampling_scio
43 : #else
44 : use pm_kind, only: RKC => RK
45 : #endif
46 : end module
47 :
48 : module pm_sampling_base_RK4
49 : #if RK4_ENABLED
50 0 : use pm_kind, only: RKC => RK4
51 : #define pm_sampling_scio pm_sampling_scio_RK4
52 : #include "pm_sampling_base.imp.F90"
53 : #undef pm_sampling_scio
54 : #else
55 : use pm_kind, only: RKC => RK
56 : #endif
57 0 : end module
58 :
59 : module pm_sampling_base_RK3
60 : #if RK3_ENABLED
61 0 : use pm_kind, only: RKC => RK3
62 : #define pm_sampling_scio pm_sampling_scio_RK3
63 : #include "pm_sampling_base.imp.F90"
64 : #undef pm_sampling_scio
65 : #else
66 : use pm_kind, only: RKC => RK
67 : #endif
68 0 : end module
69 :
70 : module pm_sampling_base_RK2
71 : #if RK2_ENABLED
72 216 : use pm_kind, only: RKC => RK2
73 : #define pm_sampling_scio pm_sampling_scio_RK2
74 : #include "pm_sampling_base.imp.F90"
75 : #undef pm_sampling_scio
76 : #else
77 : use pm_kind, only: RKC => RK
78 : #endif
79 0 : end module
80 :
81 : module pm_sampling_base_RK1
82 : #if RK1_ENABLED
83 18 : use pm_kind, only: RKC => RK1
84 : #define pm_sampling_scio pm_sampling_scio_RK1
85 : #include "pm_sampling_base.imp.F90"
86 : #undef pm_sampling_scio
87 : #else
88 : use pm_kind, only: RKC => RK
89 : #endif
90 0 : end module
91 :
92 : !#if RK5_ENABLED
93 : !module pm_sampling_base_RK5
94 : ! use pm_kind, only: RKC => RK5
95 : !#define pm_sampling_scio pm_sampling_scio_RK5
96 : !#include "pm_sampling_base.imp.F90"
97 : !#undef pm_sampling_scio
98 : !end module
99 : !#else
100 : !module pm_sampling_base_RK5
101 : ! use pm_kind, only: RKC => RK
102 : !end module
103 : !#endif
104 : !
105 : !#if RK4_ENABLED
106 : !module pm_sampling_base_RK4
107 : ! use pm_kind, only: RKC => RK4
108 : !#define pm_sampling_scio pm_sampling_scio_RK4
109 : !#include "pm_sampling_base.imp.F90"
110 : !#undef pm_sampling_scio
111 : !end module
112 : !#else
113 : !module pm_sampling_base_RK4
114 : ! use pm_kind, only: RKC => RK
115 : !end module
116 : !#endif
117 : !
118 : !#if RK3_ENABLED
119 : !module pm_sampling_base_RK3
120 : ! use pm_kind, only: RKC => RK3
121 : !#define pm_sampling_scio pm_sampling_scio_RK3
122 : !#include "pm_sampling_base.imp.F90"
123 : !#undef pm_sampling_scio
124 : !end module
125 : !#else
126 : !module pm_sampling_base_RK3
127 : ! use pm_kind, only: RKC => RK
128 : !end module
129 : !#endif
130 : !
131 : !#if RK2_ENABLED
132 : !module pm_sampling_base_RK2
133 : ! use pm_kind, only: RKC => RK2
134 : !#define pm_sampling_scio pm_sampling_scio_RK2
135 : !#include "pm_sampling_base.imp.F90"
136 : !#undef pm_sampling_scio
137 : !end module
138 : !#else
139 : !module pm_sampling_base_RK2
140 : ! use pm_kind, only: RKC => RK
141 : !end module
142 : !#endif
143 : !
144 : !#if RK1_ENABLED
145 : !module pm_sampling_base_RK1
146 : ! use pm_kind, only: RKC => RK1
147 : !#define pm_sampling_scio pm_sampling_scio_RK1
148 : !#include "pm_sampling_base.imp.F90"
149 : !#undef pm_sampling_scio
150 : !end module
151 : !#else
152 : !module pm_sampling_base_RK1
153 : ! use pm_kind, only: RKC => RK
154 : !end module
155 : !#endif
|