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_mathSubAdd](@ref pm_mathSubAdd).
19 : !>
20 : !> \finmain
21 : !>
22 : !> \author
23 : !> \AmirShahmoradi, April 23, 2017, 1:36 AM, Institute for Computational Engineering and Sciences (ICES), University of Texas at Austin
24 :
25 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 :
27 : submodule (pm_mathSubAdd) 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 : use pm_kind, only: SK
40 :
41 : implicit none
42 :
43 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
44 :
45 : contains
46 :
47 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
48 :
49 : #define getSubAdd_ENABLED 1
50 :
51 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
53 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
54 :
55 : #define getSubAddUnary_ENABLED 1
56 :
57 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
58 :
59 : #define getSubAddUnary_IK_ENABLED 1
60 :
61 : #if IK5_ENABLED
62 0 : module procedure getSubAddUnary_IK5
63 : use pm_kind, only: IKC => IK5
64 : #include "pm_mathSubAdd@routines.inc.F90"
65 0 : end procedure
66 : #endif
67 :
68 : #if IK4_ENABLED
69 0 : module procedure getSubAddUnary_IK4
70 : use pm_kind, only: IKC => IK4
71 : #include "pm_mathSubAdd@routines.inc.F90"
72 0 : end procedure
73 : #endif
74 :
75 : #if IK3_ENABLED
76 2 : module procedure getSubAddUnary_IK3
77 : use pm_kind, only: IKC => IK3
78 : #include "pm_mathSubAdd@routines.inc.F90"
79 2 : end procedure
80 : #endif
81 :
82 : #if IK2_ENABLED
83 0 : module procedure getSubAddUnary_IK2
84 : use pm_kind, only: IKC => IK2
85 : #include "pm_mathSubAdd@routines.inc.F90"
86 0 : end procedure
87 : #endif
88 :
89 : #if IK1_ENABLED
90 0 : module procedure getSubAddUnary_IK1
91 : use pm_kind, only: IKC => IK1
92 : #include "pm_mathSubAdd@routines.inc.F90"
93 0 : end procedure
94 : #endif
95 :
96 : #undef getSubAddUnary_IK_ENABLED
97 :
98 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
99 :
100 : #define getSubAddUnary_RK_ENABLED 1
101 :
102 : #if RK5_ENABLED
103 : module procedure getSubAddUnary_RK5
104 : use pm_kind, only: RKC => RK5
105 : #include "pm_mathSubAdd@routines.inc.F90"
106 : end procedure
107 : #endif
108 :
109 : #if RK4_ENABLED
110 0 : module procedure getSubAddUnary_RK4
111 : use pm_kind, only: RKC => RK4
112 : #include "pm_mathSubAdd@routines.inc.F90"
113 0 : end procedure
114 : #endif
115 :
116 : #if RK3_ENABLED
117 0 : module procedure getSubAddUnary_RK3
118 : use pm_kind, only: RKC => RK3
119 : #include "pm_mathSubAdd@routines.inc.F90"
120 0 : end procedure
121 : #endif
122 :
123 : #if RK2_ENABLED
124 0 : module procedure getSubAddUnary_RK2
125 : use pm_kind, only: RKC => RK2
126 : #include "pm_mathSubAdd@routines.inc.F90"
127 0 : end procedure
128 : #endif
129 :
130 : #if RK1_ENABLED
131 4 : module procedure getSubAddUnary_RK1
132 : use pm_kind, only: RKC => RK1
133 : #include "pm_mathSubAdd@routines.inc.F90"
134 4 : end procedure
135 : #endif
136 :
137 : #undef getSubAddUnary_RK_ENABLED
138 :
139 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
140 :
141 : #define getSubAddUnary_CK_ENABLED 1
142 :
143 : #if CK5_ENABLED
144 : module procedure getSubAddUnary_CK5
145 : use pm_kind, only: CKC => CK5
146 : #include "pm_mathSubAdd@routines.inc.F90"
147 : end procedure
148 : #endif
149 :
150 : #if CK4_ENABLED
151 0 : module procedure getSubAddUnary_CK4
152 : use pm_kind, only: CKC => CK4
153 : #include "pm_mathSubAdd@routines.inc.F90"
154 0 : end procedure
155 : #endif
156 :
157 : #if CK3_ENABLED
158 0 : module procedure getSubAddUnary_CK3
159 : use pm_kind, only: CKC => CK3
160 : #include "pm_mathSubAdd@routines.inc.F90"
161 0 : end procedure
162 : #endif
163 :
164 : #if CK2_ENABLED
165 0 : module procedure getSubAddUnary_CK2
166 : use pm_kind, only: CKC => CK2
167 : #include "pm_mathSubAdd@routines.inc.F90"
168 0 : end procedure
169 : #endif
170 :
171 : #if CK1_ENABLED
172 2 : module procedure getSubAddUnary_CK1
173 : use pm_kind, only: CKC => CK1
174 : #include "pm_mathSubAdd@routines.inc.F90"
175 2 : end procedure
176 : #endif
177 :
178 : #undef getSubAddUnary_CK_ENABLED
179 :
180 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
181 :
182 : #undef getSubAddUnary_ENABLED
183 :
184 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
185 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
186 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
187 :
188 : #define getSubAddBinary_ENABLED 1
189 :
190 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
191 :
192 : #define getSubAddBinary_IK_ENABLED 1
193 :
194 : #if IK5_ENABLED
195 0 : module procedure getSubAddBinary_IK5
196 : use pm_kind, only: IKC => IK5
197 : #include "pm_mathSubAdd@routines.inc.F90"
198 0 : end procedure
199 : #endif
200 :
201 : #if IK4_ENABLED
202 0 : module procedure getSubAddBinary_IK4
203 : use pm_kind, only: IKC => IK4
204 : #include "pm_mathSubAdd@routines.inc.F90"
205 0 : end procedure
206 : #endif
207 :
208 : #if IK3_ENABLED
209 1 : module procedure getSubAddBinary_IK3
210 : use pm_kind, only: IKC => IK3
211 : #include "pm_mathSubAdd@routines.inc.F90"
212 1 : end procedure
213 : #endif
214 :
215 : #if IK2_ENABLED
216 0 : module procedure getSubAddBinary_IK2
217 : use pm_kind, only: IKC => IK2
218 : #include "pm_mathSubAdd@routines.inc.F90"
219 0 : end procedure
220 : #endif
221 :
222 : #if IK1_ENABLED
223 0 : module procedure getSubAddBinary_IK1
224 : use pm_kind, only: IKC => IK1
225 : #include "pm_mathSubAdd@routines.inc.F90"
226 0 : end procedure
227 : #endif
228 :
229 : #undef getSubAddBinary_IK_ENABLED
230 :
231 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
232 :
233 : #define getSubAddBinary_RK_ENABLED 1
234 :
235 : #if RK5_ENABLED
236 : module procedure getSubAddBinary_RK5
237 : use pm_kind, only: RKC => RK5
238 : #include "pm_mathSubAdd@routines.inc.F90"
239 : end procedure
240 : #endif
241 :
242 : #if RK4_ENABLED
243 0 : module procedure getSubAddBinary_RK4
244 : use pm_kind, only: RKC => RK4
245 : #include "pm_mathSubAdd@routines.inc.F90"
246 0 : end procedure
247 : #endif
248 :
249 : #if RK3_ENABLED
250 0 : module procedure getSubAddBinary_RK3
251 : use pm_kind, only: RKC => RK3
252 : #include "pm_mathSubAdd@routines.inc.F90"
253 0 : end procedure
254 : #endif
255 :
256 : #if RK2_ENABLED
257 16005 : module procedure getSubAddBinary_RK2
258 : use pm_kind, only: RKC => RK2
259 : #include "pm_mathSubAdd@routines.inc.F90"
260 16005 : end procedure
261 : #endif
262 :
263 : #if RK1_ENABLED
264 0 : module procedure getSubAddBinary_RK1
265 : use pm_kind, only: RKC => RK1
266 : #include "pm_mathSubAdd@routines.inc.F90"
267 0 : end procedure
268 : #endif
269 :
270 : #undef getSubAddBinary_RK_ENABLED
271 :
272 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
273 :
274 : #define getSubAddBinary_CK_ENABLED 1
275 :
276 : #if CK5_ENABLED
277 : module procedure getSubAddBinary_CK5
278 : use pm_kind, only: CKC => CK5
279 : #include "pm_mathSubAdd@routines.inc.F90"
280 : end procedure
281 : #endif
282 :
283 : #if CK4_ENABLED
284 1 : module procedure getSubAddBinary_CK4
285 : use pm_kind, only: CKC => CK4
286 : #include "pm_mathSubAdd@routines.inc.F90"
287 1 : end procedure
288 : #endif
289 :
290 : #if CK3_ENABLED
291 0 : module procedure getSubAddBinary_CK3
292 : use pm_kind, only: CKC => CK3
293 : #include "pm_mathSubAdd@routines.inc.F90"
294 0 : end procedure
295 : #endif
296 :
297 : #if CK2_ENABLED
298 0 : module procedure getSubAddBinary_CK2
299 : use pm_kind, only: CKC => CK2
300 : #include "pm_mathSubAdd@routines.inc.F90"
301 0 : end procedure
302 : #endif
303 :
304 : #if CK1_ENABLED
305 0 : module procedure getSubAddBinary_CK1
306 : use pm_kind, only: CKC => CK1
307 : #include "pm_mathSubAdd@routines.inc.F90"
308 0 : end procedure
309 : #endif
310 :
311 : #undef getSubAddBinary_CK_ENABLED
312 :
313 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
314 :
315 : #undef getSubAddBinary_ENABLED
316 :
317 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
318 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
319 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
320 :
321 : #undef getSubAdd_ENABLED
322 :
323 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
324 :
325 : end submodule routines
|