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_arrayMinMax](@ref pm_arrayMinMax).
19 : !>
20 : !> \author
21 : !> \FatemehBagheri, Wednesday 12:20 PM, September 22, 2021, Dallas, TX
22 :
23 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
24 :
25 : submodule (pm_arrayMinMax) routines ! LCOV_EXCL_LINE
26 :
27 : implicit none
28 :
29 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
30 :
31 : contains
32 :
33 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
34 :
35 : #define getMinMaxVal_ENABLED 1
36 :
37 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
38 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
39 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
40 :
41 : #define D0_ENABLED 1
42 :
43 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
44 :
45 : #define SK_ENABLED 1
46 :
47 : #if SK5_ENABLED
48 : module procedure getMinMaxVal_D0_SK5
49 : use pm_kind, only: SKC => SK5
50 : #include "pm_arrayMinMax@routines.inc.F90"
51 : end procedure
52 : #endif
53 :
54 : #if SK4_ENABLED
55 : module procedure getMinMaxVal_D0_SK4
56 : use pm_kind, only: SKC => SK4
57 : #include "pm_arrayMinMax@routines.inc.F90"
58 : end procedure
59 : #endif
60 :
61 : #if SK3_ENABLED
62 : module procedure getMinMaxVal_D0_SK3
63 : use pm_kind, only: SKC => SK3
64 : #include "pm_arrayMinMax@routines.inc.F90"
65 : end procedure
66 : #endif
67 :
68 : #if SK2_ENABLED
69 : module procedure getMinMaxVal_D0_SK2
70 : use pm_kind, only: SKC => SK2
71 : #include "pm_arrayMinMax@routines.inc.F90"
72 : end procedure
73 : #endif
74 :
75 : #if SK1_ENABLED
76 2 : module procedure getMinMaxVal_D0_SK1
77 : use pm_kind, only: SKC => SK1
78 : #include "pm_arrayMinMax@routines.inc.F90"
79 2 : end procedure
80 : #endif
81 :
82 : #undef SK_ENABLED
83 :
84 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
85 :
86 : #undef D0_ENABLED
87 :
88 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
89 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
90 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
91 :
92 : #define D1_ENABLED 1
93 :
94 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
95 :
96 : #define SK_ENABLED 1
97 :
98 : #if SK5_ENABLED
99 : module procedure getMinMaxVal_D1_SK5
100 : use pm_kind, only: SKC => SK5
101 : #include "pm_arrayMinMax@routines.inc.F90"
102 : end procedure
103 : #endif
104 :
105 : #if SK4_ENABLED
106 : module procedure getMinMaxVal_D1_SK4
107 : use pm_kind, only: SKC => SK4
108 : #include "pm_arrayMinMax@routines.inc.F90"
109 : end procedure
110 : #endif
111 :
112 : #if SK3_ENABLED
113 : module procedure getMinMaxVal_D1_SK3
114 : use pm_kind, only: SKC => SK3
115 : #include "pm_arrayMinMax@routines.inc.F90"
116 : end procedure
117 : #endif
118 :
119 : #if SK2_ENABLED
120 : module procedure getMinMaxVal_D1_SK2
121 : use pm_kind, only: SKC => SK2
122 : #include "pm_arrayMinMax@routines.inc.F90"
123 : end procedure
124 : #endif
125 :
126 : #if SK1_ENABLED
127 2 : module procedure getMinMaxVal_D1_SK1
128 : use pm_kind, only: SKC => SK1
129 : #include "pm_arrayMinMax@routines.inc.F90"
130 2 : end procedure
131 : #endif
132 :
133 : #undef SK_ENABLED
134 :
135 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
136 :
137 : #define IK_ENABLED 1
138 :
139 : #if IK5_ENABLED
140 0 : module procedure getMinMaxVal_D1_IK5
141 : use pm_kind, only: IKC => IK5
142 : #include "pm_arrayMinMax@routines.inc.F90"
143 0 : end procedure
144 : #endif
145 :
146 : #if IK4_ENABLED
147 0 : module procedure getMinMaxVal_D1_IK4
148 : use pm_kind, only: IKC => IK4
149 : #include "pm_arrayMinMax@routines.inc.F90"
150 0 : end procedure
151 : #endif
152 :
153 : #if IK3_ENABLED
154 2 : module procedure getMinMaxVal_D1_IK3
155 : use pm_kind, only: IKC => IK3
156 : #include "pm_arrayMinMax@routines.inc.F90"
157 2 : end procedure
158 : #endif
159 :
160 : #if IK2_ENABLED
161 0 : module procedure getMinMaxVal_D1_IK2
162 : use pm_kind, only: IKC => IK2
163 : #include "pm_arrayMinMax@routines.inc.F90"
164 0 : end procedure
165 : #endif
166 :
167 : #if IK1_ENABLED
168 0 : module procedure getMinMaxVal_D1_IK1
169 : use pm_kind, only: IKC => IK1
170 : #include "pm_arrayMinMax@routines.inc.F90"
171 0 : end procedure
172 : #endif
173 :
174 : #undef IK_ENABLED
175 :
176 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
177 :
178 : #define LK_ENABLED 1
179 :
180 : #if LK5_ENABLED
181 0 : module procedure getMinMaxVal_D1_LK5
182 : use pm_kind, only: LKC => LK5
183 : #include "pm_arrayMinMax@routines.inc.F90"
184 0 : end procedure
185 : #endif
186 :
187 : #if LK4_ENABLED
188 0 : module procedure getMinMaxVal_D1_LK4
189 : use pm_kind, only: LKC => LK4
190 : #include "pm_arrayMinMax@routines.inc.F90"
191 0 : end procedure
192 : #endif
193 :
194 : #if LK3_ENABLED
195 2 : module procedure getMinMaxVal_D1_LK3
196 : use pm_kind, only: LKC => LK3
197 : #include "pm_arrayMinMax@routines.inc.F90"
198 2 : end procedure
199 : #endif
200 :
201 : #if LK2_ENABLED
202 0 : module procedure getMinMaxVal_D1_LK2
203 : use pm_kind, only: LKC => LK2
204 : #include "pm_arrayMinMax@routines.inc.F90"
205 0 : end procedure
206 : #endif
207 :
208 : #if LK1_ENABLED
209 0 : module procedure getMinMaxVal_D1_LK1
210 : use pm_kind, only: LKC => LK1
211 : #include "pm_arrayMinMax@routines.inc.F90"
212 0 : end procedure
213 : #endif
214 :
215 : #undef LK_ENABLED
216 :
217 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
218 :
219 : #define CK_ENABLED 1
220 :
221 : #if CK5_ENABLED
222 : module procedure getMinMaxVal_D1_CK5
223 : use pm_kind, only: CKC => CK5
224 : #include "pm_arrayMinMax@routines.inc.F90"
225 : end procedure
226 : #endif
227 :
228 : #if CK4_ENABLED
229 0 : module procedure getMinMaxVal_D1_CK4
230 : use pm_kind, only: CKC => CK4
231 : #include "pm_arrayMinMax@routines.inc.F90"
232 0 : end procedure
233 : #endif
234 :
235 : #if CK3_ENABLED
236 0 : module procedure getMinMaxVal_D1_CK3
237 : use pm_kind, only: CKC => CK3
238 : #include "pm_arrayMinMax@routines.inc.F90"
239 0 : end procedure
240 : #endif
241 :
242 : #if CK2_ENABLED
243 0 : module procedure getMinMaxVal_D1_CK2
244 : use pm_kind, only: CKC => CK2
245 : #include "pm_arrayMinMax@routines.inc.F90"
246 0 : end procedure
247 : #endif
248 :
249 : #if CK1_ENABLED
250 2 : module procedure getMinMaxVal_D1_CK1
251 : use pm_kind, only: CKC => CK1
252 : #include "pm_arrayMinMax@routines.inc.F90"
253 2 : end procedure
254 : #endif
255 :
256 : #undef CK_ENABLED
257 :
258 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
259 :
260 : #define RK_ENABLED 1
261 :
262 : #if RK5_ENABLED
263 : module procedure getMinMaxVal_D1_RK5
264 : use pm_kind, only: RKC => RK5
265 : #include "pm_arrayMinMax@routines.inc.F90"
266 : end procedure
267 : #endif
268 :
269 : #if RK4_ENABLED
270 0 : module procedure getMinMaxVal_D1_RK4
271 : use pm_kind, only: RKC => RK4
272 : #include "pm_arrayMinMax@routines.inc.F90"
273 0 : end procedure
274 : #endif
275 :
276 : #if RK3_ENABLED
277 0 : module procedure getMinMaxVal_D1_RK3
278 : use pm_kind, only: RKC => RK3
279 : #include "pm_arrayMinMax@routines.inc.F90"
280 0 : end procedure
281 : #endif
282 :
283 : #if RK2_ENABLED
284 0 : module procedure getMinMaxVal_D1_RK2
285 : use pm_kind, only: RKC => RK2
286 : #include "pm_arrayMinMax@routines.inc.F90"
287 0 : end procedure
288 : #endif
289 :
290 : #if RK1_ENABLED
291 2 : module procedure getMinMaxVal_D1_RK1
292 : use pm_kind, only: RKC => RK1
293 : #include "pm_arrayMinMax@routines.inc.F90"
294 2 : end procedure
295 : #endif
296 :
297 : #undef RK_ENABLED
298 :
299 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
300 :
301 : ! LCOV_EXCL_START
302 : !#if !__GFORTRAN__
303 :
304 : #define PSSK_ENABLED 1
305 :
306 : #if SK5_ENABLED
307 : module procedure getMinMaxVal_D1_PSSK5
308 : use pm_kind, only: SKC => SK5
309 : #include "pm_arrayMinMax@routines.inc.F90"
310 : end procedure
311 : #endif
312 :
313 : #if SK4_ENABLED
314 : module procedure getMinMaxVal_D1_PSSK4
315 : use pm_kind, only: SKC => SK4
316 : #include "pm_arrayMinMax@routines.inc.F90"
317 : end procedure
318 : #endif
319 :
320 : #if SK3_ENABLED
321 : module procedure getMinMaxVal_D1_PSSK3
322 : use pm_kind, only: SKC => SK3
323 : #include "pm_arrayMinMax@routines.inc.F90"
324 : end procedure
325 : #endif
326 :
327 : #if SK2_ENABLED
328 : module procedure getMinMaxVal_D1_PSSK2
329 : use pm_kind, only: SKC => SK2
330 : #include "pm_arrayMinMax@routines.inc.F90"
331 : end procedure
332 : #endif
333 :
334 : #if SK1_ENABLED
335 : module procedure getMinMaxVal_D1_PSSK1
336 : use pm_kind, only: SKC => SK1
337 : #include "pm_arrayMinMax@routines.inc.F90"
338 : end procedure
339 : #endif
340 :
341 : #undef PSSK_ENABLED
342 :
343 : !#endif
344 : ! LCOV_EXCL_STOP
345 :
346 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
347 :
348 : #define BSSK_ENABLED 1
349 :
350 2 : module procedure getMinMaxVal_D1_BSSK
351 : use pm_kind, only: SKC => SK
352 : #include "pm_arrayMinMax@routines.inc.F90"
353 6 : end procedure
354 :
355 : #undef BSSK_ENABLED
356 :
357 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
358 :
359 : #undef D1_ENABLED
360 :
361 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
362 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
363 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
364 :
365 : #undef getMinMaxVal_ENABLED
366 :
367 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
368 :
369 : #define setMinMaxVal_ENABLED 1
370 :
371 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
372 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
373 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
374 :
375 : #define D0_ENABLED 1
376 :
377 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
378 :
379 : #define SK_ENABLED 1
380 :
381 : #if SK5_ENABLED
382 : module procedure setMinMaxVal_D0_SK5
383 : use pm_kind, only: SKC => SK5
384 : #include "pm_arrayMinMax@routines.inc.F90"
385 : end procedure
386 : #endif
387 :
388 : #if SK4_ENABLED
389 : module procedure setMinMaxVal_D0_SK4
390 : use pm_kind, only: SKC => SK4
391 : #include "pm_arrayMinMax@routines.inc.F90"
392 : end procedure
393 : #endif
394 :
395 : #if SK3_ENABLED
396 : module procedure setMinMaxVal_D0_SK3
397 : use pm_kind, only: SKC => SK3
398 : #include "pm_arrayMinMax@routines.inc.F90"
399 : end procedure
400 : #endif
401 :
402 : #if SK2_ENABLED
403 : module procedure setMinMaxVal_D0_SK2
404 : use pm_kind, only: SKC => SK2
405 : #include "pm_arrayMinMax@routines.inc.F90"
406 : end procedure
407 : #endif
408 :
409 : #if SK1_ENABLED
410 4 : module procedure setMinMaxVal_D0_SK1
411 : use pm_kind, only: SKC => SK1
412 : #include "pm_arrayMinMax@routines.inc.F90"
413 4 : end procedure
414 : #endif
415 :
416 : #undef SK_ENABLED
417 :
418 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
419 :
420 : #undef D0_ENABLED
421 :
422 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
423 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
424 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
425 :
426 : #define D1_ENABLED 1
427 :
428 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
429 :
430 : #define SK_ENABLED 1
431 :
432 : #if SK5_ENABLED
433 : module procedure setMinMaxVal_D1_SK5
434 : use pm_kind, only: SKC => SK5
435 : #include "pm_arrayMinMax@routines.inc.F90"
436 : end procedure
437 : #endif
438 :
439 : #if SK4_ENABLED
440 : module procedure setMinMaxVal_D1_SK4
441 : use pm_kind, only: SKC => SK4
442 : #include "pm_arrayMinMax@routines.inc.F90"
443 : end procedure
444 : #endif
445 :
446 : #if SK3_ENABLED
447 : module procedure setMinMaxVal_D1_SK3
448 : use pm_kind, only: SKC => SK3
449 : #include "pm_arrayMinMax@routines.inc.F90"
450 : end procedure
451 : #endif
452 :
453 : #if SK2_ENABLED
454 : module procedure setMinMaxVal_D1_SK2
455 : use pm_kind, only: SKC => SK2
456 : #include "pm_arrayMinMax@routines.inc.F90"
457 : end procedure
458 : #endif
459 :
460 : #if SK1_ENABLED
461 4 : module procedure setMinMaxVal_D1_SK1
462 : use pm_kind, only: SKC => SK1
463 : #include "pm_arrayMinMax@routines.inc.F90"
464 4 : end procedure
465 : #endif
466 :
467 : #undef SK_ENABLED
468 :
469 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
470 :
471 : #define IK_ENABLED 1
472 :
473 : #if IK5_ENABLED
474 0 : module procedure setMinMaxVal_D1_IK5
475 : use pm_kind, only: IKC => IK5
476 : #include "pm_arrayMinMax@routines.inc.F90"
477 0 : end procedure
478 : #endif
479 :
480 : #if IK4_ENABLED
481 0 : module procedure setMinMaxVal_D1_IK4
482 : use pm_kind, only: IKC => IK4
483 : #include "pm_arrayMinMax@routines.inc.F90"
484 0 : end procedure
485 : #endif
486 :
487 : #if IK3_ENABLED
488 4 : module procedure setMinMaxVal_D1_IK3
489 : use pm_kind, only: IKC => IK3
490 : #include "pm_arrayMinMax@routines.inc.F90"
491 4 : end procedure
492 : #endif
493 :
494 : #if IK2_ENABLED
495 0 : module procedure setMinMaxVal_D1_IK2
496 : use pm_kind, only: IKC => IK2
497 : #include "pm_arrayMinMax@routines.inc.F90"
498 0 : end procedure
499 : #endif
500 :
501 : #if IK1_ENABLED
502 0 : module procedure setMinMaxVal_D1_IK1
503 : use pm_kind, only: IKC => IK1
504 : #include "pm_arrayMinMax@routines.inc.F90"
505 0 : end procedure
506 : #endif
507 :
508 : #undef IK_ENABLED
509 :
510 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
511 :
512 : #define LK_ENABLED 1
513 :
514 : #if LK5_ENABLED
515 0 : module procedure setMinMaxVal_D1_LK5
516 : use pm_kind, only: LKC => LK5
517 : #include "pm_arrayMinMax@routines.inc.F90"
518 0 : end procedure
519 : #endif
520 :
521 : #if LK4_ENABLED
522 0 : module procedure setMinMaxVal_D1_LK4
523 : use pm_kind, only: LKC => LK4
524 : #include "pm_arrayMinMax@routines.inc.F90"
525 0 : end procedure
526 : #endif
527 :
528 : #if LK3_ENABLED
529 4 : module procedure setMinMaxVal_D1_LK3
530 : use pm_kind, only: LKC => LK3
531 : #include "pm_arrayMinMax@routines.inc.F90"
532 4 : end procedure
533 : #endif
534 :
535 : #if LK2_ENABLED
536 0 : module procedure setMinMaxVal_D1_LK2
537 : use pm_kind, only: LKC => LK2
538 : #include "pm_arrayMinMax@routines.inc.F90"
539 0 : end procedure
540 : #endif
541 :
542 : #if LK1_ENABLED
543 0 : module procedure setMinMaxVal_D1_LK1
544 : use pm_kind, only: LKC => LK1
545 : #include "pm_arrayMinMax@routines.inc.F90"
546 0 : end procedure
547 : #endif
548 :
549 : #undef LK_ENABLED
550 :
551 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
552 :
553 : #define CK_ENABLED 1
554 :
555 : #if CK5_ENABLED
556 : module procedure setMinMaxVal_D1_CK5
557 : use pm_kind, only: CKC => CK5
558 : #include "pm_arrayMinMax@routines.inc.F90"
559 : end procedure
560 : #endif
561 :
562 : #if CK4_ENABLED
563 0 : module procedure setMinMaxVal_D1_CK4
564 : use pm_kind, only: CKC => CK4
565 : #include "pm_arrayMinMax@routines.inc.F90"
566 0 : end procedure
567 : #endif
568 :
569 : #if CK3_ENABLED
570 0 : module procedure setMinMaxVal_D1_CK3
571 : use pm_kind, only: CKC => CK3
572 : #include "pm_arrayMinMax@routines.inc.F90"
573 0 : end procedure
574 : #endif
575 :
576 : #if CK2_ENABLED
577 0 : module procedure setMinMaxVal_D1_CK2
578 : use pm_kind, only: CKC => CK2
579 : #include "pm_arrayMinMax@routines.inc.F90"
580 0 : end procedure
581 : #endif
582 :
583 : #if CK1_ENABLED
584 4 : module procedure setMinMaxVal_D1_CK1
585 : use pm_kind, only: CKC => CK1
586 : #include "pm_arrayMinMax@routines.inc.F90"
587 4 : end procedure
588 : #endif
589 :
590 : #undef CK_ENABLED
591 :
592 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
593 :
594 : #define RK_ENABLED 1
595 :
596 : #if RK5_ENABLED
597 : module procedure setMinMaxVal_D1_RK5
598 : use pm_kind, only: RKC => RK5
599 : #include "pm_arrayMinMax@routines.inc.F90"
600 : end procedure
601 : #endif
602 :
603 : #if RK4_ENABLED
604 0 : module procedure setMinMaxVal_D1_RK4
605 : use pm_kind, only: RKC => RK4
606 : #include "pm_arrayMinMax@routines.inc.F90"
607 0 : end procedure
608 : #endif
609 :
610 : #if RK3_ENABLED
611 0 : module procedure setMinMaxVal_D1_RK3
612 : use pm_kind, only: RKC => RK3
613 : #include "pm_arrayMinMax@routines.inc.F90"
614 0 : end procedure
615 : #endif
616 :
617 : #if RK2_ENABLED
618 0 : module procedure setMinMaxVal_D1_RK2
619 : use pm_kind, only: RKC => RK2
620 : #include "pm_arrayMinMax@routines.inc.F90"
621 0 : end procedure
622 : #endif
623 :
624 : #if RK1_ENABLED
625 4 : module procedure setMinMaxVal_D1_RK1
626 : use pm_kind, only: RKC => RK1
627 : #include "pm_arrayMinMax@routines.inc.F90"
628 4 : end procedure
629 : #endif
630 :
631 : #undef RK_ENABLED
632 :
633 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
634 :
635 : ! LCOV_EXCL_START
636 : !#if !__GFORTRAN__
637 :
638 : #define PSSK_ENABLED 1
639 :
640 : #if SK5_ENABLED
641 : module procedure setMinMaxVal_D1_PSSK5
642 : use pm_kind, only: SKC => SK5
643 : #include "pm_arrayMinMax@routines.inc.F90"
644 : end procedure
645 : #endif
646 :
647 : #if SK4_ENABLED
648 : module procedure setMinMaxVal_D1_PSSK4
649 : use pm_kind, only: SKC => SK4
650 : #include "pm_arrayMinMax@routines.inc.F90"
651 : end procedure
652 : #endif
653 :
654 : #if SK3_ENABLED
655 : module procedure setMinMaxVal_D1_PSSK3
656 : use pm_kind, only: SKC => SK3
657 : #include "pm_arrayMinMax@routines.inc.F90"
658 : end procedure
659 : #endif
660 :
661 : #if SK2_ENABLED
662 : module procedure setMinMaxVal_D1_PSSK2
663 : use pm_kind, only: SKC => SK2
664 : #include "pm_arrayMinMax@routines.inc.F90"
665 : end procedure
666 : #endif
667 :
668 : #if SK1_ENABLED
669 : module procedure setMinMaxVal_D1_PSSK1
670 : use pm_kind, only: SKC => SK1
671 : #include "pm_arrayMinMax@routines.inc.F90"
672 : end procedure
673 : #endif
674 :
675 : #undef PSSK_ENABLED
676 :
677 : !#endif
678 : ! LCOV_EXCL_STOP
679 :
680 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
681 :
682 : #define BSSK_ENABLED 1
683 :
684 4 : module procedure setMinMaxVal_D1_BSSK
685 : use pm_kind, only: SKC => SK
686 : #include "pm_arrayMinMax@routines.inc.F90"
687 : end procedure
688 :
689 : #undef BSSK_ENABLED
690 :
691 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
692 :
693 : #undef D1_ENABLED
694 :
695 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
696 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
697 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
698 :
699 : #undef setMinMaxVal_ENABLED
700 :
701 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
702 :
703 : end submodule routines
|