ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_mathMinMax.F90
Go to the documentation of this file.
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
36
37!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
38
40
41 use pm_kind, only: IK, RK, SK
42
43 implicit none
44
45 character(*, SK), parameter :: MODULE_NAME = "@pm_mathMinMax"
46
47!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
48
117 interface getMinMax
118
119 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
120 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
121 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
122
123 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
124
125#if SK5_ENABLED
126 pure module function getMinMaxIndi_SK5(a, b) result(minMax)
127#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
128 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_SK5
129#endif
130 use pm_kind, only: SKG => SK5
131 character(*,SKG) , intent(in) :: a, b
132 character(max(len(a,IK),len(b,IK)),SKG) :: minMax(2)
133 end function
134#endif
135
136#if SK4_ENABLED
137 pure module function getMinMaxIndi_SK4(a, b) result(minMax)
138#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
139 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_SK4
140#endif
141 use pm_kind, only: SKG => SK4
142 character(*,SKG) , intent(in) :: a, b
143 character(max(len(a,IK),len(b,IK)),SKG) :: minMax(2)
144 end function
145#endif
146
147#if SK3_ENABLED
148 pure module function getMinMaxIndi_SK3(a, b) result(minMax)
149#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
150 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_SK3
151#endif
152 use pm_kind, only: SKG => SK3
153 character(*,SKG) , intent(in) :: a, b
154 character(max(len(a,IK),len(b,IK)),SKG) :: minMax(2)
155 end function
156#endif
157
158#if SK2_ENABLED
159 pure module function getMinMaxIndi_SK2(a, b) result(minMax)
160#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
161 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_SK2
162#endif
163 use pm_kind, only: SKG => SK2
164 character(*,SKG) , intent(in) :: a, b
165 character(max(len(a,IK),len(b,IK)),SKG) :: minMax(2)
166 end function
167#endif
168
169#if SK1_ENABLED
170 pure module function getMinMaxIndi_SK1(a, b) result(minMax)
171#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
172 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_SK1
173#endif
174 use pm_kind, only: SKG => SK1
175 character(*,SKG) , intent(in) :: a, b
176 character(max(len(a,IK),len(b,IK)),SKG) :: minMax(2)
177 end function
178#endif
179
180 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
181
182#if IK5_ENABLED
183 pure module function getMinMaxIndi_IK5(a, b) result(minMax)
184#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
185 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_IK5
186#endif
187 use pm_kind, only: IKG => IK5
188 integer(IKG) , intent(in) :: a, b
189 integer(IKG) :: minMax(2)
190 end function
191#endif
192
193#if IK4_ENABLED
194 pure module function getMinMaxIndi_IK4(a, b) result(minMax)
195#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
196 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_IK4
197#endif
198 use pm_kind, only: IKG => IK4
199 integer(IKG) , intent(in) :: a, b
200 integer(IKG) :: minMax(2)
201 end function
202#endif
203
204#if IK3_ENABLED
205 pure module function getMinMaxIndi_IK3(a, b) result(minMax)
206#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
207 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_IK3
208#endif
209 use pm_kind, only: IKG => IK3
210 integer(IKG) , intent(in) :: a, b
211 integer(IKG) :: minMax(2)
212 end function
213#endif
214
215#if IK2_ENABLED
216 pure module function getMinMaxIndi_IK2(a, b) result(minMax)
217#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
218 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_IK2
219#endif
220 use pm_kind, only: IKG => IK2
221 integer(IKG) , intent(in) :: a, b
222 integer(IKG) :: minMax(2)
223 end function
224#endif
225
226#if IK1_ENABLED
227 pure module function getMinMaxIndi_IK1(a, b) result(minMax)
228#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
229 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_IK1
230#endif
231 use pm_kind, only: IKG => IK1
232 integer(IKG) , intent(in) :: a, b
233 integer(IKG) :: minMax(2)
234 end function
235#endif
236
237 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
238
239#if LK5_ENABLED
240 pure module function getMinMaxIndi_LK5(a, b) result(minMax)
241#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
242 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_LK5
243#endif
244 use pm_kind, only: LKG => LK5
245 logical(LKG) , intent(in) :: a, b
246 logical(LKG) :: minMax(2)
247 end function
248#endif
249
250#if LK4_ENABLED
251 pure module function getMinMaxIndi_LK4(a, b) result(minMax)
252#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
253 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_LK4
254#endif
255 use pm_kind, only: LKG => LK4
256 logical(LKG) , intent(in) :: a, b
257 logical(LKG) :: minMax(2)
258 end function
259#endif
260
261#if LK3_ENABLED
262 pure module function getMinMaxIndi_LK3(a, b) result(minMax)
263#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
264 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_LK3
265#endif
266 use pm_kind, only: LKG => LK3
267 logical(LKG) , intent(in) :: a, b
268 logical(LKG) :: minMax(2)
269 end function
270#endif
271
272#if LK2_ENABLED
273 pure module function getMinMaxIndi_LK2(a, b) result(minMax)
274#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
275 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_LK2
276#endif
277 use pm_kind, only: LKG => LK2
278 logical(LKG) , intent(in) :: a, b
279 logical(LKG) :: minMax(2)
280 end function
281#endif
282
283#if LK1_ENABLED
284 pure module function getMinMaxIndi_LK1(a, b) result(minMax)
285#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
286 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_LK1
287#endif
288 use pm_kind, only: LKG => LK1
289 logical(LKG) , intent(in) :: a, b
290 logical(LKG) :: minMax(2)
291 end function
292#endif
293
294 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
295
296#if CK5_ENABLED
297 pure module function getMinMaxIndi_CK5(a, b) result(minMax)
298#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
299 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_CK5
300#endif
301 use pm_kind, only: CKG => CK5
302 complex(CKG) , intent(in) :: a, b
303 complex(CKG) :: minMax(2)
304 end function
305#endif
306
307#if CK4_ENABLED
308 pure module function getMinMaxIndi_CK4(a, b) result(minMax)
309#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
310 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_CK4
311#endif
312 use pm_kind, only: CKG => CK4
313 complex(CKG) , intent(in) :: a, b
314 complex(CKG) :: minMax(2)
315 end function
316#endif
317
318#if CK3_ENABLED
319 pure module function getMinMaxIndi_CK3(a, b) result(minMax)
320#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
321 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_CK3
322#endif
323 use pm_kind, only: CKG => CK3
324 complex(CKG) , intent(in) :: a, b
325 complex(CKG) :: minMax(2)
326 end function
327#endif
328
329#if CK2_ENABLED
330 pure module function getMinMaxIndi_CK2(a, b) result(minMax)
331#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
332 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_CK2
333#endif
334 use pm_kind, only: CKG => CK2
335 complex(CKG) , intent(in) :: a, b
336 complex(CKG) :: minMax(2)
337 end function
338#endif
339
340#if CK1_ENABLED
341 pure module function getMinMaxIndi_CK1(a, b) result(minMax)
342#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
343 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_CK1
344#endif
345 use pm_kind, only: CKG => CK1
346 complex(CKG) , intent(in) :: a, b
347 complex(CKG) :: minMax(2)
348 end function
349#endif
350
351 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
352
353#if RK5_ENABLED
354 pure module function getMinMaxIndi_RK5(a, b) result(minMax)
355#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
356 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_RK5
357#endif
358 use pm_kind, only: RKG => RK5
359 real(RKG) , intent(in) :: a, b
360 real(RKG) :: minMax(2)
361 end function
362#endif
363
364#if RK4_ENABLED
365 pure module function getMinMaxIndi_RK4(a, b) result(minMax)
366#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
367 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_RK4
368#endif
369 use pm_kind, only: RKG => RK4
370 real(RKG) , intent(in) :: a, b
371 real(RKG) :: minMax(2)
372 end function
373#endif
374
375#if RK3_ENABLED
376 pure module function getMinMaxIndi_RK3(a, b) result(minMax)
377#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
378 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_RK3
379#endif
380 use pm_kind, only: RKG => RK3
381 real(RKG) , intent(in) :: a, b
382 real(RKG) :: minMax(2)
383 end function
384#endif
385
386#if RK2_ENABLED
387 pure module function getMinMaxIndi_RK2(a, b) result(minMax)
388#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
389 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_RK2
390#endif
391 use pm_kind, only: RKG => RK2
392 real(RKG) , intent(in) :: a, b
393 real(RKG) :: minMax(2)
394 end function
395#endif
396
397#if RK1_ENABLED
398 pure module function getMinMaxIndi_RK1(a, b) result(minMax)
399#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
400 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxIndi_RK1
401#endif
402 use pm_kind, only: RKG => RK1
403 real(RKG) , intent(in) :: a, b
404 real(RKG) :: minMax(2)
405 end function
406#endif
407
408 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
409
410 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
411 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
412 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
413
414 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
415
416#if SK5_ENABLED
417 pure module function getMinMaxPair_SK5(pair) result(minMax)
418#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
419 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_SK5
420#endif
421 use pm_kind, only: SKG => SK5
422 character(*,SKG) , intent(in) :: pair(2)
423 character(len(pair,IK),SKG) :: minMax(2)
424 end function
425#endif
426
427#if SK4_ENABLED
428 pure module function getMinMaxPair_SK4(pair) result(minMax)
429#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
430 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_SK4
431#endif
432 use pm_kind, only: SKG => SK4
433 character(*,SKG) , intent(in) :: pair(2)
434 character(len(pair,IK),SKG) :: minMax(2)
435 end function
436#endif
437
438#if SK3_ENABLED
439 pure module function getMinMaxPair_SK3(pair) result(minMax)
440#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
441 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_SK3
442#endif
443 use pm_kind, only: SKG => SK3
444 character(*,SKG) , intent(in) :: pair(2)
445 character(len(pair,IK),SKG) :: minMax(2)
446 end function
447#endif
448
449#if SK2_ENABLED
450 pure module function getMinMaxPair_SK2(pair) result(minMax)
451#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
452 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_SK2
453#endif
454 use pm_kind, only: SKG => SK2
455 character(*,SKG) , intent(in) :: pair(2)
456 character(len(pair,IK),SKG) :: minMax(2)
457 end function
458#endif
459
460#if SK1_ENABLED
461 pure module function getMinMaxPair_SK1(pair) result(minMax)
462#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
463 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_SK1
464#endif
465 use pm_kind, only: SKG => SK1
466 character(*,SKG) , intent(in) :: pair(2)
467 character(len(pair,IK),SKG) :: minMax(2)
468 end function
469#endif
470
471 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
472
473#if IK5_ENABLED
474 pure module function getMinMaxPair_IK5(pair) result(minMax)
475#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
476 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_IK5
477#endif
478 use pm_kind, only: IKG => IK5
479 integer(IKG) , intent(in) :: pair(2)
480 integer(IKG) :: minMax(2)
481 end function
482#endif
483
484#if IK4_ENABLED
485 pure module function getMinMaxPair_IK4(pair) result(minMax)
486#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
487 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_IK4
488#endif
489 use pm_kind, only: IKG => IK4
490 integer(IKG) , intent(in) :: pair(2)
491 integer(IKG) :: minMax(2)
492 end function
493#endif
494
495#if IK3_ENABLED
496 pure module function getMinMaxPair_IK3(pair) result(minMax)
497#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
498 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_IK3
499#endif
500 use pm_kind, only: IKG => IK3
501 integer(IKG) , intent(in) :: pair(2)
502 integer(IKG) :: minMax(2)
503 end function
504#endif
505
506#if IK2_ENABLED
507 pure module function getMinMaxPair_IK2(pair) result(minMax)
508#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
509 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_IK2
510#endif
511 use pm_kind, only: IKG => IK2
512 integer(IKG) , intent(in) :: pair(2)
513 integer(IKG) :: minMax(2)
514 end function
515#endif
516
517#if IK1_ENABLED
518 pure module function getMinMaxPair_IK1(pair) result(minMax)
519#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
520 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_IK1
521#endif
522 use pm_kind, only: IKG => IK1
523 integer(IKG) , intent(in) :: pair(2)
524 integer(IKG) :: minMax(2)
525 end function
526#endif
527
528 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
529
530#if LK5_ENABLED
531 pure module function getMinMaxPair_LK5(pair) result(minMax)
532#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
533 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_LK5
534#endif
535 use pm_kind, only: LKG => LK5
536 logical(LKG) , intent(in) :: pair(2)
537 logical(LKG) :: minMax(2)
538 end function
539#endif
540
541#if LK4_ENABLED
542 pure module function getMinMaxPair_LK4(pair) result(minMax)
543#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
544 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_LK4
545#endif
546 use pm_kind, only: LKG => LK4
547 logical(LKG) , intent(in) :: pair(2)
548 logical(LKG) :: minMax(2)
549 end function
550#endif
551
552#if LK3_ENABLED
553 pure module function getMinMaxPair_LK3(pair) result(minMax)
554#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
555 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_LK3
556#endif
557 use pm_kind, only: LKG => LK3
558 logical(LKG) , intent(in) :: pair(2)
559 logical(LKG) :: minMax(2)
560 end function
561#endif
562
563#if LK2_ENABLED
564 pure module function getMinMaxPair_LK2(pair) result(minMax)
565#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
566 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_LK2
567#endif
568 use pm_kind, only: LKG => LK2
569 logical(LKG) , intent(in) :: pair(2)
570 logical(LKG) :: minMax(2)
571 end function
572#endif
573
574#if LK1_ENABLED
575 pure module function getMinMaxPair_LK1(pair) result(minMax)
576#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
577 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_LK1
578#endif
579 use pm_kind, only: LKG => LK1
580 logical(LKG) , intent(in) :: pair(2)
581 logical(LKG) :: minMax(2)
582 end function
583#endif
584
585 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
586
587#if CK5_ENABLED
588 pure module function getMinMaxPair_CK5(pair) result(minMax)
589#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
590 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_CK5
591#endif
592 use pm_kind, only: CKG => CK5
593 complex(CKG) , intent(in) :: pair(2)
594 complex(CKG) :: minMax(2)
595 end function
596#endif
597
598#if CK4_ENABLED
599 pure module function getMinMaxPair_CK4(pair) result(minMax)
600#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
601 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_CK4
602#endif
603 use pm_kind, only: CKG => CK4
604 complex(CKG) , intent(in) :: pair(2)
605 complex(CKG) :: minMax(2)
606 end function
607#endif
608
609#if CK3_ENABLED
610 pure module function getMinMaxPair_CK3(pair) result(minMax)
611#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
612 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_CK3
613#endif
614 use pm_kind, only: CKG => CK3
615 complex(CKG) , intent(in) :: pair(2)
616 complex(CKG) :: minMax(2)
617 end function
618#endif
619
620#if CK2_ENABLED
621 pure module function getMinMaxPair_CK2(pair) result(minMax)
622#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
623 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_CK2
624#endif
625 use pm_kind, only: CKG => CK2
626 complex(CKG) , intent(in) :: pair(2)
627 complex(CKG) :: minMax(2)
628 end function
629#endif
630
631#if CK1_ENABLED
632 pure module function getMinMaxPair_CK1(pair) result(minMax)
633#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
634 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_CK1
635#endif
636 use pm_kind, only: CKG => CK1
637 complex(CKG) , intent(in) :: pair(2)
638 complex(CKG) :: minMax(2)
639 end function
640#endif
641
642 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
643
644#if RK5_ENABLED
645 pure module function getMinMaxPair_RK5(pair) result(minMax)
646#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
647 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_RK5
648#endif
649 use pm_kind, only: RKG => RK5
650 real(RKG) , intent(in) :: pair(2)
651 real(RKG) :: minMax(2)
652 end function
653#endif
654
655#if RK4_ENABLED
656 pure module function getMinMaxPair_RK4(pair) result(minMax)
657#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
658 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_RK4
659#endif
660 use pm_kind, only: RKG => RK4
661 real(RKG) , intent(in) :: pair(2)
662 real(RKG) :: minMax(2)
663 end function
664#endif
665
666#if RK3_ENABLED
667 pure module function getMinMaxPair_RK3(pair) result(minMax)
668#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
669 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_RK3
670#endif
671 use pm_kind, only: RKG => RK3
672 real(RKG) , intent(in) :: pair(2)
673 real(RKG) :: minMax(2)
674 end function
675#endif
676
677#if RK2_ENABLED
678 pure module function getMinMaxPair_RK2(pair) result(minMax)
679#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
680 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_RK2
681#endif
682 use pm_kind, only: RKG => RK2
683 real(RKG) , intent(in) :: pair(2)
684 real(RKG) :: minMax(2)
685 end function
686#endif
687
688#if RK1_ENABLED
689 pure module function getMinMaxPair_RK1(pair) result(minMax)
690#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
691 !DEC$ ATTRIBUTES DLLEXPORT :: getMinMaxPair_RK1
692#endif
693 use pm_kind, only: RKG => RK1
694 real(RKG) , intent(in) :: pair(2)
695 real(RKG) :: minMax(2)
696 end function
697#endif
698
699 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
700
701 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
702 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
703 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
704
705 end interface getMinMax
706
707!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
708
789 interface setMinMax
790
791 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
792 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
793 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
794
795 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
796
797#if SK5_ENABLED
798 pure elemental module subroutine setMinMaxIndi_SK5(a, b)
799#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
800 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_SK5
801#endif
802 use pm_kind, only: SKG => SK5
803 character(*,SKG) , intent(inout) :: a, b
804 end subroutine
805#endif
806
807#if SK4_ENABLED
808 pure elemental module subroutine setMinMaxIndi_SK4(a, b)
809#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
810 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_SK4
811#endif
812 use pm_kind, only: SKG => SK4
813 character(*,SKG) , intent(inout) :: a, b
814 end subroutine
815#endif
816
817#if SK3_ENABLED
818 pure elemental module subroutine setMinMaxIndi_SK3(a, b)
819#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
820 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_SK3
821#endif
822 use pm_kind, only: SKG => SK3
823 character(*,SKG) , intent(inout) :: a, b
824 end subroutine
825#endif
826
827#if SK2_ENABLED
828 pure elemental module subroutine setMinMaxIndi_SK2(a, b)
829#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
830 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_SK2
831#endif
832 use pm_kind, only: SKG => SK2
833 character(*,SKG) , intent(inout) :: a, b
834 end subroutine
835#endif
836
837#if SK1_ENABLED
838 pure elemental module subroutine setMinMaxIndi_SK1(a, b)
839#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
840 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_SK1
841#endif
842 use pm_kind, only: SKG => SK1
843 character(*,SKG) , intent(inout) :: a, b
844 end subroutine
845#endif
846
847 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
848
849#if IK5_ENABLED
850 pure elemental module subroutine setMinMaxIndi_IK5(a, b)
851#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
852 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_IK5
853#endif
854 use pm_kind, only: IKG => IK5
855 integer(IKG) , intent(inout) :: a, b
856 end subroutine
857#endif
858
859#if IK4_ENABLED
860 pure elemental module subroutine setMinMaxIndi_IK4(a, b)
861#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
862 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_IK4
863#endif
864 use pm_kind, only: IKG => IK4
865 integer(IKG) , intent(inout) :: a, b
866 end subroutine
867#endif
868
869#if IK3_ENABLED
870 pure elemental module subroutine setMinMaxIndi_IK3(a, b)
871#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
872 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_IK3
873#endif
874 use pm_kind, only: IKG => IK3
875 integer(IKG) , intent(inout) :: a, b
876 end subroutine
877#endif
878
879#if IK2_ENABLED
880 pure elemental module subroutine setMinMaxIndi_IK2(a, b)
881#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
882 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_IK2
883#endif
884 use pm_kind, only: IKG => IK2
885 integer(IKG) , intent(inout) :: a, b
886 end subroutine
887#endif
888
889#if IK1_ENABLED
890 pure elemental module subroutine setMinMaxIndi_IK1(a, b)
891#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
892 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_IK1
893#endif
894 use pm_kind, only: IKG => IK1
895 integer(IKG) , intent(inout) :: a, b
896 end subroutine
897#endif
898
899 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
900
901#if LK5_ENABLED
902 pure elemental module subroutine setMinMaxIndi_LK5(a, b)
903#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
904 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_LK5
905#endif
906 use pm_kind, only: LKG => LK5
907 logical(LKG) , intent(inout) :: a, b
908 end subroutine
909#endif
910
911#if LK4_ENABLED
912 pure elemental module subroutine setMinMaxIndi_LK4(a, b)
913#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
914 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_LK4
915#endif
916 use pm_kind, only: LKG => LK4
917 logical(LKG) , intent(inout) :: a, b
918 end subroutine
919#endif
920
921#if LK3_ENABLED
922 pure elemental module subroutine setMinMaxIndi_LK3(a, b)
923#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
924 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_LK3
925#endif
926 use pm_kind, only: LKG => LK3
927 logical(LKG) , intent(inout) :: a, b
928 end subroutine
929#endif
930
931#if LK2_ENABLED
932 pure elemental module subroutine setMinMaxIndi_LK2(a, b)
933#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
934 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_LK2
935#endif
936 use pm_kind, only: LKG => LK2
937 logical(LKG) , intent(inout) :: a, b
938 end subroutine
939#endif
940
941#if LK1_ENABLED
942 pure elemental module subroutine setMinMaxIndi_LK1(a, b)
943#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
944 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_LK1
945#endif
946 use pm_kind, only: LKG => LK1
947 logical(LKG) , intent(inout) :: a, b
948 end subroutine
949#endif
950
951 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
952
953#if CK5_ENABLED
954 pure elemental module subroutine setMinMaxIndi_CK5(a, b)
955#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
956 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_CK5
957#endif
958 use pm_kind, only: CKG => CK5
959 complex(CKG) , intent(inout) :: a, b
960 end subroutine
961#endif
962
963#if CK4_ENABLED
964 pure elemental module subroutine setMinMaxIndi_CK4(a, b)
965#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
966 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_CK4
967#endif
968 use pm_kind, only: CKG => CK4
969 complex(CKG) , intent(inout) :: a, b
970 end subroutine
971#endif
972
973#if CK3_ENABLED
974 pure elemental module subroutine setMinMaxIndi_CK3(a, b)
975#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
976 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_CK3
977#endif
978 use pm_kind, only: CKG => CK3
979 complex(CKG) , intent(inout) :: a, b
980 end subroutine
981#endif
982
983#if CK2_ENABLED
984 pure elemental module subroutine setMinMaxIndi_CK2(a, b)
985#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
986 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_CK2
987#endif
988 use pm_kind, only: CKG => CK2
989 complex(CKG) , intent(inout) :: a, b
990 end subroutine
991#endif
992
993#if CK1_ENABLED
994 pure elemental module subroutine setMinMaxIndi_CK1(a, b)
995#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
996 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_CK1
997#endif
998 use pm_kind, only: CKG => CK1
999 complex(CKG) , intent(inout) :: a, b
1000 end subroutine
1001#endif
1002
1003 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1004
1005#if RK5_ENABLED
1006 pure elemental module subroutine setMinMaxIndi_RK5(a, b)
1007#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1008 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_RK5
1009#endif
1010 use pm_kind, only: RKG => RK5
1011 real(RKG) , intent(inout) :: a, b
1012 end subroutine
1013#endif
1014
1015#if RK4_ENABLED
1016 pure elemental module subroutine setMinMaxIndi_RK4(a, b)
1017#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1018 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_RK4
1019#endif
1020 use pm_kind, only: RKG => RK4
1021 real(RKG) , intent(inout) :: a, b
1022 end subroutine
1023#endif
1024
1025#if RK3_ENABLED
1026 pure elemental module subroutine setMinMaxIndi_RK3(a, b)
1027#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1028 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_RK3
1029#endif
1030 use pm_kind, only: RKG => RK3
1031 real(RKG) , intent(inout) :: a, b
1032 end subroutine
1033#endif
1034
1035#if RK2_ENABLED
1036 pure elemental module subroutine setMinMaxIndi_RK2(a, b)
1037#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1038 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_RK2
1039#endif
1040 use pm_kind, only: RKG => RK2
1041 real(RKG) , intent(inout) :: a, b
1042 end subroutine
1043#endif
1044
1045#if RK1_ENABLED
1046 pure elemental module subroutine setMinMaxIndi_RK1(a, b)
1047#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1048 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxIndi_RK1
1049#endif
1050 use pm_kind, only: RKG => RK1
1051 real(RKG) , intent(inout) :: a, b
1052 end subroutine
1053#endif
1054
1055 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1056
1057 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1058 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1059 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1060
1061 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1062
1063#if SK5_ENABLED
1064 pure module subroutine setMinMaxPair_SK5(pair)
1065#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1066 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_SK5
1067#endif
1068 use pm_kind, only: SKG => SK5
1069 character(*,SKG) , intent(inout) :: pair(2)
1070 end subroutine
1071#endif
1072
1073#if SK4_ENABLED
1074 pure module subroutine setMinMaxPair_SK4(pair)
1075#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1076 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_SK4
1077#endif
1078 use pm_kind, only: SKG => SK4
1079 character(*,SKG) , intent(inout) :: pair(2)
1080 end subroutine
1081#endif
1082
1083#if SK3_ENABLED
1084 pure module subroutine setMinMaxPair_SK3(pair)
1085#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1086 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_SK3
1087#endif
1088 use pm_kind, only: SKG => SK3
1089 character(*,SKG) , intent(inout) :: pair(2)
1090 end subroutine
1091#endif
1092
1093#if SK2_ENABLED
1094 pure module subroutine setMinMaxPair_SK2(pair)
1095#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1096 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_SK2
1097#endif
1098 use pm_kind, only: SKG => SK2
1099 character(*,SKG) , intent(inout) :: pair(2)
1100 end subroutine
1101#endif
1102
1103#if SK1_ENABLED
1104 pure module subroutine setMinMaxPair_SK1(pair)
1105#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1106 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_SK1
1107#endif
1108 use pm_kind, only: SKG => SK1
1109 character(*,SKG) , intent(inout) :: pair(2)
1110 end subroutine
1111#endif
1112
1113 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1114
1115#if IK5_ENABLED
1116 pure module subroutine setMinMaxPair_IK5(pair)
1117#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1118 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_IK5
1119#endif
1120 use pm_kind, only: IKG => IK5
1121 integer(IKG) , intent(inout) :: pair(2)
1122 end subroutine
1123#endif
1124
1125#if IK4_ENABLED
1126 pure module subroutine setMinMaxPair_IK4(pair)
1127#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1128 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_IK4
1129#endif
1130 use pm_kind, only: IKG => IK4
1131 integer(IKG) , intent(inout) :: pair(2)
1132 end subroutine
1133#endif
1134
1135#if IK3_ENABLED
1136 pure module subroutine setMinMaxPair_IK3(pair)
1137#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1138 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_IK3
1139#endif
1140 use pm_kind, only: IKG => IK3
1141 integer(IKG) , intent(inout) :: pair(2)
1142 end subroutine
1143#endif
1144
1145#if IK2_ENABLED
1146 pure module subroutine setMinMaxPair_IK2(pair)
1147#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1148 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_IK2
1149#endif
1150 use pm_kind, only: IKG => IK2
1151 integer(IKG) , intent(inout) :: pair(2)
1152 end subroutine
1153#endif
1154
1155#if IK1_ENABLED
1156 pure module subroutine setMinMaxPair_IK1(pair)
1157#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1158 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_IK1
1159#endif
1160 use pm_kind, only: IKG => IK1
1161 integer(IKG) , intent(inout) :: pair(2)
1162 end subroutine
1163#endif
1164
1165 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1166
1167#if LK5_ENABLED
1168 pure module subroutine setMinMaxPair_LK5(pair)
1169#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1170 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_LK5
1171#endif
1172 use pm_kind, only: LKG => LK5
1173 logical(LKG) , intent(inout) :: pair(2)
1174 end subroutine
1175#endif
1176
1177#if LK4_ENABLED
1178 pure module subroutine setMinMaxPair_LK4(pair)
1179#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1180 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_LK4
1181#endif
1182 use pm_kind, only: LKG => LK4
1183 logical(LKG) , intent(inout) :: pair(2)
1184 end subroutine
1185#endif
1186
1187#if LK3_ENABLED
1188 pure module subroutine setMinMaxPair_LK3(pair)
1189#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1190 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_LK3
1191#endif
1192 use pm_kind, only: LKG => LK3
1193 logical(LKG) , intent(inout) :: pair(2)
1194 end subroutine
1195#endif
1196
1197#if LK2_ENABLED
1198 pure module subroutine setMinMaxPair_LK2(pair)
1199#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1200 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_LK2
1201#endif
1202 use pm_kind, only: LKG => LK2
1203 logical(LKG) , intent(inout) :: pair(2)
1204 end subroutine
1205#endif
1206
1207#if LK1_ENABLED
1208 pure module subroutine setMinMaxPair_LK1(pair)
1209#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1210 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_LK1
1211#endif
1212 use pm_kind, only: LKG => LK1
1213 logical(LKG) , intent(inout) :: pair(2)
1214 end subroutine
1215#endif
1216
1217 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1218
1219#if CK5_ENABLED
1220 pure module subroutine setMinMaxPair_CK5(pair)
1221#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1222 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_CK5
1223#endif
1224 use pm_kind, only: CKG => CK5
1225 complex(CKG) , intent(inout) :: pair(2)
1226 end subroutine
1227#endif
1228
1229#if CK4_ENABLED
1230 pure module subroutine setMinMaxPair_CK4(pair)
1231#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1232 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_CK4
1233#endif
1234 use pm_kind, only: CKG => CK4
1235 complex(CKG) , intent(inout) :: pair(2)
1236 end subroutine
1237#endif
1238
1239#if CK3_ENABLED
1240 pure module subroutine setMinMaxPair_CK3(pair)
1241#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1242 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_CK3
1243#endif
1244 use pm_kind, only: CKG => CK3
1245 complex(CKG) , intent(inout) :: pair(2)
1246 end subroutine
1247#endif
1248
1249#if CK2_ENABLED
1250 pure module subroutine setMinMaxPair_CK2(pair)
1251#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1252 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_CK2
1253#endif
1254 use pm_kind, only: CKG => CK2
1255 complex(CKG) , intent(inout) :: pair(2)
1256 end subroutine
1257#endif
1258
1259#if CK1_ENABLED
1260 pure module subroutine setMinMaxPair_CK1(pair)
1261#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1262 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_CK1
1263#endif
1264 use pm_kind, only: CKG => CK1
1265 complex(CKG) , intent(inout) :: pair(2)
1266 end subroutine
1267#endif
1268
1269 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1270
1271#if RK5_ENABLED
1272 pure module subroutine setMinMaxPair_RK5(pair)
1273#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1274 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_RK5
1275#endif
1276 use pm_kind, only: RKG => RK5
1277 real(RKG) , intent(inout) :: pair(2)
1278 end subroutine
1279#endif
1280
1281#if RK4_ENABLED
1282 pure module subroutine setMinMaxPair_RK4(pair)
1283#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1284 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_RK4
1285#endif
1286 use pm_kind, only: RKG => RK4
1287 real(RKG) , intent(inout) :: pair(2)
1288 end subroutine
1289#endif
1290
1291#if RK3_ENABLED
1292 pure module subroutine setMinMaxPair_RK3(pair)
1293#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1294 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_RK3
1295#endif
1296 use pm_kind, only: RKG => RK3
1297 real(RKG) , intent(inout) :: pair(2)
1298 end subroutine
1299#endif
1300
1301#if RK2_ENABLED
1302 pure module subroutine setMinMaxPair_RK2(pair)
1303#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1304 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_RK2
1305#endif
1306 use pm_kind, only: RKG => RK2
1307 real(RKG) , intent(inout) :: pair(2)
1308 end subroutine
1309#endif
1310
1311#if RK1_ENABLED
1312 pure module subroutine setMinMaxPair_RK1(pair)
1313#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1314 !DEC$ ATTRIBUTES DLLEXPORT :: setMinMaxPair_RK1
1315#endif
1316 use pm_kind, only: RKG => RK1
1317 real(RKG) , intent(inout) :: pair(2)
1318 end subroutine
1319#endif
1320
1321 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1322
1323 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1324 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1325 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1326
1327 end interface setMinMax
1328
1329!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1330
1331end module pm_mathMinMax ! LCOV_EXCL_LINE
Generate and return an array of size two containing the minimum and maximum of the two input values i...
Return the minimum and maximum of the two input scalar values a and b in a and b, respectively,...
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
integer, parameter SK5
Definition: pm_kind.F90:326
integer, parameter LK1
Definition: pm_kind.F90:412
integer, parameter IK3
Definition: pm_kind.F90:368
integer, parameter RK5
Definition: pm_kind.F90:478
integer, parameter RK4
Definition: pm_kind.F90:489
integer, parameter SK1
Definition: pm_kind.F90:346
integer, parameter IK1
Definition: pm_kind.F90:382
integer, parameter LK5
Definition: pm_kind.F90:392
integer, parameter RK2
Definition: pm_kind.F90:511
integer, parameter RK
The default real kind in the ParaMonte library: real64 in Fortran, c_double in C-Fortran Interoperati...
Definition: pm_kind.F90:543
integer, parameter CK1
Definition: pm_kind.F90:464
integer, parameter RK3
Definition: pm_kind.F90:500
integer, parameter LK2
Definition: pm_kind.F90:407
integer, parameter LK4
Definition: pm_kind.F90:397
integer, parameter CK5
Definition: pm_kind.F90:420
integer, parameter CK4
Definition: pm_kind.F90:431
integer, parameter SK4
Definition: pm_kind.F90:331
integer, parameter LK3
Definition: pm_kind.F90:402
integer, parameter IK2
Definition: pm_kind.F90:375
integer, parameter CK2
Definition: pm_kind.F90:453
integer, parameter SK2
Definition: pm_kind.F90:341
integer, parameter CK3
Definition: pm_kind.F90:442
integer, parameter IK
The default integer kind in the ParaMonte library: int32 in Fortran, c_int32_t in C-Fortran Interoper...
Definition: pm_kind.F90:540
integer, parameter IK4
Definition: pm_kind.F90:361
integer, parameter IK5
Definition: pm_kind.F90:354
integer, parameter SK
The default character kind in the ParaMonte library: kind("a") in Fortran, c_char in C-Fortran Intero...
Definition: pm_kind.F90:539
integer, parameter RK1
Definition: pm_kind.F90:522
integer, parameter SK3
Definition: pm_kind.F90:336
This module contains procedures and generic interfaces for finding the minimum and maximum of two inp...
character(*, SK), parameter MODULE_NAME