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 [test_pm_arrayFind](@ref test_pm_arrayFind).
19 : !>
20 : !> \fintest
21 : !>
22 : !> \author
23 : !> \AmirShahmoradi, September 1, 2017, 11:35 PM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
24 :
25 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 :
27 : submodule (test_pm_arrayFind) routines ! LCOV_EXCL_LINE
28 :
29 : use pm_arrayShuffle, only: setShuffled
30 : use pm_option, only: getOption
31 : use pm_val2str, only: getStr
32 : implicit none
33 :
34 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
35 :
36 : contains
37 :
38 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
39 :
40 : #define loc_ENABLED 1
41 :
42 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
43 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
44 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
45 :
46 : #define D0_D0_ENABLED 1
47 :
48 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
49 :
50 : #define SK_ENABLED 1
51 :
52 : #if SK5_ENABLED
53 : module procedure test_loc_D0_D0_SK5
54 : use pm_kind, only: SKC => SK5
55 : #include "test_pm_arrayFind@routines.inc.F90"
56 : end procedure
57 : #endif
58 :
59 : #if SK4_ENABLED
60 : module procedure test_loc_D0_D0_SK4
61 : use pm_kind, only: SKC => SK4
62 : #include "test_pm_arrayFind@routines.inc.F90"
63 : end procedure
64 : #endif
65 :
66 : #if SK3_ENABLED
67 : module procedure test_loc_D0_D0_SK3
68 : use pm_kind, only: SKC => SK3
69 : #include "test_pm_arrayFind@routines.inc.F90"
70 : end procedure
71 : #endif
72 :
73 : #if SK2_ENABLED
74 : module procedure test_loc_D0_D0_SK2
75 : use pm_kind, only: SKC => SK2
76 : #include "test_pm_arrayFind@routines.inc.F90"
77 : end procedure
78 : #endif
79 :
80 : #if SK1_ENABLED
81 1 : module procedure test_loc_D0_D0_SK1
82 : use pm_kind, only: SKC => SK1
83 : #include "test_pm_arrayFind@routines.inc.F90"
84 : end procedure
85 : #endif
86 :
87 : #undef SK_ENABLED
88 :
89 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
90 :
91 : #undef D0_D0_ENABLED
92 :
93 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
94 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
95 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
96 :
97 : #define D1_D0_ENABLED 1
98 :
99 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
100 :
101 : #define SK_ENABLED 1
102 :
103 : #if SK5_ENABLED
104 : module procedure test_loc_D1_D0_SK5
105 : use pm_kind, only: SKC => SK5
106 : #include "test_pm_arrayFind@routines.inc.F90"
107 : end procedure
108 : #endif
109 :
110 : #if SK4_ENABLED
111 : module procedure test_loc_D1_D0_SK4
112 : use pm_kind, only: SKC => SK4
113 : #include "test_pm_arrayFind@routines.inc.F90"
114 : end procedure
115 : #endif
116 :
117 : #if SK3_ENABLED
118 : module procedure test_loc_D1_D0_SK3
119 : use pm_kind, only: SKC => SK3
120 : #include "test_pm_arrayFind@routines.inc.F90"
121 : end procedure
122 : #endif
123 :
124 : #if SK2_ENABLED
125 : module procedure test_loc_D1_D0_SK2
126 : use pm_kind, only: SKC => SK2
127 : #include "test_pm_arrayFind@routines.inc.F90"
128 : end procedure
129 : #endif
130 :
131 : #if SK1_ENABLED
132 1 : module procedure test_loc_D1_D0_SK1
133 : use pm_kind, only: SKC => SK1
134 : #include "test_pm_arrayFind@routines.inc.F90"
135 : end procedure
136 : #endif
137 :
138 : #undef SK_ENABLED
139 :
140 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
141 :
142 : #define IK_ENABLED 1
143 :
144 : #if IK5_ENABLED
145 1 : module procedure test_loc_D1_D0_IK5
146 : use pm_kind, only: IKC => IK5
147 : #include "test_pm_arrayFind@routines.inc.F90"
148 : end procedure
149 : #endif
150 :
151 : #if IK4_ENABLED
152 1 : module procedure test_loc_D1_D0_IK4
153 : use pm_kind, only: IKC => IK4
154 : #include "test_pm_arrayFind@routines.inc.F90"
155 : end procedure
156 : #endif
157 :
158 : #if IK3_ENABLED
159 1 : module procedure test_loc_D1_D0_IK3
160 : use pm_kind, only: IKC => IK3
161 : #include "test_pm_arrayFind@routines.inc.F90"
162 : end procedure
163 : #endif
164 :
165 : #if IK2_ENABLED
166 1 : module procedure test_loc_D1_D0_IK2
167 : use pm_kind, only: IKC => IK2
168 : #include "test_pm_arrayFind@routines.inc.F90"
169 : end procedure
170 : #endif
171 :
172 : #if IK1_ENABLED
173 1 : module procedure test_loc_D1_D0_IK1
174 : use pm_kind, only: IKC => IK1
175 : #include "test_pm_arrayFind@routines.inc.F90"
176 : end procedure
177 : #endif
178 :
179 : #undef IK_ENABLED
180 :
181 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
182 :
183 : #define LK_ENABLED 1
184 :
185 : #if LK5_ENABLED
186 1 : module procedure test_loc_D1_D0_LK5
187 : use pm_kind, only: LKC => LK5
188 : #include "test_pm_arrayFind@routines.inc.F90"
189 : end procedure
190 : #endif
191 :
192 : #if LK4_ENABLED
193 1 : module procedure test_loc_D1_D0_LK4
194 : use pm_kind, only: LKC => LK4
195 : #include "test_pm_arrayFind@routines.inc.F90"
196 : end procedure
197 : #endif
198 :
199 : #if LK3_ENABLED
200 1 : module procedure test_loc_D1_D0_LK3
201 : use pm_kind, only: LKC => LK3
202 : #include "test_pm_arrayFind@routines.inc.F90"
203 : end procedure
204 : #endif
205 :
206 : #if LK2_ENABLED
207 1 : module procedure test_loc_D1_D0_LK2
208 : use pm_kind, only: LKC => LK2
209 : #include "test_pm_arrayFind@routines.inc.F90"
210 : end procedure
211 : #endif
212 :
213 : #if LK1_ENABLED
214 1 : module procedure test_loc_D1_D0_LK1
215 : use pm_kind, only: LKC => LK1
216 : #include "test_pm_arrayFind@routines.inc.F90"
217 : end procedure
218 : #endif
219 :
220 : #undef LK_ENABLED
221 :
222 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
223 :
224 : #define CK_ENABLED 1
225 :
226 : #if CK5_ENABLED
227 : module procedure test_loc_D1_D0_CK5
228 : use pm_kind, only: CKC => CK5
229 : #include "test_pm_arrayFind@routines.inc.F90"
230 : end procedure
231 : #endif
232 :
233 : #if CK4_ENABLED
234 1 : module procedure test_loc_D1_D0_CK4
235 : use pm_kind, only: CKC => CK4
236 : #include "test_pm_arrayFind@routines.inc.F90"
237 : end procedure
238 : #endif
239 :
240 : #if CK3_ENABLED
241 1 : module procedure test_loc_D1_D0_CK3
242 : use pm_kind, only: CKC => CK3
243 : #include "test_pm_arrayFind@routines.inc.F90"
244 : end procedure
245 : #endif
246 :
247 : #if CK2_ENABLED
248 1 : module procedure test_loc_D1_D0_CK2
249 : use pm_kind, only: CKC => CK2
250 : #include "test_pm_arrayFind@routines.inc.F90"
251 : end procedure
252 : #endif
253 :
254 : #if CK1_ENABLED
255 1 : module procedure test_loc_D1_D0_CK1
256 : use pm_kind, only: CKC => CK1
257 : #include "test_pm_arrayFind@routines.inc.F90"
258 : end procedure
259 : #endif
260 :
261 : #undef CK_ENABLED
262 :
263 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
264 :
265 : #define RK_ENABLED 1
266 :
267 : #if RK5_ENABLED
268 : module procedure test_loc_D1_D0_RK5
269 : use pm_kind, only: RKC => RK5
270 : #include "test_pm_arrayFind@routines.inc.F90"
271 : end procedure
272 : #endif
273 :
274 : #if RK4_ENABLED
275 1 : module procedure test_loc_D1_D0_RK4
276 : use pm_kind, only: RKC => RK4
277 : #include "test_pm_arrayFind@routines.inc.F90"
278 : end procedure
279 : #endif
280 :
281 : #if RK3_ENABLED
282 1 : module procedure test_loc_D1_D0_RK3
283 : use pm_kind, only: RKC => RK3
284 : #include "test_pm_arrayFind@routines.inc.F90"
285 : end procedure
286 : #endif
287 :
288 : #if RK2_ENABLED
289 1 : module procedure test_loc_D1_D0_RK2
290 : use pm_kind, only: RKC => RK2
291 : #include "test_pm_arrayFind@routines.inc.F90"
292 : end procedure
293 : #endif
294 :
295 : #if RK1_ENABLED
296 1 : module procedure test_loc_D1_D0_RK1
297 : use pm_kind, only: RKC => RK1
298 : #include "test_pm_arrayFind@routines.inc.F90"
299 : end procedure
300 : #endif
301 :
302 : #undef RK_ENABLED
303 :
304 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
305 :
306 : #undef D1_D0_ENABLED
307 :
308 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
309 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
310 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
311 :
312 : #define D1_D1_ENABLED 1
313 :
314 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
315 :
316 : #define SK_ENABLED 1
317 :
318 : #if SK5_ENABLED
319 : module procedure test_loc_D1_D1_SK5
320 : use pm_kind, only: SKC => SK5
321 : #include "test_pm_arrayFind@routines.inc.F90"
322 : end procedure
323 : #endif
324 :
325 : #if SK4_ENABLED
326 : module procedure test_loc_D1_D1_SK4
327 : use pm_kind, only: SKC => SK4
328 : #include "test_pm_arrayFind@routines.inc.F90"
329 : end procedure
330 : #endif
331 :
332 : #if SK3_ENABLED
333 : module procedure test_loc_D1_D1_SK3
334 : use pm_kind, only: SKC => SK3
335 : #include "test_pm_arrayFind@routines.inc.F90"
336 : end procedure
337 : #endif
338 :
339 : #if SK2_ENABLED
340 : module procedure test_loc_D1_D1_SK2
341 : use pm_kind, only: SKC => SK2
342 : #include "test_pm_arrayFind@routines.inc.F90"
343 : end procedure
344 : #endif
345 :
346 : #if SK1_ENABLED
347 1 : module procedure test_loc_D1_D1_SK1
348 : use pm_kind, only: SKC => SK1
349 : #include "test_pm_arrayFind@routines.inc.F90"
350 : end procedure
351 : #endif
352 :
353 : #undef SK_ENABLED
354 :
355 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
356 :
357 : #define IK_ENABLED 1
358 :
359 : #if IK5_ENABLED
360 1 : module procedure test_loc_D1_D1_IK5
361 : use pm_kind, only: IKC => IK5
362 : #include "test_pm_arrayFind@routines.inc.F90"
363 : end procedure
364 : #endif
365 :
366 : #if IK4_ENABLED
367 1 : module procedure test_loc_D1_D1_IK4
368 : use pm_kind, only: IKC => IK4
369 : #include "test_pm_arrayFind@routines.inc.F90"
370 : end procedure
371 : #endif
372 :
373 : #if IK3_ENABLED
374 1 : module procedure test_loc_D1_D1_IK3
375 : use pm_kind, only: IKC => IK3
376 : #include "test_pm_arrayFind@routines.inc.F90"
377 : end procedure
378 : #endif
379 :
380 : #if IK2_ENABLED
381 1 : module procedure test_loc_D1_D1_IK2
382 : use pm_kind, only: IKC => IK2
383 : #include "test_pm_arrayFind@routines.inc.F90"
384 : end procedure
385 : #endif
386 :
387 : #if IK1_ENABLED
388 1 : module procedure test_loc_D1_D1_IK1
389 : use pm_kind, only: IKC => IK1
390 : #include "test_pm_arrayFind@routines.inc.F90"
391 : end procedure
392 : #endif
393 :
394 : #undef IK_ENABLED
395 :
396 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
397 :
398 : #define LK_ENABLED 1
399 :
400 : #if LK5_ENABLED
401 1 : module procedure test_loc_D1_D1_LK5
402 : use pm_kind, only: LKC => LK5
403 : #include "test_pm_arrayFind@routines.inc.F90"
404 : end procedure
405 : #endif
406 :
407 : #if LK4_ENABLED
408 1 : module procedure test_loc_D1_D1_LK4
409 : use pm_kind, only: LKC => LK4
410 : #include "test_pm_arrayFind@routines.inc.F90"
411 : end procedure
412 : #endif
413 :
414 : #if LK3_ENABLED
415 1 : module procedure test_loc_D1_D1_LK3
416 : use pm_kind, only: LKC => LK3
417 : #include "test_pm_arrayFind@routines.inc.F90"
418 : end procedure
419 : #endif
420 :
421 : #if LK2_ENABLED
422 1 : module procedure test_loc_D1_D1_LK2
423 : use pm_kind, only: LKC => LK2
424 : #include "test_pm_arrayFind@routines.inc.F90"
425 : end procedure
426 : #endif
427 :
428 : #if LK1_ENABLED
429 1 : module procedure test_loc_D1_D1_LK1
430 : use pm_kind, only: LKC => LK1
431 : #include "test_pm_arrayFind@routines.inc.F90"
432 : end procedure
433 : #endif
434 :
435 : #undef LK_ENABLED
436 :
437 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
438 :
439 : #define CK_ENABLED 1
440 :
441 : #if CK5_ENABLED
442 : module procedure test_loc_D1_D1_CK5
443 : use pm_kind, only: CKC => CK5
444 : #include "test_pm_arrayFind@routines.inc.F90"
445 : end procedure
446 : #endif
447 :
448 : #if CK4_ENABLED
449 1 : module procedure test_loc_D1_D1_CK4
450 : use pm_kind, only: CKC => CK4
451 : #include "test_pm_arrayFind@routines.inc.F90"
452 : end procedure
453 : #endif
454 :
455 : #if CK3_ENABLED
456 1 : module procedure test_loc_D1_D1_CK3
457 : use pm_kind, only: CKC => CK3
458 : #include "test_pm_arrayFind@routines.inc.F90"
459 : end procedure
460 : #endif
461 :
462 : #if CK2_ENABLED
463 1 : module procedure test_loc_D1_D1_CK2
464 : use pm_kind, only: CKC => CK2
465 : #include "test_pm_arrayFind@routines.inc.F90"
466 : end procedure
467 : #endif
468 :
469 : #if CK1_ENABLED
470 1 : module procedure test_loc_D1_D1_CK1
471 : use pm_kind, only: CKC => CK1
472 : #include "test_pm_arrayFind@routines.inc.F90"
473 : end procedure
474 : #endif
475 :
476 : #undef CK_ENABLED
477 :
478 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
479 :
480 : #define RK_ENABLED 1
481 :
482 : #if RK5_ENABLED
483 : module procedure test_loc_D1_D1_RK5
484 : use pm_kind, only: RKC => RK5
485 : #include "test_pm_arrayFind@routines.inc.F90"
486 : end procedure
487 : #endif
488 :
489 : #if RK4_ENABLED
490 1 : module procedure test_loc_D1_D1_RK4
491 : use pm_kind, only: RKC => RK4
492 : #include "test_pm_arrayFind@routines.inc.F90"
493 : end procedure
494 : #endif
495 :
496 : #if RK3_ENABLED
497 1 : module procedure test_loc_D1_D1_RK3
498 : use pm_kind, only: RKC => RK3
499 : #include "test_pm_arrayFind@routines.inc.F90"
500 : end procedure
501 : #endif
502 :
503 : #if RK2_ENABLED
504 1 : module procedure test_loc_D1_D1_RK2
505 : use pm_kind, only: RKC => RK2
506 : #include "test_pm_arrayFind@routines.inc.F90"
507 : end procedure
508 : #endif
509 :
510 : #if RK1_ENABLED
511 1 : module procedure test_loc_D1_D1_RK1
512 : use pm_kind, only: RKC => RK1
513 : #include "test_pm_arrayFind@routines.inc.F90"
514 : end procedure
515 : #endif
516 :
517 : #undef RK_ENABLED
518 :
519 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
520 :
521 : #undef D1_D1_ENABLED
522 :
523 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
524 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
525 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
526 :
527 : #undef loc_ENABLED
528 :
529 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
530 :
531 : end submodule routines
|