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_math1mexp](@ref pm_math1mexp).
19 : !>
20 : !> \finmain
21 : !>
22 : !> \author
23 : !> \AmirShahmoradi, Thursday 1:45 AM, August 22, 2019, Dallas, TX
24 :
25 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 :
27 : submodule (pm_math1mexp) 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 get1mexp_ENABLED 1
48 :
49 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
50 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
51 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 :
53 : #define Seq_ENABLED 1
54 :
55 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
56 :
57 : #define CK_ENABLED 1
58 :
59 : #if CK5_ENABLED
60 : module procedure get1mexpSeq_CK5
61 : use pm_kind, only: CKC => CK5
62 : #include "pm_math1mexp@routines.inc.F90"
63 : end procedure
64 : #endif
65 :
66 : #if CK4_ENABLED
67 1 : module procedure get1mexpSeq_CK4
68 : use pm_kind, only: CKC => CK4
69 : #include "pm_math1mexp@routines.inc.F90"
70 1 : end procedure
71 : #endif
72 :
73 : #if CK3_ENABLED
74 0 : module procedure get1mexpSeq_CK3
75 : use pm_kind, only: CKC => CK3
76 : #include "pm_math1mexp@routines.inc.F90"
77 0 : end procedure
78 : #endif
79 :
80 : #if CK2_ENABLED
81 1 : module procedure get1mexpSeq_CK2
82 : use pm_kind, only: CKC => CK2
83 : #include "pm_math1mexp@routines.inc.F90"
84 1 : end procedure
85 : #endif
86 :
87 : #if CK1_ENABLED
88 1 : module procedure get1mexpSeq_CK1
89 : use pm_kind, only: CKC => CK1
90 : #include "pm_math1mexp@routines.inc.F90"
91 1 : end procedure
92 : #endif
93 :
94 : #undef CK_ENABLED
95 :
96 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
97 :
98 : #define RK_ENABLED 1
99 :
100 : #if RK5_ENABLED
101 : module procedure get1mexpSeq_RK5
102 : use pm_kind, only: RKC => RK5
103 : #include "pm_math1mexp@routines.inc.F90"
104 : end procedure
105 : #endif
106 :
107 : #if RK4_ENABLED
108 164539 : module procedure get1mexpSeq_RK4
109 : use pm_kind, only: RKC => RK4
110 : #include "pm_math1mexp@routines.inc.F90"
111 164539 : end procedure
112 : #endif
113 :
114 : #if RK3_ENABLED
115 84317 : module procedure get1mexpSeq_RK3
116 : use pm_kind, only: RKC => RK3
117 : #include "pm_math1mexp@routines.inc.F90"
118 84317 : end procedure
119 : #endif
120 :
121 : #if RK2_ENABLED
122 132410 : module procedure get1mexpSeq_RK2
123 : use pm_kind, only: RKC => RK2
124 : #include "pm_math1mexp@routines.inc.F90"
125 132410 : end procedure
126 : #endif
127 :
128 : #if RK1_ENABLED
129 265067 : module procedure get1mexpSeq_RK1
130 : use pm_kind, only: RKC => RK1
131 : #include "pm_math1mexp@routines.inc.F90"
132 265067 : end procedure
133 : #endif
134 :
135 : #undef RK_ENABLED
136 :
137 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
138 :
139 : #undef Seq_ENABLED
140 :
141 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
142 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
143 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
144 :
145 : #define Sel_ENABLED 1
146 :
147 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
148 :
149 : #define CK_ENABLED 1
150 :
151 : #if CK5_ENABLED
152 : module procedure get1mexpSel_CK5
153 : use pm_kind, only: CKC => CK5
154 : #include "pm_math1mexp@routines.inc.F90"
155 : end procedure
156 : #endif
157 :
158 : #if CK4_ENABLED
159 0 : module procedure get1mexpSel_CK4
160 : use pm_kind, only: CKC => CK4
161 : #include "pm_math1mexp@routines.inc.F90"
162 0 : end procedure
163 : #endif
164 :
165 : #if CK3_ENABLED
166 0 : module procedure get1mexpSel_CK3
167 : use pm_kind, only: CKC => CK3
168 : #include "pm_math1mexp@routines.inc.F90"
169 0 : end procedure
170 : #endif
171 :
172 : #if CK2_ENABLED
173 0 : module procedure get1mexpSel_CK2
174 : use pm_kind, only: CKC => CK2
175 : #include "pm_math1mexp@routines.inc.F90"
176 0 : end procedure
177 : #endif
178 :
179 : #if CK1_ENABLED
180 0 : module procedure get1mexpSel_CK1
181 : use pm_kind, only: CKC => CK1
182 : #include "pm_math1mexp@routines.inc.F90"
183 0 : end procedure
184 : #endif
185 :
186 : #undef CK_ENABLED
187 :
188 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
189 :
190 : #define RK_ENABLED 1
191 :
192 : #if RK5_ENABLED
193 : module procedure get1mexpSel_RK5
194 : use pm_kind, only: RKC => RK5
195 : #include "pm_math1mexp@routines.inc.F90"
196 : end procedure
197 : #endif
198 :
199 : #if RK4_ENABLED
200 2 : module procedure get1mexpSel_RK4
201 : use pm_kind, only: RKC => RK4
202 : #include "pm_math1mexp@routines.inc.F90"
203 2 : end procedure
204 : #endif
205 :
206 : #if RK3_ENABLED
207 0 : module procedure get1mexpSel_RK3
208 : use pm_kind, only: RKC => RK3
209 : #include "pm_math1mexp@routines.inc.F90"
210 0 : end procedure
211 : #endif
212 :
213 : #if RK2_ENABLED
214 0 : module procedure get1mexpSel_RK2
215 : use pm_kind, only: RKC => RK2
216 : #include "pm_math1mexp@routines.inc.F90"
217 0 : end procedure
218 : #endif
219 :
220 : #if RK1_ENABLED
221 6 : module procedure get1mexpSel_RK1
222 : use pm_kind, only: RKC => RK1
223 : #include "pm_math1mexp@routines.inc.F90"
224 6 : end procedure
225 : #endif
226 :
227 : #undef RK_ENABLED
228 :
229 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
230 :
231 : #undef Sel_ENABLED
232 :
233 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
234 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
235 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
236 :
237 : #undef get1mexp_ENABLED
238 :
239 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
240 :
241 : #undef CHECK_ASSERTION
242 :
243 : end submodule routines
|