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 sampler proposals.<br>
19 : !>
20 : !> \note
21 : !> The contents of this module are not meant to be used by the end users of the ParaMonte library.<br>
22 : !>
23 : !> \devnote
24 : !> The madness seen here with module-level generics is due to the lack of support for PDTs in \gfortran{13.1} and older versions.<br>
25 : !>
26 : !> \finmain
27 : !>
28 : !> \author
29 : !> \AmirShahmoradi, Monday 00:01 AM, January 1, 2018, Institute for Computational Engineering and Sciences, University of Texas Austin
30 :
31 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
32 :
33 : #define ParaDISE_ENABLED 1
34 :
35 : module pm_sampling_proposal_dise_RK5
36 : #if RK5_ENABLED
37 : use pm_kind, only: RKC => RK5
38 : #define pm_sampling_scio pm_sampling_scio_RK5
39 : #define pm_sampling_dise pm_sampling_dise_RK5
40 : #include "pm_sampling_proposal.imp.F90"
41 : #undef pm_sampling_dise
42 : #undef pm_sampling_scio
43 : #else
44 : use pm_kind, only: RKC => RK
45 : #endif
46 : end module
47 :
48 : module pm_sampling_proposal_dise_RK4
49 : #if RK4_ENABLED
50 : use pm_kind, only: RKC => RK4
51 : #define pm_sampling_scio pm_sampling_scio_RK4
52 : #define pm_sampling_dise pm_sampling_dise_RK4
53 : #include "pm_sampling_proposal.imp.F90"
54 : #undef pm_sampling_dise
55 : #undef pm_sampling_scio
56 : #else
57 : use pm_kind, only: RKC => RK
58 : #endif
59 0 : end module
60 :
61 : module pm_sampling_proposal_dise_RK3
62 : #if RK3_ENABLED
63 : use pm_kind, only: RKC => RK3
64 : #define pm_sampling_scio pm_sampling_scio_RK3
65 : #define pm_sampling_dise pm_sampling_dise_RK3
66 : #include "pm_sampling_proposal.imp.F90"
67 : #undef pm_sampling_dise
68 : #undef pm_sampling_scio
69 : #else
70 : use pm_kind, only: RKC => RK
71 : #endif
72 0 : end module
73 :
74 : module pm_sampling_proposal_dise_RK2
75 : #if RK2_ENABLED
76 : use pm_kind, only: RKC => RK2
77 : #define pm_sampling_scio pm_sampling_scio_RK2
78 : #define pm_sampling_dise pm_sampling_dise_RK2
79 : #include "pm_sampling_proposal.imp.F90"
80 : #undef pm_sampling_dise
81 : #undef pm_sampling_scio
82 : #else
83 : use pm_kind, only: RKC => RK
84 : #endif
85 0 : end module
86 :
87 : module pm_sampling_proposal_dise_RK1
88 : #if RK1_ENABLED
89 : use pm_kind, only: RKC => RK1
90 : #define pm_sampling_scio pm_sampling_scio_RK1
91 : #define pm_sampling_dise pm_sampling_dise_RK1
92 : #include "pm_sampling_proposal.imp.F90"
93 : #undef pm_sampling_dise
94 : #undef pm_sampling_scio
95 : #else
96 : use pm_kind, only: RKC => RK
97 : #endif
98 0 : end module
99 :
100 : #undef ParaDISE_ENABLED
101 :
102 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
103 :
104 : #define ParaDRAM_ENABLED 1
105 :
106 : module pm_sampling_proposal_dram_RK5
107 : #if RK5_ENABLED
108 : use pm_kind, only: RKC => RK5
109 : #define pm_sampling_scio pm_sampling_scio_RK5
110 : #define pm_sampling_dram pm_sampling_dram_RK5
111 : #include "pm_sampling_proposal.imp.F90"
112 : #undef pm_sampling_dram
113 : #undef pm_sampling_scio
114 : #else
115 : use pm_kind, only: RKC => RK
116 : #endif
117 : end module
118 :
119 : module pm_sampling_proposal_dram_RK4
120 : #if RK4_ENABLED
121 : use pm_kind, only: RKC => RK4
122 : #define pm_sampling_scio pm_sampling_scio_RK4
123 : #define pm_sampling_dram pm_sampling_dram_RK4
124 : #include "pm_sampling_proposal.imp.F90"
125 : #undef pm_sampling_dram
126 : #undef pm_sampling_scio
127 : #else
128 : use pm_kind, only: RKC => RK
129 : #endif
130 0 : end module
131 :
132 : module pm_sampling_proposal_dram_RK3
133 : #if RK3_ENABLED
134 : use pm_kind, only: RKC => RK3
135 : #define pm_sampling_scio pm_sampling_scio_RK3
136 : #define pm_sampling_dram pm_sampling_dram_RK3
137 : #include "pm_sampling_proposal.imp.F90"
138 : #undef pm_sampling_dram
139 : #undef pm_sampling_scio
140 : #else
141 : use pm_kind, only: RKC => RK
142 : #endif
143 0 : end module
144 :
145 : module pm_sampling_proposal_dram_RK2
146 : #if RK2_ENABLED
147 : use pm_kind, only: RKC => RK2
148 : #define pm_sampling_scio pm_sampling_scio_RK2
149 : #define pm_sampling_dram pm_sampling_dram_RK2
150 : #include "pm_sampling_proposal.imp.F90"
151 : #undef pm_sampling_dram
152 : #undef pm_sampling_scio
153 : #else
154 : use pm_kind, only: RKC => RK
155 : #endif
156 0 : end module
157 :
158 : module pm_sampling_proposal_dram_RK1
159 : #if RK1_ENABLED
160 : use pm_kind, only: RKC => RK1
161 : #define pm_sampling_scio pm_sampling_scio_RK1
162 : #define pm_sampling_dram pm_sampling_dram_RK1
163 : #include "pm_sampling_proposal.imp.F90"
164 : #undef pm_sampling_dram
165 : #undef pm_sampling_scio
166 : #else
167 : use pm_kind, only: RKC => RK
168 : #endif
169 0 : end module
170 :
171 : #undef ParaDRAM_ENABLED
172 :
173 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
174 :
175 : #define ParaNest_ENABLED 1
176 : !
177 : !module pm_sampling_proposal_nest_RK5
178 : !#if RK5_ENABLED
179 : ! use pm_kind, only: RKC => RK5
180 : !#define pm_sampling_scio pm_sampling_scio_RK5
181 : !#define pm_sampling_nest pm_sampling_nest_RK5
182 : !#include "pm_sampling_proposal.imp.F90"
183 : !#undef pm_sampling_nest
184 : !#undef pm_sampling_scio
185 : !#else
186 : ! use pm_kind, only: RKC => RK
187 : !#endif
188 : !end module
189 : !
190 : !module pm_sampling_proposal_nest_RK4
191 : !#if RK4_ENABLED
192 : ! use pm_kind, only: RKC => RK4
193 : !#define pm_sampling_scio pm_sampling_scio_RK4
194 : !#define pm_sampling_nest pm_sampling_nest_RK4
195 : !#include "pm_sampling_proposal.imp.F90"
196 : !#undef pm_sampling_nest
197 : !#undef pm_sampling_scio
198 : !#else
199 : ! use pm_kind, only: RKC => RK
200 : !#endif
201 : !end module
202 : !
203 : !module pm_sampling_proposal_nest_RK3
204 : !#if RK3_ENABLED
205 : ! use pm_kind, only: RKC => RK3
206 : !#define pm_sampling_scio pm_sampling_scio_RK3
207 : !#define pm_sampling_nest pm_sampling_nest_RK3
208 : !#include "pm_sampling_proposal.imp.F90"
209 : !#undef pm_sampling_nest
210 : !#undef pm_sampling_scio
211 : !#else
212 : ! use pm_kind, only: RKC => RK
213 : !#endif
214 : !end module
215 : !
216 : !module pm_sampling_proposal_nest_RK2
217 : !#if RK2_ENABLED
218 : ! use pm_kind, only: RKC => RK2
219 : !#define pm_sampling_scio pm_sampling_scio_RK2
220 : !#define pm_sampling_nest pm_sampling_nest_RK2
221 : !#include "pm_sampling_proposal.imp.F90"
222 : !#undef pm_sampling_nest
223 : !#undef pm_sampling_scio
224 : !#else
225 : ! use pm_kind, only: RKC => RK
226 : !#endif
227 : !end module
228 : !
229 : !module pm_sampling_proposal_nest_RK1
230 : !#if RK1_ENABLED
231 : ! use pm_kind, only: RKC => RK1
232 : !#define pm_sampling_scio pm_sampling_scio_RK1
233 : !#define pm_sampling_nest pm_sampling_nest_RK1
234 : !#include "pm_sampling_proposal.imp.F90"
235 : !#undef pm_sampling_nest
236 : !#undef pm_sampling_scio
237 : !#else
238 : ! use pm_kind, only: RKC => RK
239 : !#endif
240 : !end module
241 :
242 : #undef ParaNest_ENABLED
243 :
244 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|