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_mathMinMax](@ref pm_mathMinMax).
19 : !>
20 : !> \author
21 : !> \FatemehBagheri, Wednesday 12:20 PM, September 22, 2021, Dallas, TX
22 :
23 : submodule (pm_mathMinMax) routines ! LCOV_EXCL_LINE
24 :
25 : implicit none
26 :
27 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
28 :
29 : contains
30 :
31 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
32 :
33 : #define getMinMax_ENABLED 1
34 :
35 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
36 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
37 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
38 :
39 : #define Indi_ENABLED 1
40 :
41 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
42 :
43 : #define SK_ENABLED 1
44 :
45 : #if SK5_ENABLED
46 : module procedure getMinMaxIndi_SK5
47 : use pm_kind, only: SKC => SK5
48 : #include "pm_mathMinMax@routines.inc.F90"
49 : end procedure
50 : #endif
51 :
52 : #if SK4_ENABLED
53 : module procedure getMinMaxIndi_SK4
54 : use pm_kind, only: SKC => SK4
55 : #include "pm_mathMinMax@routines.inc.F90"
56 : end procedure
57 : #endif
58 :
59 : #if SK3_ENABLED
60 : module procedure getMinMaxIndi_SK3
61 : use pm_kind, only: SKC => SK3
62 : #include "pm_mathMinMax@routines.inc.F90"
63 : end procedure
64 : #endif
65 :
66 : #if SK2_ENABLED
67 : module procedure getMinMaxIndi_SK2
68 : use pm_kind, only: SKC => SK2
69 : #include "pm_mathMinMax@routines.inc.F90"
70 : end procedure
71 : #endif
72 :
73 : #if SK1_ENABLED
74 1 : module procedure getMinMaxIndi_SK1
75 : use pm_kind, only: SKC => SK1
76 : #include "pm_mathMinMax@routines.inc.F90"
77 1 : end procedure
78 : #endif
79 :
80 : #undef SK_ENABLED
81 :
82 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
83 :
84 : #define IK_ENABLED 1
85 :
86 : #if IK5_ENABLED
87 0 : module procedure getMinMaxIndi_IK5
88 : use pm_kind, only: IKC => IK5
89 : #include "pm_mathMinMax@routines.inc.F90"
90 0 : end procedure
91 : #endif
92 :
93 : #if IK4_ENABLED
94 0 : module procedure getMinMaxIndi_IK4
95 : use pm_kind, only: IKC => IK4
96 : #include "pm_mathMinMax@routines.inc.F90"
97 0 : end procedure
98 : #endif
99 :
100 : #if IK3_ENABLED
101 1 : module procedure getMinMaxIndi_IK3
102 : use pm_kind, only: IKC => IK3
103 : #include "pm_mathMinMax@routines.inc.F90"
104 1 : end procedure
105 : #endif
106 :
107 : #if IK2_ENABLED
108 0 : module procedure getMinMaxIndi_IK2
109 : use pm_kind, only: IKC => IK2
110 : #include "pm_mathMinMax@routines.inc.F90"
111 0 : end procedure
112 : #endif
113 :
114 : #if IK1_ENABLED
115 0 : module procedure getMinMaxIndi_IK1
116 : use pm_kind, only: IKC => IK1
117 : #include "pm_mathMinMax@routines.inc.F90"
118 0 : end procedure
119 : #endif
120 :
121 : #undef IK_ENABLED
122 :
123 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
124 :
125 : #define LK_ENABLED 1
126 :
127 : #if LK5_ENABLED
128 0 : module procedure getMinMaxIndi_LK5
129 : use pm_kind, only: LKC => LK5
130 : #include "pm_mathMinMax@routines.inc.F90"
131 0 : end procedure
132 : #endif
133 :
134 : #if LK4_ENABLED
135 0 : module procedure getMinMaxIndi_LK4
136 : use pm_kind, only: LKC => LK4
137 : #include "pm_mathMinMax@routines.inc.F90"
138 0 : end procedure
139 : #endif
140 :
141 : #if LK3_ENABLED
142 1 : module procedure getMinMaxIndi_LK3
143 : use pm_kind, only: LKC => LK3
144 : #include "pm_mathMinMax@routines.inc.F90"
145 1 : end procedure
146 : #endif
147 :
148 : #if LK2_ENABLED
149 0 : module procedure getMinMaxIndi_LK2
150 : use pm_kind, only: LKC => LK2
151 : #include "pm_mathMinMax@routines.inc.F90"
152 0 : end procedure
153 : #endif
154 :
155 : #if LK1_ENABLED
156 0 : module procedure getMinMaxIndi_LK1
157 : use pm_kind, only: LKC => LK1
158 : #include "pm_mathMinMax@routines.inc.F90"
159 0 : end procedure
160 : #endif
161 :
162 : #undef LK_ENABLED
163 :
164 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
165 :
166 : #define CK_ENABLED 1
167 :
168 : #if CK5_ENABLED
169 : module procedure getMinMaxIndi_CK5
170 : use pm_kind, only: CKC => CK5
171 : #include "pm_mathMinMax@routines.inc.F90"
172 : end procedure
173 : #endif
174 :
175 : #if CK4_ENABLED
176 0 : module procedure getMinMaxIndi_CK4
177 : use pm_kind, only: CKC => CK4
178 : #include "pm_mathMinMax@routines.inc.F90"
179 0 : end procedure
180 : #endif
181 :
182 : #if CK3_ENABLED
183 0 : module procedure getMinMaxIndi_CK3
184 : use pm_kind, only: CKC => CK3
185 : #include "pm_mathMinMax@routines.inc.F90"
186 0 : end procedure
187 : #endif
188 :
189 : #if CK2_ENABLED
190 1 : module procedure getMinMaxIndi_CK2
191 : use pm_kind, only: CKC => CK2
192 : #include "pm_mathMinMax@routines.inc.F90"
193 1 : end procedure
194 : #endif
195 :
196 : #if CK1_ENABLED
197 0 : module procedure getMinMaxIndi_CK1
198 : use pm_kind, only: CKC => CK1
199 : #include "pm_mathMinMax@routines.inc.F90"
200 0 : end procedure
201 : #endif
202 :
203 : #undef CK_ENABLED
204 :
205 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
206 :
207 : #define RK_ENABLED 1
208 :
209 : #if RK5_ENABLED
210 : module procedure getMinMaxIndi_RK5
211 : use pm_kind, only: RKC => RK5
212 : #include "pm_mathMinMax@routines.inc.F90"
213 : end procedure
214 : #endif
215 :
216 : #if RK4_ENABLED
217 5000 : module procedure getMinMaxIndi_RK4
218 : use pm_kind, only: RKC => RK4
219 : #include "pm_mathMinMax@routines.inc.F90"
220 5000 : end procedure
221 : #endif
222 :
223 : #if RK3_ENABLED
224 5000 : module procedure getMinMaxIndi_RK3
225 : use pm_kind, only: RKC => RK3
226 : #include "pm_mathMinMax@routines.inc.F90"
227 5000 : end procedure
228 : #endif
229 :
230 : #if RK2_ENABLED
231 5001 : module procedure getMinMaxIndi_RK2
232 : use pm_kind, only: RKC => RK2
233 : #include "pm_mathMinMax@routines.inc.F90"
234 5001 : end procedure
235 : #endif
236 :
237 : #if RK1_ENABLED
238 33024 : module procedure getMinMaxIndi_RK1
239 : use pm_kind, only: RKC => RK1
240 : #include "pm_mathMinMax@routines.inc.F90"
241 33024 : end procedure
242 : #endif
243 :
244 : #undef RK_ENABLED
245 :
246 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
247 :
248 : #undef Indi_ENABLED
249 :
250 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
251 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
252 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
253 :
254 : #define Pair_ENABLED 1
255 :
256 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
257 :
258 : #define SK_ENABLED 1
259 :
260 : #if SK5_ENABLED
261 : module procedure getMinMaxPair_SK5
262 : use pm_kind, only: SKC => SK5
263 : #include "pm_mathMinMax@routines.inc.F90"
264 : end procedure
265 : #endif
266 :
267 : #if SK4_ENABLED
268 : module procedure getMinMaxPair_SK4
269 : use pm_kind, only: SKC => SK4
270 : #include "pm_mathMinMax@routines.inc.F90"
271 : end procedure
272 : #endif
273 :
274 : #if SK3_ENABLED
275 : module procedure getMinMaxPair_SK3
276 : use pm_kind, only: SKC => SK3
277 : #include "pm_mathMinMax@routines.inc.F90"
278 : end procedure
279 : #endif
280 :
281 : #if SK2_ENABLED
282 : module procedure getMinMaxPair_SK2
283 : use pm_kind, only: SKC => SK2
284 : #include "pm_mathMinMax@routines.inc.F90"
285 : end procedure
286 : #endif
287 :
288 : #if SK1_ENABLED
289 1 : module procedure getMinMaxPair_SK1
290 : use pm_kind, only: SKC => SK1
291 : #include "pm_mathMinMax@routines.inc.F90"
292 1 : end procedure
293 : #endif
294 :
295 : #undef SK_ENABLED
296 :
297 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
298 :
299 : #define IK_ENABLED 1
300 :
301 : #if IK5_ENABLED
302 0 : module procedure getMinMaxPair_IK5
303 : use pm_kind, only: IKC => IK5
304 : #include "pm_mathMinMax@routines.inc.F90"
305 0 : end procedure
306 : #endif
307 :
308 : #if IK4_ENABLED
309 0 : module procedure getMinMaxPair_IK4
310 : use pm_kind, only: IKC => IK4
311 : #include "pm_mathMinMax@routines.inc.F90"
312 0 : end procedure
313 : #endif
314 :
315 : #if IK3_ENABLED
316 1 : module procedure getMinMaxPair_IK3
317 : use pm_kind, only: IKC => IK3
318 : #include "pm_mathMinMax@routines.inc.F90"
319 1 : end procedure
320 : #endif
321 :
322 : #if IK2_ENABLED
323 0 : module procedure getMinMaxPair_IK2
324 : use pm_kind, only: IKC => IK2
325 : #include "pm_mathMinMax@routines.inc.F90"
326 0 : end procedure
327 : #endif
328 :
329 : #if IK1_ENABLED
330 0 : module procedure getMinMaxPair_IK1
331 : use pm_kind, only: IKC => IK1
332 : #include "pm_mathMinMax@routines.inc.F90"
333 0 : end procedure
334 : #endif
335 :
336 : #undef IK_ENABLED
337 :
338 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
339 :
340 : #define LK_ENABLED 1
341 :
342 : #if LK5_ENABLED
343 0 : module procedure getMinMaxPair_LK5
344 : use pm_kind, only: LKC => LK5
345 : #include "pm_mathMinMax@routines.inc.F90"
346 0 : end procedure
347 : #endif
348 :
349 : #if LK4_ENABLED
350 0 : module procedure getMinMaxPair_LK4
351 : use pm_kind, only: LKC => LK4
352 : #include "pm_mathMinMax@routines.inc.F90"
353 0 : end procedure
354 : #endif
355 :
356 : #if LK3_ENABLED
357 1 : module procedure getMinMaxPair_LK3
358 : use pm_kind, only: LKC => LK3
359 : #include "pm_mathMinMax@routines.inc.F90"
360 1 : end procedure
361 : #endif
362 :
363 : #if LK2_ENABLED
364 0 : module procedure getMinMaxPair_LK2
365 : use pm_kind, only: LKC => LK2
366 : #include "pm_mathMinMax@routines.inc.F90"
367 0 : end procedure
368 : #endif
369 :
370 : #if LK1_ENABLED
371 0 : module procedure getMinMaxPair_LK1
372 : use pm_kind, only: LKC => LK1
373 : #include "pm_mathMinMax@routines.inc.F90"
374 0 : end procedure
375 : #endif
376 :
377 : #undef LK_ENABLED
378 :
379 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
380 :
381 : #define CK_ENABLED 1
382 :
383 : #if CK5_ENABLED
384 : module procedure getMinMaxPair_CK5
385 : use pm_kind, only: CKC => CK5
386 : #include "pm_mathMinMax@routines.inc.F90"
387 : end procedure
388 : #endif
389 :
390 : #if CK4_ENABLED
391 0 : module procedure getMinMaxPair_CK4
392 : use pm_kind, only: CKC => CK4
393 : #include "pm_mathMinMax@routines.inc.F90"
394 0 : end procedure
395 : #endif
396 :
397 : #if CK3_ENABLED
398 0 : module procedure getMinMaxPair_CK3
399 : use pm_kind, only: CKC => CK3
400 : #include "pm_mathMinMax@routines.inc.F90"
401 0 : end procedure
402 : #endif
403 :
404 : #if CK2_ENABLED
405 1 : module procedure getMinMaxPair_CK2
406 : use pm_kind, only: CKC => CK2
407 : #include "pm_mathMinMax@routines.inc.F90"
408 1 : end procedure
409 : #endif
410 :
411 : #if CK1_ENABLED
412 0 : module procedure getMinMaxPair_CK1
413 : use pm_kind, only: CKC => CK1
414 : #include "pm_mathMinMax@routines.inc.F90"
415 0 : end procedure
416 : #endif
417 :
418 : #undef CK_ENABLED
419 :
420 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
421 :
422 : #define RK_ENABLED 1
423 :
424 : #if RK5_ENABLED
425 : module procedure getMinMaxPair_RK5
426 : use pm_kind, only: RKC => RK5
427 : #include "pm_mathMinMax@routines.inc.F90"
428 : end procedure
429 : #endif
430 :
431 : #if RK4_ENABLED
432 0 : module procedure getMinMaxPair_RK4
433 : use pm_kind, only: RKC => RK4
434 : #include "pm_mathMinMax@routines.inc.F90"
435 0 : end procedure
436 : #endif
437 :
438 : #if RK3_ENABLED
439 0 : module procedure getMinMaxPair_RK3
440 : use pm_kind, only: RKC => RK3
441 : #include "pm_mathMinMax@routines.inc.F90"
442 0 : end procedure
443 : #endif
444 :
445 : #if RK2_ENABLED
446 1 : module procedure getMinMaxPair_RK2
447 : use pm_kind, only: RKC => RK2
448 : #include "pm_mathMinMax@routines.inc.F90"
449 1 : end procedure
450 : #endif
451 :
452 : #if RK1_ENABLED
453 2 : module procedure getMinMaxPair_RK1
454 : use pm_kind, only: RKC => RK1
455 : #include "pm_mathMinMax@routines.inc.F90"
456 2 : end procedure
457 : #endif
458 :
459 : #undef RK_ENABLED
460 :
461 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
462 :
463 : #undef Pair_ENABLED
464 :
465 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
466 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
467 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
468 :
469 : #undef getMinMax_ENABLED
470 :
471 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
472 :
473 : #define setMinMax_ENABLED 1
474 :
475 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
476 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
477 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
478 :
479 : #define Indi_ENABLED 1
480 :
481 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
482 :
483 : #define SK_ENABLED 1
484 :
485 : #if SK5_ENABLED
486 : module procedure setMinMaxIndi_SK5
487 : use pm_kind, only: SKC => SK5
488 : #include "pm_mathMinMax@routines.inc.F90"
489 : end procedure
490 : #endif
491 :
492 : #if SK4_ENABLED
493 : module procedure setMinMaxIndi_SK4
494 : use pm_kind, only: SKC => SK4
495 : #include "pm_mathMinMax@routines.inc.F90"
496 : end procedure
497 : #endif
498 :
499 : #if SK3_ENABLED
500 : module procedure setMinMaxIndi_SK3
501 : use pm_kind, only: SKC => SK3
502 : #include "pm_mathMinMax@routines.inc.F90"
503 : end procedure
504 : #endif
505 :
506 : #if SK2_ENABLED
507 : module procedure setMinMaxIndi_SK2
508 : use pm_kind, only: SKC => SK2
509 : #include "pm_mathMinMax@routines.inc.F90"
510 : end procedure
511 : #endif
512 :
513 : #if SK1_ENABLED
514 1 : module procedure setMinMaxIndi_SK1
515 : use pm_kind, only: SKC => SK1
516 : #include "pm_mathMinMax@routines.inc.F90"
517 1 : end procedure
518 : #endif
519 :
520 : #undef SK_ENABLED
521 :
522 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
523 :
524 : #define IK_ENABLED 1
525 :
526 : #if IK5_ENABLED
527 0 : module procedure setMinMaxIndi_IK5
528 : use pm_kind, only: IKC => IK5
529 : #include "pm_mathMinMax@routines.inc.F90"
530 0 : end procedure
531 : #endif
532 :
533 : #if IK4_ENABLED
534 0 : module procedure setMinMaxIndi_IK4
535 : use pm_kind, only: IKC => IK4
536 : #include "pm_mathMinMax@routines.inc.F90"
537 0 : end procedure
538 : #endif
539 :
540 : #if IK3_ENABLED
541 5 : module procedure setMinMaxIndi_IK3
542 : use pm_kind, only: IKC => IK3
543 : #include "pm_mathMinMax@routines.inc.F90"
544 5 : end procedure
545 : #endif
546 :
547 : #if IK2_ENABLED
548 0 : module procedure setMinMaxIndi_IK2
549 : use pm_kind, only: IKC => IK2
550 : #include "pm_mathMinMax@routines.inc.F90"
551 0 : end procedure
552 : #endif
553 :
554 : #if IK1_ENABLED
555 0 : module procedure setMinMaxIndi_IK1
556 : use pm_kind, only: IKC => IK1
557 : #include "pm_mathMinMax@routines.inc.F90"
558 0 : end procedure
559 : #endif
560 :
561 : #undef IK_ENABLED
562 :
563 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
564 :
565 : #define LK_ENABLED 1
566 :
567 : #if LK5_ENABLED
568 0 : module procedure setMinMaxIndi_LK5
569 : use pm_kind, only: LKC => LK5
570 : #include "pm_mathMinMax@routines.inc.F90"
571 0 : end procedure
572 : #endif
573 :
574 : #if LK4_ENABLED
575 0 : module procedure setMinMaxIndi_LK4
576 : use pm_kind, only: LKC => LK4
577 : #include "pm_mathMinMax@routines.inc.F90"
578 0 : end procedure
579 : #endif
580 :
581 : #if LK3_ENABLED
582 1 : module procedure setMinMaxIndi_LK3
583 : use pm_kind, only: LKC => LK3
584 : #include "pm_mathMinMax@routines.inc.F90"
585 1 : end procedure
586 : #endif
587 :
588 : #if LK2_ENABLED
589 0 : module procedure setMinMaxIndi_LK2
590 : use pm_kind, only: LKC => LK2
591 : #include "pm_mathMinMax@routines.inc.F90"
592 0 : end procedure
593 : #endif
594 :
595 : #if LK1_ENABLED
596 0 : module procedure setMinMaxIndi_LK1
597 : use pm_kind, only: LKC => LK1
598 : #include "pm_mathMinMax@routines.inc.F90"
599 0 : end procedure
600 : #endif
601 :
602 : #undef LK_ENABLED
603 :
604 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
605 :
606 : #define CK_ENABLED 1
607 :
608 : #if CK5_ENABLED
609 : module procedure setMinMaxIndi_CK5
610 : use pm_kind, only: CKC => CK5
611 : #include "pm_mathMinMax@routines.inc.F90"
612 : end procedure
613 : #endif
614 :
615 : #if CK4_ENABLED
616 0 : module procedure setMinMaxIndi_CK4
617 : use pm_kind, only: CKC => CK4
618 : #include "pm_mathMinMax@routines.inc.F90"
619 0 : end procedure
620 : #endif
621 :
622 : #if CK3_ENABLED
623 0 : module procedure setMinMaxIndi_CK3
624 : use pm_kind, only: CKC => CK3
625 : #include "pm_mathMinMax@routines.inc.F90"
626 0 : end procedure
627 : #endif
628 :
629 : #if CK2_ENABLED
630 1 : module procedure setMinMaxIndi_CK2
631 : use pm_kind, only: CKC => CK2
632 : #include "pm_mathMinMax@routines.inc.F90"
633 1 : end procedure
634 : #endif
635 :
636 : #if CK1_ENABLED
637 0 : module procedure setMinMaxIndi_CK1
638 : use pm_kind, only: CKC => CK1
639 : #include "pm_mathMinMax@routines.inc.F90"
640 0 : end procedure
641 : #endif
642 :
643 : #undef CK_ENABLED
644 :
645 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
646 :
647 : #define RK_ENABLED 1
648 :
649 : #if RK5_ENABLED
650 : module procedure setMinMaxIndi_RK5
651 : use pm_kind, only: RKC => RK5
652 : #include "pm_mathMinMax@routines.inc.F90"
653 : end procedure
654 : #endif
655 :
656 : #if RK4_ENABLED
657 0 : module procedure setMinMaxIndi_RK4
658 : use pm_kind, only: RKC => RK4
659 : #include "pm_mathMinMax@routines.inc.F90"
660 0 : end procedure
661 : #endif
662 :
663 : #if RK3_ENABLED
664 0 : module procedure setMinMaxIndi_RK3
665 : use pm_kind, only: RKC => RK3
666 : #include "pm_mathMinMax@routines.inc.F90"
667 0 : end procedure
668 : #endif
669 :
670 : #if RK2_ENABLED
671 1 : module procedure setMinMaxIndi_RK2
672 : use pm_kind, only: RKC => RK2
673 : #include "pm_mathMinMax@routines.inc.F90"
674 1 : end procedure
675 : #endif
676 :
677 : #if RK1_ENABLED
678 0 : module procedure setMinMaxIndi_RK1
679 : use pm_kind, only: RKC => RK1
680 : #include "pm_mathMinMax@routines.inc.F90"
681 0 : end procedure
682 : #endif
683 :
684 : #undef RK_ENABLED
685 :
686 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
687 :
688 : #undef Indi_ENABLED
689 :
690 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
691 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
692 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
693 :
694 : #define Pair_ENABLED 1
695 :
696 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
697 :
698 : #define SK_ENABLED 1
699 :
700 : #if SK5_ENABLED
701 : module procedure setMinMaxPair_SK5
702 : use pm_kind, only: SKC => SK5
703 : #include "pm_mathMinMax@routines.inc.F90"
704 : end procedure
705 : #endif
706 :
707 : #if SK4_ENABLED
708 : module procedure setMinMaxPair_SK4
709 : use pm_kind, only: SKC => SK4
710 : #include "pm_mathMinMax@routines.inc.F90"
711 : end procedure
712 : #endif
713 :
714 : #if SK3_ENABLED
715 : module procedure setMinMaxPair_SK3
716 : use pm_kind, only: SKC => SK3
717 : #include "pm_mathMinMax@routines.inc.F90"
718 : end procedure
719 : #endif
720 :
721 : #if SK2_ENABLED
722 : module procedure setMinMaxPair_SK2
723 : use pm_kind, only: SKC => SK2
724 : #include "pm_mathMinMax@routines.inc.F90"
725 : end procedure
726 : #endif
727 :
728 : #if SK1_ENABLED
729 1 : module procedure setMinMaxPair_SK1
730 : use pm_kind, only: SKC => SK1
731 : #include "pm_mathMinMax@routines.inc.F90"
732 1 : end procedure
733 : #endif
734 :
735 : #undef SK_ENABLED
736 :
737 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
738 :
739 : #define IK_ENABLED 1
740 :
741 : #if IK5_ENABLED
742 0 : module procedure setMinMaxPair_IK5
743 : use pm_kind, only: IKC => IK5
744 : #include "pm_mathMinMax@routines.inc.F90"
745 0 : end procedure
746 : #endif
747 :
748 : #if IK4_ENABLED
749 0 : module procedure setMinMaxPair_IK4
750 : use pm_kind, only: IKC => IK4
751 : #include "pm_mathMinMax@routines.inc.F90"
752 0 : end procedure
753 : #endif
754 :
755 : #if IK3_ENABLED
756 1 : module procedure setMinMaxPair_IK3
757 : use pm_kind, only: IKC => IK3
758 : #include "pm_mathMinMax@routines.inc.F90"
759 1 : end procedure
760 : #endif
761 :
762 : #if IK2_ENABLED
763 0 : module procedure setMinMaxPair_IK2
764 : use pm_kind, only: IKC => IK2
765 : #include "pm_mathMinMax@routines.inc.F90"
766 0 : end procedure
767 : #endif
768 :
769 : #if IK1_ENABLED
770 0 : module procedure setMinMaxPair_IK1
771 : use pm_kind, only: IKC => IK1
772 : #include "pm_mathMinMax@routines.inc.F90"
773 0 : end procedure
774 : #endif
775 :
776 : #undef IK_ENABLED
777 :
778 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
779 :
780 : #define LK_ENABLED 1
781 :
782 : #if LK5_ENABLED
783 0 : module procedure setMinMaxPair_LK5
784 : use pm_kind, only: LKC => LK5
785 : #include "pm_mathMinMax@routines.inc.F90"
786 0 : end procedure
787 : #endif
788 :
789 : #if LK4_ENABLED
790 0 : module procedure setMinMaxPair_LK4
791 : use pm_kind, only: LKC => LK4
792 : #include "pm_mathMinMax@routines.inc.F90"
793 0 : end procedure
794 : #endif
795 :
796 : #if LK3_ENABLED
797 1 : module procedure setMinMaxPair_LK3
798 : use pm_kind, only: LKC => LK3
799 : #include "pm_mathMinMax@routines.inc.F90"
800 1 : end procedure
801 : #endif
802 :
803 : #if LK2_ENABLED
804 0 : module procedure setMinMaxPair_LK2
805 : use pm_kind, only: LKC => LK2
806 : #include "pm_mathMinMax@routines.inc.F90"
807 0 : end procedure
808 : #endif
809 :
810 : #if LK1_ENABLED
811 0 : module procedure setMinMaxPair_LK1
812 : use pm_kind, only: LKC => LK1
813 : #include "pm_mathMinMax@routines.inc.F90"
814 0 : end procedure
815 : #endif
816 :
817 : #undef LK_ENABLED
818 :
819 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
820 :
821 : #define CK_ENABLED 1
822 :
823 : #if CK5_ENABLED
824 : module procedure setMinMaxPair_CK5
825 : use pm_kind, only: CKC => CK5
826 : #include "pm_mathMinMax@routines.inc.F90"
827 : end procedure
828 : #endif
829 :
830 : #if CK4_ENABLED
831 0 : module procedure setMinMaxPair_CK4
832 : use pm_kind, only: CKC => CK4
833 : #include "pm_mathMinMax@routines.inc.F90"
834 0 : end procedure
835 : #endif
836 :
837 : #if CK3_ENABLED
838 0 : module procedure setMinMaxPair_CK3
839 : use pm_kind, only: CKC => CK3
840 : #include "pm_mathMinMax@routines.inc.F90"
841 0 : end procedure
842 : #endif
843 :
844 : #if CK2_ENABLED
845 1 : module procedure setMinMaxPair_CK2
846 : use pm_kind, only: CKC => CK2
847 : #include "pm_mathMinMax@routines.inc.F90"
848 1 : end procedure
849 : #endif
850 :
851 : #if CK1_ENABLED
852 0 : module procedure setMinMaxPair_CK1
853 : use pm_kind, only: CKC => CK1
854 : #include "pm_mathMinMax@routines.inc.F90"
855 0 : end procedure
856 : #endif
857 :
858 : #undef CK_ENABLED
859 :
860 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
861 :
862 : #define RK_ENABLED 1
863 :
864 : #if RK5_ENABLED
865 : module procedure setMinMaxPair_RK5
866 : use pm_kind, only: RKC => RK5
867 : #include "pm_mathMinMax@routines.inc.F90"
868 : end procedure
869 : #endif
870 :
871 : #if RK4_ENABLED
872 2 : module procedure setMinMaxPair_RK4
873 : use pm_kind, only: RKC => RK4
874 : #include "pm_mathMinMax@routines.inc.F90"
875 2 : end procedure
876 : #endif
877 :
878 : #if RK3_ENABLED
879 0 : module procedure setMinMaxPair_RK3
880 : use pm_kind, only: RKC => RK3
881 : #include "pm_mathMinMax@routines.inc.F90"
882 0 : end procedure
883 : #endif
884 :
885 : #if RK2_ENABLED
886 1 : module procedure setMinMaxPair_RK2
887 : use pm_kind, only: RKC => RK2
888 : #include "pm_mathMinMax@routines.inc.F90"
889 1 : end procedure
890 : #endif
891 :
892 : #if RK1_ENABLED
893 0 : module procedure setMinMaxPair_RK1
894 : use pm_kind, only: RKC => RK1
895 : #include "pm_mathMinMax@routines.inc.F90"
896 0 : end procedure
897 : #endif
898 :
899 : #undef RK_ENABLED
900 :
901 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
902 :
903 : #undef Pair_ENABLED
904 :
905 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
906 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
907 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
908 :
909 : #undef setMinMax_ENABLED
910 :
911 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
912 :
913 : end submodule routines
|