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