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_arrayShuffle](@ref pm_arrayShuffle).
19 : !>
20 : !> \finmain
21 : !>
22 : !> \author
23 : !> \FatemehBagheri, Wednesday 12:20 AM, October 13, 2021, Dallas, TX
24 :
25 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 :
27 : submodule (pm_arrayShuffle) 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_distUnif, only: setUnifRand
40 : implicit none
41 :
42 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
43 :
44 : contains
45 :
46 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
47 :
48 : #define getShuffled_ENABLED 1
49 :
50 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
51 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
53 :
54 : #define D0_ENABLED 1
55 :
56 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
57 :
58 : #define SK_ENABLED 1
59 :
60 : #if SK5_ENABLED
61 : module procedure getShuffledRNGD_D0_SK5
62 : use pm_kind, only: SKC => SK5
63 : #include "pm_arrayShuffle@routines.inc.F90"
64 : end procedure
65 : #endif
66 :
67 : #if SK4_ENABLED
68 : module procedure getShuffledRNGD_D0_SK4
69 : use pm_kind, only: SKC => SK4
70 : #include "pm_arrayShuffle@routines.inc.F90"
71 : end procedure
72 : #endif
73 :
74 : #if SK3_ENABLED
75 : module procedure getShuffledRNGD_D0_SK3
76 : use pm_kind, only: SKC => SK3
77 : #include "pm_arrayShuffle@routines.inc.F90"
78 : end procedure
79 : #endif
80 :
81 : #if SK2_ENABLED
82 : module procedure getShuffledRNGD_D0_SK2
83 : use pm_kind, only: SKC => SK2
84 : #include "pm_arrayShuffle@routines.inc.F90"
85 : end procedure
86 : #endif
87 :
88 : #if SK1_ENABLED
89 26 : module procedure getShuffledRNGD_D0_SK1
90 : use pm_kind, only: SKC => SK1
91 : #include "pm_arrayShuffle@routines.inc.F90"
92 26 : end procedure
93 : #endif
94 :
95 : #undef SK_ENABLED
96 :
97 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
98 :
99 : #undef D0_ENABLED
100 :
101 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
102 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
103 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
104 :
105 : #define D1_ENABLED 1
106 :
107 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
108 :
109 : #define SK_ENABLED 1
110 :
111 : #if SK5_ENABLED
112 : module procedure getShuffledRNGD_D1_SK5
113 : use pm_kind, only: SKC => SK5
114 : #include "pm_arrayShuffle@routines.inc.F90"
115 : end procedure
116 : #endif
117 :
118 : #if SK4_ENABLED
119 : module procedure getShuffledRNGD_D1_SK4
120 : use pm_kind, only: SKC => SK4
121 : #include "pm_arrayShuffle@routines.inc.F90"
122 : end procedure
123 : #endif
124 :
125 : #if SK3_ENABLED
126 : module procedure getShuffledRNGD_D1_SK3
127 : use pm_kind, only: SKC => SK3
128 : #include "pm_arrayShuffle@routines.inc.F90"
129 : end procedure
130 : #endif
131 :
132 : #if SK2_ENABLED
133 : module procedure getShuffledRNGD_D1_SK2
134 : use pm_kind, only: SKC => SK2
135 : #include "pm_arrayShuffle@routines.inc.F90"
136 : end procedure
137 : #endif
138 :
139 : #if SK1_ENABLED
140 26 : module procedure getShuffledRNGD_D1_SK1
141 : use pm_kind, only: SKC => SK1
142 : #include "pm_arrayShuffle@routines.inc.F90"
143 26 : end procedure
144 : #endif
145 :
146 : #undef SK_ENABLED
147 :
148 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
149 :
150 : #define IK_ENABLED 1
151 :
152 : #if IK5_ENABLED
153 6 : module procedure getShuffledRNGD_D1_IK5
154 : use pm_kind, only: IKC => IK5
155 : #include "pm_arrayShuffle@routines.inc.F90"
156 6 : end procedure
157 : #endif
158 :
159 : #if IK4_ENABLED
160 6 : module procedure getShuffledRNGD_D1_IK4
161 : use pm_kind, only: IKC => IK4
162 : #include "pm_arrayShuffle@routines.inc.F90"
163 6 : end procedure
164 : #endif
165 :
166 : #if IK3_ENABLED
167 26 : module procedure getShuffledRNGD_D1_IK3
168 : use pm_kind, only: IKC => IK3
169 : #include "pm_arrayShuffle@routines.inc.F90"
170 26 : end procedure
171 : #endif
172 :
173 : #if IK2_ENABLED
174 6 : module procedure getShuffledRNGD_D1_IK2
175 : use pm_kind, only: IKC => IK2
176 : #include "pm_arrayShuffle@routines.inc.F90"
177 6 : end procedure
178 : #endif
179 :
180 : #if IK1_ENABLED
181 6 : module procedure getShuffledRNGD_D1_IK1
182 : use pm_kind, only: IKC => IK1
183 : #include "pm_arrayShuffle@routines.inc.F90"
184 6 : end procedure
185 : #endif
186 :
187 : #undef IK_ENABLED
188 :
189 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
190 :
191 : #define LK_ENABLED 1
192 :
193 : #if LK5_ENABLED
194 6 : module procedure getShuffledRNGD_D1_LK5
195 : use pm_kind, only: LKC => LK5
196 : #include "pm_arrayShuffle@routines.inc.F90"
197 6 : end procedure
198 : #endif
199 :
200 : #if LK4_ENABLED
201 6 : module procedure getShuffledRNGD_D1_LK4
202 : use pm_kind, only: LKC => LK4
203 : #include "pm_arrayShuffle@routines.inc.F90"
204 6 : end procedure
205 : #endif
206 :
207 : #if LK3_ENABLED
208 26 : module procedure getShuffledRNGD_D1_LK3
209 : use pm_kind, only: LKC => LK3
210 : #include "pm_arrayShuffle@routines.inc.F90"
211 26 : end procedure
212 : #endif
213 :
214 : #if LK2_ENABLED
215 6 : module procedure getShuffledRNGD_D1_LK2
216 : use pm_kind, only: LKC => LK2
217 : #include "pm_arrayShuffle@routines.inc.F90"
218 6 : end procedure
219 : #endif
220 :
221 : #if LK1_ENABLED
222 6 : module procedure getShuffledRNGD_D1_LK1
223 : use pm_kind, only: LKC => LK1
224 : #include "pm_arrayShuffle@routines.inc.F90"
225 6 : end procedure
226 : #endif
227 :
228 : #undef LK_ENABLED
229 :
230 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
231 :
232 : #define CK_ENABLED 1
233 :
234 : #if CK5_ENABLED
235 : module procedure getShuffledRNGD_D1_CK5
236 : use pm_kind, only: CKC => CK5
237 : #include "pm_arrayShuffle@routines.inc.F90"
238 : end procedure
239 : #endif
240 :
241 : #if CK4_ENABLED
242 6 : module procedure getShuffledRNGD_D1_CK4
243 : use pm_kind, only: CKC => CK4
244 : #include "pm_arrayShuffle@routines.inc.F90"
245 6 : end procedure
246 : #endif
247 :
248 : #if CK3_ENABLED
249 6 : module procedure getShuffledRNGD_D1_CK3
250 : use pm_kind, only: CKC => CK3
251 : #include "pm_arrayShuffle@routines.inc.F90"
252 6 : end procedure
253 : #endif
254 :
255 : #if CK2_ENABLED
256 6 : module procedure getShuffledRNGD_D1_CK2
257 : use pm_kind, only: CKC => CK2
258 : #include "pm_arrayShuffle@routines.inc.F90"
259 6 : end procedure
260 : #endif
261 :
262 : #if CK1_ENABLED
263 26 : module procedure getShuffledRNGD_D1_CK1
264 : use pm_kind, only: CKC => CK1
265 : #include "pm_arrayShuffle@routines.inc.F90"
266 26 : end procedure
267 : #endif
268 :
269 : #undef CK_ENABLED
270 :
271 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
272 :
273 : #define RK_ENABLED 1
274 :
275 : #if RK5_ENABLED
276 : module procedure getShuffledRNGD_D1_RK5
277 : use pm_kind, only: RKC => RK5
278 : #include "pm_arrayShuffle@routines.inc.F90"
279 : end procedure
280 : #endif
281 :
282 : #if RK4_ENABLED
283 6 : module procedure getShuffledRNGD_D1_RK4
284 : use pm_kind, only: RKC => RK4
285 : #include "pm_arrayShuffle@routines.inc.F90"
286 6 : end procedure
287 : #endif
288 :
289 : #if RK3_ENABLED
290 6 : module procedure getShuffledRNGD_D1_RK3
291 : use pm_kind, only: RKC => RK3
292 : #include "pm_arrayShuffle@routines.inc.F90"
293 6 : end procedure
294 : #endif
295 :
296 : #if RK2_ENABLED
297 6 : module procedure getShuffledRNGD_D1_RK2
298 : use pm_kind, only: RKC => RK2
299 : #include "pm_arrayShuffle@routines.inc.F90"
300 6 : end procedure
301 : #endif
302 :
303 : #if RK1_ENABLED
304 28 : module procedure getShuffledRNGD_D1_RK1
305 : use pm_kind, only: RKC => RK1
306 : #include "pm_arrayShuffle@routines.inc.F90"
307 28 : end procedure
308 : #endif
309 :
310 : #undef RK_ENABLED
311 :
312 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
313 :
314 : #if !__GFORTRAN__
315 : #define PSSK_ENABLED 1
316 :
317 : #if SK5_ENABLED
318 : module procedure getShuffledRNGD_D1_PSSK5
319 : use pm_kind, only: SKC => SK5
320 : #include "pm_arrayShuffle@routines.inc.F90"
321 : end procedure
322 : #endif
323 :
324 : #if SK4_ENABLED
325 : module procedure getShuffledRNGD_D1_PSSK4
326 : use pm_kind, only: SKC => SK4
327 : #include "pm_arrayShuffle@routines.inc.F90"
328 : end procedure
329 : #endif
330 :
331 : #if SK3_ENABLED
332 : module procedure getShuffledRNGD_D1_PSSK3
333 : use pm_kind, only: SKC => SK3
334 : #include "pm_arrayShuffle@routines.inc.F90"
335 : end procedure
336 : #endif
337 :
338 : #if SK2_ENABLED
339 : module procedure getShuffledRNGD_D1_PSSK2
340 : use pm_kind, only: SKC => SK2
341 : #include "pm_arrayShuffle@routines.inc.F90"
342 : end procedure
343 : #endif
344 :
345 : #if SK1_ENABLED
346 : module procedure getShuffledRNGD_D1_PSSK1
347 : use pm_kind, only: SKC => SK1
348 : #include "pm_arrayShuffle@routines.inc.F90"
349 : end procedure
350 : #endif
351 :
352 : #undef PSSK_ENABLED
353 : #endif
354 :
355 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
356 :
357 : #define BSSK_ENABLED 1
358 :
359 2 : module procedure getShuffledRNGD_D1_BSSK
360 : use pm_kind, only: SKC => SK
361 : #include "pm_arrayShuffle@routines.inc.F90"
362 2 : end procedure
363 :
364 : #undef BSSK_ENABLED
365 :
366 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
367 :
368 : #undef D1_ENABLED
369 :
370 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
371 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
372 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
373 :
374 : #undef getShuffled_ENABLED
375 :
376 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
377 :
378 : #define setShuffled_ENABLED 1
379 :
380 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
381 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
382 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
383 :
384 : #define RNGD_ENABLED 1
385 :
386 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
387 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
388 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
389 :
390 : #define D0_ENABLED 1
391 :
392 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
393 :
394 : #define SK_ENABLED 1
395 :
396 : #if SK5_ENABLED
397 : module procedure setShuffledRNGD_D0_SK5
398 : use pm_kind, only: SKC => SK5
399 : #include "pm_arrayShuffle@routines.inc.F90"
400 : end procedure
401 : #endif
402 :
403 : #if SK4_ENABLED
404 : module procedure setShuffledRNGD_D0_SK4
405 : use pm_kind, only: SKC => SK4
406 : #include "pm_arrayShuffle@routines.inc.F90"
407 : end procedure
408 : #endif
409 :
410 : #if SK3_ENABLED
411 : module procedure setShuffledRNGD_D0_SK3
412 : use pm_kind, only: SKC => SK3
413 : #include "pm_arrayShuffle@routines.inc.F90"
414 : end procedure
415 : #endif
416 :
417 : #if SK2_ENABLED
418 : module procedure setShuffledRNGD_D0_SK2
419 : use pm_kind, only: SKC => SK2
420 : #include "pm_arrayShuffle@routines.inc.F90"
421 : end procedure
422 : #endif
423 :
424 : #if SK1_ENABLED
425 39 : module procedure setShuffledRNGD_D0_SK1
426 : use pm_kind, only: SKC => SK1
427 : #include "pm_arrayShuffle@routines.inc.F90"
428 39 : end procedure
429 : #endif
430 :
431 : #undef SK_ENABLED
432 :
433 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
434 :
435 : #undef D0_ENABLED
436 :
437 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
438 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
439 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
440 :
441 : #define D1_ENABLED 1
442 :
443 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
444 :
445 : #define SK_ENABLED 1
446 :
447 : #if SK5_ENABLED
448 : module procedure setShuffledRNGD_D1_SK5
449 : use pm_kind, only: SKC => SK5
450 : #include "pm_arrayShuffle@routines.inc.F90"
451 : end procedure
452 : #endif
453 :
454 : #if SK4_ENABLED
455 : module procedure setShuffledRNGD_D1_SK4
456 : use pm_kind, only: SKC => SK4
457 : #include "pm_arrayShuffle@routines.inc.F90"
458 : end procedure
459 : #endif
460 :
461 : #if SK3_ENABLED
462 : module procedure setShuffledRNGD_D1_SK3
463 : use pm_kind, only: SKC => SK3
464 : #include "pm_arrayShuffle@routines.inc.F90"
465 : end procedure
466 : #endif
467 :
468 : #if SK2_ENABLED
469 : module procedure setShuffledRNGD_D1_SK2
470 : use pm_kind, only: SKC => SK2
471 : #include "pm_arrayShuffle@routines.inc.F90"
472 : end procedure
473 : #endif
474 :
475 : #if SK1_ENABLED
476 39 : module procedure setShuffledRNGD_D1_SK1
477 : use pm_kind, only: SKC => SK1
478 : #include "pm_arrayShuffle@routines.inc.F90"
479 39 : end procedure
480 : #endif
481 :
482 : #undef SK_ENABLED
483 :
484 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
485 :
486 : #define IK_ENABLED 1
487 :
488 : #if IK5_ENABLED
489 9 : module procedure setShuffledRNGD_D1_IK5
490 : use pm_kind, only: IKC => IK5
491 : #include "pm_arrayShuffle@routines.inc.F90"
492 9 : end procedure
493 : #endif
494 :
495 : #if IK4_ENABLED
496 9 : module procedure setShuffledRNGD_D1_IK4
497 : use pm_kind, only: IKC => IK4
498 : #include "pm_arrayShuffle@routines.inc.F90"
499 9 : end procedure
500 : #endif
501 :
502 : #if IK3_ENABLED
503 323 : module procedure setShuffledRNGD_D1_IK3
504 : use pm_kind, only: IKC => IK3
505 : #include "pm_arrayShuffle@routines.inc.F90"
506 323 : end procedure
507 : #endif
508 :
509 : #if IK2_ENABLED
510 9 : module procedure setShuffledRNGD_D1_IK2
511 : use pm_kind, only: IKC => IK2
512 : #include "pm_arrayShuffle@routines.inc.F90"
513 9 : end procedure
514 : #endif
515 :
516 : #if IK1_ENABLED
517 9 : module procedure setShuffledRNGD_D1_IK1
518 : use pm_kind, only: IKC => IK1
519 : #include "pm_arrayShuffle@routines.inc.F90"
520 9 : end procedure
521 : #endif
522 :
523 : #undef IK_ENABLED
524 :
525 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
526 :
527 : #define LK_ENABLED 1
528 :
529 : #if LK5_ENABLED
530 9 : module procedure setShuffledRNGD_D1_LK5
531 : use pm_kind, only: LKC => LK5
532 : #include "pm_arrayShuffle@routines.inc.F90"
533 9 : end procedure
534 : #endif
535 :
536 : #if LK4_ENABLED
537 9 : module procedure setShuffledRNGD_D1_LK4
538 : use pm_kind, only: LKC => LK4
539 : #include "pm_arrayShuffle@routines.inc.F90"
540 9 : end procedure
541 : #endif
542 :
543 : #if LK3_ENABLED
544 39 : module procedure setShuffledRNGD_D1_LK3
545 : use pm_kind, only: LKC => LK3
546 : #include "pm_arrayShuffle@routines.inc.F90"
547 39 : end procedure
548 : #endif
549 :
550 : #if LK2_ENABLED
551 9 : module procedure setShuffledRNGD_D1_LK2
552 : use pm_kind, only: LKC => LK2
553 : #include "pm_arrayShuffle@routines.inc.F90"
554 9 : end procedure
555 : #endif
556 :
557 : #if LK1_ENABLED
558 9 : module procedure setShuffledRNGD_D1_LK1
559 : use pm_kind, only: LKC => LK1
560 : #include "pm_arrayShuffle@routines.inc.F90"
561 9 : end procedure
562 : #endif
563 :
564 : #undef LK_ENABLED
565 :
566 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
567 :
568 : #define CK_ENABLED 1
569 :
570 : #if CK5_ENABLED
571 : module procedure setShuffledRNGD_D1_CK5
572 : use pm_kind, only: CKC => CK5
573 : #include "pm_arrayShuffle@routines.inc.F90"
574 : end procedure
575 : #endif
576 :
577 : #if CK4_ENABLED
578 9 : module procedure setShuffledRNGD_D1_CK4
579 : use pm_kind, only: CKC => CK4
580 : #include "pm_arrayShuffle@routines.inc.F90"
581 9 : end procedure
582 : #endif
583 :
584 : #if CK3_ENABLED
585 9 : module procedure setShuffledRNGD_D1_CK3
586 : use pm_kind, only: CKC => CK3
587 : #include "pm_arrayShuffle@routines.inc.F90"
588 9 : end procedure
589 : #endif
590 :
591 : #if CK2_ENABLED
592 9 : module procedure setShuffledRNGD_D1_CK2
593 : use pm_kind, only: CKC => CK2
594 : #include "pm_arrayShuffle@routines.inc.F90"
595 9 : end procedure
596 : #endif
597 :
598 : #if CK1_ENABLED
599 39 : module procedure setShuffledRNGD_D1_CK1
600 : use pm_kind, only: CKC => CK1
601 : #include "pm_arrayShuffle@routines.inc.F90"
602 39 : end procedure
603 : #endif
604 :
605 : #undef CK_ENABLED
606 :
607 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
608 :
609 : #define RK_ENABLED 1
610 :
611 : #if RK5_ENABLED
612 : module procedure setShuffledRNGD_D1_RK5
613 : use pm_kind, only: RKC => RK5
614 : #include "pm_arrayShuffle@routines.inc.F90"
615 : end procedure
616 : #endif
617 :
618 : #if RK4_ENABLED
619 9 : module procedure setShuffledRNGD_D1_RK4
620 : use pm_kind, only: RKC => RK4
621 : #include "pm_arrayShuffle@routines.inc.F90"
622 9 : end procedure
623 : #endif
624 :
625 : #if RK3_ENABLED
626 9 : module procedure setShuffledRNGD_D1_RK3
627 : use pm_kind, only: RKC => RK3
628 : #include "pm_arrayShuffle@routines.inc.F90"
629 9 : end procedure
630 : #endif
631 :
632 : #if RK2_ENABLED
633 9 : module procedure setShuffledRNGD_D1_RK2
634 : use pm_kind, only: RKC => RK2
635 : #include "pm_arrayShuffle@routines.inc.F90"
636 9 : end procedure
637 : #endif
638 :
639 : #if RK1_ENABLED
640 41 : module procedure setShuffledRNGD_D1_RK1
641 : use pm_kind, only: RKC => RK1
642 : #include "pm_arrayShuffle@routines.inc.F90"
643 41 : end procedure
644 : #endif
645 :
646 : #undef RK_ENABLED
647 :
648 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
649 :
650 : #if !__GFORTRAN__
651 : #define PSSK_ENABLED 1
652 :
653 : #if SK5_ENABLED
654 : module procedure setShuffledRNGD_D1_PSSK5
655 : use pm_kind, only: SKC => SK5
656 : #include "pm_arrayShuffle@routines.inc.F90"
657 : end procedure
658 : #endif
659 :
660 : #if SK4_ENABLED
661 : module procedure setShuffledRNGD_D1_PSSK4
662 : use pm_kind, only: SKC => SK4
663 : #include "pm_arrayShuffle@routines.inc.F90"
664 : end procedure
665 : #endif
666 :
667 : #if SK3_ENABLED
668 : module procedure setShuffledRNGD_D1_PSSK3
669 : use pm_kind, only: SKC => SK3
670 : #include "pm_arrayShuffle@routines.inc.F90"
671 : end procedure
672 : #endif
673 :
674 : #if SK2_ENABLED
675 : module procedure setShuffledRNGD_D1_PSSK2
676 : use pm_kind, only: SKC => SK2
677 : #include "pm_arrayShuffle@routines.inc.F90"
678 : end procedure
679 : #endif
680 :
681 : #if SK1_ENABLED
682 : module procedure setShuffledRNGD_D1_PSSK1
683 : use pm_kind, only: SKC => SK1
684 : #include "pm_arrayShuffle@routines.inc.F90"
685 : end procedure
686 : #endif
687 :
688 : #undef PSSK_ENABLED
689 : #endif
690 :
691 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
692 :
693 : #define BSSK_ENABLED 1
694 :
695 2 : module procedure setShuffledRNGD_D1_BSSK
696 : use pm_kind, only: SKC => SK
697 : #include "pm_arrayShuffle@routines.inc.F90"
698 2 : end procedure
699 :
700 : #undef BSSK_ENABLED
701 :
702 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
703 :
704 : #undef D1_ENABLED
705 :
706 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
707 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
708 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
709 :
710 : #undef RNGD_ENABLED
711 :
712 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
713 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
714 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
715 :
716 : #define RNGF_ENABLED 1
717 :
718 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
719 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
720 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
721 :
722 : #define D0_ENABLED 1
723 :
724 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
725 :
726 : #define SK_ENABLED 1
727 :
728 : #if SK5_ENABLED
729 : module procedure setShuffledRNGF_D0_SK5
730 : use pm_kind, only: SKC => SK5
731 : #include "pm_arrayShuffle@routines.inc.F90"
732 : end procedure
733 : #endif
734 :
735 : #if SK4_ENABLED
736 : module procedure setShuffledRNGF_D0_SK4
737 : use pm_kind, only: SKC => SK4
738 : #include "pm_arrayShuffle@routines.inc.F90"
739 : end procedure
740 : #endif
741 :
742 : #if SK3_ENABLED
743 : module procedure setShuffledRNGF_D0_SK3
744 : use pm_kind, only: SKC => SK3
745 : #include "pm_arrayShuffle@routines.inc.F90"
746 : end procedure
747 : #endif
748 :
749 : #if SK2_ENABLED
750 : module procedure setShuffledRNGF_D0_SK2
751 : use pm_kind, only: SKC => SK2
752 : #include "pm_arrayShuffle@routines.inc.F90"
753 : end procedure
754 : #endif
755 :
756 : #if SK1_ENABLED
757 6 : module procedure setShuffledRNGF_D0_SK1
758 : use pm_kind, only: SKC => SK1
759 : #include "pm_arrayShuffle@routines.inc.F90"
760 6 : end procedure
761 : #endif
762 :
763 : #undef SK_ENABLED
764 :
765 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
766 :
767 : #undef D0_ENABLED
768 :
769 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
770 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
771 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
772 :
773 : #define D1_ENABLED 1
774 :
775 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
776 :
777 : #define SK_ENABLED 1
778 :
779 : #if SK5_ENABLED
780 : module procedure setShuffledRNGF_D1_SK5
781 : use pm_kind, only: SKC => SK5
782 : #include "pm_arrayShuffle@routines.inc.F90"
783 : end procedure
784 : #endif
785 :
786 : #if SK4_ENABLED
787 : module procedure setShuffledRNGF_D1_SK4
788 : use pm_kind, only: SKC => SK4
789 : #include "pm_arrayShuffle@routines.inc.F90"
790 : end procedure
791 : #endif
792 :
793 : #if SK3_ENABLED
794 : module procedure setShuffledRNGF_D1_SK3
795 : use pm_kind, only: SKC => SK3
796 : #include "pm_arrayShuffle@routines.inc.F90"
797 : end procedure
798 : #endif
799 :
800 : #if SK2_ENABLED
801 : module procedure setShuffledRNGF_D1_SK2
802 : use pm_kind, only: SKC => SK2
803 : #include "pm_arrayShuffle@routines.inc.F90"
804 : end procedure
805 : #endif
806 :
807 : #if SK1_ENABLED
808 6 : module procedure setShuffledRNGF_D1_SK1
809 : use pm_kind, only: SKC => SK1
810 : #include "pm_arrayShuffle@routines.inc.F90"
811 6 : end procedure
812 : #endif
813 :
814 : #undef SK_ENABLED
815 :
816 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
817 :
818 : #define IK_ENABLED 1
819 :
820 : #if IK5_ENABLED
821 6 : module procedure setShuffledRNGF_D1_IK5
822 : use pm_kind, only: IKC => IK5
823 : #include "pm_arrayShuffle@routines.inc.F90"
824 6 : end procedure
825 : #endif
826 :
827 : #if IK4_ENABLED
828 6 : module procedure setShuffledRNGF_D1_IK4
829 : use pm_kind, only: IKC => IK4
830 : #include "pm_arrayShuffle@routines.inc.F90"
831 6 : end procedure
832 : #endif
833 :
834 : #if IK3_ENABLED
835 10351 : module procedure setShuffledRNGF_D1_IK3
836 : use pm_kind, only: IKC => IK3
837 : #include "pm_arrayShuffle@routines.inc.F90"
838 10351 : end procedure
839 : #endif
840 :
841 : #if IK2_ENABLED
842 6 : module procedure setShuffledRNGF_D1_IK2
843 : use pm_kind, only: IKC => IK2
844 : #include "pm_arrayShuffle@routines.inc.F90"
845 6 : end procedure
846 : #endif
847 :
848 : #if IK1_ENABLED
849 6 : module procedure setShuffledRNGF_D1_IK1
850 : use pm_kind, only: IKC => IK1
851 : #include "pm_arrayShuffle@routines.inc.F90"
852 6 : end procedure
853 : #endif
854 :
855 : #undef IK_ENABLED
856 :
857 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
858 :
859 : #define LK_ENABLED 1
860 :
861 : #if LK5_ENABLED
862 6 : module procedure setShuffledRNGF_D1_LK5
863 : use pm_kind, only: LKC => LK5
864 : #include "pm_arrayShuffle@routines.inc.F90"
865 6 : end procedure
866 : #endif
867 :
868 : #if LK4_ENABLED
869 6 : module procedure setShuffledRNGF_D1_LK4
870 : use pm_kind, only: LKC => LK4
871 : #include "pm_arrayShuffle@routines.inc.F90"
872 6 : end procedure
873 : #endif
874 :
875 : #if LK3_ENABLED
876 6 : module procedure setShuffledRNGF_D1_LK3
877 : use pm_kind, only: LKC => LK3
878 : #include "pm_arrayShuffle@routines.inc.F90"
879 6 : end procedure
880 : #endif
881 :
882 : #if LK2_ENABLED
883 6 : module procedure setShuffledRNGF_D1_LK2
884 : use pm_kind, only: LKC => LK2
885 : #include "pm_arrayShuffle@routines.inc.F90"
886 6 : end procedure
887 : #endif
888 :
889 : #if LK1_ENABLED
890 6 : module procedure setShuffledRNGF_D1_LK1
891 : use pm_kind, only: LKC => LK1
892 : #include "pm_arrayShuffle@routines.inc.F90"
893 6 : end procedure
894 : #endif
895 :
896 : #undef LK_ENABLED
897 :
898 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
899 :
900 : #define CK_ENABLED 1
901 :
902 : #if CK5_ENABLED
903 : module procedure setShuffledRNGF_D1_CK5
904 : use pm_kind, only: CKC => CK5
905 : #include "pm_arrayShuffle@routines.inc.F90"
906 : end procedure
907 : #endif
908 :
909 : #if CK4_ENABLED
910 6 : module procedure setShuffledRNGF_D1_CK4
911 : use pm_kind, only: CKC => CK4
912 : #include "pm_arrayShuffle@routines.inc.F90"
913 6 : end procedure
914 : #endif
915 :
916 : #if CK3_ENABLED
917 6 : module procedure setShuffledRNGF_D1_CK3
918 : use pm_kind, only: CKC => CK3
919 : #include "pm_arrayShuffle@routines.inc.F90"
920 6 : end procedure
921 : #endif
922 :
923 : #if CK2_ENABLED
924 6 : module procedure setShuffledRNGF_D1_CK2
925 : use pm_kind, only: CKC => CK2
926 : #include "pm_arrayShuffle@routines.inc.F90"
927 6 : end procedure
928 : #endif
929 :
930 : #if CK1_ENABLED
931 6 : module procedure setShuffledRNGF_D1_CK1
932 : use pm_kind, only: CKC => CK1
933 : #include "pm_arrayShuffle@routines.inc.F90"
934 6 : end procedure
935 : #endif
936 :
937 : #undef CK_ENABLED
938 :
939 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
940 :
941 : #define RK_ENABLED 1
942 :
943 : #if RK5_ENABLED
944 : module procedure setShuffledRNGF_D1_RK5
945 : use pm_kind, only: RKC => RK5
946 : #include "pm_arrayShuffle@routines.inc.F90"
947 : end procedure
948 : #endif
949 :
950 : #if RK4_ENABLED
951 6 : module procedure setShuffledRNGF_D1_RK4
952 : use pm_kind, only: RKC => RK4
953 : #include "pm_arrayShuffle@routines.inc.F90"
954 6 : end procedure
955 : #endif
956 :
957 : #if RK3_ENABLED
958 6 : module procedure setShuffledRNGF_D1_RK3
959 : use pm_kind, only: RKC => RK3
960 : #include "pm_arrayShuffle@routines.inc.F90"
961 6 : end procedure
962 : #endif
963 :
964 : #if RK2_ENABLED
965 6 : module procedure setShuffledRNGF_D1_RK2
966 : use pm_kind, only: RKC => RK2
967 : #include "pm_arrayShuffle@routines.inc.F90"
968 6 : end procedure
969 : #endif
970 :
971 : #if RK1_ENABLED
972 6 : module procedure setShuffledRNGF_D1_RK1
973 : use pm_kind, only: RKC => RK1
974 : #include "pm_arrayShuffle@routines.inc.F90"
975 6 : end procedure
976 : #endif
977 :
978 : #undef RK_ENABLED
979 :
980 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
981 :
982 : #if !__GFORTRAN__
983 : #define PSSK_ENABLED 1
984 :
985 : #if SK5_ENABLED
986 : module procedure setShuffledRNGF_D1_PSSK5
987 : use pm_kind, only: SKC => SK5
988 : #include "pm_arrayShuffle@routines.inc.F90"
989 : end procedure
990 : #endif
991 :
992 : #if SK4_ENABLED
993 : module procedure setShuffledRNGF_D1_PSSK4
994 : use pm_kind, only: SKC => SK4
995 : #include "pm_arrayShuffle@routines.inc.F90"
996 : end procedure
997 : #endif
998 :
999 : #if SK3_ENABLED
1000 : module procedure setShuffledRNGF_D1_PSSK3
1001 : use pm_kind, only: SKC => SK3
1002 : #include "pm_arrayShuffle@routines.inc.F90"
1003 : end procedure
1004 : #endif
1005 :
1006 : #if SK2_ENABLED
1007 : module procedure setShuffledRNGF_D1_PSSK2
1008 : use pm_kind, only: SKC => SK2
1009 : #include "pm_arrayShuffle@routines.inc.F90"
1010 : end procedure
1011 : #endif
1012 :
1013 : #if SK1_ENABLED
1014 : module procedure setShuffledRNGF_D1_PSSK1
1015 : use pm_kind, only: SKC => SK1
1016 : #include "pm_arrayShuffle@routines.inc.F90"
1017 : end procedure
1018 : #endif
1019 :
1020 : #undef PSSK_ENABLED
1021 : #endif
1022 :
1023 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1024 :
1025 : #define BSSK_ENABLED 1
1026 :
1027 0 : module procedure setShuffledRNGF_D1_BSSK
1028 : use pm_kind, only: SKC => SK
1029 : #include "pm_arrayShuffle@routines.inc.F90"
1030 0 : end procedure
1031 :
1032 : #undef BSSK_ENABLED
1033 :
1034 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1035 :
1036 : #undef D1_ENABLED
1037 :
1038 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1039 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1040 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1041 :
1042 : #undef RNGF_ENABLED
1043 :
1044 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1045 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1046 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1047 :
1048 : #define RNGX_ENABLED 1
1049 :
1050 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1051 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1052 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1053 :
1054 : #define D0_ENABLED 1
1055 :
1056 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1057 :
1058 : #define SK_ENABLED 1
1059 :
1060 : #if SK5_ENABLED
1061 : module procedure setShuffledRNGX_D0_SK5
1062 : use pm_kind, only: SKC => SK5
1063 : #include "pm_arrayShuffle@routines.inc.F90"
1064 : end procedure
1065 : #endif
1066 :
1067 : #if SK4_ENABLED
1068 : module procedure setShuffledRNGX_D0_SK4
1069 : use pm_kind, only: SKC => SK4
1070 : #include "pm_arrayShuffle@routines.inc.F90"
1071 : end procedure
1072 : #endif
1073 :
1074 : #if SK3_ENABLED
1075 : module procedure setShuffledRNGX_D0_SK3
1076 : use pm_kind, only: SKC => SK3
1077 : #include "pm_arrayShuffle@routines.inc.F90"
1078 : end procedure
1079 : #endif
1080 :
1081 : #if SK2_ENABLED
1082 : module procedure setShuffledRNGX_D0_SK2
1083 : use pm_kind, only: SKC => SK2
1084 : #include "pm_arrayShuffle@routines.inc.F90"
1085 : end procedure
1086 : #endif
1087 :
1088 : #if SK1_ENABLED
1089 6 : module procedure setShuffledRNGX_D0_SK1
1090 : use pm_kind, only: SKC => SK1
1091 : #include "pm_arrayShuffle@routines.inc.F90"
1092 6 : end procedure
1093 : #endif
1094 :
1095 : #undef SK_ENABLED
1096 :
1097 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1098 :
1099 : #undef D0_ENABLED
1100 :
1101 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1102 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1103 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1104 :
1105 : #define D1_ENABLED 1
1106 :
1107 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1108 :
1109 : #define SK_ENABLED 1
1110 :
1111 : #if SK5_ENABLED
1112 : module procedure setShuffledRNGX_D1_SK5
1113 : use pm_kind, only: SKC => SK5
1114 : #include "pm_arrayShuffle@routines.inc.F90"
1115 : end procedure
1116 : #endif
1117 :
1118 : #if SK4_ENABLED
1119 : module procedure setShuffledRNGX_D1_SK4
1120 : use pm_kind, only: SKC => SK4
1121 : #include "pm_arrayShuffle@routines.inc.F90"
1122 : end procedure
1123 : #endif
1124 :
1125 : #if SK3_ENABLED
1126 : module procedure setShuffledRNGX_D1_SK3
1127 : use pm_kind, only: SKC => SK3
1128 : #include "pm_arrayShuffle@routines.inc.F90"
1129 : end procedure
1130 : #endif
1131 :
1132 : #if SK2_ENABLED
1133 : module procedure setShuffledRNGX_D1_SK2
1134 : use pm_kind, only: SKC => SK2
1135 : #include "pm_arrayShuffle@routines.inc.F90"
1136 : end procedure
1137 : #endif
1138 :
1139 : #if SK1_ENABLED
1140 6 : module procedure setShuffledRNGX_D1_SK1
1141 : use pm_kind, only: SKC => SK1
1142 : #include "pm_arrayShuffle@routines.inc.F90"
1143 6 : end procedure
1144 : #endif
1145 :
1146 : #undef SK_ENABLED
1147 :
1148 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1149 :
1150 : #define IK_ENABLED 1
1151 :
1152 : #if IK5_ENABLED
1153 6 : module procedure setShuffledRNGX_D1_IK5
1154 : use pm_kind, only: IKC => IK5
1155 : #include "pm_arrayShuffle@routines.inc.F90"
1156 6 : end procedure
1157 : #endif
1158 :
1159 : #if IK4_ENABLED
1160 6 : module procedure setShuffledRNGX_D1_IK4
1161 : use pm_kind, only: IKC => IK4
1162 : #include "pm_arrayShuffle@routines.inc.F90"
1163 6 : end procedure
1164 : #endif
1165 :
1166 : #if IK3_ENABLED
1167 958 : module procedure setShuffledRNGX_D1_IK3
1168 : use pm_kind, only: IKC => IK3
1169 : #include "pm_arrayShuffle@routines.inc.F90"
1170 958 : end procedure
1171 : #endif
1172 :
1173 : #if IK2_ENABLED
1174 6 : module procedure setShuffledRNGX_D1_IK2
1175 : use pm_kind, only: IKC => IK2
1176 : #include "pm_arrayShuffle@routines.inc.F90"
1177 6 : end procedure
1178 : #endif
1179 :
1180 : #if IK1_ENABLED
1181 6 : module procedure setShuffledRNGX_D1_IK1
1182 : use pm_kind, only: IKC => IK1
1183 : #include "pm_arrayShuffle@routines.inc.F90"
1184 6 : end procedure
1185 : #endif
1186 :
1187 : #undef IK_ENABLED
1188 :
1189 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1190 :
1191 : #define LK_ENABLED 1
1192 :
1193 : #if LK5_ENABLED
1194 6 : module procedure setShuffledRNGX_D1_LK5
1195 : use pm_kind, only: LKC => LK5
1196 : #include "pm_arrayShuffle@routines.inc.F90"
1197 6 : end procedure
1198 : #endif
1199 :
1200 : #if LK4_ENABLED
1201 6 : module procedure setShuffledRNGX_D1_LK4
1202 : use pm_kind, only: LKC => LK4
1203 : #include "pm_arrayShuffle@routines.inc.F90"
1204 6 : end procedure
1205 : #endif
1206 :
1207 : #if LK3_ENABLED
1208 6 : module procedure setShuffledRNGX_D1_LK3
1209 : use pm_kind, only: LKC => LK3
1210 : #include "pm_arrayShuffle@routines.inc.F90"
1211 6 : end procedure
1212 : #endif
1213 :
1214 : #if LK2_ENABLED
1215 6 : module procedure setShuffledRNGX_D1_LK2
1216 : use pm_kind, only: LKC => LK2
1217 : #include "pm_arrayShuffle@routines.inc.F90"
1218 6 : end procedure
1219 : #endif
1220 :
1221 : #if LK1_ENABLED
1222 6 : module procedure setShuffledRNGX_D1_LK1
1223 : use pm_kind, only: LKC => LK1
1224 : #include "pm_arrayShuffle@routines.inc.F90"
1225 6 : end procedure
1226 : #endif
1227 :
1228 : #undef LK_ENABLED
1229 :
1230 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1231 :
1232 : #define CK_ENABLED 1
1233 :
1234 : #if CK5_ENABLED
1235 : module procedure setShuffledRNGX_D1_CK5
1236 : use pm_kind, only: CKC => CK5
1237 : #include "pm_arrayShuffle@routines.inc.F90"
1238 : end procedure
1239 : #endif
1240 :
1241 : #if CK4_ENABLED
1242 6 : module procedure setShuffledRNGX_D1_CK4
1243 : use pm_kind, only: CKC => CK4
1244 : #include "pm_arrayShuffle@routines.inc.F90"
1245 6 : end procedure
1246 : #endif
1247 :
1248 : #if CK3_ENABLED
1249 6 : module procedure setShuffledRNGX_D1_CK3
1250 : use pm_kind, only: CKC => CK3
1251 : #include "pm_arrayShuffle@routines.inc.F90"
1252 6 : end procedure
1253 : #endif
1254 :
1255 : #if CK2_ENABLED
1256 6 : module procedure setShuffledRNGX_D1_CK2
1257 : use pm_kind, only: CKC => CK2
1258 : #include "pm_arrayShuffle@routines.inc.F90"
1259 6 : end procedure
1260 : #endif
1261 :
1262 : #if CK1_ENABLED
1263 6 : module procedure setShuffledRNGX_D1_CK1
1264 : use pm_kind, only: CKC => CK1
1265 : #include "pm_arrayShuffle@routines.inc.F90"
1266 6 : end procedure
1267 : #endif
1268 :
1269 : #undef CK_ENABLED
1270 :
1271 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1272 :
1273 : #define RK_ENABLED 1
1274 :
1275 : #if RK5_ENABLED
1276 : module procedure setShuffledRNGX_D1_RK5
1277 : use pm_kind, only: RKC => RK5
1278 : #include "pm_arrayShuffle@routines.inc.F90"
1279 : end procedure
1280 : #endif
1281 :
1282 : #if RK4_ENABLED
1283 6 : module procedure setShuffledRNGX_D1_RK4
1284 : use pm_kind, only: RKC => RK4
1285 : #include "pm_arrayShuffle@routines.inc.F90"
1286 6 : end procedure
1287 : #endif
1288 :
1289 : #if RK3_ENABLED
1290 6 : module procedure setShuffledRNGX_D1_RK3
1291 : use pm_kind, only: RKC => RK3
1292 : #include "pm_arrayShuffle@routines.inc.F90"
1293 6 : end procedure
1294 : #endif
1295 :
1296 : #if RK2_ENABLED
1297 6 : module procedure setShuffledRNGX_D1_RK2
1298 : use pm_kind, only: RKC => RK2
1299 : #include "pm_arrayShuffle@routines.inc.F90"
1300 6 : end procedure
1301 : #endif
1302 :
1303 : #if RK1_ENABLED
1304 6 : module procedure setShuffledRNGX_D1_RK1
1305 : use pm_kind, only: RKC => RK1
1306 : #include "pm_arrayShuffle@routines.inc.F90"
1307 6 : end procedure
1308 : #endif
1309 :
1310 : #undef RK_ENABLED
1311 :
1312 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1313 :
1314 : #if !__GFORTRAN__
1315 : #define PSSK_ENABLED 1
1316 :
1317 : #if SK5_ENABLED
1318 : module procedure setShuffledRNGX_D1_PSSK5
1319 : use pm_kind, only: SKC => SK5
1320 : #include "pm_arrayShuffle@routines.inc.F90"
1321 : end procedure
1322 : #endif
1323 :
1324 : #if SK4_ENABLED
1325 : module procedure setShuffledRNGX_D1_PSSK4
1326 : use pm_kind, only: SKC => SK4
1327 : #include "pm_arrayShuffle@routines.inc.F90"
1328 : end procedure
1329 : #endif
1330 :
1331 : #if SK3_ENABLED
1332 : module procedure setShuffledRNGX_D1_PSSK3
1333 : use pm_kind, only: SKC => SK3
1334 : #include "pm_arrayShuffle@routines.inc.F90"
1335 : end procedure
1336 : #endif
1337 :
1338 : #if SK2_ENABLED
1339 : module procedure setShuffledRNGX_D1_PSSK2
1340 : use pm_kind, only: SKC => SK2
1341 : #include "pm_arrayShuffle@routines.inc.F90"
1342 : end procedure
1343 : #endif
1344 :
1345 : #if SK1_ENABLED
1346 : module procedure setShuffledRNGX_D1_PSSK1
1347 : use pm_kind, only: SKC => SK1
1348 : #include "pm_arrayShuffle@routines.inc.F90"
1349 : end procedure
1350 : #endif
1351 :
1352 : #undef PSSK_ENABLED
1353 : #endif
1354 :
1355 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1356 :
1357 : #define BSSK_ENABLED 1
1358 :
1359 0 : module procedure setShuffledRNGX_D1_BSSK
1360 : use pm_kind, only: SKC => SK
1361 : #include "pm_arrayShuffle@routines.inc.F90"
1362 0 : end procedure
1363 :
1364 : #undef BSSK_ENABLED
1365 :
1366 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1367 :
1368 : #undef D1_ENABLED
1369 :
1370 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1371 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1372 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1373 :
1374 : #undef RNGX_ENABLED
1375 :
1376 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1377 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1378 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1379 :
1380 : #undef setShuffled_ENABLED
1381 :
1382 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1383 :
1384 : #undef CHECK_ASSERTION
1385 :
1386 : end submodule routines
|