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_arrayCompact](@ref pm_arrayCompact).
19 : !>
20 : !> \finmain
21 : !>
22 : !> \author
23 : !> \AmirShahmoradi, Saturday 1:48 AM, August 20, 2016, Institute for Computational Engineering and Sciences, UT Austin, TX
24 :
25 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 :
27 : submodule (pm_arrayCompact) 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 getCompact_ENABLED 1
48 :
49 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
50 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
51 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 :
53 : #define D0_ENABLED 1
54 :
55 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
56 :
57 : #define SK_ENABLED 1
58 :
59 : #if SK5_ENABLED
60 : module procedure getCompact_D0_SK5
61 : use pm_kind, only: SKC => SK5
62 : #include "pm_arrayCompact@routines.inc.F90"
63 : end procedure
64 : #endif
65 :
66 : #if SK4_ENABLED
67 : module procedure getCompact_D0_SK4
68 : use pm_kind, only: SKC => SK4
69 : #include "pm_arrayCompact@routines.inc.F90"
70 : end procedure
71 : #endif
72 :
73 : #if SK3_ENABLED
74 : module procedure getCompact_D0_SK3
75 : use pm_kind, only: SKC => SK3
76 : #include "pm_arrayCompact@routines.inc.F90"
77 : end procedure
78 : #endif
79 :
80 : #if SK2_ENABLED
81 : module procedure getCompact_D0_SK2
82 : use pm_kind, only: SKC => SK2
83 : #include "pm_arrayCompact@routines.inc.F90"
84 : end procedure
85 : #endif
86 :
87 : #if SK1_ENABLED
88 3 : module procedure getCompact_D0_SK1
89 : use pm_kind, only: SKC => SK1
90 : #include "pm_arrayCompact@routines.inc.F90"
91 3 : end procedure
92 : #endif
93 :
94 : #undef SK_ENABLED
95 :
96 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
97 :
98 : #undef D0_ENABLED
99 :
100 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
101 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
102 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
103 :
104 : #define D1_ENABLED 1
105 :
106 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
107 :
108 : #define SK_ENABLED 1
109 :
110 : #if SK5_ENABLED
111 : module procedure getCompact_D1_SK5
112 : use pm_kind, only: SKC => SK5
113 : #include "pm_arrayCompact@routines.inc.F90"
114 : end procedure
115 : #endif
116 :
117 : #if SK4_ENABLED
118 : module procedure getCompact_D1_SK4
119 : use pm_kind, only: SKC => SK4
120 : #include "pm_arrayCompact@routines.inc.F90"
121 : end procedure
122 : #endif
123 :
124 : #if SK3_ENABLED
125 : module procedure getCompact_D1_SK3
126 : use pm_kind, only: SKC => SK3
127 : #include "pm_arrayCompact@routines.inc.F90"
128 : end procedure
129 : #endif
130 :
131 : #if SK2_ENABLED
132 : module procedure getCompact_D1_SK2
133 : use pm_kind, only: SKC => SK2
134 : #include "pm_arrayCompact@routines.inc.F90"
135 : end procedure
136 : #endif
137 :
138 : #if SK1_ENABLED
139 3 : module procedure getCompact_D1_SK1
140 : use pm_kind, only: SKC => SK1
141 : #include "pm_arrayCompact@routines.inc.F90"
142 : end procedure
143 : #endif
144 :
145 : #undef SK_ENABLED
146 :
147 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
148 :
149 : #define IK_ENABLED 1
150 :
151 : #if IK5_ENABLED
152 2 : module procedure getCompact_D1_IK5
153 : use pm_kind, only: IKC => IK5
154 : #include "pm_arrayCompact@routines.inc.F90"
155 : end procedure
156 : #endif
157 :
158 : #if IK4_ENABLED
159 2 : module procedure getCompact_D1_IK4
160 : use pm_kind, only: IKC => IK4
161 : #include "pm_arrayCompact@routines.inc.F90"
162 : end procedure
163 : #endif
164 :
165 : #if IK3_ENABLED
166 3 : module procedure getCompact_D1_IK3
167 : use pm_kind, only: IKC => IK3
168 : #include "pm_arrayCompact@routines.inc.F90"
169 : end procedure
170 : #endif
171 :
172 : #if IK2_ENABLED
173 2 : module procedure getCompact_D1_IK2
174 : use pm_kind, only: IKC => IK2
175 : #include "pm_arrayCompact@routines.inc.F90"
176 : end procedure
177 : #endif
178 :
179 : #if IK1_ENABLED
180 2 : module procedure getCompact_D1_IK1
181 : use pm_kind, only: IKC => IK1
182 : #include "pm_arrayCompact@routines.inc.F90"
183 : end procedure
184 : #endif
185 :
186 : #undef IK_ENABLED
187 :
188 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
189 :
190 : #define LK_ENABLED 1
191 :
192 : #if LK5_ENABLED
193 2 : module procedure getCompact_D1_LK5
194 : use pm_kind, only: LKC => LK5
195 : #include "pm_arrayCompact@routines.inc.F90"
196 : end procedure
197 : #endif
198 :
199 : #if LK4_ENABLED
200 2 : module procedure getCompact_D1_LK4
201 : use pm_kind, only: LKC => LK4
202 : #include "pm_arrayCompact@routines.inc.F90"
203 : end procedure
204 : #endif
205 :
206 : #if LK3_ENABLED
207 3 : module procedure getCompact_D1_LK3
208 : use pm_kind, only: LKC => LK3
209 : #include "pm_arrayCompact@routines.inc.F90"
210 : end procedure
211 : #endif
212 :
213 : #if LK2_ENABLED
214 2 : module procedure getCompact_D1_LK2
215 : use pm_kind, only: LKC => LK2
216 : #include "pm_arrayCompact@routines.inc.F90"
217 : end procedure
218 : #endif
219 :
220 : #if LK1_ENABLED
221 2 : module procedure getCompact_D1_LK1
222 : use pm_kind, only: LKC => LK1
223 : #include "pm_arrayCompact@routines.inc.F90"
224 : end procedure
225 : #endif
226 :
227 : #undef LK_ENABLED
228 :
229 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
230 :
231 : #define CK_ENABLED 1
232 :
233 : #if CK5_ENABLED
234 : module procedure getCompact_D1_CK5
235 : use pm_kind, only: CKC => CK5
236 : #include "pm_arrayCompact@routines.inc.F90"
237 : end procedure
238 : #endif
239 :
240 : #if CK4_ENABLED
241 2 : module procedure getCompact_D1_CK4
242 : use pm_kind, only: CKC => CK4
243 : #include "pm_arrayCompact@routines.inc.F90"
244 : end procedure
245 : #endif
246 :
247 : #if CK3_ENABLED
248 2 : module procedure getCompact_D1_CK3
249 : use pm_kind, only: CKC => CK3
250 : #include "pm_arrayCompact@routines.inc.F90"
251 : end procedure
252 : #endif
253 :
254 : #if CK2_ENABLED
255 3 : module procedure getCompact_D1_CK2
256 : use pm_kind, only: CKC => CK2
257 : #include "pm_arrayCompact@routines.inc.F90"
258 : end procedure
259 : #endif
260 :
261 : #if CK1_ENABLED
262 2 : module procedure getCompact_D1_CK1
263 : use pm_kind, only: CKC => CK1
264 : #include "pm_arrayCompact@routines.inc.F90"
265 : end procedure
266 : #endif
267 :
268 : #undef CK_ENABLED
269 :
270 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
271 :
272 : #define RK_ENABLED 1
273 :
274 : #if RK5_ENABLED
275 : module procedure getCompact_D1_RK5
276 : use pm_kind, only: RKC => RK5
277 : #include "pm_arrayCompact@routines.inc.F90"
278 : end procedure
279 : #endif
280 :
281 : #if RK4_ENABLED
282 2 : module procedure getCompact_D1_RK4
283 : use pm_kind, only: RKC => RK4
284 : #include "pm_arrayCompact@routines.inc.F90"
285 : end procedure
286 : #endif
287 :
288 : #if RK3_ENABLED
289 2 : module procedure getCompact_D1_RK3
290 : use pm_kind, only: RKC => RK3
291 : #include "pm_arrayCompact@routines.inc.F90"
292 : end procedure
293 : #endif
294 :
295 : #if RK2_ENABLED
296 3 : module procedure getCompact_D1_RK2
297 : use pm_kind, only: RKC => RK2
298 : #include "pm_arrayCompact@routines.inc.F90"
299 : end procedure
300 : #endif
301 :
302 : #if RK1_ENABLED
303 2 : module procedure getCompact_D1_RK1
304 : use pm_kind, only: RKC => RK1
305 : #include "pm_arrayCompact@routines.inc.F90"
306 : end procedure
307 : #endif
308 :
309 : #undef RK_ENABLED
310 :
311 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
312 :
313 : #undef D1_ENABLED
314 :
315 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
316 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
317 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
318 :
319 : #define D2_ENABLED 1
320 :
321 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
322 :
323 : #define SK_ENABLED 1
324 :
325 : #if SK5_ENABLED
326 : module procedure getCompact_D2_SK5
327 : use pm_kind, only: SKC => SK5
328 : #include "pm_arrayCompact@routines.inc.F90"
329 : end procedure
330 : #endif
331 :
332 : #if SK4_ENABLED
333 : module procedure getCompact_D2_SK4
334 : use pm_kind, only: SKC => SK4
335 : #include "pm_arrayCompact@routines.inc.F90"
336 : end procedure
337 : #endif
338 :
339 : #if SK3_ENABLED
340 : module procedure getCompact_D2_SK3
341 : use pm_kind, only: SKC => SK3
342 : #include "pm_arrayCompact@routines.inc.F90"
343 : end procedure
344 : #endif
345 :
346 : #if SK2_ENABLED
347 : module procedure getCompact_D2_SK2
348 : use pm_kind, only: SKC => SK2
349 : #include "pm_arrayCompact@routines.inc.F90"
350 : end procedure
351 : #endif
352 :
353 : #if SK1_ENABLED
354 5 : module procedure getCompact_D2_SK1
355 : use pm_kind, only: SKC => SK1
356 : #include "pm_arrayCompact@routines.inc.F90"
357 : end procedure
358 : #endif
359 :
360 : #undef SK_ENABLED
361 :
362 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
363 :
364 : #define IK_ENABLED 1
365 :
366 : #if IK5_ENABLED
367 4 : module procedure getCompact_D2_IK5
368 : use pm_kind, only: IKC => IK5
369 : #include "pm_arrayCompact@routines.inc.F90"
370 : end procedure
371 : #endif
372 :
373 : #if IK4_ENABLED
374 4 : module procedure getCompact_D2_IK4
375 : use pm_kind, only: IKC => IK4
376 : #include "pm_arrayCompact@routines.inc.F90"
377 : end procedure
378 : #endif
379 :
380 : #if IK3_ENABLED
381 5 : module procedure getCompact_D2_IK3
382 : use pm_kind, only: IKC => IK3
383 : #include "pm_arrayCompact@routines.inc.F90"
384 : end procedure
385 : #endif
386 :
387 : #if IK2_ENABLED
388 4 : module procedure getCompact_D2_IK2
389 : use pm_kind, only: IKC => IK2
390 : #include "pm_arrayCompact@routines.inc.F90"
391 : end procedure
392 : #endif
393 :
394 : #if IK1_ENABLED
395 4 : module procedure getCompact_D2_IK1
396 : use pm_kind, only: IKC => IK1
397 : #include "pm_arrayCompact@routines.inc.F90"
398 : end procedure
399 : #endif
400 :
401 : #undef IK_ENABLED
402 :
403 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
404 :
405 : #define LK_ENABLED 1
406 :
407 : #if LK5_ENABLED
408 4 : module procedure getCompact_D2_LK5
409 : use pm_kind, only: LKC => LK5
410 : #include "pm_arrayCompact@routines.inc.F90"
411 : end procedure
412 : #endif
413 :
414 : #if LK4_ENABLED
415 4 : module procedure getCompact_D2_LK4
416 : use pm_kind, only: LKC => LK4
417 : #include "pm_arrayCompact@routines.inc.F90"
418 : end procedure
419 : #endif
420 :
421 : #if LK3_ENABLED
422 5 : module procedure getCompact_D2_LK3
423 : use pm_kind, only: LKC => LK3
424 : #include "pm_arrayCompact@routines.inc.F90"
425 : end procedure
426 : #endif
427 :
428 : #if LK2_ENABLED
429 4 : module procedure getCompact_D2_LK2
430 : use pm_kind, only: LKC => LK2
431 : #include "pm_arrayCompact@routines.inc.F90"
432 : end procedure
433 : #endif
434 :
435 : #if LK1_ENABLED
436 4 : module procedure getCompact_D2_LK1
437 : use pm_kind, only: LKC => LK1
438 : #include "pm_arrayCompact@routines.inc.F90"
439 : end procedure
440 : #endif
441 :
442 : #undef LK_ENABLED
443 :
444 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
445 :
446 : #define CK_ENABLED 1
447 :
448 : #if CK5_ENABLED
449 : module procedure getCompact_D2_CK5
450 : use pm_kind, only: CKC => CK5
451 : #include "pm_arrayCompact@routines.inc.F90"
452 : end procedure
453 : #endif
454 :
455 : #if CK4_ENABLED
456 4 : module procedure getCompact_D2_CK4
457 : use pm_kind, only: CKC => CK4
458 : #include "pm_arrayCompact@routines.inc.F90"
459 : end procedure
460 : #endif
461 :
462 : #if CK3_ENABLED
463 4 : module procedure getCompact_D2_CK3
464 : use pm_kind, only: CKC => CK3
465 : #include "pm_arrayCompact@routines.inc.F90"
466 : end procedure
467 : #endif
468 :
469 : #if CK2_ENABLED
470 5 : module procedure getCompact_D2_CK2
471 : use pm_kind, only: CKC => CK2
472 : #include "pm_arrayCompact@routines.inc.F90"
473 : end procedure
474 : #endif
475 :
476 : #if CK1_ENABLED
477 4 : module procedure getCompact_D2_CK1
478 : use pm_kind, only: CKC => CK1
479 : #include "pm_arrayCompact@routines.inc.F90"
480 : end procedure
481 : #endif
482 :
483 : #undef CK_ENABLED
484 :
485 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
486 :
487 : #define RK_ENABLED 1
488 :
489 : #if RK5_ENABLED
490 : module procedure getCompact_D2_RK5
491 : use pm_kind, only: RKC => RK5
492 : #include "pm_arrayCompact@routines.inc.F90"
493 : end procedure
494 : #endif
495 :
496 : #if RK4_ENABLED
497 4 : module procedure getCompact_D2_RK4
498 : use pm_kind, only: RKC => RK4
499 : #include "pm_arrayCompact@routines.inc.F90"
500 : end procedure
501 : #endif
502 :
503 : #if RK3_ENABLED
504 4 : module procedure getCompact_D2_RK3
505 : use pm_kind, only: RKC => RK3
506 : #include "pm_arrayCompact@routines.inc.F90"
507 : end procedure
508 : #endif
509 :
510 : #if RK2_ENABLED
511 5 : module procedure getCompact_D2_RK2
512 : use pm_kind, only: RKC => RK2
513 : #include "pm_arrayCompact@routines.inc.F90"
514 : end procedure
515 : #endif
516 :
517 : #if RK1_ENABLED
518 4 : module procedure getCompact_D2_RK1
519 : use pm_kind, only: RKC => RK1
520 : #include "pm_arrayCompact@routines.inc.F90"
521 : end procedure
522 : #endif
523 :
524 : #undef RK_ENABLED
525 :
526 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
527 :
528 : #undef D2_ENABLED
529 :
530 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
531 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
532 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
533 :
534 : #undef getCompact_ENABLED
535 :
536 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
537 :
538 : #define setCompact_ENABLED 1
539 :
540 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
541 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
542 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
543 :
544 : #define D0_ENABLED 1
545 :
546 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
547 :
548 : #define SK_ENABLED 1
549 :
550 : #if SK5_ENABLED
551 : module procedure setCompact_D0_SK5
552 : use pm_kind, only: SKC => SK5
553 : #include "pm_arrayCompact@routines.inc.F90"
554 : end procedure
555 : #endif
556 :
557 : #if SK4_ENABLED
558 : module procedure setCompact_D0_SK4
559 : use pm_kind, only: SKC => SK4
560 : #include "pm_arrayCompact@routines.inc.F90"
561 : end procedure
562 : #endif
563 :
564 : #if SK3_ENABLED
565 : module procedure setCompact_D0_SK3
566 : use pm_kind, only: SKC => SK3
567 : #include "pm_arrayCompact@routines.inc.F90"
568 : end procedure
569 : #endif
570 :
571 : #if SK2_ENABLED
572 : module procedure setCompact_D0_SK2
573 : use pm_kind, only: SKC => SK2
574 : #include "pm_arrayCompact@routines.inc.F90"
575 : end procedure
576 : #endif
577 :
578 : #if SK1_ENABLED
579 3 : module procedure setCompact_D0_SK1
580 : use pm_kind, only: SKC => SK1
581 : #include "pm_arrayCompact@routines.inc.F90"
582 : end procedure
583 : #endif
584 :
585 : #undef SK_ENABLED
586 :
587 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
588 :
589 : #undef D0_ENABLED
590 :
591 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
592 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
593 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
594 :
595 : #define D1_ENABLED 1
596 :
597 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
598 :
599 : #define SK_ENABLED 1
600 :
601 : #if SK5_ENABLED
602 : module procedure setCompact_D1_SK5
603 : use pm_kind, only: SKC => SK5
604 : #include "pm_arrayCompact@routines.inc.F90"
605 : end procedure
606 : #endif
607 :
608 : #if SK4_ENABLED
609 : module procedure setCompact_D1_SK4
610 : use pm_kind, only: SKC => SK4
611 : #include "pm_arrayCompact@routines.inc.F90"
612 : end procedure
613 : #endif
614 :
615 : #if SK3_ENABLED
616 : module procedure setCompact_D1_SK3
617 : use pm_kind, only: SKC => SK3
618 : #include "pm_arrayCompact@routines.inc.F90"
619 : end procedure
620 : #endif
621 :
622 : #if SK2_ENABLED
623 : module procedure setCompact_D1_SK2
624 : use pm_kind, only: SKC => SK2
625 : #include "pm_arrayCompact@routines.inc.F90"
626 : end procedure
627 : #endif
628 :
629 : #if SK1_ENABLED
630 3 : module procedure setCompact_D1_SK1
631 : use pm_kind, only: SKC => SK1
632 : #include "pm_arrayCompact@routines.inc.F90"
633 : end procedure
634 : #endif
635 :
636 : #undef SK_ENABLED
637 :
638 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
639 :
640 : #define IK_ENABLED 1
641 :
642 : #if IK5_ENABLED
643 2 : module procedure setCompact_D1_IK5
644 : use pm_kind, only: IKC => IK5
645 : #include "pm_arrayCompact@routines.inc.F90"
646 : end procedure
647 : #endif
648 :
649 : #if IK4_ENABLED
650 2 : module procedure setCompact_D1_IK4
651 : use pm_kind, only: IKC => IK4
652 : #include "pm_arrayCompact@routines.inc.F90"
653 : end procedure
654 : #endif
655 :
656 : #if IK3_ENABLED
657 3 : module procedure setCompact_D1_IK3
658 : use pm_kind, only: IKC => IK3
659 : #include "pm_arrayCompact@routines.inc.F90"
660 : end procedure
661 : #endif
662 :
663 : #if IK2_ENABLED
664 2 : module procedure setCompact_D1_IK2
665 : use pm_kind, only: IKC => IK2
666 : #include "pm_arrayCompact@routines.inc.F90"
667 : end procedure
668 : #endif
669 :
670 : #if IK1_ENABLED
671 2 : module procedure setCompact_D1_IK1
672 : use pm_kind, only: IKC => IK1
673 : #include "pm_arrayCompact@routines.inc.F90"
674 : end procedure
675 : #endif
676 :
677 : #undef IK_ENABLED
678 :
679 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
680 :
681 : #define LK_ENABLED 1
682 :
683 : #if LK5_ENABLED
684 2 : module procedure setCompact_D1_LK5
685 : use pm_kind, only: LKC => LK5
686 : #include "pm_arrayCompact@routines.inc.F90"
687 : end procedure
688 : #endif
689 :
690 : #if LK4_ENABLED
691 2 : module procedure setCompact_D1_LK4
692 : use pm_kind, only: LKC => LK4
693 : #include "pm_arrayCompact@routines.inc.F90"
694 : end procedure
695 : #endif
696 :
697 : #if LK3_ENABLED
698 3 : module procedure setCompact_D1_LK3
699 : use pm_kind, only: LKC => LK3
700 : #include "pm_arrayCompact@routines.inc.F90"
701 : end procedure
702 : #endif
703 :
704 : #if LK2_ENABLED
705 2 : module procedure setCompact_D1_LK2
706 : use pm_kind, only: LKC => LK2
707 : #include "pm_arrayCompact@routines.inc.F90"
708 : end procedure
709 : #endif
710 :
711 : #if LK1_ENABLED
712 2 : module procedure setCompact_D1_LK1
713 : use pm_kind, only: LKC => LK1
714 : #include "pm_arrayCompact@routines.inc.F90"
715 : end procedure
716 : #endif
717 :
718 : #undef LK_ENABLED
719 :
720 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
721 :
722 : #define CK_ENABLED 1
723 :
724 : #if CK5_ENABLED
725 : module procedure setCompact_D1_CK5
726 : use pm_kind, only: CKC => CK5
727 : #include "pm_arrayCompact@routines.inc.F90"
728 : end procedure
729 : #endif
730 :
731 : #if CK4_ENABLED
732 2 : module procedure setCompact_D1_CK4
733 : use pm_kind, only: CKC => CK4
734 : #include "pm_arrayCompact@routines.inc.F90"
735 : end procedure
736 : #endif
737 :
738 : #if CK3_ENABLED
739 2 : module procedure setCompact_D1_CK3
740 : use pm_kind, only: CKC => CK3
741 : #include "pm_arrayCompact@routines.inc.F90"
742 : end procedure
743 : #endif
744 :
745 : #if CK2_ENABLED
746 3 : module procedure setCompact_D1_CK2
747 : use pm_kind, only: CKC => CK2
748 : #include "pm_arrayCompact@routines.inc.F90"
749 : end procedure
750 : #endif
751 :
752 : #if CK1_ENABLED
753 2 : module procedure setCompact_D1_CK1
754 : use pm_kind, only: CKC => CK1
755 : #include "pm_arrayCompact@routines.inc.F90"
756 : end procedure
757 : #endif
758 :
759 : #undef CK_ENABLED
760 :
761 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
762 :
763 : #define RK_ENABLED 1
764 :
765 : #if RK5_ENABLED
766 : module procedure setCompact_D1_RK5
767 : use pm_kind, only: RKC => RK5
768 : #include "pm_arrayCompact@routines.inc.F90"
769 : end procedure
770 : #endif
771 :
772 : #if RK4_ENABLED
773 2 : module procedure setCompact_D1_RK4
774 : use pm_kind, only: RKC => RK4
775 : #include "pm_arrayCompact@routines.inc.F90"
776 : end procedure
777 : #endif
778 :
779 : #if RK3_ENABLED
780 2 : module procedure setCompact_D1_RK3
781 : use pm_kind, only: RKC => RK3
782 : #include "pm_arrayCompact@routines.inc.F90"
783 : end procedure
784 : #endif
785 :
786 : #if RK2_ENABLED
787 3 : module procedure setCompact_D1_RK2
788 : use pm_kind, only: RKC => RK2
789 : #include "pm_arrayCompact@routines.inc.F90"
790 : end procedure
791 : #endif
792 :
793 : #if RK1_ENABLED
794 2 : module procedure setCompact_D1_RK1
795 : use pm_kind, only: RKC => RK1
796 : #include "pm_arrayCompact@routines.inc.F90"
797 : end procedure
798 : #endif
799 :
800 : #undef RK_ENABLED
801 :
802 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
803 :
804 : #undef D1_ENABLED
805 :
806 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
807 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
808 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
809 :
810 : #define D2_ENABLED 1
811 :
812 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
813 :
814 : #define SK_ENABLED 1
815 :
816 : #if SK5_ENABLED
817 : module procedure setCompact_D2_SK5
818 : use pm_kind, only: SKC => SK5
819 : #include "pm_arrayCompact@routines.inc.F90"
820 : end procedure
821 : #endif
822 :
823 : #if SK4_ENABLED
824 : module procedure setCompact_D2_SK4
825 : use pm_kind, only: SKC => SK4
826 : #include "pm_arrayCompact@routines.inc.F90"
827 : end procedure
828 : #endif
829 :
830 : #if SK3_ENABLED
831 : module procedure setCompact_D2_SK3
832 : use pm_kind, only: SKC => SK3
833 : #include "pm_arrayCompact@routines.inc.F90"
834 : end procedure
835 : #endif
836 :
837 : #if SK2_ENABLED
838 : module procedure setCompact_D2_SK2
839 : use pm_kind, only: SKC => SK2
840 : #include "pm_arrayCompact@routines.inc.F90"
841 : end procedure
842 : #endif
843 :
844 : #if SK1_ENABLED
845 5 : module procedure setCompact_D2_SK1
846 : use pm_kind, only: SKC => SK1
847 : #include "pm_arrayCompact@routines.inc.F90"
848 : end procedure
849 : #endif
850 :
851 : #undef SK_ENABLED
852 :
853 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
854 :
855 : #define IK_ENABLED 1
856 :
857 : #if IK5_ENABLED
858 4 : module procedure setCompact_D2_IK5
859 : use pm_kind, only: IKC => IK5
860 : #include "pm_arrayCompact@routines.inc.F90"
861 : end procedure
862 : #endif
863 :
864 : #if IK4_ENABLED
865 4 : module procedure setCompact_D2_IK4
866 : use pm_kind, only: IKC => IK4
867 : #include "pm_arrayCompact@routines.inc.F90"
868 : end procedure
869 : #endif
870 :
871 : #if IK3_ENABLED
872 5 : module procedure setCompact_D2_IK3
873 : use pm_kind, only: IKC => IK3
874 : #include "pm_arrayCompact@routines.inc.F90"
875 : end procedure
876 : #endif
877 :
878 : #if IK2_ENABLED
879 4 : module procedure setCompact_D2_IK2
880 : use pm_kind, only: IKC => IK2
881 : #include "pm_arrayCompact@routines.inc.F90"
882 : end procedure
883 : #endif
884 :
885 : #if IK1_ENABLED
886 4 : module procedure setCompact_D2_IK1
887 : use pm_kind, only: IKC => IK1
888 : #include "pm_arrayCompact@routines.inc.F90"
889 : end procedure
890 : #endif
891 :
892 : #undef IK_ENABLED
893 :
894 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
895 :
896 : #define LK_ENABLED 1
897 :
898 : #if LK5_ENABLED
899 4 : module procedure setCompact_D2_LK5
900 : use pm_kind, only: LKC => LK5
901 : #include "pm_arrayCompact@routines.inc.F90"
902 : end procedure
903 : #endif
904 :
905 : #if LK4_ENABLED
906 4 : module procedure setCompact_D2_LK4
907 : use pm_kind, only: LKC => LK4
908 : #include "pm_arrayCompact@routines.inc.F90"
909 : end procedure
910 : #endif
911 :
912 : #if LK3_ENABLED
913 5 : module procedure setCompact_D2_LK3
914 : use pm_kind, only: LKC => LK3
915 : #include "pm_arrayCompact@routines.inc.F90"
916 : end procedure
917 : #endif
918 :
919 : #if LK2_ENABLED
920 4 : module procedure setCompact_D2_LK2
921 : use pm_kind, only: LKC => LK2
922 : #include "pm_arrayCompact@routines.inc.F90"
923 : end procedure
924 : #endif
925 :
926 : #if LK1_ENABLED
927 4 : module procedure setCompact_D2_LK1
928 : use pm_kind, only: LKC => LK1
929 : #include "pm_arrayCompact@routines.inc.F90"
930 : end procedure
931 : #endif
932 :
933 : #undef LK_ENABLED
934 :
935 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
936 :
937 : #define CK_ENABLED 1
938 :
939 : #if CK5_ENABLED
940 : module procedure setCompact_D2_CK5
941 : use pm_kind, only: CKC => CK5
942 : #include "pm_arrayCompact@routines.inc.F90"
943 : end procedure
944 : #endif
945 :
946 : #if CK4_ENABLED
947 4 : module procedure setCompact_D2_CK4
948 : use pm_kind, only: CKC => CK4
949 : #include "pm_arrayCompact@routines.inc.F90"
950 : end procedure
951 : #endif
952 :
953 : #if CK3_ENABLED
954 4 : module procedure setCompact_D2_CK3
955 : use pm_kind, only: CKC => CK3
956 : #include "pm_arrayCompact@routines.inc.F90"
957 : end procedure
958 : #endif
959 :
960 : #if CK2_ENABLED
961 5 : module procedure setCompact_D2_CK2
962 : use pm_kind, only: CKC => CK2
963 : #include "pm_arrayCompact@routines.inc.F90"
964 : end procedure
965 : #endif
966 :
967 : #if CK1_ENABLED
968 4 : module procedure setCompact_D2_CK1
969 : use pm_kind, only: CKC => CK1
970 : #include "pm_arrayCompact@routines.inc.F90"
971 : end procedure
972 : #endif
973 :
974 : #undef CK_ENABLED
975 :
976 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
977 :
978 : #define RK_ENABLED 1
979 :
980 : #if RK5_ENABLED
981 : module procedure setCompact_D2_RK5
982 : use pm_kind, only: RKC => RK5
983 : #include "pm_arrayCompact@routines.inc.F90"
984 : end procedure
985 : #endif
986 :
987 : #if RK4_ENABLED
988 4 : module procedure setCompact_D2_RK4
989 : use pm_kind, only: RKC => RK4
990 : #include "pm_arrayCompact@routines.inc.F90"
991 : end procedure
992 : #endif
993 :
994 : #if RK3_ENABLED
995 4 : module procedure setCompact_D2_RK3
996 : use pm_kind, only: RKC => RK3
997 : #include "pm_arrayCompact@routines.inc.F90"
998 : end procedure
999 : #endif
1000 :
1001 : #if RK2_ENABLED
1002 5 : module procedure setCompact_D2_RK2
1003 : use pm_kind, only: RKC => RK2
1004 : #include "pm_arrayCompact@routines.inc.F90"
1005 : end procedure
1006 : #endif
1007 :
1008 : #if RK1_ENABLED
1009 4 : module procedure setCompact_D2_RK1
1010 : use pm_kind, only: RKC => RK1
1011 : #include "pm_arrayCompact@routines.inc.F90"
1012 : end procedure
1013 : #endif
1014 :
1015 : #undef RK_ENABLED
1016 :
1017 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1018 :
1019 : #undef D2_ENABLED
1020 :
1021 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1022 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1023 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1024 :
1025 : #undef setCompact_ENABLED
1026 :
1027 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1028 :
1029 : #undef CHECK_ASSERTION
1030 :
1031 : end submodule routines
|