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_swap](@ref pm_swap).
19 : !>
20 : !> \finmain
21 : !>
22 : !> \author
23 : !> \FatemehBagheri, Wednesday 12:20 PM, September 22, 2021, Dallas, TX
24 :
25 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 :
27 : submodule (pm_swap) routines ! LCOV_EXCL_LINE
28 :
29 : #if CHECK_ENABLED
30 : ! \bug Bypass Intel `ifort` 2022 compiler bug for too many use statements in submodule procedures.
31 : use pm_err, only: getFine
32 : use pm_val2str, only: getStr
33 : use pm_err, only: setAsserted
34 : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) \
35 : call setAsserted(ASSERTION,getFine(__FILE__,LINE)//MODULE_NAME//MSG);
36 : #else
37 : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) continue;
38 : #endif
39 :
40 : implicit none
41 :
42 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
43 :
44 : contains
45 :
46 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
47 :
48 : #define setSwapped_ENABLED 1
49 :
50 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
51 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
53 :
54 : #define D0_ENABLED 1
55 :
56 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
57 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
58 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
59 :
60 : #define Def_ENABLED 1
61 :
62 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
63 :
64 : #define SK_ENABLED 1
65 :
66 : #if SK5_ENABLED
67 : module procedure setSwappedDef_D0_SK5
68 : use pm_kind, only: SKC => SK5
69 : #include "pm_swap@routines.inc.F90"
70 : end procedure
71 : #endif
72 :
73 : #if SK4_ENABLED
74 : module procedure setSwappedDef_D0_SK4
75 : use pm_kind, only: SKC => SK4
76 : #include "pm_swap@routines.inc.F90"
77 : end procedure
78 : #endif
79 :
80 : #if SK3_ENABLED
81 : module procedure setSwappedDef_D0_SK3
82 : use pm_kind, only: SKC => SK3
83 : #include "pm_swap@routines.inc.F90"
84 : end procedure
85 : #endif
86 :
87 : #if SK2_ENABLED
88 : module procedure setSwappedDef_D0_SK2
89 : use pm_kind, only: SKC => SK2
90 : #include "pm_swap@routines.inc.F90"
91 : end procedure
92 : #endif
93 :
94 : #if SK1_ENABLED
95 1 : module procedure setSwappedDef_D0_SK1
96 : use pm_kind, only: SKC => SK1
97 : #include "pm_swap@routines.inc.F90"
98 : end procedure
99 : #endif
100 :
101 : #undef SK_ENABLED
102 :
103 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
104 :
105 : #define IK_ENABLED 1
106 :
107 : #if IK5_ENABLED
108 0 : module procedure setSwappedDef_D0_IK5
109 : use pm_kind, only: IKC => IK5
110 : #include "pm_swap@routines.inc.F90"
111 0 : end procedure
112 : #endif
113 :
114 : #if IK4_ENABLED
115 0 : module procedure setSwappedDef_D0_IK4
116 : use pm_kind, only: IKC => IK4
117 : #include "pm_swap@routines.inc.F90"
118 0 : end procedure
119 : #endif
120 :
121 : #if IK3_ENABLED
122 7 : module procedure setSwappedDef_D0_IK3
123 : use pm_kind, only: IKC => IK3
124 : #include "pm_swap@routines.inc.F90"
125 7 : end procedure
126 : #endif
127 :
128 : #if IK2_ENABLED
129 0 : module procedure setSwappedDef_D0_IK2
130 : use pm_kind, only: IKC => IK2
131 : #include "pm_swap@routines.inc.F90"
132 0 : end procedure
133 : #endif
134 :
135 : #if IK1_ENABLED
136 0 : module procedure setSwappedDef_D0_IK1
137 : use pm_kind, only: IKC => IK1
138 : #include "pm_swap@routines.inc.F90"
139 0 : end procedure
140 : #endif
141 :
142 : #undef IK_ENABLED
143 :
144 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
145 :
146 : #define LK_ENABLED 1
147 :
148 : #if LK5_ENABLED
149 0 : module procedure setSwappedDef_D0_LK5
150 : use pm_kind, only: LKC => LK5
151 : #include "pm_swap@routines.inc.F90"
152 0 : end procedure
153 : #endif
154 :
155 : #if LK4_ENABLED
156 0 : module procedure setSwappedDef_D0_LK4
157 : use pm_kind, only: LKC => LK4
158 : #include "pm_swap@routines.inc.F90"
159 0 : end procedure
160 : #endif
161 :
162 : #if LK3_ENABLED
163 1 : module procedure setSwappedDef_D0_LK3
164 : use pm_kind, only: LKC => LK3
165 : #include "pm_swap@routines.inc.F90"
166 1 : end procedure
167 : #endif
168 :
169 : #if LK2_ENABLED
170 0 : module procedure setSwappedDef_D0_LK2
171 : use pm_kind, only: LKC => LK2
172 : #include "pm_swap@routines.inc.F90"
173 0 : end procedure
174 : #endif
175 :
176 : #if LK1_ENABLED
177 0 : module procedure setSwappedDef_D0_LK1
178 : use pm_kind, only: LKC => LK1
179 : #include "pm_swap@routines.inc.F90"
180 0 : end procedure
181 : #endif
182 :
183 : #undef LK_ENABLED
184 :
185 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
186 :
187 : #define CK_ENABLED 1
188 :
189 : #if CK5_ENABLED
190 : module procedure setSwappedDef_D0_CK5
191 : use pm_kind, only: CKC => CK5
192 : #include "pm_swap@routines.inc.F90"
193 : end procedure
194 : #endif
195 :
196 : #if CK4_ENABLED
197 0 : module procedure setSwappedDef_D0_CK4
198 : use pm_kind, only: CKC => CK4
199 : #include "pm_swap@routines.inc.F90"
200 0 : end procedure
201 : #endif
202 :
203 : #if CK3_ENABLED
204 0 : module procedure setSwappedDef_D0_CK3
205 : use pm_kind, only: CKC => CK3
206 : #include "pm_swap@routines.inc.F90"
207 0 : end procedure
208 : #endif
209 :
210 : #if CK2_ENABLED
211 0 : module procedure setSwappedDef_D0_CK2
212 : use pm_kind, only: CKC => CK2
213 : #include "pm_swap@routines.inc.F90"
214 0 : end procedure
215 : #endif
216 :
217 : #if CK1_ENABLED
218 1 : module procedure setSwappedDef_D0_CK1
219 : use pm_kind, only: CKC => CK1
220 : #include "pm_swap@routines.inc.F90"
221 1 : end procedure
222 : #endif
223 :
224 : #undef CK_ENABLED
225 :
226 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
227 :
228 : #define RK_ENABLED 1
229 :
230 : #if RK5_ENABLED
231 : module procedure setSwappedDef_D0_RK5
232 : use pm_kind, only: RKC => RK5
233 : #include "pm_swap@routines.inc.F90"
234 : end procedure
235 : #endif
236 :
237 : #if RK4_ENABLED
238 0 : module procedure setSwappedDef_D0_RK4
239 : use pm_kind, only: RKC => RK4
240 : #include "pm_swap@routines.inc.F90"
241 0 : end procedure
242 : #endif
243 :
244 : #if RK3_ENABLED
245 0 : module procedure setSwappedDef_D0_RK3
246 : use pm_kind, only: RKC => RK3
247 : #include "pm_swap@routines.inc.F90"
248 0 : end procedure
249 : #endif
250 :
251 : #if RK2_ENABLED
252 0 : module procedure setSwappedDef_D0_RK2
253 : use pm_kind, only: RKC => RK2
254 : #include "pm_swap@routines.inc.F90"
255 0 : end procedure
256 : #endif
257 :
258 : #if RK1_ENABLED
259 1 : module procedure setSwappedDef_D0_RK1
260 : use pm_kind, only: RKC => RK1
261 : #include "pm_swap@routines.inc.F90"
262 1 : end procedure
263 : #endif
264 :
265 : #undef RK_ENABLED
266 :
267 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
268 :
269 : #undef Def_ENABLED
270 :
271 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
272 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
273 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
274 :
275 : #define Inc_ENABLED 1
276 :
277 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
278 :
279 : #define SK_ENABLED 1
280 :
281 : #if SK5_ENABLED
282 : module procedure setSwappedInc_D0_SK5
283 : use pm_kind, only: SKC => SK5
284 : #include "pm_swap@routines.inc.F90"
285 : end procedure
286 : #endif
287 :
288 : #if SK4_ENABLED
289 : module procedure setSwappedInc_D0_SK4
290 : use pm_kind, only: SKC => SK4
291 : #include "pm_swap@routines.inc.F90"
292 : end procedure
293 : #endif
294 :
295 : #if SK3_ENABLED
296 : module procedure setSwappedInc_D0_SK3
297 : use pm_kind, only: SKC => SK3
298 : #include "pm_swap@routines.inc.F90"
299 : end procedure
300 : #endif
301 :
302 : #if SK2_ENABLED
303 : module procedure setSwappedInc_D0_SK2
304 : use pm_kind, only: SKC => SK2
305 : #include "pm_swap@routines.inc.F90"
306 : end procedure
307 : #endif
308 :
309 : #if SK1_ENABLED
310 1 : module procedure setSwappedInc_D0_SK1
311 : use pm_kind, only: SKC => SK1
312 : #include "pm_swap@routines.inc.F90"
313 : end procedure
314 : #endif
315 :
316 : #undef SK_ENABLED
317 :
318 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
319 :
320 : #undef Inc_ENABLED
321 :
322 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
323 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
324 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
325 :
326 : #undef D0_ENABLED
327 :
328 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
329 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
330 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
331 :
332 : #define D1_ENABLED 1
333 :
334 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
335 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
336 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
337 :
338 : #define Def_ENABLED 1
339 :
340 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
341 :
342 : #define SK_ENABLED 1
343 :
344 : #if SK5_ENABLED
345 : module procedure setSwappedDef_D1_SK5
346 : use pm_kind, only: SKC => SK5
347 : #include "pm_swap@routines.inc.F90"
348 : end procedure
349 : #endif
350 :
351 : #if SK4_ENABLED
352 : module procedure setSwappedDef_D1_SK4
353 : use pm_kind, only: SKC => SK4
354 : #include "pm_swap@routines.inc.F90"
355 : end procedure
356 : #endif
357 :
358 : #if SK3_ENABLED
359 : module procedure setSwappedDef_D1_SK3
360 : use pm_kind, only: SKC => SK3
361 : #include "pm_swap@routines.inc.F90"
362 : end procedure
363 : #endif
364 :
365 : #if SK2_ENABLED
366 : module procedure setSwappedDef_D1_SK2
367 : use pm_kind, only: SKC => SK2
368 : #include "pm_swap@routines.inc.F90"
369 : end procedure
370 : #endif
371 :
372 : #if SK1_ENABLED
373 1 : module procedure setSwappedDef_D1_SK1
374 : use pm_kind, only: SKC => SK1
375 : #include "pm_swap@routines.inc.F90"
376 : end procedure
377 : #endif
378 :
379 : #undef SK_ENABLED
380 :
381 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
382 :
383 : #define IK_ENABLED 1
384 :
385 : #if IK5_ENABLED
386 0 : module procedure setSwappedDef_D1_IK5
387 : use pm_kind, only: IKC => IK5
388 : #include "pm_swap@routines.inc.F90"
389 : end procedure
390 : #endif
391 :
392 : #if IK4_ENABLED
393 0 : module procedure setSwappedDef_D1_IK4
394 : use pm_kind, only: IKC => IK4
395 : #include "pm_swap@routines.inc.F90"
396 : end procedure
397 : #endif
398 :
399 : #if IK3_ENABLED
400 1 : module procedure setSwappedDef_D1_IK3
401 : use pm_kind, only: IKC => IK3
402 : #include "pm_swap@routines.inc.F90"
403 : end procedure
404 : #endif
405 :
406 : #if IK2_ENABLED
407 0 : module procedure setSwappedDef_D1_IK2
408 : use pm_kind, only: IKC => IK2
409 : #include "pm_swap@routines.inc.F90"
410 : end procedure
411 : #endif
412 :
413 : #if IK1_ENABLED
414 0 : module procedure setSwappedDef_D1_IK1
415 : use pm_kind, only: IKC => IK1
416 : #include "pm_swap@routines.inc.F90"
417 : end procedure
418 : #endif
419 :
420 : #undef IK_ENABLED
421 :
422 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
423 :
424 : #define LK_ENABLED 1
425 :
426 : #if LK5_ENABLED
427 0 : module procedure setSwappedDef_D1_LK5
428 : use pm_kind, only: LKC => LK5
429 : #include "pm_swap@routines.inc.F90"
430 : end procedure
431 : #endif
432 :
433 : #if LK4_ENABLED
434 0 : module procedure setSwappedDef_D1_LK4
435 : use pm_kind, only: LKC => LK4
436 : #include "pm_swap@routines.inc.F90"
437 : end procedure
438 : #endif
439 :
440 : #if LK3_ENABLED
441 1 : module procedure setSwappedDef_D1_LK3
442 : use pm_kind, only: LKC => LK3
443 : #include "pm_swap@routines.inc.F90"
444 : end procedure
445 : #endif
446 :
447 : #if LK2_ENABLED
448 0 : module procedure setSwappedDef_D1_LK2
449 : use pm_kind, only: LKC => LK2
450 : #include "pm_swap@routines.inc.F90"
451 : end procedure
452 : #endif
453 :
454 : #if LK1_ENABLED
455 0 : module procedure setSwappedDef_D1_LK1
456 : use pm_kind, only: LKC => LK1
457 : #include "pm_swap@routines.inc.F90"
458 : end procedure
459 : #endif
460 :
461 : #undef LK_ENABLED
462 :
463 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
464 :
465 : #define CK_ENABLED 1
466 :
467 : #if CK5_ENABLED
468 : module procedure setSwappedDef_D1_CK5
469 : use pm_kind, only: CKC => CK5
470 : #include "pm_swap@routines.inc.F90"
471 : end procedure
472 : #endif
473 :
474 : #if CK4_ENABLED
475 0 : module procedure setSwappedDef_D1_CK4
476 : use pm_kind, only: CKC => CK4
477 : #include "pm_swap@routines.inc.F90"
478 : end procedure
479 : #endif
480 :
481 : #if CK3_ENABLED
482 0 : module procedure setSwappedDef_D1_CK3
483 : use pm_kind, only: CKC => CK3
484 : #include "pm_swap@routines.inc.F90"
485 : end procedure
486 : #endif
487 :
488 : #if CK2_ENABLED
489 0 : module procedure setSwappedDef_D1_CK2
490 : use pm_kind, only: CKC => CK2
491 : #define DISPATCH_ENABLED 1
492 : #include "pm_swap@routines.inc.F90"
493 : #undef DISPATCH_ENABLED
494 : end procedure
495 : #endif
496 :
497 : #if CK1_ENABLED
498 1 : module procedure setSwappedDef_D1_CK1
499 : use pm_kind, only: CKC => CK1
500 : #define DISPATCH_ENABLED 1
501 : #include "pm_swap@routines.inc.F90"
502 : #undef DISPATCH_ENABLED
503 : end procedure
504 : #endif
505 :
506 : #undef CK_ENABLED
507 :
508 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
509 :
510 : #define RK_ENABLED 1
511 :
512 : #if RK5_ENABLED
513 : module procedure setSwappedDef_D1_RK5
514 : use pm_kind, only: RKC => RK5
515 : #include "pm_swap@routines.inc.F90"
516 : end procedure
517 : #endif
518 :
519 : #if RK4_ENABLED
520 0 : module procedure setSwappedDef_D1_RK4
521 : use pm_kind, only: RKC => RK4
522 : #include "pm_swap@routines.inc.F90"
523 : end procedure
524 : #endif
525 :
526 : #if RK3_ENABLED
527 0 : module procedure setSwappedDef_D1_RK3
528 : use pm_kind, only: RKC => RK3
529 : #include "pm_swap@routines.inc.F90"
530 : end procedure
531 : #endif
532 :
533 : #if RK2_ENABLED
534 0 : module procedure setSwappedDef_D1_RK2
535 : use pm_kind, only: RKC => RK2
536 : #define DISPATCH_ENABLED 1
537 : #include "pm_swap@routines.inc.F90"
538 : #undef DISPATCH_ENABLED
539 : end procedure
540 : #endif
541 :
542 : #if RK1_ENABLED
543 1 : module procedure setSwappedDef_D1_RK1
544 : use pm_kind, only: RKC => RK1
545 : #define DISPATCH_ENABLED 1
546 : #include "pm_swap@routines.inc.F90"
547 : #undef DISPATCH_ENABLED
548 : end procedure
549 : #endif
550 :
551 : #undef RK_ENABLED
552 :
553 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
554 :
555 : #undef Def_ENABLED
556 :
557 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
558 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
559 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
560 :
561 : #define Inc_ENABLED 1
562 :
563 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
564 :
565 : #define SK_ENABLED 1
566 :
567 : #if SK5_ENABLED
568 : module procedure setSwappedInc_D1_SK5
569 : use pm_kind, only: SKC => SK5
570 : #include "pm_swap@routines.inc.F90"
571 : end procedure
572 : #endif
573 :
574 : #if SK4_ENABLED
575 : module procedure setSwappedInc_D1_SK4
576 : use pm_kind, only: SKC => SK4
577 : #include "pm_swap@routines.inc.F90"
578 : end procedure
579 : #endif
580 :
581 : #if SK3_ENABLED
582 : module procedure setSwappedInc_D1_SK3
583 : use pm_kind, only: SKC => SK3
584 : #include "pm_swap@routines.inc.F90"
585 : end procedure
586 : #endif
587 :
588 : #if SK2_ENABLED
589 : module procedure setSwappedInc_D1_SK2
590 : use pm_kind, only: SKC => SK2
591 : #include "pm_swap@routines.inc.F90"
592 : end procedure
593 : #endif
594 :
595 : #if SK1_ENABLED
596 0 : module procedure setSwappedInc_D1_SK1
597 : use pm_kind, only: SKC => SK1
598 : #include "pm_swap@routines.inc.F90"
599 : end procedure
600 : #endif
601 :
602 : #undef SK_ENABLED
603 :
604 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
605 :
606 : #define IK_ENABLED 1
607 :
608 : #if IK5_ENABLED
609 0 : module procedure setSwappedInc_D1_IK5
610 : use pm_kind, only: IKC => IK5
611 : #include "pm_swap@routines.inc.F90"
612 : end procedure
613 : #endif
614 :
615 : #if IK4_ENABLED
616 0 : module procedure setSwappedInc_D1_IK4
617 : use pm_kind, only: IKC => IK4
618 : #include "pm_swap@routines.inc.F90"
619 : end procedure
620 : #endif
621 :
622 : #if IK3_ENABLED
623 3 : module procedure setSwappedInc_D1_IK3
624 : use pm_kind, only: IKC => IK3
625 : #include "pm_swap@routines.inc.F90"
626 : end procedure
627 : #endif
628 :
629 : #if IK2_ENABLED
630 0 : module procedure setSwappedInc_D1_IK2
631 : use pm_kind, only: IKC => IK2
632 : #include "pm_swap@routines.inc.F90"
633 : end procedure
634 : #endif
635 :
636 : #if IK1_ENABLED
637 0 : module procedure setSwappedInc_D1_IK1
638 : use pm_kind, only: IKC => IK1
639 : #include "pm_swap@routines.inc.F90"
640 : end procedure
641 : #endif
642 :
643 : #undef IK_ENABLED
644 :
645 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
646 :
647 : #define LK_ENABLED 1
648 :
649 : #if LK5_ENABLED
650 0 : module procedure setSwappedInc_D1_LK5
651 : use pm_kind, only: LKC => LK5
652 : #include "pm_swap@routines.inc.F90"
653 : end procedure
654 : #endif
655 :
656 : #if LK4_ENABLED
657 0 : module procedure setSwappedInc_D1_LK4
658 : use pm_kind, only: LKC => LK4
659 : #include "pm_swap@routines.inc.F90"
660 : end procedure
661 : #endif
662 :
663 : #if LK3_ENABLED
664 0 : module procedure setSwappedInc_D1_LK3
665 : use pm_kind, only: LKC => LK3
666 : #include "pm_swap@routines.inc.F90"
667 : end procedure
668 : #endif
669 :
670 : #if LK2_ENABLED
671 0 : module procedure setSwappedInc_D1_LK2
672 : use pm_kind, only: LKC => LK2
673 : #include "pm_swap@routines.inc.F90"
674 : end procedure
675 : #endif
676 :
677 : #if LK1_ENABLED
678 0 : module procedure setSwappedInc_D1_LK1
679 : use pm_kind, only: LKC => LK1
680 : #include "pm_swap@routines.inc.F90"
681 : end procedure
682 : #endif
683 :
684 : #undef LK_ENABLED
685 :
686 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
687 :
688 : #define CK_ENABLED 1
689 :
690 : #if CK5_ENABLED
691 : module procedure setSwappedInc_D1_CK5
692 : use pm_kind, only: CKC => CK5
693 : #include "pm_swap@routines.inc.F90"
694 : end procedure
695 : #endif
696 :
697 : #if CK4_ENABLED
698 0 : module procedure setSwappedInc_D1_CK4
699 : use pm_kind, only: CKC => CK4
700 : #include "pm_swap@routines.inc.F90"
701 : end procedure
702 : #endif
703 :
704 : #if CK3_ENABLED
705 0 : module procedure setSwappedInc_D1_CK3
706 : use pm_kind, only: CKC => CK3
707 : #include "pm_swap@routines.inc.F90"
708 : end procedure
709 : #endif
710 :
711 : #if CK2_ENABLED
712 0 : module procedure setSwappedInc_D1_CK2
713 : use pm_kind, only: CKC => CK2
714 : #define DISPATCH_ENABLED 1
715 : #include "pm_swap@routines.inc.F90"
716 : #undef DISPATCH_ENABLED
717 : end procedure
718 : #endif
719 :
720 : #if CK1_ENABLED
721 0 : module procedure setSwappedInc_D1_CK1
722 : use pm_kind, only: CKC => CK1
723 : #define DISPATCH_ENABLED 1
724 : #include "pm_swap@routines.inc.F90"
725 : #undef DISPATCH_ENABLED
726 : end procedure
727 : #endif
728 :
729 : #undef CK_ENABLED
730 :
731 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
732 :
733 : #define RK_ENABLED 1
734 :
735 : #if RK5_ENABLED
736 : module procedure setSwappedInc_D1_RK5
737 : use pm_kind, only: RKC => RK5
738 : #include "pm_swap@routines.inc.F90"
739 : end procedure
740 : #endif
741 :
742 : #if RK4_ENABLED
743 0 : module procedure setSwappedInc_D1_RK4
744 : use pm_kind, only: RKC => RK4
745 : #include "pm_swap@routines.inc.F90"
746 : end procedure
747 : #endif
748 :
749 : #if RK3_ENABLED
750 0 : module procedure setSwappedInc_D1_RK3
751 : use pm_kind, only: RKC => RK3
752 : #include "pm_swap@routines.inc.F90"
753 : end procedure
754 : #endif
755 :
756 : #if RK2_ENABLED
757 0 : module procedure setSwappedInc_D1_RK2
758 : use pm_kind, only: RKC => RK2
759 : #define DISPATCH_ENABLED 1
760 : #include "pm_swap@routines.inc.F90"
761 : #undef DISPATCH_ENABLED
762 : end procedure
763 : #endif
764 :
765 : #if RK1_ENABLED
766 3 : module procedure setSwappedInc_D1_RK1
767 : use pm_kind, only: RKC => RK1
768 : #define DISPATCH_ENABLED 1
769 : #include "pm_swap@routines.inc.F90"
770 : #undef DISPATCH_ENABLED
771 : end procedure
772 : #endif
773 :
774 : #undef RK_ENABLED
775 :
776 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
777 :
778 : #undef Inc_ENABLED
779 :
780 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
781 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
782 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
783 :
784 : #undef D1_ENABLED
785 :
786 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
787 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
788 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
789 :
790 : #undef setSwapped_ENABLED
791 :
792 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
793 :
794 : end submodule routines
|