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 file contains procedure implementations of [pm_distKolm](@ref pm_distKolm).
19 : !>
20 : !> \finmain
21 : !>
22 : !> \author
23 : !> \AmirShahmoradi, Oct 16, 2009, 11:14 AM, Michigan
24 :
25 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 :
27 : submodule (pm_distKolm) routines ! LCOV_EXCL_LINE
28 :
29 : #if CHECK_ENABLED
30 : use pm_err, only: getFine
31 : use pm_val2str, only: getStr
32 : use pm_err, only: setAsserted
33 : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) \
34 : call setAsserted(ASSERTION,getFine(__FILE__,LINE)//MODULE_NAME//MSG);
35 : #else
36 : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) continue;
37 : #endif
38 :
39 : implicit none
40 :
41 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
42 :
43 : contains
44 :
45 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
46 :
47 : #define getKolmPDF_ENABLED 1
48 :
49 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
50 :
51 : #define RK_ENABLED 1
52 :
53 : #if RK5_ENABLED
54 : module procedure getKolmPDF_RK5
55 : use pm_kind, only: TKC => RK5
56 : #include "pm_distKolm@routines.inc.F90"
57 : end procedure
58 : #endif
59 :
60 : #if RK4_ENABLED
61 1005 : module procedure getKolmPDF_RK4
62 : use pm_kind, only: TKC => RK4
63 : #include "pm_distKolm@routines.inc.F90"
64 1005 : end procedure
65 : #endif
66 :
67 : #if RK3_ENABLED
68 0 : module procedure getKolmPDF_RK3
69 : use pm_kind, only: TKC => RK3
70 : #include "pm_distKolm@routines.inc.F90"
71 0 : end procedure
72 : #endif
73 :
74 : #if RK2_ENABLED
75 0 : module procedure getKolmPDF_RK2
76 : use pm_kind, only: TKC => RK2
77 : #include "pm_distKolm@routines.inc.F90"
78 0 : end procedure
79 : #endif
80 :
81 : #if RK1_ENABLED
82 5 : module procedure getKolmPDF_RK1
83 : use pm_kind, only: TKC => RK1
84 : #include "pm_distKolm@routines.inc.F90"
85 5 : end procedure
86 : #endif
87 :
88 : #undef RK_ENABLED
89 :
90 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
91 :
92 : #undef getKolmPDF_ENABLED
93 :
94 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
95 :
96 : #define setKolmPDF_ENABLED 1
97 :
98 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
99 :
100 : #define RK_ENABLED 1
101 :
102 : #if RK5_ENABLED
103 : module procedure setKolmPDF_RK5
104 : use pm_kind, only: TKC => RK5
105 : #include "pm_distKolm@routines.inc.F90"
106 : end procedure
107 : #endif
108 :
109 : #if RK4_ENABLED
110 1005 : module procedure setKolmPDF_RK4
111 : use pm_kind, only: TKC => RK4
112 : #include "pm_distKolm@routines.inc.F90"
113 1005 : end procedure
114 : #endif
115 :
116 : #if RK3_ENABLED
117 0 : module procedure setKolmPDF_RK3
118 : use pm_kind, only: TKC => RK3
119 : #include "pm_distKolm@routines.inc.F90"
120 0 : end procedure
121 : #endif
122 :
123 : #if RK2_ENABLED
124 0 : module procedure setKolmPDF_RK2
125 : use pm_kind, only: TKC => RK2
126 : #include "pm_distKolm@routines.inc.F90"
127 0 : end procedure
128 : #endif
129 :
130 : #if RK1_ENABLED
131 5 : module procedure setKolmPDF_RK1
132 : use pm_kind, only: TKC => RK1
133 : #include "pm_distKolm@routines.inc.F90"
134 5 : end procedure
135 : #endif
136 :
137 : #undef RK_ENABLED
138 :
139 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
140 :
141 : #undef setKolmPDF_ENABLED
142 :
143 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
144 :
145 : #define getKolmCDF_ENABLED 1
146 :
147 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
148 :
149 : #define RK_ENABLED 1
150 :
151 : #if RK5_ENABLED
152 : module procedure getKolmCDF_RK5
153 : use pm_kind, only: TKC => RK5
154 : #include "pm_distKolm@routines.inc.F90"
155 : end procedure
156 : #endif
157 :
158 : #if RK4_ENABLED
159 1013 : module procedure getKolmCDF_RK4
160 : use pm_kind, only: TKC => RK4
161 : #include "pm_distKolm@routines.inc.F90"
162 1013 : end procedure
163 : #endif
164 :
165 : #if RK3_ENABLED
166 0 : module procedure getKolmCDF_RK3
167 : use pm_kind, only: TKC => RK3
168 : #include "pm_distKolm@routines.inc.F90"
169 0 : end procedure
170 : #endif
171 :
172 : #if RK2_ENABLED
173 0 : module procedure getKolmCDF_RK2
174 : use pm_kind, only: TKC => RK2
175 : #include "pm_distKolm@routines.inc.F90"
176 0 : end procedure
177 : #endif
178 :
179 : #if RK1_ENABLED
180 13 : module procedure getKolmCDF_RK1
181 : use pm_kind, only: TKC => RK1
182 : #include "pm_distKolm@routines.inc.F90"
183 13 : end procedure
184 : #endif
185 :
186 : #undef RK_ENABLED
187 :
188 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
189 :
190 : #undef getKolmCDF_ENABLED
191 :
192 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
193 :
194 : #define setKolmCDF_ENABLED 1
195 :
196 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
197 :
198 : #define RK_ENABLED 1
199 :
200 : #if RK5_ENABLED
201 : module procedure setKolmCDF_RK5
202 : use pm_kind, only: TKC => RK5
203 : #include "pm_distKolm@routines.inc.F90"
204 : end procedure
205 : #endif
206 :
207 : #if RK4_ENABLED
208 1005 : module procedure setKolmCDF_RK4
209 : use pm_kind, only: TKC => RK4
210 : #include "pm_distKolm@routines.inc.F90"
211 1005 : end procedure
212 : #endif
213 :
214 : #if RK3_ENABLED
215 0 : module procedure setKolmCDF_RK3
216 : use pm_kind, only: TKC => RK3
217 : #include "pm_distKolm@routines.inc.F90"
218 0 : end procedure
219 : #endif
220 :
221 : #if RK2_ENABLED
222 0 : module procedure setKolmCDF_RK2
223 : use pm_kind, only: TKC => RK2
224 : #include "pm_distKolm@routines.inc.F90"
225 0 : end procedure
226 : #endif
227 :
228 : #if RK1_ENABLED
229 245 : module procedure setKolmCDF_RK1
230 : use pm_kind, only: TKC => RK1
231 : #include "pm_distKolm@routines.inc.F90"
232 245 : end procedure
233 : #endif
234 :
235 : #undef RK_ENABLED
236 :
237 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
238 :
239 : #undef setKolmCDF_ENABLED
240 :
241 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
242 :
243 : #define getKolmQuan_ENABLED 1
244 :
245 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
246 :
247 : #define RK_ENABLED 1
248 :
249 : #if RK5_ENABLED
250 : module procedure getKolmQuan_RK5
251 : use pm_kind, only: TKC => RK5
252 : #include "pm_distKolm@routines.inc.F90"
253 : end procedure
254 : #endif
255 :
256 : #if RK4_ENABLED
257 1504 : module procedure getKolmQuan_RK4
258 : use pm_kind, only: TKC => RK4
259 : #include "pm_distKolm@routines.inc.F90"
260 : end procedure
261 : #endif
262 :
263 : #if RK3_ENABLED
264 0 : module procedure getKolmQuan_RK3
265 : use pm_kind, only: TKC => RK3
266 : #include "pm_distKolm@routines.inc.F90"
267 : end procedure
268 : #endif
269 :
270 : #if RK2_ENABLED
271 0 : module procedure getKolmQuan_RK2
272 : use pm_kind, only: TKC => RK2
273 : #include "pm_distKolm@routines.inc.F90"
274 : end procedure
275 : #endif
276 :
277 : #if RK1_ENABLED
278 4 : module procedure getKolmQuan_RK1
279 : use pm_kind, only: TKC => RK1
280 : #include "pm_distKolm@routines.inc.F90"
281 : end procedure
282 : #endif
283 :
284 : #undef RK_ENABLED
285 :
286 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
287 :
288 : #undef getKolmQuan_ENABLED
289 :
290 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
291 :
292 : #define setKolmQuan_ENABLED 1
293 :
294 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
295 :
296 : #define RK_ENABLED 1
297 :
298 : #if RK5_ENABLED
299 : module procedure setKolmQuan_RK5
300 : use pm_kind, only: TKC => RK5
301 : #include "pm_distKolm@routines.inc.F90"
302 : end procedure
303 : #endif
304 :
305 : #if RK4_ENABLED
306 4504 : module procedure setKolmQuan_RK4
307 : use pm_kind, only: TKC => RK4
308 : #include "pm_distKolm@routines.inc.F90"
309 : end procedure
310 : #endif
311 :
312 : #if RK3_ENABLED
313 0 : module procedure setKolmQuan_RK3
314 : use pm_kind, only: TKC => RK3
315 : #include "pm_distKolm@routines.inc.F90"
316 : end procedure
317 : #endif
318 :
319 : #if RK2_ENABLED
320 0 : module procedure setKolmQuan_RK2
321 : use pm_kind, only: TKC => RK2
322 : #include "pm_distKolm@routines.inc.F90"
323 : end procedure
324 : #endif
325 :
326 : #if RK1_ENABLED
327 12 : module procedure setKolmQuan_RK1
328 : use pm_kind, only: TKC => RK1
329 : #include "pm_distKolm@routines.inc.F90"
330 : end procedure
331 : #endif
332 :
333 : #undef RK_ENABLED
334 :
335 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
336 :
337 : #undef setKolmQuan_ENABLED
338 :
339 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
340 :
341 : #define getKolmRand_ENABLED 1
342 :
343 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
344 :
345 : #define RK_ENABLED 1
346 :
347 : #if RK5_ENABLED
348 : module procedure getKolmRand_RK5
349 : use pm_kind, only: TKC => RK5
350 : #include "pm_distKolm@routines.inc.F90"
351 : end procedure
352 : #endif
353 :
354 : #if RK4_ENABLED
355 1500 : module procedure getKolmRand_RK4
356 : use pm_kind, only: TKC => RK4
357 : #include "pm_distKolm@routines.inc.F90"
358 1500 : end procedure
359 : #endif
360 :
361 : #if RK3_ENABLED
362 0 : module procedure getKolmRand_RK3
363 : use pm_kind, only: TKC => RK3
364 : #include "pm_distKolm@routines.inc.F90"
365 0 : end procedure
366 : #endif
367 :
368 : #if RK2_ENABLED
369 0 : module procedure getKolmRand_RK2
370 : use pm_kind, only: TKC => RK2
371 : #include "pm_distKolm@routines.inc.F90"
372 0 : end procedure
373 : #endif
374 :
375 : #if RK1_ENABLED
376 4 : module procedure getKolmRand_RK1
377 : use pm_kind, only: TKC => RK1
378 : #include "pm_distKolm@routines.inc.F90"
379 4 : end procedure
380 : #endif
381 :
382 : #undef RK_ENABLED
383 :
384 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
385 :
386 : #undef getKolmRand_ENABLED
387 :
388 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
389 :
390 : #define setKolmRand_ENABLED 1
391 :
392 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
393 :
394 : #define RK_ENABLED 1
395 :
396 : #if RK5_ENABLED
397 : module procedure setKolmRand_RK5
398 : use pm_kind, only: TKC => RK5
399 : #include "pm_distKolm@routines.inc.F90"
400 : end procedure
401 : #endif
402 :
403 : #if RK4_ENABLED
404 1500 : module procedure setKolmRand_RK4
405 : use pm_kind, only: TKC => RK4
406 : #include "pm_distKolm@routines.inc.F90"
407 1500 : end procedure
408 : #endif
409 :
410 : #if RK3_ENABLED
411 0 : module procedure setKolmRand_RK3
412 : use pm_kind, only: TKC => RK3
413 : #include "pm_distKolm@routines.inc.F90"
414 0 : end procedure
415 : #endif
416 :
417 : #if RK2_ENABLED
418 0 : module procedure setKolmRand_RK2
419 : use pm_kind, only: TKC => RK2
420 : #include "pm_distKolm@routines.inc.F90"
421 0 : end procedure
422 : #endif
423 :
424 : #if RK1_ENABLED
425 4 : module procedure setKolmRand_RK1
426 : use pm_kind, only: TKC => RK1
427 : #include "pm_distKolm@routines.inc.F90"
428 4 : end procedure
429 : #endif
430 :
431 : #undef RK_ENABLED
432 :
433 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
434 :
435 : #undef setKolmRand_ENABLED
436 :
437 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
438 :
439 : #undef CHECK_ASSERTION
440 :
441 : end submodule routines
|