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 DRAM-MCMC samplers.<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 DRAM-MCMC 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 : !> 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>
29 : !>
30 : !> \finmain
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_dram_RK5
38 : #if RK5_ENABLED
39 : use pm_kind, only: RKC => RK5
40 : #define pm_sampling_scio pm_sampling_scio_RK5
41 : #define pm_sampling_mcmc pm_sampling_mcmc_RK5
42 : #include "pm_sampling_dram.imp.F90"
43 : #undef pm_sampling_mcmc
44 : #undef pm_sampling_scio
45 : #else
46 : use pm_kind, only: RKC => RK
47 : #endif
48 : end module
49 :
50 : module pm_sampling_dram_RK4
51 : #if RK4_ENABLED
52 : use pm_kind, only: RKC => RK4
53 : #define pm_sampling_scio pm_sampling_scio_RK4
54 : #define pm_sampling_mcmc pm_sampling_mcmc_RK4
55 : #include "pm_sampling_dram.imp.F90"
56 : #undef pm_sampling_mcmc
57 : #undef pm_sampling_scio
58 : #else
59 : use pm_kind, only: RKC => RK
60 : #endif
61 0 : end module
62 :
63 : module pm_sampling_dram_RK3
64 : #if RK3_ENABLED
65 : use pm_kind, only: RKC => RK3
66 : #define pm_sampling_scio pm_sampling_scio_RK3
67 : #define pm_sampling_mcmc pm_sampling_mcmc_RK3
68 : #include "pm_sampling_dram.imp.F90"
69 : #undef pm_sampling_mcmc
70 : #undef pm_sampling_scio
71 : #else
72 : use pm_kind, only: RKC => RK
73 : #endif
74 0 : end module
75 :
76 : module pm_sampling_dram_RK2
77 : #if RK2_ENABLED
78 : use pm_kind, only: RKC => RK2
79 : #define pm_sampling_scio pm_sampling_scio_RK2
80 : #define pm_sampling_mcmc pm_sampling_mcmc_RK2
81 : #include "pm_sampling_dram.imp.F90"
82 : #undef pm_sampling_mcmc
83 : #undef pm_sampling_scio
84 : #else
85 : use pm_kind, only: RKC => RK
86 : #endif
87 12 : end module
88 :
89 : module pm_sampling_dram_RK1
90 : #if RK1_ENABLED
91 : use pm_kind, only: RKC => RK1
92 : #define pm_sampling_scio pm_sampling_scio_RK1
93 : #define pm_sampling_mcmc pm_sampling_mcmc_RK1
94 : #include "pm_sampling_dram.imp.F90"
95 : #undef pm_sampling_mcmc
96 : #undef pm_sampling_scio
97 : #else
98 : use pm_kind, only: RKC => RK
99 : #endif
100 1 : end module
|