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_arrayMerge](@ref pm_arrayMerge).
19 : !>
20 : !> \finmain
21 : !>
22 : !> \author
23 : !> \FatemehBagheri, Wednesday 5:03 PM, August 11, 2021, Dallas, TX
24 :
25 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 :
27 : submodule (pm_arrayMerge) 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 : use pm_arraySort, only: isAscending
34 : use pm_arraySort, only: isSortedCheck => isSorted
35 : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) \
36 : call setAsserted(ASSERTION,getFine(__FILE__,LINE)//MODULE_NAME//MSG);
37 : #else
38 : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) continue;
39 : #endif
40 :
41 : implicit none
42 :
43 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
44 :
45 : contains
46 :
47 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
48 :
49 : #define getMerged_ENABLED 1
50 :
51 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
53 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
54 :
55 : #define DefCom_ENABLED 1
56 :
57 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
58 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
59 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
60 :
61 : #define D0_ENABLED 1
62 :
63 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
64 :
65 : #define SK_ENABLED 1
66 :
67 : #if SK5_ENABLED
68 : module procedure getMergedDefCom_D0_SK5
69 : use pm_kind, only: SKC => SK5
70 : #include "pm_arrayMerge@routines.inc.F90"
71 : end procedure
72 : #endif
73 :
74 : #if SK4_ENABLED
75 : module procedure getMergedDefCom_D0_SK4
76 : use pm_kind, only: SKC => SK4
77 : #include "pm_arrayMerge@routines.inc.F90"
78 : end procedure
79 : #endif
80 :
81 : #if SK3_ENABLED
82 : module procedure getMergedDefCom_D0_SK3
83 : use pm_kind, only: SKC => SK3
84 : #include "pm_arrayMerge@routines.inc.F90"
85 : end procedure
86 : #endif
87 :
88 : #if SK2_ENABLED
89 : module procedure getMergedDefCom_D0_SK2
90 : use pm_kind, only: SKC => SK2
91 : #include "pm_arrayMerge@routines.inc.F90"
92 : end procedure
93 : #endif
94 :
95 : #if SK1_ENABLED
96 200 : module procedure getMergedDefCom_D0_SK1
97 : use pm_kind, only: SKC => SK1
98 : #include "pm_arrayMerge@routines.inc.F90"
99 : end procedure
100 : #endif
101 :
102 : #undef SK_ENABLED
103 :
104 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
105 :
106 : #undef D0_ENABLED
107 :
108 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
109 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
110 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
111 :
112 : #define D1_ENABLED 1
113 :
114 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
115 :
116 : #define SK_ENABLED 1
117 :
118 : #if SK5_ENABLED
119 : module procedure getMergedDefCom_D1_SK5
120 : use pm_kind, only: SKC => SK5
121 : #include "pm_arrayMerge@routines.inc.F90"
122 : end procedure
123 : #endif
124 :
125 : #if SK4_ENABLED
126 : module procedure getMergedDefCom_D1_SK4
127 : use pm_kind, only: SKC => SK4
128 : #include "pm_arrayMerge@routines.inc.F90"
129 : end procedure
130 : #endif
131 :
132 : #if SK3_ENABLED
133 : module procedure getMergedDefCom_D1_SK3
134 : use pm_kind, only: SKC => SK3
135 : #include "pm_arrayMerge@routines.inc.F90"
136 : end procedure
137 : #endif
138 :
139 : #if SK2_ENABLED
140 : module procedure getMergedDefCom_D1_SK2
141 : use pm_kind, only: SKC => SK2
142 : #include "pm_arrayMerge@routines.inc.F90"
143 : end procedure
144 : #endif
145 :
146 : #if SK1_ENABLED
147 200 : module procedure getMergedDefCom_D1_SK1
148 : use pm_kind, only: SKC => SK1
149 : #include "pm_arrayMerge@routines.inc.F90"
150 : end procedure
151 : #endif
152 :
153 : #undef SK_ENABLED
154 :
155 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
156 :
157 : #define IK_ENABLED 1
158 :
159 : #if IK5_ENABLED
160 207 : module procedure getMergedDefCom_D1_IK5
161 : use pm_kind, only: IKC => IK5
162 : #include "pm_arrayMerge@routines.inc.F90"
163 : end procedure
164 : #endif
165 :
166 : #if IK4_ENABLED
167 207 : module procedure getMergedDefCom_D1_IK4
168 : use pm_kind, only: IKC => IK4
169 : #include "pm_arrayMerge@routines.inc.F90"
170 : end procedure
171 : #endif
172 :
173 : #if IK3_ENABLED
174 207 : module procedure getMergedDefCom_D1_IK3
175 : use pm_kind, only: IKC => IK3
176 : #include "pm_arrayMerge@routines.inc.F90"
177 : end procedure
178 : #endif
179 :
180 : #if IK2_ENABLED
181 206 : module procedure getMergedDefCom_D1_IK2
182 : use pm_kind, only: IKC => IK2
183 : #include "pm_arrayMerge@routines.inc.F90"
184 : end procedure
185 : #endif
186 :
187 : #if IK1_ENABLED
188 207 : module procedure getMergedDefCom_D1_IK1
189 : use pm_kind, only: IKC => IK1
190 : #include "pm_arrayMerge@routines.inc.F90"
191 : end procedure
192 : #endif
193 :
194 : #undef IK_ENABLED
195 :
196 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
197 :
198 : #define LK_ENABLED 1
199 :
200 : #if LK5_ENABLED
201 200 : module procedure getMergedDefCom_D1_LK5
202 : use pm_kind, only: LKC => LK5
203 : #include "pm_arrayMerge@routines.inc.F90"
204 : end procedure
205 : #endif
206 :
207 : #if LK4_ENABLED
208 200 : module procedure getMergedDefCom_D1_LK4
209 : use pm_kind, only: LKC => LK4
210 : #include "pm_arrayMerge@routines.inc.F90"
211 : end procedure
212 : #endif
213 :
214 : #if LK3_ENABLED
215 200 : module procedure getMergedDefCom_D1_LK3
216 : use pm_kind, only: LKC => LK3
217 : #include "pm_arrayMerge@routines.inc.F90"
218 : end procedure
219 : #endif
220 :
221 : #if LK2_ENABLED
222 200 : module procedure getMergedDefCom_D1_LK2
223 : use pm_kind, only: LKC => LK2
224 : #include "pm_arrayMerge@routines.inc.F90"
225 : end procedure
226 : #endif
227 :
228 : #if LK1_ENABLED
229 200 : module procedure getMergedDefCom_D1_LK1
230 : use pm_kind, only: LKC => LK1
231 : #include "pm_arrayMerge@routines.inc.F90"
232 : end procedure
233 : #endif
234 :
235 : #undef LK_ENABLED
236 :
237 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
238 :
239 : #define CK_ENABLED 1
240 :
241 : #if CK5_ENABLED
242 : module procedure getMergedDefCom_D1_CK5
243 : use pm_kind, only: CKC => CK5
244 : #include "pm_arrayMerge@routines.inc.F90"
245 : end procedure
246 : #endif
247 :
248 : #if CK4_ENABLED
249 200 : module procedure getMergedDefCom_D1_CK4
250 : use pm_kind, only: CKC => CK4
251 : #include "pm_arrayMerge@routines.inc.F90"
252 : end procedure
253 : #endif
254 :
255 : #if CK3_ENABLED
256 200 : module procedure getMergedDefCom_D1_CK3
257 : use pm_kind, only: CKC => CK3
258 : #include "pm_arrayMerge@routines.inc.F90"
259 : end procedure
260 : #endif
261 :
262 : #if CK2_ENABLED
263 200 : module procedure getMergedDefCom_D1_CK2
264 : use pm_kind, only: CKC => CK2
265 : #include "pm_arrayMerge@routines.inc.F90"
266 : end procedure
267 : #endif
268 :
269 : #if CK1_ENABLED
270 200 : module procedure getMergedDefCom_D1_CK1
271 : use pm_kind, only: CKC => CK1
272 : #include "pm_arrayMerge@routines.inc.F90"
273 : end procedure
274 : #endif
275 :
276 : #undef CK_ENABLED
277 :
278 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
279 :
280 : #define RK_ENABLED 1
281 :
282 : #if RK5_ENABLED
283 : module procedure getMergedDefCom_D1_RK5
284 : use pm_kind, only: RKC => RK5
285 : #include "pm_arrayMerge@routines.inc.F90"
286 : end procedure
287 : #endif
288 :
289 : #if RK4_ENABLED
290 207 : module procedure getMergedDefCom_D1_RK4
291 : use pm_kind, only: RKC => RK4
292 : #include "pm_arrayMerge@routines.inc.F90"
293 : end procedure
294 : #endif
295 :
296 : #if RK3_ENABLED
297 206 : module procedure getMergedDefCom_D1_RK3
298 : use pm_kind, only: RKC => RK3
299 : #include "pm_arrayMerge@routines.inc.F90"
300 : end procedure
301 : #endif
302 :
303 : #if RK2_ENABLED
304 207 : module procedure getMergedDefCom_D1_RK2
305 : use pm_kind, only: RKC => RK2
306 : #include "pm_arrayMerge@routines.inc.F90"
307 : end procedure
308 : #endif
309 :
310 : #if RK1_ENABLED
311 207 : module procedure getMergedDefCom_D1_RK1
312 : use pm_kind, only: RKC => RK1
313 : #include "pm_arrayMerge@routines.inc.F90"
314 : end procedure
315 : #endif
316 :
317 : #undef RK_ENABLED
318 :
319 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
320 :
321 : ! LCOV_EXCL_START
322 : !#if !__GFORTRAN__
323 :
324 : #define PSSK_ENABLED 1
325 :
326 : #if SK5_ENABLED
327 : module procedure getMergedDefCom_D1_PSSK5
328 : use pm_kind, only: SKC => SK5
329 : #include "pm_arrayMerge@routines.inc.F90"
330 : end procedure
331 : #endif
332 :
333 : #if SK4_ENABLED
334 : module procedure getMergedDefCom_D1_PSSK4
335 : use pm_kind, only: SKC => SK4
336 : #include "pm_arrayMerge@routines.inc.F90"
337 : end procedure
338 : #endif
339 :
340 : #if SK3_ENABLED
341 : module procedure getMergedDefCom_D1_PSSK3
342 : use pm_kind, only: SKC => SK3
343 : #include "pm_arrayMerge@routines.inc.F90"
344 : end procedure
345 : #endif
346 :
347 : #if SK2_ENABLED
348 : module procedure getMergedDefCom_D1_PSSK2
349 : use pm_kind, only: SKC => SK2
350 : #include "pm_arrayMerge@routines.inc.F90"
351 : end procedure
352 : #endif
353 :
354 : #if SK1_ENABLED
355 : module procedure getMergedDefCom_D1_PSSK1
356 : use pm_kind, only: SKC => SK1
357 : #include "pm_arrayMerge@routines.inc.F90"
358 : end procedure
359 : #endif
360 :
361 : #undef PSSK_ENABLED
362 :
363 : !#endif
364 : ! LCOV_EXCL_STOP
365 :
366 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
367 :
368 : #define BSSK_ENABLED 1
369 :
370 0 : module procedure getMergedDefCom_D1_BSSK
371 : use pm_kind, only: SKC => SK
372 : #include "pm_arrayMerge@routines.inc.F90"
373 0 : end procedure
374 :
375 : #undef BSSK_ENABLED
376 :
377 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
378 :
379 : #undef D1_ENABLED
380 :
381 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
382 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
383 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
384 :
385 : #undef DefCom_ENABLED
386 :
387 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
388 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
389 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
390 :
391 : #define CusCom_ENABLED 1
392 :
393 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
394 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
395 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
396 :
397 : #define D0_ENABLED 1
398 :
399 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
400 :
401 : #define SK_ENABLED 1
402 :
403 : #if SK5_ENABLED
404 : module procedure getMergedCusCom_D0_SK5
405 : use pm_kind, only: SKC => SK5
406 : #include "pm_arrayMerge@routines.inc.F90"
407 : end procedure
408 : #endif
409 :
410 : #if SK4_ENABLED
411 : module procedure getMergedCusCom_D0_SK4
412 : use pm_kind, only: SKC => SK4
413 : #include "pm_arrayMerge@routines.inc.F90"
414 : end procedure
415 : #endif
416 :
417 : #if SK3_ENABLED
418 : module procedure getMergedCusCom_D0_SK3
419 : use pm_kind, only: SKC => SK3
420 : #include "pm_arrayMerge@routines.inc.F90"
421 : end procedure
422 : #endif
423 :
424 : #if SK2_ENABLED
425 : module procedure getMergedCusCom_D0_SK2
426 : use pm_kind, only: SKC => SK2
427 : #include "pm_arrayMerge@routines.inc.F90"
428 : end procedure
429 : #endif
430 :
431 : #if SK1_ENABLED
432 200 : module procedure getMergedCusCom_D0_SK1
433 : use pm_kind, only: SKC => SK1
434 : #include "pm_arrayMerge@routines.inc.F90"
435 : end procedure
436 : #endif
437 :
438 : #undef SK_ENABLED
439 :
440 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
441 :
442 : #undef D0_ENABLED
443 :
444 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
445 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
446 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
447 :
448 : #define D1_ENABLED 1
449 :
450 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
451 :
452 : #define SK_ENABLED 1
453 :
454 : #if SK5_ENABLED
455 : module procedure getMergedCusCom_D1_SK5
456 : use pm_kind, only: SKC => SK5
457 : #include "pm_arrayMerge@routines.inc.F90"
458 : end procedure
459 : #endif
460 :
461 : #if SK4_ENABLED
462 : module procedure getMergedCusCom_D1_SK4
463 : use pm_kind, only: SKC => SK4
464 : #include "pm_arrayMerge@routines.inc.F90"
465 : end procedure
466 : #endif
467 :
468 : #if SK3_ENABLED
469 : module procedure getMergedCusCom_D1_SK3
470 : use pm_kind, only: SKC => SK3
471 : #include "pm_arrayMerge@routines.inc.F90"
472 : end procedure
473 : #endif
474 :
475 : #if SK2_ENABLED
476 : module procedure getMergedCusCom_D1_SK2
477 : use pm_kind, only: SKC => SK2
478 : #include "pm_arrayMerge@routines.inc.F90"
479 : end procedure
480 : #endif
481 :
482 : #if SK1_ENABLED
483 200 : module procedure getMergedCusCom_D1_SK1
484 : use pm_kind, only: SKC => SK1
485 : #include "pm_arrayMerge@routines.inc.F90"
486 : end procedure
487 : #endif
488 :
489 : #undef SK_ENABLED
490 :
491 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
492 :
493 : #define IK_ENABLED 1
494 :
495 : #if IK5_ENABLED
496 200 : module procedure getMergedCusCom_D1_IK5
497 : use pm_kind, only: IKC => IK5
498 : #include "pm_arrayMerge@routines.inc.F90"
499 : end procedure
500 : #endif
501 :
502 : #if IK4_ENABLED
503 200 : module procedure getMergedCusCom_D1_IK4
504 : use pm_kind, only: IKC => IK4
505 : #include "pm_arrayMerge@routines.inc.F90"
506 : end procedure
507 : #endif
508 :
509 : #if IK3_ENABLED
510 200 : module procedure getMergedCusCom_D1_IK3
511 : use pm_kind, only: IKC => IK3
512 : #include "pm_arrayMerge@routines.inc.F90"
513 : end procedure
514 : #endif
515 :
516 : #if IK2_ENABLED
517 200 : module procedure getMergedCusCom_D1_IK2
518 : use pm_kind, only: IKC => IK2
519 : #include "pm_arrayMerge@routines.inc.F90"
520 : end procedure
521 : #endif
522 :
523 : #if IK1_ENABLED
524 200 : module procedure getMergedCusCom_D1_IK1
525 : use pm_kind, only: IKC => IK1
526 : #include "pm_arrayMerge@routines.inc.F90"
527 : end procedure
528 : #endif
529 :
530 : #undef IK_ENABLED
531 :
532 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
533 :
534 : #define LK_ENABLED 1
535 :
536 : #if LK5_ENABLED
537 200 : module procedure getMergedCusCom_D1_LK5
538 : use pm_kind, only: LKC => LK5
539 : #include "pm_arrayMerge@routines.inc.F90"
540 : end procedure
541 : #endif
542 :
543 : #if LK4_ENABLED
544 200 : module procedure getMergedCusCom_D1_LK4
545 : use pm_kind, only: LKC => LK4
546 : #include "pm_arrayMerge@routines.inc.F90"
547 : end procedure
548 : #endif
549 :
550 : #if LK3_ENABLED
551 200 : module procedure getMergedCusCom_D1_LK3
552 : use pm_kind, only: LKC => LK3
553 : #include "pm_arrayMerge@routines.inc.F90"
554 : end procedure
555 : #endif
556 :
557 : #if LK2_ENABLED
558 200 : module procedure getMergedCusCom_D1_LK2
559 : use pm_kind, only: LKC => LK2
560 : #include "pm_arrayMerge@routines.inc.F90"
561 : end procedure
562 : #endif
563 :
564 : #if LK1_ENABLED
565 200 : module procedure getMergedCusCom_D1_LK1
566 : use pm_kind, only: LKC => LK1
567 : #include "pm_arrayMerge@routines.inc.F90"
568 : end procedure
569 : #endif
570 :
571 : #undef LK_ENABLED
572 :
573 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
574 :
575 : #define CK_ENABLED 1
576 :
577 : #if CK5_ENABLED
578 : module procedure getMergedCusCom_D1_CK5
579 : use pm_kind, only: CKC => CK5
580 : #include "pm_arrayMerge@routines.inc.F90"
581 : end procedure
582 : #endif
583 :
584 : #if CK4_ENABLED
585 200 : module procedure getMergedCusCom_D1_CK4
586 : use pm_kind, only: CKC => CK4
587 : #include "pm_arrayMerge@routines.inc.F90"
588 : end procedure
589 : #endif
590 :
591 : #if CK3_ENABLED
592 200 : module procedure getMergedCusCom_D1_CK3
593 : use pm_kind, only: CKC => CK3
594 : #include "pm_arrayMerge@routines.inc.F90"
595 : end procedure
596 : #endif
597 :
598 : #if CK2_ENABLED
599 200 : module procedure getMergedCusCom_D1_CK2
600 : use pm_kind, only: CKC => CK2
601 : #include "pm_arrayMerge@routines.inc.F90"
602 : end procedure
603 : #endif
604 :
605 : #if CK1_ENABLED
606 200 : module procedure getMergedCusCom_D1_CK1
607 : use pm_kind, only: CKC => CK1
608 : #include "pm_arrayMerge@routines.inc.F90"
609 : end procedure
610 : #endif
611 :
612 : #undef CK_ENABLED
613 :
614 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
615 :
616 : #define RK_ENABLED 1
617 :
618 : #if RK5_ENABLED
619 : module procedure getMergedCusCom_D1_RK5
620 : use pm_kind, only: RKC => RK5
621 : #include "pm_arrayMerge@routines.inc.F90"
622 : end procedure
623 : #endif
624 :
625 : #if RK4_ENABLED
626 200 : module procedure getMergedCusCom_D1_RK4
627 : use pm_kind, only: RKC => RK4
628 : #include "pm_arrayMerge@routines.inc.F90"
629 : end procedure
630 : #endif
631 :
632 : #if RK3_ENABLED
633 200 : module procedure getMergedCusCom_D1_RK3
634 : use pm_kind, only: RKC => RK3
635 : #include "pm_arrayMerge@routines.inc.F90"
636 : end procedure
637 : #endif
638 :
639 : #if RK2_ENABLED
640 200 : module procedure getMergedCusCom_D1_RK2
641 : use pm_kind, only: RKC => RK2
642 : #include "pm_arrayMerge@routines.inc.F90"
643 : end procedure
644 : #endif
645 :
646 : #if RK1_ENABLED
647 200 : module procedure getMergedCusCom_D1_RK1
648 : use pm_kind, only: RKC => RK1
649 : #include "pm_arrayMerge@routines.inc.F90"
650 : end procedure
651 : #endif
652 :
653 : #undef RK_ENABLED
654 :
655 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
656 :
657 : ! LCOV_EXCL_START
658 : !#if !__GFORTRAN__
659 :
660 : #define PSSK_ENABLED 1
661 :
662 : #if SK5_ENABLED
663 : module procedure getMergedCusCom_D1_PSSK5
664 : use pm_kind, only: SKC => SK5
665 : #include "pm_arrayMerge@routines.inc.F90"
666 : end procedure
667 : #endif
668 :
669 : #if SK4_ENABLED
670 : module procedure getMergedCusCom_D1_PSSK4
671 : use pm_kind, only: SKC => SK4
672 : #include "pm_arrayMerge@routines.inc.F90"
673 : end procedure
674 : #endif
675 :
676 : #if SK3_ENABLED
677 : module procedure getMergedCusCom_D1_PSSK3
678 : use pm_kind, only: SKC => SK3
679 : #include "pm_arrayMerge@routines.inc.F90"
680 : end procedure
681 : #endif
682 :
683 : #if SK2_ENABLED
684 : module procedure getMergedCusCom_D1_PSSK2
685 : use pm_kind, only: SKC => SK2
686 : #include "pm_arrayMerge@routines.inc.F90"
687 : end procedure
688 : #endif
689 :
690 : #if SK1_ENABLED
691 : module procedure getMergedCusCom_D1_PSSK1
692 : use pm_kind, only: SKC => SK1
693 : #include "pm_arrayMerge@routines.inc.F90"
694 : end procedure
695 : #endif
696 :
697 : #undef PSSK_ENABLED
698 :
699 : !#endif
700 : ! LCOV_EXCL_STOP
701 :
702 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
703 :
704 : #define BSSK_ENABLED 1
705 :
706 0 : module procedure getMergedCusCom_D1_BSSK
707 : use pm_kind, only: SKC => SK
708 : #include "pm_arrayMerge@routines.inc.F90"
709 0 : end procedure
710 :
711 : #undef BSSK_ENABLED
712 :
713 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
714 :
715 : #undef D1_ENABLED
716 :
717 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
718 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
719 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
720 :
721 : #undef CusCom_ENABLED
722 :
723 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
724 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
725 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
726 :
727 : #undef getMerged_ENABLED
728 :
729 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
730 :
731 : #define setMerged_ENABLED 1
732 :
733 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
734 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
735 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
736 :
737 : #define DefCom_ENABLED 1
738 :
739 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
740 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
741 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
742 :
743 : #define D0_ENABLED 1
744 :
745 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
746 :
747 : #define SK_ENABLED 1
748 :
749 : #if SK5_ENABLED
750 : module procedure setMergedDefCom_D0_SK5
751 : use pm_kind, only: SKC => SK5
752 : #include "pm_arrayMerge@routines.inc.F90"
753 : end procedure
754 : #endif
755 :
756 : #if SK4_ENABLED
757 : module procedure setMergedDefCom_D0_SK4
758 : use pm_kind, only: SKC => SK4
759 : #include "pm_arrayMerge@routines.inc.F90"
760 : end procedure
761 : #endif
762 :
763 : #if SK3_ENABLED
764 : module procedure setMergedDefCom_D0_SK3
765 : use pm_kind, only: SKC => SK3
766 : #include "pm_arrayMerge@routines.inc.F90"
767 : end procedure
768 : #endif
769 :
770 : #if SK2_ENABLED
771 : module procedure setMergedDefCom_D0_SK2
772 : use pm_kind, only: SKC => SK2
773 : #include "pm_arrayMerge@routines.inc.F90"
774 : end procedure
775 : #endif
776 :
777 : #if SK1_ENABLED
778 2703 : module procedure setMergedDefCom_D0_SK1
779 : use pm_kind, only: SKC => SK1
780 : #include "pm_arrayMerge@routines.inc.F90"
781 : end procedure
782 : #endif
783 :
784 : #undef SK_ENABLED
785 :
786 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
787 :
788 : #undef D0_ENABLED
789 :
790 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
791 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
792 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
793 :
794 : #define D1_ENABLED 1
795 :
796 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
797 :
798 : #define SK_ENABLED 1
799 :
800 : #if SK5_ENABLED
801 : module procedure setMergedDefCom_D1_SK5
802 : use pm_kind, only: SKC => SK5
803 : #include "pm_arrayMerge@routines.inc.F90"
804 : end procedure
805 : #endif
806 :
807 : #if SK4_ENABLED
808 : module procedure setMergedDefCom_D1_SK4
809 : use pm_kind, only: SKC => SK4
810 : #include "pm_arrayMerge@routines.inc.F90"
811 : end procedure
812 : #endif
813 :
814 : #if SK3_ENABLED
815 : module procedure setMergedDefCom_D1_SK3
816 : use pm_kind, only: SKC => SK3
817 : #include "pm_arrayMerge@routines.inc.F90"
818 : end procedure
819 : #endif
820 :
821 : #if SK2_ENABLED
822 : module procedure setMergedDefCom_D1_SK2
823 : use pm_kind, only: SKC => SK2
824 : #include "pm_arrayMerge@routines.inc.F90"
825 : end procedure
826 : #endif
827 :
828 : #if SK1_ENABLED
829 2684 : module procedure setMergedDefCom_D1_SK1
830 : use pm_kind, only: SKC => SK1
831 : #include "pm_arrayMerge@routines.inc.F90"
832 : end procedure
833 : #endif
834 :
835 : #undef SK_ENABLED
836 :
837 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
838 :
839 : #define IK_ENABLED 1
840 :
841 : #if IK5_ENABLED
842 2206 : module procedure setMergedDefCom_D1_IK5
843 : use pm_kind, only: IKC => IK5
844 : #include "pm_arrayMerge@routines.inc.F90"
845 : end procedure
846 : #endif
847 :
848 : #if IK4_ENABLED
849 2335 : module procedure setMergedDefCom_D1_IK4
850 : use pm_kind, only: IKC => IK4
851 : #include "pm_arrayMerge@routines.inc.F90"
852 : end procedure
853 : #endif
854 :
855 : #if IK3_ENABLED
856 2925 : module procedure setMergedDefCom_D1_IK3
857 : use pm_kind, only: IKC => IK3
858 : #include "pm_arrayMerge@routines.inc.F90"
859 : end procedure
860 : #endif
861 :
862 : #if IK2_ENABLED
863 2619 : module procedure setMergedDefCom_D1_IK2
864 : use pm_kind, only: IKC => IK2
865 : #include "pm_arrayMerge@routines.inc.F90"
866 : end procedure
867 : #endif
868 :
869 : #if IK1_ENABLED
870 2771 : module procedure setMergedDefCom_D1_IK1
871 : use pm_kind, only: IKC => IK1
872 : #include "pm_arrayMerge@routines.inc.F90"
873 : end procedure
874 : #endif
875 :
876 : #undef IK_ENABLED
877 :
878 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
879 :
880 : #define LK_ENABLED 1
881 :
882 : #if LK5_ENABLED
883 2361 : module procedure setMergedDefCom_D1_LK5
884 : use pm_kind, only: LKC => LK5
885 : #include "pm_arrayMerge@routines.inc.F90"
886 : end procedure
887 : #endif
888 :
889 : #if LK4_ENABLED
890 2438 : module procedure setMergedDefCom_D1_LK4
891 : use pm_kind, only: LKC => LK4
892 : #include "pm_arrayMerge@routines.inc.F90"
893 : end procedure
894 : #endif
895 :
896 : #if LK3_ENABLED
897 2669 : module procedure setMergedDefCom_D1_LK3
898 : use pm_kind, only: LKC => LK3
899 : #include "pm_arrayMerge@routines.inc.F90"
900 : end procedure
901 : #endif
902 :
903 : #if LK2_ENABLED
904 2416 : module procedure setMergedDefCom_D1_LK2
905 : use pm_kind, only: LKC => LK2
906 : #include "pm_arrayMerge@routines.inc.F90"
907 : end procedure
908 : #endif
909 :
910 : #if LK1_ENABLED
911 2466 : module procedure setMergedDefCom_D1_LK1
912 : use pm_kind, only: LKC => LK1
913 : #include "pm_arrayMerge@routines.inc.F90"
914 : end procedure
915 : #endif
916 :
917 : #undef LK_ENABLED
918 :
919 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
920 :
921 : #define CK_ENABLED 1
922 :
923 : #if CK5_ENABLED
924 : module procedure setMergedDefCom_D1_CK5
925 : use pm_kind, only: CKC => CK5
926 : #include "pm_arrayMerge@routines.inc.F90"
927 : end procedure
928 : #endif
929 :
930 : #if CK4_ENABLED
931 2776 : module procedure setMergedDefCom_D1_CK4
932 : use pm_kind, only: CKC => CK4
933 : #include "pm_arrayMerge@routines.inc.F90"
934 : end procedure
935 : #endif
936 :
937 : #if CK3_ENABLED
938 2383 : module procedure setMergedDefCom_D1_CK3
939 : use pm_kind, only: CKC => CK3
940 : #include "pm_arrayMerge@routines.inc.F90"
941 : end procedure
942 : #endif
943 :
944 : #if CK2_ENABLED
945 2337 : module procedure setMergedDefCom_D1_CK2
946 : use pm_kind, only: CKC => CK2
947 : #include "pm_arrayMerge@routines.inc.F90"
948 : end procedure
949 : #endif
950 :
951 : #if CK1_ENABLED
952 2411 : module procedure setMergedDefCom_D1_CK1
953 : use pm_kind, only: CKC => CK1
954 : #include "pm_arrayMerge@routines.inc.F90"
955 : end procedure
956 : #endif
957 :
958 : #undef CK_ENABLED
959 :
960 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
961 :
962 : #define RK_ENABLED 1
963 :
964 : #if RK5_ENABLED
965 : module procedure setMergedDefCom_D1_RK5
966 : use pm_kind, only: RKC => RK5
967 : #include "pm_arrayMerge@routines.inc.F90"
968 : end procedure
969 : #endif
970 :
971 : #if RK4_ENABLED
972 2850 : module procedure setMergedDefCom_D1_RK4
973 : use pm_kind, only: RKC => RK4
974 : #include "pm_arrayMerge@routines.inc.F90"
975 : end procedure
976 : #endif
977 :
978 : #if RK3_ENABLED
979 2682 : module procedure setMergedDefCom_D1_RK3
980 : use pm_kind, only: RKC => RK3
981 : #include "pm_arrayMerge@routines.inc.F90"
982 : end procedure
983 : #endif
984 :
985 : #if RK2_ENABLED
986 2198 : module procedure setMergedDefCom_D1_RK2
987 : use pm_kind, only: RKC => RK2
988 : #include "pm_arrayMerge@routines.inc.F90"
989 : end procedure
990 : #endif
991 :
992 : #if RK1_ENABLED
993 2694 : module procedure setMergedDefCom_D1_RK1
994 : use pm_kind, only: RKC => RK1
995 : #include "pm_arrayMerge@routines.inc.F90"
996 : end procedure
997 : #endif
998 :
999 : #undef RK_ENABLED
1000 :
1001 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1002 :
1003 : ! LCOV_EXCL_START
1004 : !#if !__GFORTRAN__
1005 :
1006 : #define PSSK_ENABLED 1
1007 :
1008 : #if SK5_ENABLED
1009 : module procedure setMergedDefCom_D1_PSSK5
1010 : use pm_kind, only: SKC => SK5
1011 : #include "pm_arrayMerge@routines.inc.F90"
1012 : end procedure
1013 : #endif
1014 :
1015 : #if SK4_ENABLED
1016 : module procedure setMergedDefCom_D1_PSSK4
1017 : use pm_kind, only: SKC => SK4
1018 : #include "pm_arrayMerge@routines.inc.F90"
1019 : end procedure
1020 : #endif
1021 :
1022 : #if SK3_ENABLED
1023 : module procedure setMergedDefCom_D1_PSSK3
1024 : use pm_kind, only: SKC => SK3
1025 : #include "pm_arrayMerge@routines.inc.F90"
1026 : end procedure
1027 : #endif
1028 :
1029 : #if SK2_ENABLED
1030 : module procedure setMergedDefCom_D1_PSSK2
1031 : use pm_kind, only: SKC => SK2
1032 : #include "pm_arrayMerge@routines.inc.F90"
1033 : end procedure
1034 : #endif
1035 :
1036 : #if SK1_ENABLED
1037 : module procedure setMergedDefCom_D1_PSSK1
1038 : use pm_kind, only: SKC => SK1
1039 : #include "pm_arrayMerge@routines.inc.F90"
1040 : end procedure
1041 : #endif
1042 :
1043 : #undef PSSK_ENABLED
1044 :
1045 : !#endif
1046 : ! LCOV_EXCL_STOP
1047 :
1048 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1049 :
1050 : #define BSSK_ENABLED 1
1051 :
1052 0 : module procedure setMergedDefCom_D1_BSSK
1053 : use pm_kind, only: SKC => SK
1054 : #include "pm_arrayMerge@routines.inc.F90"
1055 : end procedure
1056 :
1057 : #undef BSSK_ENABLED
1058 :
1059 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1060 :
1061 : #undef D1_ENABLED
1062 :
1063 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1064 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1065 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1066 :
1067 : #undef DefCom_ENABLED
1068 :
1069 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1070 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1071 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1072 :
1073 : #define CusCom_ENABLED 1
1074 :
1075 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1076 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1077 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1078 :
1079 : #define D0_ENABLED 1
1080 :
1081 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1082 :
1083 : #define SK_ENABLED 1
1084 :
1085 : #if SK5_ENABLED
1086 : module procedure setMergedCusCom_D0_SK5
1087 : use pm_kind, only: SKC => SK5
1088 : #include "pm_arrayMerge@routines.inc.F90"
1089 : end procedure
1090 : #endif
1091 :
1092 : #if SK4_ENABLED
1093 : module procedure setMergedCusCom_D0_SK4
1094 : use pm_kind, only: SKC => SK4
1095 : #include "pm_arrayMerge@routines.inc.F90"
1096 : end procedure
1097 : #endif
1098 :
1099 : #if SK3_ENABLED
1100 : module procedure setMergedCusCom_D0_SK3
1101 : use pm_kind, only: SKC => SK3
1102 : #include "pm_arrayMerge@routines.inc.F90"
1103 : end procedure
1104 : #endif
1105 :
1106 : #if SK2_ENABLED
1107 : module procedure setMergedCusCom_D0_SK2
1108 : use pm_kind, only: SKC => SK2
1109 : #include "pm_arrayMerge@routines.inc.F90"
1110 : end procedure
1111 : #endif
1112 :
1113 : #if SK1_ENABLED
1114 2681 : module procedure setMergedCusCom_D0_SK1
1115 : use pm_kind, only: SKC => SK1
1116 : #include "pm_arrayMerge@routines.inc.F90"
1117 : end procedure
1118 : #endif
1119 :
1120 : #undef SK_ENABLED
1121 :
1122 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1123 :
1124 : #undef D0_ENABLED
1125 :
1126 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1127 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1128 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1129 :
1130 : #define D1_ENABLED 1
1131 :
1132 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1133 :
1134 : #define SK_ENABLED 1
1135 :
1136 : #if SK5_ENABLED
1137 : module procedure setMergedCusCom_D1_SK5
1138 : use pm_kind, only: SKC => SK5
1139 : #include "pm_arrayMerge@routines.inc.F90"
1140 : end procedure
1141 : #endif
1142 :
1143 : #if SK4_ENABLED
1144 : module procedure setMergedCusCom_D1_SK4
1145 : use pm_kind, only: SKC => SK4
1146 : #include "pm_arrayMerge@routines.inc.F90"
1147 : end procedure
1148 : #endif
1149 :
1150 : #if SK3_ENABLED
1151 : module procedure setMergedCusCom_D1_SK3
1152 : use pm_kind, only: SKC => SK3
1153 : #include "pm_arrayMerge@routines.inc.F90"
1154 : end procedure
1155 : #endif
1156 :
1157 : #if SK2_ENABLED
1158 : module procedure setMergedCusCom_D1_SK2
1159 : use pm_kind, only: SKC => SK2
1160 : #include "pm_arrayMerge@routines.inc.F90"
1161 : end procedure
1162 : #endif
1163 :
1164 : #if SK1_ENABLED
1165 2466 : module procedure setMergedCusCom_D1_SK1
1166 : use pm_kind, only: SKC => SK1
1167 : #include "pm_arrayMerge@routines.inc.F90"
1168 : end procedure
1169 : #endif
1170 :
1171 : #undef SK_ENABLED
1172 :
1173 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1174 :
1175 : #define IK_ENABLED 1
1176 :
1177 : #if IK5_ENABLED
1178 2454 : module procedure setMergedCusCom_D1_IK5
1179 : use pm_kind, only: IKC => IK5
1180 : #include "pm_arrayMerge@routines.inc.F90"
1181 : end procedure
1182 : #endif
1183 :
1184 : #if IK4_ENABLED
1185 2475 : module procedure setMergedCusCom_D1_IK4
1186 : use pm_kind, only: IKC => IK4
1187 : #include "pm_arrayMerge@routines.inc.F90"
1188 : end procedure
1189 : #endif
1190 :
1191 : #if IK3_ENABLED
1192 2480 : module procedure setMergedCusCom_D1_IK3
1193 : use pm_kind, only: IKC => IK3
1194 : #include "pm_arrayMerge@routines.inc.F90"
1195 : end procedure
1196 : #endif
1197 :
1198 : #if IK2_ENABLED
1199 2446 : module procedure setMergedCusCom_D1_IK2
1200 : use pm_kind, only: IKC => IK2
1201 : #include "pm_arrayMerge@routines.inc.F90"
1202 : end procedure
1203 : #endif
1204 :
1205 : #if IK1_ENABLED
1206 2657 : module procedure setMergedCusCom_D1_IK1
1207 : use pm_kind, only: IKC => IK1
1208 : #include "pm_arrayMerge@routines.inc.F90"
1209 : end procedure
1210 : #endif
1211 :
1212 : #undef IK_ENABLED
1213 :
1214 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1215 :
1216 : #define LK_ENABLED 1
1217 :
1218 : #if LK5_ENABLED
1219 2554 : module procedure setMergedCusCom_D1_LK5
1220 : use pm_kind, only: LKC => LK5
1221 : #include "pm_arrayMerge@routines.inc.F90"
1222 : end procedure
1223 : #endif
1224 :
1225 : #if LK4_ENABLED
1226 2530 : module procedure setMergedCusCom_D1_LK4
1227 : use pm_kind, only: LKC => LK4
1228 : #include "pm_arrayMerge@routines.inc.F90"
1229 : end procedure
1230 : #endif
1231 :
1232 : #if LK3_ENABLED
1233 2902 : module procedure setMergedCusCom_D1_LK3
1234 : use pm_kind, only: LKC => LK3
1235 : #include "pm_arrayMerge@routines.inc.F90"
1236 : end procedure
1237 : #endif
1238 :
1239 : #if LK2_ENABLED
1240 2055 : module procedure setMergedCusCom_D1_LK2
1241 : use pm_kind, only: LKC => LK2
1242 : #include "pm_arrayMerge@routines.inc.F90"
1243 : end procedure
1244 : #endif
1245 :
1246 : #if LK1_ENABLED
1247 2413 : module procedure setMergedCusCom_D1_LK1
1248 : use pm_kind, only: LKC => LK1
1249 : #include "pm_arrayMerge@routines.inc.F90"
1250 : end procedure
1251 : #endif
1252 :
1253 : #undef LK_ENABLED
1254 :
1255 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1256 :
1257 : #define CK_ENABLED 1
1258 :
1259 : #if CK5_ENABLED
1260 : module procedure setMergedCusCom_D1_CK5
1261 : use pm_kind, only: CKC => CK5
1262 : #include "pm_arrayMerge@routines.inc.F90"
1263 : end procedure
1264 : #endif
1265 :
1266 : #if CK4_ENABLED
1267 2603 : module procedure setMergedCusCom_D1_CK4
1268 : use pm_kind, only: CKC => CK4
1269 : #include "pm_arrayMerge@routines.inc.F90"
1270 : end procedure
1271 : #endif
1272 :
1273 : #if CK3_ENABLED
1274 2450 : module procedure setMergedCusCom_D1_CK3
1275 : use pm_kind, only: CKC => CK3
1276 : #include "pm_arrayMerge@routines.inc.F90"
1277 : end procedure
1278 : #endif
1279 :
1280 : #if CK2_ENABLED
1281 2245 : module procedure setMergedCusCom_D1_CK2
1282 : use pm_kind, only: CKC => CK2
1283 : #include "pm_arrayMerge@routines.inc.F90"
1284 : end procedure
1285 : #endif
1286 :
1287 : #if CK1_ENABLED
1288 2250 : module procedure setMergedCusCom_D1_CK1
1289 : use pm_kind, only: CKC => CK1
1290 : #include "pm_arrayMerge@routines.inc.F90"
1291 : end procedure
1292 : #endif
1293 :
1294 : #undef CK_ENABLED
1295 :
1296 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1297 :
1298 : #define RK_ENABLED 1
1299 :
1300 : #if RK5_ENABLED
1301 : module procedure setMergedCusCom_D1_RK5
1302 : use pm_kind, only: RKC => RK5
1303 : #include "pm_arrayMerge@routines.inc.F90"
1304 : end procedure
1305 : #endif
1306 :
1307 : #if RK4_ENABLED
1308 2736 : module procedure setMergedCusCom_D1_RK4
1309 : use pm_kind, only: RKC => RK4
1310 : #include "pm_arrayMerge@routines.inc.F90"
1311 : end procedure
1312 : #endif
1313 :
1314 : #if RK3_ENABLED
1315 2352 : module procedure setMergedCusCom_D1_RK3
1316 : use pm_kind, only: RKC => RK3
1317 : #include "pm_arrayMerge@routines.inc.F90"
1318 : end procedure
1319 : #endif
1320 :
1321 : #if RK2_ENABLED
1322 2271 : module procedure setMergedCusCom_D1_RK2
1323 : use pm_kind, only: RKC => RK2
1324 : #include "pm_arrayMerge@routines.inc.F90"
1325 : end procedure
1326 : #endif
1327 :
1328 : #if RK1_ENABLED
1329 2939 : module procedure setMergedCusCom_D1_RK1
1330 : use pm_kind, only: RKC => RK1
1331 : #include "pm_arrayMerge@routines.inc.F90"
1332 : end procedure
1333 : #endif
1334 :
1335 : #undef RK_ENABLED
1336 :
1337 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1338 :
1339 : ! LCOV_EXCL_START
1340 : !#if !__GFORTRAN__
1341 :
1342 : #define PSSK_ENABLED 1
1343 :
1344 : #if SK5_ENABLED
1345 : module procedure setMergedCusCom_D1_PSSK5
1346 : use pm_kind, only: SKC => SK5
1347 : #include "pm_arrayMerge@routines.inc.F90"
1348 : end procedure
1349 : #endif
1350 :
1351 : #if SK4_ENABLED
1352 : module procedure setMergedCusCom_D1_PSSK4
1353 : use pm_kind, only: SKC => SK4
1354 : #include "pm_arrayMerge@routines.inc.F90"
1355 : end procedure
1356 : #endif
1357 :
1358 : #if SK3_ENABLED
1359 : module procedure setMergedCusCom_D1_PSSK3
1360 : use pm_kind, only: SKC => SK3
1361 : #include "pm_arrayMerge@routines.inc.F90"
1362 : end procedure
1363 : #endif
1364 :
1365 : #if SK2_ENABLED
1366 : module procedure setMergedCusCom_D1_PSSK2
1367 : use pm_kind, only: SKC => SK2
1368 : #include "pm_arrayMerge@routines.inc.F90"
1369 : end procedure
1370 : #endif
1371 :
1372 : #if SK1_ENABLED
1373 : module procedure setMergedCusCom_D1_PSSK1
1374 : use pm_kind, only: SKC => SK1
1375 : #include "pm_arrayMerge@routines.inc.F90"
1376 : end procedure
1377 : #endif
1378 :
1379 : #undef PSSK_ENABLED
1380 :
1381 : !#endif
1382 : ! LCOV_EXCL_STOP
1383 :
1384 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1385 :
1386 : #define BSSK_ENABLED 1
1387 :
1388 0 : module procedure setMergedCusCom_D1_BSSK
1389 : use pm_kind, only: SKC => SK
1390 : #include "pm_arrayMerge@routines.inc.F90"
1391 : end procedure
1392 :
1393 : #undef BSSK_ENABLED
1394 :
1395 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1396 :
1397 : #undef D1_ENABLED
1398 :
1399 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1400 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1401 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1402 :
1403 : #undef CusCom_ENABLED
1404 :
1405 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1406 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1407 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1408 :
1409 : #undef setMerged_ENABLED
1410 :
1411 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1412 :
1413 : #undef CHECK_ASSERTION
1414 :
1415 : end submodule routines
|