ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_distUnif.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
271
272!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
273
275
276 use pm_kind, only: SK, IK, LK, IK64
277
278 implicit none
279
281 !private :: setStateNext, setStateJump
283
284 character(*, SK), parameter :: MODULE_NAME = "@pm_distUnif"
285
286!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
287
322 end type
323
324!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
325
392
393 ! LU
394
395 interface getUnifCDF
396
397 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
398
399#if IK5_ENABLED
400 PURE elemental module function getUnifCDF_LU_IK5(x, lower, upper) result(cdf)
401#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
402 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_LU_IK5
403#endif
404 use pm_kind, only: IKG => IK5, RKG => RK
405 integer(IKG), intent(in) :: x
406 integer(IKG), intent(in) :: lower, upper
407 real(RKG) :: cdf
408 end function
409#endif
410
411#if IK4_ENABLED
412 PURE elemental module function getUnifCDF_LU_IK4(x, lower, upper) result(cdf)
413#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
414 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_LU_IK4
415#endif
416 use pm_kind, only: IKG => IK4, RKG => RK
417 integer(IKG), intent(in) :: x
418 integer(IKG), intent(in) :: lower, upper
419 real(RKG) :: cdf
420 end function
421#endif
422
423#if IK3_ENABLED
424 PURE elemental module function getUnifCDF_LU_IK3(x, lower, upper) result(cdf)
425#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
426 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_LU_IK3
427#endif
428 use pm_kind, only: IKG => IK3, RKG => RK
429 integer(IKG), intent(in) :: x
430 integer(IKG), intent(in) :: lower, upper
431 real(RKG) :: cdf
432 end function
433#endif
434
435#if IK2_ENABLED
436 PURE elemental module function getUnifCDF_LU_IK2(x, lower, upper) result(cdf)
437#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
438 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_LU_IK2
439#endif
440 use pm_kind, only: IKG => IK2, RKG => RK
441 integer(IKG), intent(in) :: x
442 integer(IKG), intent(in) :: lower, upper
443 real(RKG) :: cdf
444 end function
445#endif
446
447#if IK1_ENABLED
448 PURE elemental module function getUnifCDF_LU_IK1(x, lower, upper) result(cdf)
449#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
450 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_LU_IK1
451#endif
452 use pm_kind, only: IKG => IK1, RKG => RK
453 integer(IKG), intent(in) :: x
454 integer(IKG), intent(in) :: lower, upper
455 real(RKG) :: cdf
456 end function
457#endif
458
459 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
460
461#if CK5_ENABLED
462 PURE elemental module function getUnifCDF_LU_CK5(x, lower, upper) result(cdf)
463#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
464 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_LU_CK5
465#endif
466 use pm_kind, only: CKG => CK5
467 complex(CKG), intent(in) :: x
468 complex(CKG), intent(in) :: lower, upper
469 complex(CKG) :: cdf
470 end function
471#endif
472
473#if CK4_ENABLED
474 PURE elemental module function getUnifCDF_LU_CK4(x, lower, upper) result(cdf)
475#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
476 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_LU_CK4
477#endif
478 use pm_kind, only: CKG => CK4
479 complex(CKG), intent(in) :: x
480 complex(CKG), intent(in) :: lower, upper
481 complex(CKG) :: cdf
482 end function
483#endif
484
485#if CK3_ENABLED
486 PURE elemental module function getUnifCDF_LU_CK3(x, lower, upper) result(cdf)
487#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
488 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_LU_CK3
489#endif
490 use pm_kind, only: CKG => CK3
491 complex(CKG), intent(in) :: x
492 complex(CKG), intent(in) :: lower, upper
493 complex(CKG) :: cdf
494 end function
495#endif
496
497#if CK2_ENABLED
498 PURE elemental module function getUnifCDF_LU_CK2(x, lower, upper) result(cdf)
499#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
500 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_LU_CK2
501#endif
502 use pm_kind, only: CKG => CK2
503 complex(CKG), intent(in) :: x
504 complex(CKG), intent(in) :: lower, upper
505 complex(CKG) :: cdf
506 end function
507#endif
508
509#if CK1_ENABLED
510 PURE elemental module function getUnifCDF_LU_CK1(x, lower, upper) result(cdf)
511#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
512 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_LU_CK1
513#endif
514 use pm_kind, only: CKG => CK1
515 complex(CKG), intent(in) :: x
516 complex(CKG), intent(in) :: lower, upper
517 complex(CKG) :: cdf
518 end function
519#endif
520
521 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
522
523#if RK5_ENABLED
524 PURE elemental module function getUnifCDF_LU_RK5(x, lower, upper) result(cdf)
525#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
526 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_LU_RK5
527#endif
528 use pm_kind, only: RKG => RK5
529 real(RKG) , intent(in) :: x
530 real(RKG) , intent(in) :: lower, upper
531 real(RKG) :: cdf
532 end function
533#endif
534
535#if RK4_ENABLED
536 PURE elemental module function getUnifCDF_LU_RK4(x, lower, upper) result(cdf)
537#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
538 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_LU_RK4
539#endif
540 use pm_kind, only: RKG => RK4
541 real(RKG) , intent(in) :: x
542 real(RKG) , intent(in) :: lower, upper
543 real(RKG) :: cdf
544 end function
545#endif
546
547#if RK3_ENABLED
548 PURE elemental module function getUnifCDF_LU_RK3(x, lower, upper) result(cdf)
549#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
550 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_LU_RK3
551#endif
552 use pm_kind, only: RKG => RK3
553 real(RKG) , intent(in) :: x
554 real(RKG) , intent(in) :: lower, upper
555 real(RKG) :: cdf
556 end function
557#endif
558
559#if RK2_ENABLED
560 PURE elemental module function getUnifCDF_LU_RK2(x, lower, upper) result(cdf)
561#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
562 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_LU_RK2
563#endif
564 use pm_kind, only: RKG => RK2
565 real(RKG) , intent(in) :: x
566 real(RKG) , intent(in) :: lower, upper
567 real(RKG) :: cdf
568 end function
569#endif
570
571#if RK1_ENABLED
572 PURE elemental module function getUnifCDF_LU_RK1(x, lower, upper) result(cdf)
573#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
574 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_LU_RK1
575#endif
576 use pm_kind, only: RKG => RK1
577 real(RKG) , intent(in) :: x
578 real(RKG) , intent(in) :: lower, upper
579 real(RKG) :: cdf
580 end function
581#endif
582
583 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
584
585 end interface
586
587 ! DD
588
589 interface getUnifCDF
590
591 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
592
593#if IK5_ENABLED
594 PURE elemental module function getUnifCDF_DD_IK5(x) result(cdf)
595#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
596 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_DD_IK5
597#endif
598 use pm_kind, only: IKG => IK5, RKG => RK
599 integer(IKG), intent(in) :: x
600 real(RKG) :: cdf
601 end function
602#endif
603
604#if IK4_ENABLED
605 PURE elemental module function getUnifCDF_DD_IK4(x) result(cdf)
606#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
607 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_DD_IK4
608#endif
609 use pm_kind, only: IKG => IK4, RKG => RK
610 integer(IKG), intent(in) :: x
611 real(RKG) :: cdf
612 end function
613#endif
614
615#if IK3_ENABLED
616 PURE elemental module function getUnifCDF_DD_IK3(x) result(cdf)
617#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
618 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_DD_IK3
619#endif
620 use pm_kind, only: IKG => IK3, RKG => RK
621 integer(IKG), intent(in) :: x
622 real(RKG) :: cdf
623 end function
624#endif
625
626#if IK2_ENABLED
627 PURE elemental module function getUnifCDF_DD_IK2(x) result(cdf)
628#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
629 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_DD_IK2
630#endif
631 use pm_kind, only: IKG => IK2, RKG => RK
632 integer(IKG), intent(in) :: x
633 real(RKG) :: cdf
634 end function
635#endif
636
637#if IK1_ENABLED
638 PURE elemental module function getUnifCDF_DD_IK1(x) result(cdf)
639#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
640 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_DD_IK1
641#endif
642 use pm_kind, only: IKG => IK1, RKG => RK
643 integer(IKG), intent(in) :: x
644 real(RKG) :: cdf
645 end function
646#endif
647
648 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
649
650#if CK5_ENABLED
651 PURE elemental module function getUnifCDF_DD_CK5(x) result(cdf)
652#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
653 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_DD_CK5
654#endif
655 use pm_kind, only: CKG => CK5
656 complex(CKG), intent(in) :: x
657 complex(CKG) :: cdf
658 end function
659#endif
660
661#if CK4_ENABLED
662 PURE elemental module function getUnifCDF_DD_CK4(x) result(cdf)
663#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
664 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_DD_CK4
665#endif
666 use pm_kind, only: CKG => CK4
667 complex(CKG), intent(in) :: x
668 complex(CKG) :: cdf
669 end function
670#endif
671
672#if CK3_ENABLED
673 PURE elemental module function getUnifCDF_DD_CK3(x) result(cdf)
674#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
675 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_DD_CK3
676#endif
677 use pm_kind, only: CKG => CK3
678 complex(CKG), intent(in) :: x
679 complex(CKG) :: cdf
680 end function
681#endif
682
683#if CK2_ENABLED
684 PURE elemental module function getUnifCDF_DD_CK2(x) result(cdf)
685#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
686 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_DD_CK2
687#endif
688 use pm_kind, only: CKG => CK2
689 complex(CKG), intent(in) :: x
690 complex(CKG) :: cdf
691 end function
692#endif
693
694#if CK1_ENABLED
695 PURE elemental module function getUnifCDF_DD_CK1(x) result(cdf)
696#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
697 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_DD_CK1
698#endif
699 use pm_kind, only: CKG => CK1
700 complex(CKG), intent(in) :: x
701 complex(CKG) :: cdf
702 end function
703#endif
704
705 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
706
707#if RK5_ENABLED
708 PURE elemental module function getUnifCDF_DD_RK5(x) result(cdf)
709#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
710 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_DD_RK5
711#endif
712 use pm_kind, only: RKG => RK5
713 real(RKG) , intent(in) :: x
714 real(RKG) :: cdf
715 end function
716#endif
717
718#if RK4_ENABLED
719 PURE elemental module function getUnifCDF_DD_RK4(x) result(cdf)
720#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
721 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_DD_RK4
722#endif
723 use pm_kind, only: RKG => RK4
724 real(RKG) , intent(in) :: x
725 real(RKG) :: cdf
726 end function
727#endif
728
729#if RK3_ENABLED
730 PURE elemental module function getUnifCDF_DD_RK3(x) result(cdf)
731#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
732 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_DD_RK3
733#endif
734 use pm_kind, only: RKG => RK3
735 real(RKG) , intent(in) :: x
736 real(RKG) :: cdf
737 end function
738#endif
739
740#if RK2_ENABLED
741 PURE elemental module function getUnifCDF_DD_RK2(x) result(cdf)
742#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
743 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_DD_RK2
744#endif
745 use pm_kind, only: RKG => RK2
746 real(RKG) , intent(in) :: x
747 real(RKG) :: cdf
748 end function
749#endif
750
751#if RK1_ENABLED
752 PURE elemental module function getUnifCDF_DD_RK1(x) result(cdf)
753#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
754 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifCDF_DD_RK1
755#endif
756 use pm_kind, only: RKG => RK1
757 real(RKG) , intent(in) :: x
758 real(RKG) :: cdf
759 end function
760#endif
761
762 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
763
764 end interface
765
766!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
767
832
833 ! default range.
834
835 interface setUnifCDF
836
837 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
838 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
839 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
840
841 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
842
843#if RK5_ENABLED && IK5_ENABLED
844 PURE module subroutine setUnifCDF_DD_D0_RK5_IK5(cdf, x)
845#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
846 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK5_IK5
847#endif
848 use pm_kind, only: IKG => IK5, RKG => RK5
849 real(RKG) , intent(out) :: cdf
850 integer(IKG), intent(in) :: x
851 end subroutine
852#endif
853
854#if RK4_ENABLED && IK5_ENABLED
855 PURE module subroutine setUnifCDF_DD_D0_RK4_IK5(cdf, x)
856#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
857 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK4_IK5
858#endif
859 use pm_kind, only: IKG => IK5, RKG => RK4
860 real(RKG) , intent(out) :: cdf
861 integer(IKG), intent(in) :: x
862 end subroutine
863#endif
864
865#if RK3_ENABLED && IK5_ENABLED
866 PURE module subroutine setUnifCDF_DD_D0_RK3_IK5(cdf, x)
867#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
868 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK3_IK5
869#endif
870 use pm_kind, only: IKG => IK5, RKG => RK3
871 real(RKG) , intent(out) :: cdf
872 integer(IKG), intent(in) :: x
873 end subroutine
874#endif
875
876#if RK2_ENABLED && IK5_ENABLED
877 PURE module subroutine setUnifCDF_DD_D0_RK2_IK5(cdf, x)
878#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
879 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK2_IK5
880#endif
881 use pm_kind, only: IKG => IK5, RKG => RK2
882 real(RKG) , intent(out) :: cdf
883 integer(IKG), intent(in) :: x
884 end subroutine
885#endif
886
887#if RK1_ENABLED && IK5_ENABLED
888 PURE module subroutine setUnifCDF_DD_D0_RK1_IK5(cdf, x)
889#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
890 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK1_IK5
891#endif
892 use pm_kind, only: IKG => IK5, RKG => RK1
893 real(RKG) , intent(out) :: cdf
894 integer(IKG), intent(in) :: x
895 end subroutine
896#endif
897
898 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
899
900#if RK5_ENABLED && IK4_ENABLED
901 PURE module subroutine setUnifCDF_DD_D0_RK5_IK4(cdf, x)
902#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
903 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK5_IK4
904#endif
905 use pm_kind, only: IKG => IK4, RKG => RK5
906 real(RKG) , intent(out) :: cdf
907 integer(IKG), intent(in) :: x
908 end subroutine
909#endif
910
911#if RK4_ENABLED && IK4_ENABLED
912 PURE module subroutine setUnifCDF_DD_D0_RK4_IK4(cdf, x)
913#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
914 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK4_IK4
915#endif
916 use pm_kind, only: IKG => IK4, RKG => RK4
917 real(RKG) , intent(out) :: cdf
918 integer(IKG), intent(in) :: x
919 end subroutine
920#endif
921
922#if RK3_ENABLED && IK4_ENABLED
923 PURE module subroutine setUnifCDF_DD_D0_RK3_IK4(cdf, x)
924#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
925 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK3_IK4
926#endif
927 use pm_kind, only: IKG => IK4, RKG => RK3
928 real(RKG) , intent(out) :: cdf
929 integer(IKG), intent(in) :: x
930 end subroutine
931#endif
932
933#if RK2_ENABLED && IK4_ENABLED
934 PURE module subroutine setUnifCDF_DD_D0_RK2_IK4(cdf, x)
935#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
936 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK2_IK4
937#endif
938 use pm_kind, only: IKG => IK4, RKG => RK2
939 real(RKG) , intent(out) :: cdf
940 integer(IKG), intent(in) :: x
941 end subroutine
942#endif
943
944#if RK1_ENABLED && IK4_ENABLED
945 PURE module subroutine setUnifCDF_DD_D0_RK1_IK4(cdf, x)
946#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
947 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK1_IK4
948#endif
949 use pm_kind, only: IKG => IK4, RKG => RK1
950 real(RKG) , intent(out) :: cdf
951 integer(IKG), intent(in) :: x
952 end subroutine
953#endif
954
955 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
956
957#if RK5_ENABLED && IK3_ENABLED
958 PURE module subroutine setUnifCDF_DD_D0_RK5_IK3(cdf, x)
959#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
960 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK5_IK3
961#endif
962 use pm_kind, only: IKG => IK3, RKG => RK5
963 real(RKG) , intent(out) :: cdf
964 integer(IKG), intent(in) :: x
965 end subroutine
966#endif
967
968#if RK4_ENABLED && IK3_ENABLED
969 PURE module subroutine setUnifCDF_DD_D0_RK4_IK3(cdf, x)
970#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
971 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK4_IK3
972#endif
973 use pm_kind, only: IKG => IK3, RKG => RK4
974 real(RKG) , intent(out) :: cdf
975 integer(IKG), intent(in) :: x
976 end subroutine
977#endif
978
979#if RK3_ENABLED && IK3_ENABLED
980 PURE module subroutine setUnifCDF_DD_D0_RK3_IK3(cdf, x)
981#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
982 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK3_IK3
983#endif
984 use pm_kind, only: IKG => IK3, RKG => RK3
985 real(RKG) , intent(out) :: cdf
986 integer(IKG), intent(in) :: x
987 end subroutine
988#endif
989
990#if RK2_ENABLED && IK3_ENABLED
991 PURE module subroutine setUnifCDF_DD_D0_RK2_IK3(cdf, x)
992#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
993 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK2_IK3
994#endif
995 use pm_kind, only: IKG => IK3, RKG => RK2
996 real(RKG) , intent(out) :: cdf
997 integer(IKG), intent(in) :: x
998 end subroutine
999#endif
1000
1001#if RK1_ENABLED && IK3_ENABLED
1002 PURE module subroutine setUnifCDF_DD_D0_RK1_IK3(cdf, x)
1003#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1004 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK1_IK3
1005#endif
1006 use pm_kind, only: IKG => IK3, RKG => RK1
1007 real(RKG) , intent(out) :: cdf
1008 integer(IKG), intent(in) :: x
1009 end subroutine
1010#endif
1011
1012 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1013
1014#if RK5_ENABLED && IK2_ENABLED
1015 PURE module subroutine setUnifCDF_DD_D0_RK5_IK2(cdf, x)
1016#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1017 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK5_IK2
1018#endif
1019 use pm_kind, only: IKG => IK2, RKG => RK5
1020 real(RKG) , intent(out) :: cdf
1021 integer(IKG), intent(in) :: x
1022 end subroutine
1023#endif
1024
1025#if RK4_ENABLED && IK2_ENABLED
1026 PURE module subroutine setUnifCDF_DD_D0_RK4_IK2(cdf, x)
1027#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1028 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK4_IK2
1029#endif
1030 use pm_kind, only: IKG => IK2, RKG => RK4
1031 real(RKG) , intent(out) :: cdf
1032 integer(IKG), intent(in) :: x
1033 end subroutine
1034#endif
1035
1036#if RK3_ENABLED && IK2_ENABLED
1037 PURE module subroutine setUnifCDF_DD_D0_RK3_IK2(cdf, x)
1038#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1039 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK3_IK2
1040#endif
1041 use pm_kind, only: IKG => IK2, RKG => RK3
1042 real(RKG) , intent(out) :: cdf
1043 integer(IKG), intent(in) :: x
1044 end subroutine
1045#endif
1046
1047#if RK2_ENABLED && IK2_ENABLED
1048 PURE module subroutine setUnifCDF_DD_D0_RK2_IK2(cdf, x)
1049#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1050 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK2_IK2
1051#endif
1052 use pm_kind, only: IKG => IK2, RKG => RK2
1053 real(RKG) , intent(out) :: cdf
1054 integer(IKG), intent(in) :: x
1055 end subroutine
1056#endif
1057
1058#if RK1_ENABLED && IK2_ENABLED
1059 PURE module subroutine setUnifCDF_DD_D0_RK1_IK2(cdf, x)
1060#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1061 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK1_IK2
1062#endif
1063 use pm_kind, only: IKG => IK2, RKG => RK1
1064 real(RKG) , intent(out) :: cdf
1065 integer(IKG), intent(in) :: x
1066 end subroutine
1067#endif
1068
1069 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1070
1071#if RK5_ENABLED && IK1_ENABLED
1072 PURE module subroutine setUnifCDF_DD_D0_RK5_IK1(cdf, x)
1073#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1074 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK5_IK1
1075#endif
1076 use pm_kind, only: IKG => IK1, RKG => RK5
1077 real(RKG) , intent(out) :: cdf
1078 integer(IKG), intent(in) :: x
1079 end subroutine
1080#endif
1081
1082#if RK4_ENABLED && IK1_ENABLED
1083 PURE module subroutine setUnifCDF_DD_D0_RK4_IK1(cdf, x)
1084#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1085 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK4_IK1
1086#endif
1087 use pm_kind, only: IKG => IK1, RKG => RK4
1088 real(RKG) , intent(out) :: cdf
1089 integer(IKG), intent(in) :: x
1090 end subroutine
1091#endif
1092
1093#if RK3_ENABLED && IK1_ENABLED
1094 PURE module subroutine setUnifCDF_DD_D0_RK3_IK1(cdf, x)
1095#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1096 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK3_IK1
1097#endif
1098 use pm_kind, only: IKG => IK1, RKG => RK3
1099 real(RKG) , intent(out) :: cdf
1100 integer(IKG), intent(in) :: x
1101 end subroutine
1102#endif
1103
1104#if RK2_ENABLED && IK1_ENABLED
1105 PURE module subroutine setUnifCDF_DD_D0_RK2_IK1(cdf, x)
1106#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1107 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK2_IK1
1108#endif
1109 use pm_kind, only: IKG => IK1, RKG => RK2
1110 real(RKG) , intent(out) :: cdf
1111 integer(IKG), intent(in) :: x
1112 end subroutine
1113#endif
1114
1115#if RK1_ENABLED && IK1_ENABLED
1116 PURE module subroutine setUnifCDF_DD_D0_RK1_IK1(cdf, x)
1117#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1118 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK1_IK1
1119#endif
1120 use pm_kind, only: IKG => IK1, RKG => RK1
1121 real(RKG) , intent(out) :: cdf
1122 integer(IKG), intent(in) :: x
1123 end subroutine
1124#endif
1125
1126 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1127
1128 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1129 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1130 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1131
1132 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1133
1134#if CK5_ENABLED
1135 PURE module subroutine setUnifCDF_DD_D0_CK5(cdf, x)
1136#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1137 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_CK5
1138#endif
1139 use pm_kind, only: CKG => CK5
1140 complex(CKG), intent(out) :: cdf
1141 complex(CKG), intent(in) :: x
1142 end subroutine
1143#endif
1144
1145#if CK4_ENABLED
1146 PURE module subroutine setUnifCDF_DD_D0_CK4(cdf, x)
1147#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1148 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_CK4
1149#endif
1150 use pm_kind, only: CKG => CK4
1151 complex(CKG), intent(out) :: cdf
1152 complex(CKG), intent(in) :: x
1153 end subroutine
1154#endif
1155
1156#if CK3_ENABLED
1157 PURE module subroutine setUnifCDF_DD_D0_CK3(cdf, x)
1158#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1159 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_CK3
1160#endif
1161 use pm_kind, only: CKG => CK3
1162 complex(CKG), intent(out) :: cdf
1163 complex(CKG), intent(in) :: x
1164 end subroutine
1165#endif
1166
1167#if CK2_ENABLED
1168 PURE module subroutine setUnifCDF_DD_D0_CK2(cdf, x)
1169#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1170 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_CK2
1171#endif
1172 use pm_kind, only: CKG => CK2
1173 complex(CKG), intent(out) :: cdf
1174 complex(CKG), intent(in) :: x
1175 end subroutine
1176#endif
1177
1178#if CK1_ENABLED
1179 PURE module subroutine setUnifCDF_DD_D0_CK1(cdf, x)
1180#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1181 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_CK1
1182#endif
1183 use pm_kind, only: CKG => CK1
1184 complex(CKG), intent(out) :: cdf
1185 complex(CKG), intent(in) :: x
1186 end subroutine
1187#endif
1188
1189 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1190
1191 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1192 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1193 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1194
1195 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1196
1197#if RK5_ENABLED
1198 PURE module subroutine setUnifCDF_DD_D0_RK5(cdf, x)
1199#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1200 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK5
1201#endif
1202 use pm_kind, only: RKG => RK5
1203 real(RKG) , intent(out) :: cdf
1204 real(RKG) , intent(in) :: x
1205 end subroutine
1206#endif
1207
1208#if RK4_ENABLED
1209 PURE module subroutine setUnifCDF_DD_D0_RK4(cdf, x)
1210#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1211 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK4
1212#endif
1213 use pm_kind, only: RKG => RK4
1214 real(RKG) , intent(out) :: cdf
1215 real(RKG) , intent(in) :: x
1216 end subroutine
1217#endif
1218
1219#if RK3_ENABLED
1220 PURE module subroutine setUnifCDF_DD_D0_RK3(cdf, x)
1221#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1222 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK3
1223#endif
1224 use pm_kind, only: RKG => RK3
1225 real(RKG) , intent(out) :: cdf
1226 real(RKG) , intent(in) :: x
1227 end subroutine
1228#endif
1229
1230#if RK2_ENABLED
1231 PURE module subroutine setUnifCDF_DD_D0_RK2(cdf, x)
1232#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1233 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK2
1234#endif
1235 use pm_kind, only: RKG => RK2
1236 real(RKG) , intent(out) :: cdf
1237 real(RKG) , intent(in) :: x
1238 end subroutine
1239#endif
1240
1241#if RK1_ENABLED
1242 PURE module subroutine setUnifCDF_DD_D0_RK1(cdf, x)
1243#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1244 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D0_RK1
1245#endif
1246 use pm_kind, only: RKG => RK1
1247 real(RKG) , intent(out) :: cdf
1248 real(RKG) , intent(in) :: x
1249 end subroutine
1250#endif
1251
1252 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1253
1254 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1255 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1256 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1257
1258 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1259 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1260 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1261
1262 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1263
1264#if RK5_ENABLED && IK5_ENABLED
1265 PURE module subroutine setUnifCDF_DD_D1_RK5_IK5(cdf, X)
1266#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1267 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK5_IK5
1268#endif
1269 use pm_kind, only: IKG => IK5, RKG => RK5
1270 real(RKG) , intent(out) , contiguous :: cdf(:)
1271 integer(IKG), intent(in) , contiguous :: X(:)
1272 end subroutine
1273#endif
1274
1275#if RK4_ENABLED && IK5_ENABLED
1276 PURE module subroutine setUnifCDF_DD_D1_RK4_IK5(cdf, X)
1277#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1278 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK4_IK5
1279#endif
1280 use pm_kind, only: IKG => IK5, RKG => RK4
1281 real(RKG) , intent(out) , contiguous :: cdf(:)
1282 integer(IKG), intent(in) , contiguous :: X(:)
1283 end subroutine
1284#endif
1285
1286#if RK3_ENABLED && IK5_ENABLED
1287 PURE module subroutine setUnifCDF_DD_D1_RK3_IK5(cdf, X)
1288#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1289 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK3_IK5
1290#endif
1291 use pm_kind, only: IKG => IK5, RKG => RK3
1292 real(RKG) , intent(out) , contiguous :: cdf(:)
1293 integer(IKG), intent(in) , contiguous :: X(:)
1294 end subroutine
1295#endif
1296
1297#if RK2_ENABLED && IK5_ENABLED
1298 PURE module subroutine setUnifCDF_DD_D1_RK2_IK5(cdf, X)
1299#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1300 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK2_IK5
1301#endif
1302 use pm_kind, only: IKG => IK5, RKG => RK2
1303 real(RKG) , intent(out) , contiguous :: cdf(:)
1304 integer(IKG), intent(in) , contiguous :: X(:)
1305 end subroutine
1306#endif
1307
1308#if RK1_ENABLED && IK5_ENABLED
1309 PURE module subroutine setUnifCDF_DD_D1_RK1_IK5(cdf, X)
1310#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1311 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK1_IK5
1312#endif
1313 use pm_kind, only: IKG => IK5, RKG => RK1
1314 real(RKG) , intent(out) , contiguous :: cdf(:)
1315 integer(IKG), intent(in) , contiguous :: X(:)
1316 end subroutine
1317#endif
1318
1319 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1320
1321#if RK5_ENABLED && IK4_ENABLED
1322 PURE module subroutine setUnifCDF_DD_D1_RK5_IK4(cdf, X)
1323#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1324 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK5_IK4
1325#endif
1326 use pm_kind, only: IKG => IK4, RKG => RK5
1327 real(RKG) , intent(out) , contiguous :: cdf(:)
1328 integer(IKG), intent(in) , contiguous :: X(:)
1329 end subroutine
1330#endif
1331
1332#if RK4_ENABLED && IK4_ENABLED
1333 PURE module subroutine setUnifCDF_DD_D1_RK4_IK4(cdf, X)
1334#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1335 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK4_IK4
1336#endif
1337 use pm_kind, only: IKG => IK4, RKG => RK4
1338 real(RKG) , intent(out) , contiguous :: cdf(:)
1339 integer(IKG), intent(in) , contiguous :: X(:)
1340 end subroutine
1341#endif
1342
1343#if RK3_ENABLED && IK4_ENABLED
1344 PURE module subroutine setUnifCDF_DD_D1_RK3_IK4(cdf, X)
1345#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1346 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK3_IK4
1347#endif
1348 use pm_kind, only: IKG => IK4, RKG => RK3
1349 real(RKG) , intent(out) , contiguous :: cdf(:)
1350 integer(IKG), intent(in) , contiguous :: X(:)
1351 end subroutine
1352#endif
1353
1354#if RK2_ENABLED && IK4_ENABLED
1355 PURE module subroutine setUnifCDF_DD_D1_RK2_IK4(cdf, X)
1356#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1357 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK2_IK4
1358#endif
1359 use pm_kind, only: IKG => IK4, RKG => RK2
1360 real(RKG) , intent(out) , contiguous :: cdf(:)
1361 integer(IKG), intent(in) , contiguous :: X(:)
1362 end subroutine
1363#endif
1364
1365#if RK1_ENABLED && IK4_ENABLED
1366 PURE module subroutine setUnifCDF_DD_D1_RK1_IK4(cdf, X)
1367#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1368 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK1_IK4
1369#endif
1370 use pm_kind, only: IKG => IK4, RKG => RK1
1371 real(RKG) , intent(out) , contiguous :: cdf(:)
1372 integer(IKG), intent(in) , contiguous :: X(:)
1373 end subroutine
1374#endif
1375
1376 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1377
1378#if RK5_ENABLED && IK3_ENABLED
1379 PURE module subroutine setUnifCDF_DD_D1_RK5_IK3(cdf, X)
1380#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1381 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK5_IK3
1382#endif
1383 use pm_kind, only: IKG => IK3, RKG => RK5
1384 real(RKG) , intent(out) , contiguous :: cdf(:)
1385 integer(IKG), intent(in) , contiguous :: X(:)
1386 end subroutine
1387#endif
1388
1389#if RK4_ENABLED && IK3_ENABLED
1390 PURE module subroutine setUnifCDF_DD_D1_RK4_IK3(cdf, X)
1391#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1392 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK4_IK3
1393#endif
1394 use pm_kind, only: IKG => IK3, RKG => RK4
1395 real(RKG) , intent(out) , contiguous :: cdf(:)
1396 integer(IKG), intent(in) , contiguous :: X(:)
1397 end subroutine
1398#endif
1399
1400#if RK3_ENABLED && IK3_ENABLED
1401 PURE module subroutine setUnifCDF_DD_D1_RK3_IK3(cdf, X)
1402#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1403 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK3_IK3
1404#endif
1405 use pm_kind, only: IKG => IK3, RKG => RK3
1406 real(RKG) , intent(out) , contiguous :: cdf(:)
1407 integer(IKG), intent(in) , contiguous :: X(:)
1408 end subroutine
1409#endif
1410
1411#if RK2_ENABLED && IK3_ENABLED
1412 PURE module subroutine setUnifCDF_DD_D1_RK2_IK3(cdf, X)
1413#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1414 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK2_IK3
1415#endif
1416 use pm_kind, only: IKG => IK3, RKG => RK2
1417 real(RKG) , intent(out) , contiguous :: cdf(:)
1418 integer(IKG), intent(in) , contiguous :: X(:)
1419 end subroutine
1420#endif
1421
1422#if RK1_ENABLED && IK3_ENABLED
1423 PURE module subroutine setUnifCDF_DD_D1_RK1_IK3(cdf, X)
1424#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1425 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK1_IK3
1426#endif
1427 use pm_kind, only: IKG => IK3, RKG => RK1
1428 real(RKG) , intent(out) , contiguous :: cdf(:)
1429 integer(IKG), intent(in) , contiguous :: X(:)
1430 end subroutine
1431#endif
1432
1433 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1434
1435#if RK5_ENABLED && IK2_ENABLED
1436 PURE module subroutine setUnifCDF_DD_D1_RK5_IK2(cdf, X)
1437#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1438 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK5_IK2
1439#endif
1440 use pm_kind, only: IKG => IK2, RKG => RK5
1441 real(RKG) , intent(out) , contiguous :: cdf(:)
1442 integer(IKG), intent(in) , contiguous :: X(:)
1443 end subroutine
1444#endif
1445
1446#if RK4_ENABLED && IK2_ENABLED
1447 PURE module subroutine setUnifCDF_DD_D1_RK4_IK2(cdf, X)
1448#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1449 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK4_IK2
1450#endif
1451 use pm_kind, only: IKG => IK2, RKG => RK4
1452 real(RKG) , intent(out) , contiguous :: cdf(:)
1453 integer(IKG), intent(in) , contiguous :: X(:)
1454 end subroutine
1455#endif
1456
1457#if RK3_ENABLED && IK2_ENABLED
1458 PURE module subroutine setUnifCDF_DD_D1_RK3_IK2(cdf, X)
1459#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1460 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK3_IK2
1461#endif
1462 use pm_kind, only: IKG => IK2, RKG => RK3
1463 real(RKG) , intent(out) , contiguous :: cdf(:)
1464 integer(IKG), intent(in) , contiguous :: X(:)
1465 end subroutine
1466#endif
1467
1468#if RK2_ENABLED && IK2_ENABLED
1469 PURE module subroutine setUnifCDF_DD_D1_RK2_IK2(cdf, X)
1470#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1471 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK2_IK2
1472#endif
1473 use pm_kind, only: IKG => IK2, RKG => RK2
1474 real(RKG) , intent(out) , contiguous :: cdf(:)
1475 integer(IKG), intent(in) , contiguous :: X(:)
1476 end subroutine
1477#endif
1478
1479#if RK1_ENABLED && IK2_ENABLED
1480 PURE module subroutine setUnifCDF_DD_D1_RK1_IK2(cdf, X)
1481#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1482 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK1_IK2
1483#endif
1484 use pm_kind, only: IKG => IK2, RKG => RK1
1485 real(RKG) , intent(out) , contiguous :: cdf(:)
1486 integer(IKG), intent(in) , contiguous :: X(:)
1487 end subroutine
1488#endif
1489
1490 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1491
1492#if RK5_ENABLED && IK1_ENABLED
1493 PURE module subroutine setUnifCDF_DD_D1_RK5_IK1(cdf, X)
1494#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1495 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK5_IK1
1496#endif
1497 use pm_kind, only: IKG => IK1, RKG => RK5
1498 real(RKG) , intent(out) , contiguous :: cdf(:)
1499 integer(IKG), intent(in) , contiguous :: X(:)
1500 end subroutine
1501#endif
1502
1503#if RK4_ENABLED && IK1_ENABLED
1504 PURE module subroutine setUnifCDF_DD_D1_RK4_IK1(cdf, X)
1505#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1506 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK4_IK1
1507#endif
1508 use pm_kind, only: IKG => IK1, RKG => RK4
1509 real(RKG) , intent(out) , contiguous :: cdf(:)
1510 integer(IKG), intent(in) , contiguous :: X(:)
1511 end subroutine
1512#endif
1513
1514#if RK3_ENABLED && IK1_ENABLED
1515 PURE module subroutine setUnifCDF_DD_D1_RK3_IK1(cdf, X)
1516#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1517 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK3_IK1
1518#endif
1519 use pm_kind, only: IKG => IK1, RKG => RK3
1520 real(RKG) , intent(out) , contiguous :: cdf(:)
1521 integer(IKG), intent(in) , contiguous :: X(:)
1522 end subroutine
1523#endif
1524
1525#if RK2_ENABLED && IK1_ENABLED
1526 PURE module subroutine setUnifCDF_DD_D1_RK2_IK1(cdf, X)
1527#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1528 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK2_IK1
1529#endif
1530 use pm_kind, only: IKG => IK1, RKG => RK2
1531 real(RKG) , intent(out) , contiguous :: cdf(:)
1532 integer(IKG), intent(in) , contiguous :: X(:)
1533 end subroutine
1534#endif
1535
1536#if RK1_ENABLED && IK1_ENABLED
1537 PURE module subroutine setUnifCDF_DD_D1_RK1_IK1(cdf, X)
1538#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1539 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK1_IK1
1540#endif
1541 use pm_kind, only: IKG => IK1, RKG => RK1
1542 real(RKG) , intent(out) , contiguous :: cdf(:)
1543 integer(IKG), intent(in) , contiguous :: X(:)
1544 end subroutine
1545#endif
1546
1547 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1548
1549 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1550 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1551 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1552
1553 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1554
1555#if CK5_ENABLED
1556 PURE module subroutine setUnifCDF_DD_D1_CK5(cdf, X)
1557#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1558 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_CK5
1559#endif
1560 use pm_kind, only: CKG => CK5
1561 complex(CKG), intent(out) , contiguous :: cdf(:)
1562 complex(CKG), intent(in) , contiguous :: X(:)
1563 end subroutine
1564#endif
1565
1566#if CK4_ENABLED
1567 PURE module subroutine setUnifCDF_DD_D1_CK4(cdf, X)
1568#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1569 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_CK4
1570#endif
1571 use pm_kind, only: CKG => CK4
1572 complex(CKG), intent(out) , contiguous :: cdf(:)
1573 complex(CKG), intent(in) , contiguous :: X(:)
1574 end subroutine
1575#endif
1576
1577#if CK3_ENABLED
1578 PURE module subroutine setUnifCDF_DD_D1_CK3(cdf, X)
1579#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1580 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_CK3
1581#endif
1582 use pm_kind, only: CKG => CK3
1583 complex(CKG), intent(out) , contiguous :: cdf(:)
1584 complex(CKG), intent(in) , contiguous :: X(:)
1585 end subroutine
1586#endif
1587
1588#if CK2_ENABLED
1589 PURE module subroutine setUnifCDF_DD_D1_CK2(cdf, X)
1590#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1591 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_CK2
1592#endif
1593 use pm_kind, only: CKG => CK2
1594 complex(CKG), intent(out) , contiguous :: cdf(:)
1595 complex(CKG), intent(in) , contiguous :: X(:)
1596 end subroutine
1597#endif
1598
1599#if CK1_ENABLED
1600 PURE module subroutine setUnifCDF_DD_D1_CK1(cdf, X)
1601#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1602 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_CK1
1603#endif
1604 use pm_kind, only: CKG => CK1
1605 complex(CKG), intent(out) , contiguous :: cdf(:)
1606 complex(CKG), intent(in) , contiguous :: X(:)
1607 end subroutine
1608#endif
1609
1610 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1611
1612 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1613 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1614 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1615
1616 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1617
1618#if RK5_ENABLED
1619 PURE module subroutine setUnifCDF_DD_D1_RK5(cdf, X)
1620#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1621 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK5
1622#endif
1623 use pm_kind, only: RKG => RK5
1624 real(RKG) , intent(out) , contiguous :: cdf(:)
1625 real(RKG) , intent(in) , contiguous :: X(:)
1626 end subroutine
1627#endif
1628
1629#if RK4_ENABLED
1630 PURE module subroutine setUnifCDF_DD_D1_RK4(cdf, X)
1631#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1632 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK4
1633#endif
1634 use pm_kind, only: RKG => RK4
1635 real(RKG) , intent(out) , contiguous :: cdf(:)
1636 real(RKG) , intent(in) , contiguous :: X(:)
1637 end subroutine
1638#endif
1639
1640#if RK3_ENABLED
1641 PURE module subroutine setUnifCDF_DD_D1_RK3(cdf, X)
1642#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1643 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK3
1644#endif
1645 use pm_kind, only: RKG => RK3
1646 real(RKG) , intent(out) , contiguous :: cdf(:)
1647 real(RKG) , intent(in) , contiguous :: X(:)
1648 end subroutine
1649#endif
1650
1651#if RK2_ENABLED
1652 PURE module subroutine setUnifCDF_DD_D1_RK2(cdf, X)
1653#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1654 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK2
1655#endif
1656 use pm_kind, only: RKG => RK2
1657 real(RKG) , intent(out) , contiguous :: cdf(:)
1658 real(RKG) , intent(in) , contiguous :: X(:)
1659 end subroutine
1660#endif
1661
1662#if RK1_ENABLED
1663 PURE module subroutine setUnifCDF_DD_D1_RK1(cdf, X)
1664#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1665 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_DD_D1_RK1
1666#endif
1667 use pm_kind, only: RKG => RK1
1668 real(RKG) , intent(out) , contiguous :: cdf(:)
1669 real(RKG) , intent(in) , contiguous :: X(:)
1670 end subroutine
1671#endif
1672
1673 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1674
1675 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1676 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1677 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1678
1679 end interface
1680
1681 ! custom range.
1682
1683 interface setUnifCDF
1684
1685 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1686 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1687 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1688
1689 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1690
1691#if RK5_ENABLED && IK5_ENABLED
1692 PURE module subroutine setUnifCDF_LU_D0_RK5_IK5(cdf, x, lower, upper)
1693#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1694 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK5_IK5
1695#endif
1696 use pm_kind, only: IKG => IK5, RKG => RK5
1697 real(RKG) , intent(out) :: cdf
1698 integer(IKG), intent(in) :: x
1699 integer(IKG), intent(in) :: lower, upper
1700 end subroutine
1701#endif
1702
1703#if RK4_ENABLED && IK5_ENABLED
1704 PURE module subroutine setUnifCDF_LU_D0_RK4_IK5(cdf, x, lower, upper)
1705#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1706 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK4_IK5
1707#endif
1708 use pm_kind, only: IKG => IK5, RKG => RK4
1709 real(RKG) , intent(out) :: cdf
1710 integer(IKG), intent(in) :: x
1711 integer(IKG), intent(in) :: lower, upper
1712 end subroutine
1713#endif
1714
1715#if RK3_ENABLED && IK5_ENABLED
1716 PURE module subroutine setUnifCDF_LU_D0_RK3_IK5(cdf, x, lower, upper)
1717#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1718 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK3_IK5
1719#endif
1720 use pm_kind, only: IKG => IK5, RKG => RK3
1721 real(RKG) , intent(out) :: cdf
1722 integer(IKG), intent(in) :: x
1723 integer(IKG), intent(in) :: lower, upper
1724 end subroutine
1725#endif
1726
1727#if RK2_ENABLED && IK5_ENABLED
1728 PURE module subroutine setUnifCDF_LU_D0_RK2_IK5(cdf, x, lower, upper)
1729#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1730 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK2_IK5
1731#endif
1732 use pm_kind, only: IKG => IK5, RKG => RK2
1733 real(RKG) , intent(out) :: cdf
1734 integer(IKG), intent(in) :: x
1735 integer(IKG), intent(in) :: lower, upper
1736 end subroutine
1737#endif
1738
1739#if RK1_ENABLED && IK5_ENABLED
1740 PURE module subroutine setUnifCDF_LU_D0_RK1_IK5(cdf, x, lower, upper)
1741#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1742 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK1_IK5
1743#endif
1744 use pm_kind, only: IKG => IK5, RKG => RK1
1745 real(RKG) , intent(out) :: cdf
1746 integer(IKG), intent(in) :: x
1747 integer(IKG), intent(in) :: lower, upper
1748 end subroutine
1749#endif
1750
1751 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1752
1753#if RK5_ENABLED && IK4_ENABLED
1754 PURE module subroutine setUnifCDF_LU_D0_RK5_IK4(cdf, x, lower, upper)
1755#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1756 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK5_IK4
1757#endif
1758 use pm_kind, only: IKG => IK4, RKG => RK5
1759 real(RKG) , intent(out) :: cdf
1760 integer(IKG), intent(in) :: x
1761 integer(IKG), intent(in) :: lower, upper
1762 end subroutine
1763#endif
1764
1765#if RK4_ENABLED && IK4_ENABLED
1766 PURE module subroutine setUnifCDF_LU_D0_RK4_IK4(cdf, x, lower, upper)
1767#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1768 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK4_IK4
1769#endif
1770 use pm_kind, only: IKG => IK4, RKG => RK4
1771 real(RKG) , intent(out) :: cdf
1772 integer(IKG), intent(in) :: x
1773 integer(IKG), intent(in) :: lower, upper
1774 end subroutine
1775#endif
1776
1777#if RK3_ENABLED && IK4_ENABLED
1778 PURE module subroutine setUnifCDF_LU_D0_RK3_IK4(cdf, x, lower, upper)
1779#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1780 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK3_IK4
1781#endif
1782 use pm_kind, only: IKG => IK4, RKG => RK3
1783 real(RKG) , intent(out) :: cdf
1784 integer(IKG), intent(in) :: x
1785 integer(IKG), intent(in) :: lower, upper
1786 end subroutine
1787#endif
1788
1789#if RK2_ENABLED && IK4_ENABLED
1790 PURE module subroutine setUnifCDF_LU_D0_RK2_IK4(cdf, x, lower, upper)
1791#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1792 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK2_IK4
1793#endif
1794 use pm_kind, only: IKG => IK4, RKG => RK2
1795 real(RKG) , intent(out) :: cdf
1796 integer(IKG), intent(in) :: x
1797 integer(IKG), intent(in) :: lower, upper
1798 end subroutine
1799#endif
1800
1801#if RK1_ENABLED && IK4_ENABLED
1802 PURE module subroutine setUnifCDF_LU_D0_RK1_IK4(cdf, x, lower, upper)
1803#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1804 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK1_IK4
1805#endif
1806 use pm_kind, only: IKG => IK4, RKG => RK1
1807 real(RKG) , intent(out) :: cdf
1808 integer(IKG), intent(in) :: x
1809 integer(IKG), intent(in) :: lower, upper
1810 end subroutine
1811#endif
1812
1813 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1814
1815#if RK5_ENABLED && IK3_ENABLED
1816 PURE module subroutine setUnifCDF_LU_D0_RK5_IK3(cdf, x, lower, upper)
1817#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1818 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK5_IK3
1819#endif
1820 use pm_kind, only: IKG => IK3, RKG => RK5
1821 real(RKG) , intent(out) :: cdf
1822 integer(IKG), intent(in) :: x
1823 integer(IKG), intent(in) :: lower, upper
1824 end subroutine
1825#endif
1826
1827#if RK4_ENABLED && IK3_ENABLED
1828 PURE module subroutine setUnifCDF_LU_D0_RK4_IK3(cdf, x, lower, upper)
1829#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1830 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK4_IK3
1831#endif
1832 use pm_kind, only: IKG => IK3, RKG => RK4
1833 real(RKG) , intent(out) :: cdf
1834 integer(IKG), intent(in) :: x
1835 integer(IKG), intent(in) :: lower, upper
1836 end subroutine
1837#endif
1838
1839#if RK3_ENABLED && IK3_ENABLED
1840 PURE module subroutine setUnifCDF_LU_D0_RK3_IK3(cdf, x, lower, upper)
1841#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1842 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK3_IK3
1843#endif
1844 use pm_kind, only: IKG => IK3, RKG => RK3
1845 real(RKG) , intent(out) :: cdf
1846 integer(IKG), intent(in) :: x
1847 integer(IKG), intent(in) :: lower, upper
1848 end subroutine
1849#endif
1850
1851#if RK2_ENABLED && IK3_ENABLED
1852 PURE module subroutine setUnifCDF_LU_D0_RK2_IK3(cdf, x, lower, upper)
1853#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1854 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK2_IK3
1855#endif
1856 use pm_kind, only: IKG => IK3, RKG => RK2
1857 real(RKG) , intent(out) :: cdf
1858 integer(IKG), intent(in) :: x
1859 integer(IKG), intent(in) :: lower, upper
1860 end subroutine
1861#endif
1862
1863#if RK1_ENABLED && IK3_ENABLED
1864 PURE module subroutine setUnifCDF_LU_D0_RK1_IK3(cdf, x, lower, upper)
1865#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1866 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK1_IK3
1867#endif
1868 use pm_kind, only: IKG => IK3, RKG => RK1
1869 real(RKG) , intent(out) :: cdf
1870 integer(IKG), intent(in) :: x
1871 integer(IKG), intent(in) :: lower, upper
1872 end subroutine
1873#endif
1874
1875 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1876
1877#if RK5_ENABLED && IK2_ENABLED
1878 PURE module subroutine setUnifCDF_LU_D0_RK5_IK2(cdf, x, lower, upper)
1879#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1880 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK5_IK2
1881#endif
1882 use pm_kind, only: IKG => IK2, RKG => RK5
1883 real(RKG) , intent(out) :: cdf
1884 integer(IKG), intent(in) :: x
1885 integer(IKG), intent(in) :: lower, upper
1886 end subroutine
1887#endif
1888
1889#if RK4_ENABLED && IK2_ENABLED
1890 PURE module subroutine setUnifCDF_LU_D0_RK4_IK2(cdf, x, lower, upper)
1891#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1892 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK4_IK2
1893#endif
1894 use pm_kind, only: IKG => IK2, RKG => RK4
1895 real(RKG) , intent(out) :: cdf
1896 integer(IKG), intent(in) :: x
1897 integer(IKG), intent(in) :: lower, upper
1898 end subroutine
1899#endif
1900
1901#if RK3_ENABLED && IK2_ENABLED
1902 PURE module subroutine setUnifCDF_LU_D0_RK3_IK2(cdf, x, lower, upper)
1903#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1904 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK3_IK2
1905#endif
1906 use pm_kind, only: IKG => IK2, RKG => RK3
1907 real(RKG) , intent(out) :: cdf
1908 integer(IKG), intent(in) :: x
1909 integer(IKG), intent(in) :: lower, upper
1910 end subroutine
1911#endif
1912
1913#if RK2_ENABLED && IK2_ENABLED
1914 PURE module subroutine setUnifCDF_LU_D0_RK2_IK2(cdf, x, lower, upper)
1915#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1916 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK2_IK2
1917#endif
1918 use pm_kind, only: IKG => IK2, RKG => RK2
1919 real(RKG) , intent(out) :: cdf
1920 integer(IKG), intent(in) :: x
1921 integer(IKG), intent(in) :: lower, upper
1922 end subroutine
1923#endif
1924
1925#if RK1_ENABLED && IK2_ENABLED
1926 PURE module subroutine setUnifCDF_LU_D0_RK1_IK2(cdf, x, lower, upper)
1927#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1928 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK1_IK2
1929#endif
1930 use pm_kind, only: IKG => IK2, RKG => RK1
1931 real(RKG) , intent(out) :: cdf
1932 integer(IKG), intent(in) :: x
1933 integer(IKG), intent(in) :: lower, upper
1934 end subroutine
1935#endif
1936
1937 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1938
1939#if RK5_ENABLED && IK1_ENABLED
1940 PURE module subroutine setUnifCDF_LU_D0_RK5_IK1(cdf, x, lower, upper)
1941#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1942 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK5_IK1
1943#endif
1944 use pm_kind, only: IKG => IK1, RKG => RK5
1945 real(RKG) , intent(out) :: cdf
1946 integer(IKG), intent(in) :: x
1947 integer(IKG), intent(in) :: lower, upper
1948 end subroutine
1949#endif
1950
1951#if RK4_ENABLED && IK1_ENABLED
1952 PURE module subroutine setUnifCDF_LU_D0_RK4_IK1(cdf, x, lower, upper)
1953#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1954 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK4_IK1
1955#endif
1956 use pm_kind, only: IKG => IK1, RKG => RK4
1957 real(RKG) , intent(out) :: cdf
1958 integer(IKG), intent(in) :: x
1959 integer(IKG), intent(in) :: lower, upper
1960 end subroutine
1961#endif
1962
1963#if RK3_ENABLED && IK1_ENABLED
1964 PURE module subroutine setUnifCDF_LU_D0_RK3_IK1(cdf, x, lower, upper)
1965#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1966 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK3_IK1
1967#endif
1968 use pm_kind, only: IKG => IK1, RKG => RK3
1969 real(RKG) , intent(out) :: cdf
1970 integer(IKG), intent(in) :: x
1971 integer(IKG), intent(in) :: lower, upper
1972 end subroutine
1973#endif
1974
1975#if RK2_ENABLED && IK1_ENABLED
1976 PURE module subroutine setUnifCDF_LU_D0_RK2_IK1(cdf, x, lower, upper)
1977#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1978 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK2_IK1
1979#endif
1980 use pm_kind, only: IKG => IK1, RKG => RK2
1981 real(RKG) , intent(out) :: cdf
1982 integer(IKG), intent(in) :: x
1983 integer(IKG), intent(in) :: lower, upper
1984 end subroutine
1985#endif
1986
1987#if RK1_ENABLED && IK1_ENABLED
1988 PURE module subroutine setUnifCDF_LU_D0_RK1_IK1(cdf, x, lower, upper)
1989#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1990 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK1_IK1
1991#endif
1992 use pm_kind, only: IKG => IK1, RKG => RK1
1993 real(RKG) , intent(out) :: cdf
1994 integer(IKG), intent(in) :: x
1995 integer(IKG), intent(in) :: lower, upper
1996 end subroutine
1997#endif
1998
1999 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2000
2001 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2002 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2003 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2004
2005 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2006
2007#if CK5_ENABLED
2008 PURE module subroutine setUnifCDF_LU_D0_CK5(cdf, x, lower, upper)
2009#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2010 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_CK5
2011#endif
2012 use pm_kind, only: CKG => CK5
2013 complex(CKG), intent(out) :: cdf
2014 complex(CKG), intent(in) :: x
2015 complex(CKG), intent(in) :: lower, upper
2016 end subroutine
2017#endif
2018
2019#if CK4_ENABLED
2020 PURE module subroutine setUnifCDF_LU_D0_CK4(cdf, x, lower, upper)
2021#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2022 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_CK4
2023#endif
2024 use pm_kind, only: CKG => CK4
2025 complex(CKG), intent(out) :: cdf
2026 complex(CKG), intent(in) :: x
2027 complex(CKG), intent(in) :: lower, upper
2028 end subroutine
2029#endif
2030
2031#if CK3_ENABLED
2032 PURE module subroutine setUnifCDF_LU_D0_CK3(cdf, x, lower, upper)
2033#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2034 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_CK3
2035#endif
2036 use pm_kind, only: CKG => CK3
2037 complex(CKG), intent(out) :: cdf
2038 complex(CKG), intent(in) :: x
2039 complex(CKG), intent(in) :: lower, upper
2040 end subroutine
2041#endif
2042
2043#if CK2_ENABLED
2044 PURE module subroutine setUnifCDF_LU_D0_CK2(cdf, x, lower, upper)
2045#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2046 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_CK2
2047#endif
2048 use pm_kind, only: CKG => CK2
2049 complex(CKG), intent(out) :: cdf
2050 complex(CKG), intent(in) :: x
2051 complex(CKG), intent(in) :: lower, upper
2052 end subroutine
2053#endif
2054
2055#if CK1_ENABLED
2056 PURE module subroutine setUnifCDF_LU_D0_CK1(cdf, x, lower, upper)
2057#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2058 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_CK1
2059#endif
2060 use pm_kind, only: CKG => CK1
2061 complex(CKG), intent(out) :: cdf
2062 complex(CKG), intent(in) :: x
2063 complex(CKG), intent(in) :: lower, upper
2064 end subroutine
2065#endif
2066
2067 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2068
2069 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2070 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2071 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2072
2073 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2074
2075#if RK5_ENABLED
2076 PURE module subroutine setUnifCDF_LU_D0_RK5(cdf, x, lower, upper)
2077#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2078 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK5
2079#endif
2080 use pm_kind, only: RKG => RK5
2081 real(RKG) , intent(out) :: cdf
2082 real(RKG) , intent(in) :: x
2083 real(RKG) , intent(in) :: lower, upper
2084 end subroutine
2085#endif
2086
2087#if RK4_ENABLED
2088 PURE module subroutine setUnifCDF_LU_D0_RK4(cdf, x, lower, upper)
2089#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2090 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK4
2091#endif
2092 use pm_kind, only: RKG => RK4
2093 real(RKG) , intent(out) :: cdf
2094 real(RKG) , intent(in) :: x
2095 real(RKG) , intent(in) :: lower, upper
2096 end subroutine
2097#endif
2098
2099#if RK3_ENABLED
2100 PURE module subroutine setUnifCDF_LU_D0_RK3(cdf, x, lower, upper)
2101#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2102 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK3
2103#endif
2104 use pm_kind, only: RKG => RK3
2105 real(RKG) , intent(out) :: cdf
2106 real(RKG) , intent(in) :: x
2107 real(RKG) , intent(in) :: lower, upper
2108 end subroutine
2109#endif
2110
2111#if RK2_ENABLED
2112 PURE module subroutine setUnifCDF_LU_D0_RK2(cdf, x, lower, upper)
2113#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2114 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK2
2115#endif
2116 use pm_kind, only: RKG => RK2
2117 real(RKG) , intent(out) :: cdf
2118 real(RKG) , intent(in) :: x
2119 real(RKG) , intent(in) :: lower, upper
2120 end subroutine
2121#endif
2122
2123#if RK1_ENABLED
2124 PURE module subroutine setUnifCDF_LU_D0_RK1(cdf, x, lower, upper)
2125#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2126 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D0_RK1
2127#endif
2128 use pm_kind, only: RKG => RK1
2129 real(RKG) , intent(out) :: cdf
2130 real(RKG) , intent(in) :: x
2131 real(RKG) , intent(in) :: lower, upper
2132 end subroutine
2133#endif
2134
2135 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2136
2137 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2138 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2139 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2140
2141 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2142 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2143 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2144
2145 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2146
2147#if RK5_ENABLED && IK5_ENABLED
2148 PURE module subroutine setUnifCDF_LU_D1_RK5_IK5(cdf, X, lower, upper)
2149#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2150 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK5_IK5
2151#endif
2152 use pm_kind, only: IKG => IK5, RKG => RK5
2153 real(RKG) , intent(out) , contiguous :: cdf(:)
2154 integer(IKG), intent(in) , contiguous :: X(:)
2155 integer(IKG), intent(in) :: lower, upper
2156 end subroutine
2157#endif
2158
2159#if RK4_ENABLED && IK5_ENABLED
2160 PURE module subroutine setUnifCDF_LU_D1_RK4_IK5(cdf, X, lower, upper)
2161#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2162 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK4_IK5
2163#endif
2164 use pm_kind, only: IKG => IK5, RKG => RK4
2165 real(RKG) , intent(out) , contiguous :: cdf(:)
2166 integer(IKG), intent(in) , contiguous :: X(:)
2167 integer(IKG), intent(in) :: lower, upper
2168 end subroutine
2169#endif
2170
2171#if RK3_ENABLED && IK5_ENABLED
2172 PURE module subroutine setUnifCDF_LU_D1_RK3_IK5(cdf, X, lower, upper)
2173#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2174 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK3_IK5
2175#endif
2176 use pm_kind, only: IKG => IK5, RKG => RK3
2177 real(RKG) , intent(out) , contiguous :: cdf(:)
2178 integer(IKG), intent(in) , contiguous :: X(:)
2179 integer(IKG), intent(in) :: lower, upper
2180 end subroutine
2181#endif
2182
2183#if RK2_ENABLED && IK5_ENABLED
2184 PURE module subroutine setUnifCDF_LU_D1_RK2_IK5(cdf, X, lower, upper)
2185#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2186 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK2_IK5
2187#endif
2188 use pm_kind, only: IKG => IK5, RKG => RK2
2189 real(RKG) , intent(out) , contiguous :: cdf(:)
2190 integer(IKG), intent(in) , contiguous :: X(:)
2191 integer(IKG), intent(in) :: lower, upper
2192 end subroutine
2193#endif
2194
2195#if RK1_ENABLED && IK5_ENABLED
2196 PURE module subroutine setUnifCDF_LU_D1_RK1_IK5(cdf, X, lower, upper)
2197#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2198 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK1_IK5
2199#endif
2200 use pm_kind, only: IKG => IK5, RKG => RK1
2201 real(RKG) , intent(out) , contiguous :: cdf(:)
2202 integer(IKG), intent(in) , contiguous :: X(:)
2203 integer(IKG), intent(in) :: lower, upper
2204 end subroutine
2205#endif
2206
2207 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2208
2209#if RK5_ENABLED && IK4_ENABLED
2210 PURE module subroutine setUnifCDF_LU_D1_RK5_IK4(cdf, X, lower, upper)
2211#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2212 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK5_IK4
2213#endif
2214 use pm_kind, only: IKG => IK4, RKG => RK5
2215 real(RKG) , intent(out) , contiguous :: cdf(:)
2216 integer(IKG), intent(in) , contiguous :: X(:)
2217 integer(IKG), intent(in) :: lower, upper
2218 end subroutine
2219#endif
2220
2221#if RK4_ENABLED && IK4_ENABLED
2222 PURE module subroutine setUnifCDF_LU_D1_RK4_IK4(cdf, X, lower, upper)
2223#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2224 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK4_IK4
2225#endif
2226 use pm_kind, only: IKG => IK4, RKG => RK4
2227 real(RKG) , intent(out) , contiguous :: cdf(:)
2228 integer(IKG), intent(in) , contiguous :: X(:)
2229 integer(IKG), intent(in) :: lower, upper
2230 end subroutine
2231#endif
2232
2233#if RK3_ENABLED && IK4_ENABLED
2234 PURE module subroutine setUnifCDF_LU_D1_RK3_IK4(cdf, X, lower, upper)
2235#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2236 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK3_IK4
2237#endif
2238 use pm_kind, only: IKG => IK4, RKG => RK3
2239 real(RKG) , intent(out) , contiguous :: cdf(:)
2240 integer(IKG), intent(in) , contiguous :: X(:)
2241 integer(IKG), intent(in) :: lower, upper
2242 end subroutine
2243#endif
2244
2245#if RK2_ENABLED && IK4_ENABLED
2246 PURE module subroutine setUnifCDF_LU_D1_RK2_IK4(cdf, X, lower, upper)
2247#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2248 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK2_IK4
2249#endif
2250 use pm_kind, only: IKG => IK4, RKG => RK2
2251 real(RKG) , intent(out) , contiguous :: cdf(:)
2252 integer(IKG), intent(in) , contiguous :: X(:)
2253 integer(IKG), intent(in) :: lower, upper
2254 end subroutine
2255#endif
2256
2257#if RK1_ENABLED && IK4_ENABLED
2258 PURE module subroutine setUnifCDF_LU_D1_RK1_IK4(cdf, X, lower, upper)
2259#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2260 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK1_IK4
2261#endif
2262 use pm_kind, only: IKG => IK4, RKG => RK1
2263 real(RKG) , intent(out) , contiguous :: cdf(:)
2264 integer(IKG), intent(in) , contiguous :: X(:)
2265 integer(IKG), intent(in) :: lower, upper
2266 end subroutine
2267#endif
2268
2269 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2270
2271#if RK5_ENABLED && IK3_ENABLED
2272 PURE module subroutine setUnifCDF_LU_D1_RK5_IK3(cdf, X, lower, upper)
2273#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2274 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK5_IK3
2275#endif
2276 use pm_kind, only: IKG => IK3, RKG => RK5
2277 real(RKG) , intent(out) , contiguous :: cdf(:)
2278 integer(IKG), intent(in) , contiguous :: X(:)
2279 integer(IKG), intent(in) :: lower, upper
2280 end subroutine
2281#endif
2282
2283#if RK4_ENABLED && IK3_ENABLED
2284 PURE module subroutine setUnifCDF_LU_D1_RK4_IK3(cdf, X, lower, upper)
2285#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2286 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK4_IK3
2287#endif
2288 use pm_kind, only: IKG => IK3, RKG => RK4
2289 real(RKG) , intent(out) , contiguous :: cdf(:)
2290 integer(IKG), intent(in) , contiguous :: X(:)
2291 integer(IKG), intent(in) :: lower, upper
2292 end subroutine
2293#endif
2294
2295#if RK3_ENABLED && IK3_ENABLED
2296 PURE module subroutine setUnifCDF_LU_D1_RK3_IK3(cdf, X, lower, upper)
2297#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2298 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK3_IK3
2299#endif
2300 use pm_kind, only: IKG => IK3, RKG => RK3
2301 real(RKG) , intent(out) , contiguous :: cdf(:)
2302 integer(IKG), intent(in) , contiguous :: X(:)
2303 integer(IKG), intent(in) :: lower, upper
2304 end subroutine
2305#endif
2306
2307#if RK2_ENABLED && IK3_ENABLED
2308 PURE module subroutine setUnifCDF_LU_D1_RK2_IK3(cdf, X, lower, upper)
2309#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2310 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK2_IK3
2311#endif
2312 use pm_kind, only: IKG => IK3, RKG => RK2
2313 real(RKG) , intent(out) , contiguous :: cdf(:)
2314 integer(IKG), intent(in) , contiguous :: X(:)
2315 integer(IKG), intent(in) :: lower, upper
2316 end subroutine
2317#endif
2318
2319#if RK1_ENABLED && IK3_ENABLED
2320 PURE module subroutine setUnifCDF_LU_D1_RK1_IK3(cdf, X, lower, upper)
2321#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2322 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK1_IK3
2323#endif
2324 use pm_kind, only: IKG => IK3, RKG => RK1
2325 real(RKG) , intent(out) , contiguous :: cdf(:)
2326 integer(IKG), intent(in) , contiguous :: X(:)
2327 integer(IKG), intent(in) :: lower, upper
2328 end subroutine
2329#endif
2330
2331 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2332
2333#if RK5_ENABLED && IK2_ENABLED
2334 PURE module subroutine setUnifCDF_LU_D1_RK5_IK2(cdf, X, lower, upper)
2335#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2336 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK5_IK2
2337#endif
2338 use pm_kind, only: IKG => IK2, RKG => RK5
2339 real(RKG) , intent(out) , contiguous :: cdf(:)
2340 integer(IKG), intent(in) , contiguous :: X(:)
2341 integer(IKG), intent(in) :: lower, upper
2342 end subroutine
2343#endif
2344
2345#if RK4_ENABLED && IK2_ENABLED
2346 PURE module subroutine setUnifCDF_LU_D1_RK4_IK2(cdf, X, lower, upper)
2347#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2348 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK4_IK2
2349#endif
2350 use pm_kind, only: IKG => IK2, RKG => RK4
2351 real(RKG) , intent(out) , contiguous :: cdf(:)
2352 integer(IKG), intent(in) , contiguous :: X(:)
2353 integer(IKG), intent(in) :: lower, upper
2354 end subroutine
2355#endif
2356
2357#if RK3_ENABLED && IK2_ENABLED
2358 PURE module subroutine setUnifCDF_LU_D1_RK3_IK2(cdf, X, lower, upper)
2359#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2360 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK3_IK2
2361#endif
2362 use pm_kind, only: IKG => IK2, RKG => RK3
2363 real(RKG) , intent(out) , contiguous :: cdf(:)
2364 integer(IKG), intent(in) , contiguous :: X(:)
2365 integer(IKG), intent(in) :: lower, upper
2366 end subroutine
2367#endif
2368
2369#if RK2_ENABLED && IK2_ENABLED
2370 PURE module subroutine setUnifCDF_LU_D1_RK2_IK2(cdf, X, lower, upper)
2371#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2372 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK2_IK2
2373#endif
2374 use pm_kind, only: IKG => IK2, RKG => RK2
2375 real(RKG) , intent(out) , contiguous :: cdf(:)
2376 integer(IKG), intent(in) , contiguous :: X(:)
2377 integer(IKG), intent(in) :: lower, upper
2378 end subroutine
2379#endif
2380
2381#if RK1_ENABLED && IK2_ENABLED
2382 PURE module subroutine setUnifCDF_LU_D1_RK1_IK2(cdf, X, lower, upper)
2383#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2384 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK1_IK2
2385#endif
2386 use pm_kind, only: IKG => IK2, RKG => RK1
2387 real(RKG) , intent(out) , contiguous :: cdf(:)
2388 integer(IKG), intent(in) , contiguous :: X(:)
2389 integer(IKG), intent(in) :: lower, upper
2390 end subroutine
2391#endif
2392
2393 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2394
2395#if RK5_ENABLED && IK1_ENABLED
2396 PURE module subroutine setUnifCDF_LU_D1_RK5_IK1(cdf, X, lower, upper)
2397#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2398 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK5_IK1
2399#endif
2400 use pm_kind, only: IKG => IK1, RKG => RK5
2401 real(RKG) , intent(out) , contiguous :: cdf(:)
2402 integer(IKG), intent(in) , contiguous :: X(:)
2403 integer(IKG), intent(in) :: lower, upper
2404 end subroutine
2405#endif
2406
2407#if RK4_ENABLED && IK1_ENABLED
2408 PURE module subroutine setUnifCDF_LU_D1_RK4_IK1(cdf, X, lower, upper)
2409#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2410 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK4_IK1
2411#endif
2412 use pm_kind, only: IKG => IK1, RKG => RK4
2413 real(RKG) , intent(out) , contiguous :: cdf(:)
2414 integer(IKG), intent(in) , contiguous :: X(:)
2415 integer(IKG), intent(in) :: lower, upper
2416 end subroutine
2417#endif
2418
2419#if RK3_ENABLED && IK1_ENABLED
2420 PURE module subroutine setUnifCDF_LU_D1_RK3_IK1(cdf, X, lower, upper)
2421#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2422 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK3_IK1
2423#endif
2424 use pm_kind, only: IKG => IK1, RKG => RK3
2425 real(RKG) , intent(out) , contiguous :: cdf(:)
2426 integer(IKG), intent(in) , contiguous :: X(:)
2427 integer(IKG), intent(in) :: lower, upper
2428 end subroutine
2429#endif
2430
2431#if RK2_ENABLED && IK1_ENABLED
2432 PURE module subroutine setUnifCDF_LU_D1_RK2_IK1(cdf, X, lower, upper)
2433#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2434 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK2_IK1
2435#endif
2436 use pm_kind, only: IKG => IK1, RKG => RK2
2437 real(RKG) , intent(out) , contiguous :: cdf(:)
2438 integer(IKG), intent(in) , contiguous :: X(:)
2439 integer(IKG), intent(in) :: lower, upper
2440 end subroutine
2441#endif
2442
2443#if RK1_ENABLED && IK1_ENABLED
2444 PURE module subroutine setUnifCDF_LU_D1_RK1_IK1(cdf, X, lower, upper)
2445#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2446 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK1_IK1
2447#endif
2448 use pm_kind, only: IKG => IK1, RKG => RK1
2449 real(RKG) , intent(out) , contiguous :: cdf(:)
2450 integer(IKG), intent(in) , contiguous :: X(:)
2451 integer(IKG), intent(in) :: lower, upper
2452 end subroutine
2453#endif
2454
2455 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2456
2457 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2458 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2459 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2460
2461 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2462
2463#if CK5_ENABLED
2464 PURE module subroutine setUnifCDF_LU_D1_CK5(cdf, X, lower, upper)
2465#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2466 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_CK5
2467#endif
2468 use pm_kind, only: CKG => CK5
2469 complex(CKG), intent(out) , contiguous :: cdf(:)
2470 complex(CKG), intent(in) , contiguous :: X(:)
2471 complex(CKG), intent(in) :: lower, upper
2472 end subroutine
2473#endif
2474
2475#if CK4_ENABLED
2476 PURE module subroutine setUnifCDF_LU_D1_CK4(cdf, X, lower, upper)
2477#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2478 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_CK4
2479#endif
2480 use pm_kind, only: CKG => CK4
2481 complex(CKG), intent(out) , contiguous :: cdf(:)
2482 complex(CKG), intent(in) , contiguous :: X(:)
2483 complex(CKG), intent(in) :: lower, upper
2484 end subroutine
2485#endif
2486
2487#if CK3_ENABLED
2488 PURE module subroutine setUnifCDF_LU_D1_CK3(cdf, X, lower, upper)
2489#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2490 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_CK3
2491#endif
2492 use pm_kind, only: CKG => CK3
2493 complex(CKG), intent(out) , contiguous :: cdf(:)
2494 complex(CKG), intent(in) , contiguous :: X(:)
2495 complex(CKG), intent(in) :: lower, upper
2496 end subroutine
2497#endif
2498
2499#if CK2_ENABLED
2500 PURE module subroutine setUnifCDF_LU_D1_CK2(cdf, X, lower, upper)
2501#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2502 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_CK2
2503#endif
2504 use pm_kind, only: CKG => CK2
2505 complex(CKG), intent(out) , contiguous :: cdf(:)
2506 complex(CKG), intent(in) , contiguous :: X(:)
2507 complex(CKG), intent(in) :: lower, upper
2508 end subroutine
2509#endif
2510
2511#if CK1_ENABLED
2512 PURE module subroutine setUnifCDF_LU_D1_CK1(cdf, X, lower, upper)
2513#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2514 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_CK1
2515#endif
2516 use pm_kind, only: CKG => CK1
2517 complex(CKG), intent(out) , contiguous :: cdf(:)
2518 complex(CKG), intent(in) , contiguous :: X(:)
2519 complex(CKG), intent(in) :: lower, upper
2520 end subroutine
2521#endif
2522
2523 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2524
2525 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2526 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2527 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2528
2529 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2530
2531#if RK5_ENABLED
2532 PURE module subroutine setUnifCDF_LU_D1_RK5(cdf, X, lower, upper)
2533#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2534 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK5
2535#endif
2536 use pm_kind, only: RKG => RK5
2537 real(RKG) , intent(out) , contiguous :: cdf(:)
2538 real(RKG) , intent(in) , contiguous :: X(:)
2539 real(RKG) , intent(in) :: lower, upper
2540 end subroutine
2541#endif
2542
2543#if RK4_ENABLED
2544 PURE module subroutine setUnifCDF_LU_D1_RK4(cdf, X, lower, upper)
2545#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2546 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK4
2547#endif
2548 use pm_kind, only: RKG => RK4
2549 real(RKG) , intent(out) , contiguous :: cdf(:)
2550 real(RKG) , intent(in) , contiguous :: X(:)
2551 real(RKG) , intent(in) :: lower, upper
2552 end subroutine
2553#endif
2554
2555#if RK3_ENABLED
2556 PURE module subroutine setUnifCDF_LU_D1_RK3(cdf, X, lower, upper)
2557#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2558 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK3
2559#endif
2560 use pm_kind, only: RKG => RK3
2561 real(RKG) , intent(out) , contiguous :: cdf(:)
2562 real(RKG) , intent(in) , contiguous :: X(:)
2563 real(RKG) , intent(in) :: lower, upper
2564 end subroutine
2565#endif
2566
2567#if RK2_ENABLED
2568 PURE module subroutine setUnifCDF_LU_D1_RK2(cdf, X, lower, upper)
2569#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2570 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK2
2571#endif
2572 use pm_kind, only: RKG => RK2
2573 real(RKG) , intent(out) , contiguous :: cdf(:)
2574 real(RKG) , intent(in) , contiguous :: X(:)
2575 real(RKG) , intent(in) :: lower, upper
2576 end subroutine
2577#endif
2578
2579#if RK1_ENABLED
2580 PURE module subroutine setUnifCDF_LU_D1_RK1(cdf, X, lower, upper)
2581#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2582 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifCDF_LU_D1_RK1
2583#endif
2584 use pm_kind, only: RKG => RK1
2585 real(RKG) , intent(out) , contiguous :: cdf(:)
2586 real(RKG) , intent(in) , contiguous :: X(:)
2587 real(RKG) , intent(in) :: lower, upper
2588 end subroutine
2589#endif
2590
2591 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2592
2593 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2594 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2595 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2596
2597 end interface
2598
2599!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2600
2619 integer(IK) , parameter :: xoshiro256ssStreamBitSize = int(bit_size(0_IK64), IK)
2620
2641 integer(IK) , parameter :: xoshiro256ssStateSize = 4_IK
2642
2675 integer(IK64) , parameter :: xoshiro256ssJump128(xoshiro256ssStateSize) = [ +1733541517147835066_IK64 &
2676 , -3051731464161248980_IK64 &
2677 , -6244198995065845334_IK64 &
2678 , +4155657270789760540_IK64 ]
2679#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2680 !DIR$ ATTRIBUTES DLLEXPORT :: xoshiro256ssJump128
2681#endif
2682
2715 integer(IK64) , parameter :: xoshiro256ssJump192(xoshiro256ssStateSize) = [ +8566230491382795199_IK64 &
2716 , -4251311993797857357_IK64 &
2717 , +8606660816089834049_IK64 &
2718 , +4111957640723818037_IK64 ]
2719
2720!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2721
2739 type, abstract :: rngu_type
2740 end type
2741
2742!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2743
2837 type, extends(rngu_type) :: rngf_type
2838 end type
2839
2886 type(rngf_type) :: rngf! = rngf_type()
2887#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2888 !DIR$ ATTRIBUTES DLLEXPORT :: rngf
2889#endif
2890
2892 interface rngf_type
2893 module procedure :: rngf_typer
2894 end interface
2896
2897!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2898
2929 interface rngf_typer
2930 module function rngf_typer(seed, imageID) result(self)
2931#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2932 !DEC$ ATTRIBUTES DLLEXPORT :: rngf_typer
2933#endif
2934 integer(IK) , intent(in), optional :: seed, imageID
2935 type(rngf_type) :: self
2936 end function
2937 end interface
2938
2939!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2940
2984 type, abstract, extends(rngu_type) :: xoshiro256ss_type
2988 integer(IK64) :: state(xoshiro256ssStateSize) = [ -5952639272145821898_IK64 &
2989 , -2790978430781836137_IK64 &
2990 , -4872796757339724681_IK64 &
2991 , -6638731986642513151_IK64 ]
2994 integer(IK64) :: stream
2995 end type
2996
2997!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2998
3155 end type
3156
3158 interface xoshiro256ssw_type
3159 module procedure :: xoshiro256ssw_typer
3160 end interface
3162
3244 impure module function xoshiro256ssw_typer(seed, imageID, jump) result(rng)
3245#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3246 !DEC$ ATTRIBUTES DLLEXPORT :: xoshiro256ssw_typer
3247#endif
3248 use pm_kind, only: IKG => IK64
3249 integer(IKG) , intent(in), optional :: seed, jump(:)
3250 integer(IK) , intent(in), optional :: imageID
3251 type(xoshiro256ssw_type) :: rng
3252 end function
3253 end interface
3254
3255!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3256
3366 integer(IK) :: pos = 0_IK
3367 end type
3368
3370 interface xoshiro256ssg_type
3371 module procedure :: xoshiro256ssg_typer
3372 end interface
3374
3455 impure module function xoshiro256ssg_typer(seed, imageID, jump) result(rng)
3456#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3457 !DEC$ ATTRIBUTES DLLEXPORT :: xoshiro256ssg_typer
3458#endif
3459 use pm_kind, only: IKG => IK64
3460 integer(IKG) , intent(in), optional :: seed, jump(:)
3461 integer(IK) , intent(in), optional :: imageID
3462 type(xoshiro256ssg_type) :: rng
3463 end function
3464 end interface
3465
3466!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3467
3593 type, extends(rngu_type) :: splitmix64_type
3596 integer(IK64) :: stream
3599 integer(IK64) :: state = 324108011427370141_IK64
3600 end type
3601
3603 interface splitmix64_type
3604 module procedure :: splitmix64_typer
3605 end interface
3607
3683 impure elemental module function splitmix64_typer(seed, imageID) result(rng)
3684#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3685 !DEC$ ATTRIBUTES DLLEXPORT :: splitmix64_typer
3686#endif
3687 use pm_kind, only: IKG => IK64
3688 integer(IKG) , intent(in), optional :: seed
3689 integer(IK) , intent(in), optional :: imageID
3690 type(splitmix64_type) :: rng
3691 end function
3692 end interface
3693
3694!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3695
3697 interface setStateNext
3698
3699 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3700
3701 pure module subroutine setStateNextSM64(rng)
3702#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3703 !DEC$ ATTRIBUTES DLLEXPORT :: setStateNextSM64
3704#endif
3705 use pm_kind, only: IK64
3706 type(splitmix64_type) , intent(inout) :: rng
3707 end subroutine
3708
3709 pure module subroutine setStateNextX256SSG(rng)
3710#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3711 !DEC$ ATTRIBUTES DLLEXPORT :: setStateNextX256SSG
3712#endif
3713 use pm_kind, only: IK64
3714 type(xoshiro256ssg_type), intent(inout) :: rng
3715 end subroutine
3716
3717 pure module subroutine setStateNextX256SSW(rng)
3718#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3719 !DEC$ ATTRIBUTES DLLEXPORT :: setStateNextX256SSW
3720#endif
3721 use pm_kind, only: IK64
3722 type(xoshiro256ssw_type) , intent(inout) :: rng
3723 end subroutine
3724
3725 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3726
3727 end interface
3729
3730!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3731
3733 interface setStateJump
3734
3735 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3736
3737 ! default jump
3738 PURE module subroutine setStateJumpX256SSGDJ(rng)
3739#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3740 !DEC$ ATTRIBUTES DLLEXPORT :: setStateJumpX256SSGDJ
3741#endif
3742 use pm_kind, only: IK64
3743 type(xoshiro256ssg_type), intent(inout) :: rng
3744 end subroutine
3745
3746 ! arbitrary jump
3747 PURE module subroutine setStateJumpX256SSGAJ(rng, jump)
3748#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3749 !DEC$ ATTRIBUTES DLLEXPORT :: setStateJumpX256SSGAJ
3750#endif
3751 use pm_kind, only: IK64
3752 type(xoshiro256ssg_type), intent(inout) :: rng
3753 integer(IK64) , intent(in) :: jump(:)
3754 end subroutine
3755
3756 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3757
3758 ! default jump
3759 PURE module subroutine setStateJumpX256SSWDJ(rng)
3760#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3761 !DEC$ ATTRIBUTES DLLEXPORT :: setStateJumpX256SSWDJ
3762#endif
3763 use pm_kind, only: IK64
3764 type(xoshiro256ssw_type), intent(inout) :: rng
3765 end subroutine
3766
3767 ! arbitrary jump
3768 PURE module subroutine setStateJumpX256SSWAJ(rng, jump)
3769#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3770 !DEC$ ATTRIBUTES DLLEXPORT :: setStateJumpX256SSWAJ
3771#endif
3772 use pm_kind, only: IK64
3773 type(xoshiro256ssw_type), intent(inout) :: rng
3774 integer(IK64) , intent(in) :: jump(:)
3775 end subroutine
3776
3777 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3778
3779 end interface
3781
3782!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3783
3834 impure module function getUnifRandStateSizeDef() result(unifRandStateSize)
3835#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3836 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandStateSizeDef
3837#endif
3838 use pm_kind, only: IK
3839 integer(IK) :: unifRandStateSize
3840 end function
3841 end interface
3842
3843!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3844
3903 impure module function getUnifRandStateDef(seed, imageID) result(unifRandState)
3904#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3905 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandStateDef
3906#endif
3907 use pm_kind, only: IK, LK
3908 integer(IK) , intent(in) , optional :: seed, imageID
3909 integer(IK) , allocatable :: unifRandState(:)
3910 end function
3911 end interface
3912
3913!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3914
3994 impure module subroutine setUnifRandStateDef(seed, imageID)
3995#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3996 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandStateDef
3997#endif
3998 use pm_kind, only: IK
3999 integer(IK) , intent(in) , optional :: seed, imageID
4000 end subroutine
4001 end interface
4002
4003!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4004
4147
4148 ! RNGD
4149
4150 interface getUnifRand
4151
4152 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4153 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4154 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4155
4156 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4157
4158 impure module function getUnifRandRNGDDD_D0_LK() result(rand)
4159#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4160 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDDD_D0_LK
4161#endif
4162 use pm_kind, only: LKG => LK
4163 logical(LKG) :: rand
4164 end function
4165
4166 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4167
4168 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4169 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4170 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4171
4172 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4173
4174#if SK5_ENABLED
4175 impure elemental module function getUnifRandRNGDLU_D0_SK5(lb, ub) result(rand)
4176#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4177 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_SK5
4178#endif
4179 use pm_kind, only: SKG => SK5
4180 character(*,SKG) , intent(in) :: lb, ub
4181 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
4182 end function
4183#endif
4184
4185#if SK4_ENABLED
4186 impure elemental module function getUnifRandRNGDLU_D0_SK4(lb, ub) result(rand)
4187#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4188 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_SK4
4189#endif
4190 use pm_kind, only: SKG => SK4
4191 character(*,SKG) , intent(in) :: lb, ub
4192 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
4193 end function
4194#endif
4195
4196#if SK3_ENABLED
4197 impure elemental module function getUnifRandRNGDLU_D0_SK3(lb, ub) result(rand)
4198#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4199 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_SK3
4200#endif
4201 use pm_kind, only: SKG => SK3
4202 character(*,SKG) , intent(in) :: lb, ub
4203 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
4204 end function
4205#endif
4206
4207#if SK2_ENABLED
4208 impure elemental module function getUnifRandRNGDLU_D0_SK2(lb, ub) result(rand)
4209#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4210 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_SK2
4211#endif
4212 use pm_kind, only: SKG => SK2
4213 character(*,SKG) , intent(in) :: lb, ub
4214 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
4215 end function
4216#endif
4217
4218#if SK1_ENABLED
4219 impure elemental module function getUnifRandRNGDLU_D0_SK1(lb, ub) result(rand)
4220#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4221 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_SK1
4222#endif
4223 use pm_kind, only: SKG => SK1
4224 character(*,SKG) , intent(in) :: lb, ub
4225 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
4226 end function
4227#endif
4228
4229 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4230
4231#if IK5_ENABLED
4232 impure elemental module function getUnifRandRNGDLU_D0_IK5(lb, ub) result(rand)
4233#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4234 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_IK5
4235#endif
4236 use pm_kind, only: IKG => IK5
4237 integer(IKG) , intent(in) :: lb, ub
4238 integer(IKG) :: rand
4239 end function
4240#endif
4241
4242#if IK4_ENABLED
4243 impure elemental module function getUnifRandRNGDLU_D0_IK4(lb, ub) result(rand)
4244#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4245 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_IK4
4246#endif
4247 use pm_kind, only: IKG => IK4
4248 integer(IKG) , intent(in) :: lb, ub
4249 integer(IKG) :: rand
4250 end function
4251#endif
4252
4253#if IK3_ENABLED
4254 impure elemental module function getUnifRandRNGDLU_D0_IK3(lb, ub) result(rand)
4255#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4256 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_IK3
4257#endif
4258 use pm_kind, only: IKG => IK3
4259 integer(IKG) , intent(in) :: lb, ub
4260 integer(IKG) :: rand
4261 end function
4262#endif
4263
4264#if IK2_ENABLED
4265 impure elemental module function getUnifRandRNGDLU_D0_IK2(lb, ub) result(rand)
4266#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4267 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_IK2
4268#endif
4269 use pm_kind, only: IKG => IK2
4270 integer(IKG) , intent(in) :: lb, ub
4271 integer(IKG) :: rand
4272 end function
4273#endif
4274
4275#if IK1_ENABLED
4276 impure elemental module function getUnifRandRNGDLU_D0_IK1(lb, ub) result(rand)
4277#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4278 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_IK1
4279#endif
4280 use pm_kind, only: IKG => IK1
4281 integer(IKG) , intent(in) :: lb, ub
4282 integer(IKG) :: rand
4283 end function
4284#endif
4285
4286 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4287
4288#if LK5_ENABLED
4289 impure elemental module function getUnifRandRNGDLU_D0_LK5(lb, ub) result(rand)
4290#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4291 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_LK5
4292#endif
4293 use pm_kind, only: LKG => LK5
4294 logical(LKG) , intent(in) :: lb, ub
4295 logical(LKG) :: rand
4296 end function
4297#endif
4298
4299#if LK4_ENABLED
4300 impure elemental module function getUnifRandRNGDLU_D0_LK4(lb, ub) result(rand)
4301#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4302 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_LK4
4303#endif
4304 use pm_kind, only: LKG => LK4
4305 logical(LKG) , intent(in) :: lb, ub
4306 logical(LKG) :: rand
4307 end function
4308#endif
4309
4310#if LK3_ENABLED
4311 impure elemental module function getUnifRandRNGDLU_D0_LK3(lb, ub) result(rand)
4312#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4313 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_LK3
4314#endif
4315 use pm_kind, only: LKG => LK3
4316 logical(LKG) , intent(in) :: lb, ub
4317 logical(LKG) :: rand
4318 end function
4319#endif
4320
4321#if LK2_ENABLED
4322 impure elemental module function getUnifRandRNGDLU_D0_LK2(lb, ub) result(rand)
4323#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4324 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_LK2
4325#endif
4326 use pm_kind, only: LKG => LK2
4327 logical(LKG) , intent(in) :: lb, ub
4328 logical(LKG) :: rand
4329 end function
4330#endif
4331
4332#if LK1_ENABLED
4333 impure elemental module function getUnifRandRNGDLU_D0_LK1(lb, ub) result(rand)
4334#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4335 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_LK1
4336#endif
4337 use pm_kind, only: LKG => LK1
4338 logical(LKG) , intent(in) :: lb, ub
4339 logical(LKG) :: rand
4340 end function
4341#endif
4342
4343 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4344
4345#if CK5_ENABLED
4346 impure elemental module function getUnifRandRNGDLU_D0_CK5(lb, ub) result(rand)
4347#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4348 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_CK5
4349#endif
4350 use pm_kind, only: CKG => CK5
4351 complex(CKG) , intent(in) :: lb, ub
4352 complex(CKG) :: rand
4353 end function
4354#endif
4355
4356#if CK4_ENABLED
4357 impure elemental module function getUnifRandRNGDLU_D0_CK4(lb, ub) result(rand)
4358#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4359 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_CK4
4360#endif
4361 use pm_kind, only: CKG => CK4
4362 complex(CKG) , intent(in) :: lb, ub
4363 complex(CKG) :: rand
4364 end function
4365#endif
4366
4367#if CK3_ENABLED
4368 impure elemental module function getUnifRandRNGDLU_D0_CK3(lb, ub) result(rand)
4369#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4370 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_CK3
4371#endif
4372 use pm_kind, only: CKG => CK3
4373 complex(CKG) , intent(in) :: lb, ub
4374 complex(CKG) :: rand
4375 end function
4376#endif
4377
4378#if CK2_ENABLED
4379 impure elemental module function getUnifRandRNGDLU_D0_CK2(lb, ub) result(rand)
4380#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4381 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_CK2
4382#endif
4383 use pm_kind, only: CKG => CK2
4384 complex(CKG) , intent(in) :: lb, ub
4385 complex(CKG) :: rand
4386 end function
4387#endif
4388
4389#if CK1_ENABLED
4390 impure elemental module function getUnifRandRNGDLU_D0_CK1(lb, ub) result(rand)
4391#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4392 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_CK1
4393#endif
4394 use pm_kind, only: CKG => CK1
4395 complex(CKG) , intent(in) :: lb, ub
4396 complex(CKG) :: rand
4397 end function
4398#endif
4399
4400 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4401
4402#if RK5_ENABLED
4403 impure elemental module function getUnifRandRNGDLU_D0_RK5(lb, ub) result(rand)
4404#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4405 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_RK5
4406#endif
4407 use pm_kind, only: RKG => RK5
4408 real(RKG) , intent(in) :: lb, ub
4409 real(RKG) :: rand
4410 end function
4411#endif
4412
4413#if RK4_ENABLED
4414 impure elemental module function getUnifRandRNGDLU_D0_RK4(lb, ub) result(rand)
4415#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4416 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_RK4
4417#endif
4418 use pm_kind, only: RKG => RK4
4419 real(RKG) , intent(in) :: lb, ub
4420 real(RKG) :: rand
4421 end function
4422#endif
4423
4424#if RK3_ENABLED
4425 impure elemental module function getUnifRandRNGDLU_D0_RK3(lb, ub) result(rand)
4426#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4427 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_RK3
4428#endif
4429 use pm_kind, only: RKG => RK3
4430 real(RKG) , intent(in) :: lb, ub
4431 real(RKG) :: rand
4432 end function
4433#endif
4434
4435#if RK2_ENABLED
4436 impure elemental module function getUnifRandRNGDLU_D0_RK2(lb, ub) result(rand)
4437#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4438 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_RK2
4439#endif
4440 use pm_kind, only: RKG => RK2
4441 real(RKG) , intent(in) :: lb, ub
4442 real(RKG) :: rand
4443 end function
4444#endif
4445
4446#if RK1_ENABLED
4447 impure elemental module function getUnifRandRNGDLU_D0_RK1(lb, ub) result(rand)
4448#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4449 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D0_RK1
4450#endif
4451 use pm_kind, only: RKG => RK1
4452 real(RKG) , intent(in) :: lb, ub
4453 real(RKG) :: rand
4454 end function
4455#endif
4456
4457 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4458
4459 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4460 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4461 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4462
4463 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4464
4465#if SK5_ENABLED
4466 impure module function getUnifRandRNGDLU_D1_SK5(lb, ub, s1) result(rand)
4467#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4468 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_SK5
4469#endif
4470 use pm_kind, only: SKG => SK5
4471 character(*,SKG) , intent(in) :: lb, ub
4472 integer(IK) , intent(in) :: s1
4473 character(len(lb,IK),SKG) :: rand(s1)
4474 end function
4475#endif
4476
4477#if SK4_ENABLED
4478 impure module function getUnifRandRNGDLU_D1_SK4(lb, ub, s1) result(rand)
4479#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4480 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_SK4
4481#endif
4482 use pm_kind, only: SKG => SK4
4483 character(*,SKG) , intent(in) :: lb, ub
4484 integer(IK) , intent(in) :: s1
4485 character(len(lb,IK),SKG) :: rand(s1)
4486 end function
4487#endif
4488
4489#if SK3_ENABLED
4490 impure module function getUnifRandRNGDLU_D1_SK3(lb, ub, s1) result(rand)
4491#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4492 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_SK3
4493#endif
4494 use pm_kind, only: SKG => SK3
4495 character(*,SKG) , intent(in) :: lb, ub
4496 integer(IK) , intent(in) :: s1
4497 character(len(lb,IK),SKG) :: rand(s1)
4498 end function
4499#endif
4500
4501#if SK2_ENABLED
4502 impure module function getUnifRandRNGDLU_D1_SK2(lb, ub, s1) result(rand)
4503#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4504 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_SK2
4505#endif
4506 use pm_kind, only: SKG => SK2
4507 character(*,SKG) , intent(in) :: lb, ub
4508 integer(IK) , intent(in) :: s1
4509 character(len(lb,IK),SKG) :: rand(s1)
4510 end function
4511#endif
4512
4513#if SK1_ENABLED
4514 impure module function getUnifRandRNGDLU_D1_SK1(lb, ub, s1) result(rand)
4515#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4516 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_SK1
4517#endif
4518 use pm_kind, only: SKG => SK1
4519 character(*,SKG) , intent(in) :: lb, ub
4520 integer(IK) , intent(in) :: s1
4521 character(len(lb,IK),SKG) :: rand(s1)
4522 end function
4523#endif
4524
4525 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4526
4527#if IK5_ENABLED
4528 impure module function getUnifRandRNGDLU_D1_IK5(lb, ub, s1) result(rand)
4529#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4530 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_IK5
4531#endif
4532 use pm_kind, only: IKG => IK5
4533 integer(IKG) , intent(in) :: lb, ub
4534 integer(IK) , intent(in) :: s1
4535 integer(IKG) :: rand(s1)
4536 end function
4537#endif
4538
4539#if IK4_ENABLED
4540 impure module function getUnifRandRNGDLU_D1_IK4(lb, ub, s1) result(rand)
4541#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4542 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_IK4
4543#endif
4544 use pm_kind, only: IKG => IK4
4545 integer(IKG) , intent(in) :: lb, ub
4546 integer(IK) , intent(in) :: s1
4547 integer(IKG) :: rand(s1)
4548 end function
4549#endif
4550
4551#if IK3_ENABLED
4552 impure module function getUnifRandRNGDLU_D1_IK3(lb, ub, s1) result(rand)
4553#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4554 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_IK3
4555#endif
4556 use pm_kind, only: IKG => IK3
4557 integer(IKG) , intent(in) :: lb, ub
4558 integer(IK) , intent(in) :: s1
4559 integer(IKG) :: rand(s1)
4560 end function
4561#endif
4562
4563#if IK2_ENABLED
4564 impure module function getUnifRandRNGDLU_D1_IK2(lb, ub, s1) result(rand)
4565#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4566 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_IK2
4567#endif
4568 use pm_kind, only: IKG => IK2
4569 integer(IKG) , intent(in) :: lb, ub
4570 integer(IK) , intent(in) :: s1
4571 integer(IKG) :: rand(s1)
4572 end function
4573#endif
4574
4575#if IK1_ENABLED
4576 impure module function getUnifRandRNGDLU_D1_IK1(lb, ub, s1) result(rand)
4577#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4578 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_IK1
4579#endif
4580 use pm_kind, only: IKG => IK1
4581 integer(IKG) , intent(in) :: lb, ub
4582 integer(IK) , intent(in) :: s1
4583 integer(IKG) :: rand(s1)
4584 end function
4585#endif
4586
4587 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4588
4589#if LK5_ENABLED
4590 impure module function getUnifRandRNGDLU_D1_LK5(lb, ub, s1) result(rand)
4591#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4592 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_LK5
4593#endif
4594 use pm_kind, only: LKG => LK5
4595 logical(LKG) , intent(in) :: lb, ub
4596 integer(IK) , intent(in) :: s1
4597 logical(LKG) :: rand(s1)
4598 end function
4599#endif
4600
4601#if LK4_ENABLED
4602 impure module function getUnifRandRNGDLU_D1_LK4(lb, ub, s1) result(rand)
4603#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4604 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_LK4
4605#endif
4606 use pm_kind, only: LKG => LK4
4607 logical(LKG) , intent(in) :: lb, ub
4608 integer(IK) , intent(in) :: s1
4609 logical(LKG) :: rand(s1)
4610 end function
4611#endif
4612
4613#if LK3_ENABLED
4614 impure module function getUnifRandRNGDLU_D1_LK3(lb, ub, s1) result(rand)
4615#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4616 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_LK3
4617#endif
4618 use pm_kind, only: LKG => LK3
4619 logical(LKG) , intent(in) :: lb, ub
4620 integer(IK) , intent(in) :: s1
4621 logical(LKG) :: rand(s1)
4622 end function
4623#endif
4624
4625#if LK2_ENABLED
4626 impure module function getUnifRandRNGDLU_D1_LK2(lb, ub, s1) result(rand)
4627#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4628 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_LK2
4629#endif
4630 use pm_kind, only: LKG => LK2
4631 logical(LKG) , intent(in) :: lb, ub
4632 integer(IK) , intent(in) :: s1
4633 logical(LKG) :: rand(s1)
4634 end function
4635#endif
4636
4637#if LK1_ENABLED
4638 impure module function getUnifRandRNGDLU_D1_LK1(lb, ub, s1) result(rand)
4639#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4640 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_LK1
4641#endif
4642 use pm_kind, only: LKG => LK1
4643 logical(LKG) , intent(in) :: lb, ub
4644 integer(IK) , intent(in) :: s1
4645 logical(LKG) :: rand(s1)
4646 end function
4647#endif
4648
4649 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4650
4651#if CK5_ENABLED
4652 impure module function getUnifRandRNGDLU_D1_CK5(lb, ub, s1) result(rand)
4653#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4654 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_CK5
4655#endif
4656 use pm_kind, only: CKG => CK5
4657 complex(CKG) , intent(in) :: lb, ub
4658 integer(IK) , intent(in) :: s1
4659 complex(CKG) :: rand(s1)
4660 end function
4661#endif
4662
4663#if CK4_ENABLED
4664 impure module function getUnifRandRNGDLU_D1_CK4(lb, ub, s1) result(rand)
4665#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4666 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_CK4
4667#endif
4668 use pm_kind, only: CKG => CK4
4669 complex(CKG) , intent(in) :: lb, ub
4670 integer(IK) , intent(in) :: s1
4671 complex(CKG) :: rand(s1)
4672 end function
4673#endif
4674
4675#if CK3_ENABLED
4676 impure module function getUnifRandRNGDLU_D1_CK3(lb, ub, s1) result(rand)
4677#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4678 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_CK3
4679#endif
4680 use pm_kind, only: CKG => CK3
4681 complex(CKG) , intent(in) :: lb, ub
4682 integer(IK) , intent(in) :: s1
4683 complex(CKG) :: rand(s1)
4684 end function
4685#endif
4686
4687#if CK2_ENABLED
4688 impure module function getUnifRandRNGDLU_D1_CK2(lb, ub, s1) result(rand)
4689#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4690 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_CK2
4691#endif
4692 use pm_kind, only: CKG => CK2
4693 complex(CKG) , intent(in) :: lb, ub
4694 integer(IK) , intent(in) :: s1
4695 complex(CKG) :: rand(s1)
4696 end function
4697#endif
4698
4699#if CK1_ENABLED
4700 impure module function getUnifRandRNGDLU_D1_CK1(lb, ub, s1) result(rand)
4701#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4702 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_CK1
4703#endif
4704 use pm_kind, only: CKG => CK1
4705 complex(CKG) , intent(in) :: lb, ub
4706 integer(IK) , intent(in) :: s1
4707 complex(CKG) :: rand(s1)
4708 end function
4709#endif
4710
4711 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4712
4713#if RK5_ENABLED
4714 impure module function getUnifRandRNGDLU_D1_RK5(lb, ub, s1) result(rand)
4715#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4716 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_RK5
4717#endif
4718 use pm_kind, only: RKG => RK5
4719 real(RKG) , intent(in) :: lb, ub
4720 integer(IK) , intent(in) :: s1
4721 real(RKG) :: rand(s1)
4722 end function
4723
4724#endif
4725
4726#if RK4_ENABLED
4727 impure module function getUnifRandRNGDLU_D1_RK4(lb, ub, s1) result(rand)
4728#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4729 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_RK4
4730#endif
4731 use pm_kind, only: RKG => RK4
4732 real(RKG) , intent(in) :: lb, ub
4733 integer(IK) , intent(in) :: s1
4734 real(RKG) :: rand(s1)
4735 end function
4736
4737#endif
4738
4739#if RK3_ENABLED
4740 impure module function getUnifRandRNGDLU_D1_RK3(lb, ub, s1) result(rand)
4741#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4742 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_RK3
4743#endif
4744 use pm_kind, only: RKG => RK3
4745 real(RKG) , intent(in) :: lb, ub
4746 integer(IK) , intent(in) :: s1
4747 real(RKG) :: rand(s1)
4748 end function
4749
4750#endif
4751
4752#if RK2_ENABLED
4753 impure module function getUnifRandRNGDLU_D1_RK2(lb, ub, s1) result(rand)
4754#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4755 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_RK2
4756#endif
4757 use pm_kind, only: RKG => RK2
4758 real(RKG) , intent(in) :: lb, ub
4759 integer(IK) , intent(in) :: s1
4760 real(RKG) :: rand(s1)
4761 end function
4762#endif
4763
4764#if RK1_ENABLED
4765 impure module function getUnifRandRNGDLU_D1_RK1(lb, ub, s1) result(rand)
4766#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4767 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D1_RK1
4768#endif
4769 use pm_kind, only: RKG => RK1
4770 real(RKG) , intent(in) :: lb, ub
4771 integer(IK) , intent(in) :: s1
4772 real(RKG) :: rand(s1)
4773 end function
4774#endif
4775
4776 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4777
4778 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4779 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4780 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4781
4782 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4783
4784#if SK5_ENABLED
4785 impure module function getUnifRandRNGDLU_D2_SK5(lb, ub, s1, s2) result(rand)
4786#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4787 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_SK5
4788#endif
4789 use pm_kind, only: SKG => SK5
4790 character(*,SKG) , intent(in) :: lb, ub
4791 integer(IK) , intent(in) :: s1, s2
4792 character(len(lb,IK),SKG) :: rand(s1, s2)
4793 end function
4794#endif
4795
4796#if SK4_ENABLED
4797 impure module function getUnifRandRNGDLU_D2_SK4(lb, ub, s1, s2) result(rand)
4798#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4799 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_SK4
4800#endif
4801 use pm_kind, only: SKG => SK4
4802 character(*,SKG) , intent(in) :: lb, ub
4803 integer(IK) , intent(in) :: s1, s2
4804 character(len(lb,IK),SKG) :: rand(s1, s2)
4805 end function
4806#endif
4807
4808#if SK3_ENABLED
4809 impure module function getUnifRandRNGDLU_D2_SK3(lb, ub, s1, s2) result(rand)
4810#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4811 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_SK3
4812#endif
4813 use pm_kind, only: SKG => SK3
4814 character(*,SKG) , intent(in) :: lb, ub
4815 integer(IK) , intent(in) :: s1, s2
4816 character(len(lb,IK),SKG) :: rand(s1, s2)
4817 end function
4818#endif
4819
4820#if SK2_ENABLED
4821 impure module function getUnifRandRNGDLU_D2_SK2(lb, ub, s1, s2) result(rand)
4822#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4823 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_SK2
4824#endif
4825 use pm_kind, only: SKG => SK2
4826 character(*,SKG) , intent(in) :: lb, ub
4827 integer(IK) , intent(in) :: s1, s2
4828 character(len(lb,IK),SKG) :: rand(s1, s2)
4829 end function
4830#endif
4831
4832#if SK1_ENABLED
4833 impure module function getUnifRandRNGDLU_D2_SK1(lb, ub, s1, s2) result(rand)
4834#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4835 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_SK1
4836#endif
4837 use pm_kind, only: SKG => SK1
4838 character(*,SKG) , intent(in) :: lb, ub
4839 integer(IK) , intent(in) :: s1, s2
4840 character(len(lb,IK),SKG) :: rand(s1, s2)
4841 end function
4842#endif
4843
4844 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4845
4846#if IK5_ENABLED
4847 impure module function getUnifRandRNGDLU_D2_IK5(lb, ub, s1, s2) result(rand)
4848#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4849 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_IK5
4850#endif
4851 use pm_kind, only: IKG => IK5
4852 integer(IKG) , intent(in) :: lb, ub
4853 integer(IK) , intent(in) :: s1, s2
4854 integer(IKG) :: rand(s1, s2)
4855 end function
4856#endif
4857
4858#if IK4_ENABLED
4859 impure module function getUnifRandRNGDLU_D2_IK4(lb, ub, s1, s2) result(rand)
4860#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4861 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_IK4
4862#endif
4863 use pm_kind, only: IKG => IK4
4864 integer(IKG) , intent(in) :: lb, ub
4865 integer(IK) , intent(in) :: s1, s2
4866 integer(IKG) :: rand(s1, s2)
4867 end function
4868#endif
4869
4870#if IK3_ENABLED
4871 impure module function getUnifRandRNGDLU_D2_IK3(lb, ub, s1, s2) result(rand)
4872#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4873 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_IK3
4874#endif
4875 use pm_kind, only: IKG => IK3
4876 integer(IKG) , intent(in) :: lb, ub
4877 integer(IK) , intent(in) :: s1, s2
4878 integer(IKG) :: rand(s1, s2)
4879 end function
4880#endif
4881
4882#if IK2_ENABLED
4883 impure module function getUnifRandRNGDLU_D2_IK2(lb, ub, s1, s2) result(rand)
4884#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4885 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_IK2
4886#endif
4887 use pm_kind, only: IKG => IK2
4888 integer(IKG) , intent(in) :: lb, ub
4889 integer(IK) , intent(in) :: s1, s2
4890 integer(IKG) :: rand(s1, s2)
4891 end function
4892#endif
4893
4894#if IK1_ENABLED
4895 impure module function getUnifRandRNGDLU_D2_IK1(lb, ub, s1, s2) result(rand)
4896#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4897 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_IK1
4898#endif
4899 use pm_kind, only: IKG => IK1
4900 integer(IKG) , intent(in) :: lb, ub
4901 integer(IK) , intent(in) :: s1, s2
4902 integer(IKG) :: rand(s1, s2)
4903 end function
4904#endif
4905
4906 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4907
4908#if LK5_ENABLED
4909 impure module function getUnifRandRNGDLU_D2_LK5(lb, ub, s1, s2) result(rand)
4910#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4911 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_LK5
4912#endif
4913 use pm_kind, only: LKG => LK5
4914 logical(LKG) , intent(in) :: lb, ub
4915 integer(IK) , intent(in) :: s1, s2
4916 logical(LKG) :: rand(s1, s2)
4917 end function
4918#endif
4919
4920#if LK4_ENABLED
4921 impure module function getUnifRandRNGDLU_D2_LK4(lb, ub, s1, s2) result(rand)
4922#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4923 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_LK4
4924#endif
4925 use pm_kind, only: LKG => LK4
4926 logical(LKG) , intent(in) :: lb, ub
4927 integer(IK) , intent(in) :: s1, s2
4928 logical(LKG) :: rand(s1, s2)
4929 end function
4930#endif
4931
4932#if LK3_ENABLED
4933 impure module function getUnifRandRNGDLU_D2_LK3(lb, ub, s1, s2) result(rand)
4934#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4935 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_LK3
4936#endif
4937 use pm_kind, only: LKG => LK3
4938 logical(LKG) , intent(in) :: lb, ub
4939 integer(IK) , intent(in) :: s1, s2
4940 logical(LKG) :: rand(s1, s2)
4941 end function
4942#endif
4943
4944#if LK2_ENABLED
4945 impure module function getUnifRandRNGDLU_D2_LK2(lb, ub, s1, s2) result(rand)
4946#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4947 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_LK2
4948#endif
4949 use pm_kind, only: LKG => LK2
4950 logical(LKG) , intent(in) :: lb, ub
4951 integer(IK) , intent(in) :: s1, s2
4952 logical(LKG) :: rand(s1, s2)
4953 end function
4954#endif
4955
4956#if LK1_ENABLED
4957 impure module function getUnifRandRNGDLU_D2_LK1(lb, ub, s1, s2) result(rand)
4958#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4959 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_LK1
4960#endif
4961 use pm_kind, only: LKG => LK1
4962 logical(LKG) , intent(in) :: lb, ub
4963 integer(IK) , intent(in) :: s1, s2
4964 logical(LKG) :: rand(s1, s2)
4965 end function
4966#endif
4967
4968 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4969
4970#if CK5_ENABLED
4971 impure module function getUnifRandRNGDLU_D2_CK5(lb, ub, s1, s2) result(rand)
4972#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4973 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_CK5
4974#endif
4975 use pm_kind, only: CKG => CK5
4976 complex(CKG) , intent(in) :: lb, ub
4977 integer(IK) , intent(in) :: s1, s2
4978 complex(CKG) :: rand(s1, s2)
4979 end function
4980#endif
4981
4982#if CK4_ENABLED
4983 impure module function getUnifRandRNGDLU_D2_CK4(lb, ub, s1, s2) result(rand)
4984#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4985 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_CK4
4986#endif
4987 use pm_kind, only: CKG => CK4
4988 complex(CKG) , intent(in) :: lb, ub
4989 integer(IK) , intent(in) :: s1, s2
4990 complex(CKG) :: rand(s1, s2)
4991 end function
4992#endif
4993
4994#if CK3_ENABLED
4995 impure module function getUnifRandRNGDLU_D2_CK3(lb, ub, s1, s2) result(rand)
4996#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4997 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_CK3
4998#endif
4999 use pm_kind, only: CKG => CK3
5000 complex(CKG) , intent(in) :: lb, ub
5001 integer(IK) , intent(in) :: s1, s2
5002 complex(CKG) :: rand(s1, s2)
5003 end function
5004#endif
5005
5006#if CK2_ENABLED
5007 impure module function getUnifRandRNGDLU_D2_CK2(lb, ub, s1, s2) result(rand)
5008#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5009 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_CK2
5010#endif
5011 use pm_kind, only: CKG => CK2
5012 complex(CKG) , intent(in) :: lb, ub
5013 integer(IK) , intent(in) :: s1, s2
5014 complex(CKG) :: rand(s1, s2)
5015 end function
5016#endif
5017
5018#if CK1_ENABLED
5019 impure module function getUnifRandRNGDLU_D2_CK1(lb, ub, s1, s2) result(rand)
5020#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5021 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_CK1
5022#endif
5023 use pm_kind, only: CKG => CK1
5024 complex(CKG) , intent(in) :: lb, ub
5025 integer(IK) , intent(in) :: s1, s2
5026 complex(CKG) :: rand(s1, s2)
5027 end function
5028#endif
5029
5030 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5031
5032#if RK5_ENABLED
5033 impure module function getUnifRandRNGDLU_D2_RK5(lb, ub, s1, s2) result(rand)
5034#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5035 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_RK5
5036#endif
5037 use pm_kind, only: RKG => RK5
5038 real(RKG) , intent(in) :: lb, ub
5039 integer(IK) , intent(in) :: s1, s2
5040 real(RKG) :: rand(s1, s2)
5041 end function
5042
5043#endif
5044
5045#if RK4_ENABLED
5046 impure module function getUnifRandRNGDLU_D2_RK4(lb, ub, s1, s2) result(rand)
5047#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5048 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_RK4
5049#endif
5050 use pm_kind, only: RKG => RK4
5051 real(RKG) , intent(in) :: lb, ub
5052 integer(IK) , intent(in) :: s1, s2
5053 real(RKG) :: rand(s1, s2)
5054 end function
5055
5056#endif
5057
5058#if RK3_ENABLED
5059 impure module function getUnifRandRNGDLU_D2_RK3(lb, ub, s1, s2) result(rand)
5060#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5061 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_RK3
5062#endif
5063 use pm_kind, only: RKG => RK3
5064 real(RKG) , intent(in) :: lb, ub
5065 integer(IK) , intent(in) :: s1, s2
5066 real(RKG) :: rand(s1, s2)
5067 end function
5068
5069#endif
5070
5071#if RK2_ENABLED
5072 impure module function getUnifRandRNGDLU_D2_RK2(lb, ub, s1, s2) result(rand)
5073#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5074 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_RK2
5075#endif
5076 use pm_kind, only: RKG => RK2
5077 real(RKG) , intent(in) :: lb, ub
5078 integer(IK) , intent(in) :: s1, s2
5079 real(RKG) :: rand(s1, s2)
5080 end function
5081#endif
5082
5083#if RK1_ENABLED
5084 impure module function getUnifRandRNGDLU_D2_RK1(lb, ub, s1, s2) result(rand)
5085#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5086 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D2_RK1
5087#endif
5088 use pm_kind, only: RKG => RK1
5089 real(RKG) , intent(in) :: lb, ub
5090 integer(IK) , intent(in) :: s1, s2
5091 real(RKG) :: rand(s1, s2)
5092 end function
5093#endif
5094
5095 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5096
5097 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5098 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5099 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5100
5101 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5102
5103#if SK5_ENABLED
5104 impure module function getUnifRandRNGDLU_D3_SK5(lb, ub, s1, s2, s3) result(rand)
5105#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5106 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_SK5
5107#endif
5108 use pm_kind, only: SKG => SK5
5109 character(*,SKG) , intent(in) :: lb, ub
5110 integer(IK) , intent(in) :: s1, s2, s3
5111 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
5112 end function
5113#endif
5114
5115#if SK4_ENABLED
5116 impure module function getUnifRandRNGDLU_D3_SK4(lb, ub, s1, s2, s3) result(rand)
5117#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5118 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_SK4
5119#endif
5120 use pm_kind, only: SKG => SK4
5121 character(*,SKG) , intent(in) :: lb, ub
5122 integer(IK) , intent(in) :: s1, s2, s3
5123 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
5124 end function
5125#endif
5126
5127#if SK3_ENABLED
5128 impure module function getUnifRandRNGDLU_D3_SK3(lb, ub, s1, s2, s3) result(rand)
5129#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5130 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_SK3
5131#endif
5132 use pm_kind, only: SKG => SK3
5133 character(*,SKG) , intent(in) :: lb, ub
5134 integer(IK) , intent(in) :: s1, s2, s3
5135 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
5136 end function
5137#endif
5138
5139#if SK2_ENABLED
5140 impure module function getUnifRandRNGDLU_D3_SK2(lb, ub, s1, s2, s3) result(rand)
5141#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5142 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_SK2
5143#endif
5144 use pm_kind, only: SKG => SK2
5145 character(*,SKG) , intent(in) :: lb, ub
5146 integer(IK) , intent(in) :: s1, s2, s3
5147 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
5148 end function
5149#endif
5150
5151#if SK1_ENABLED
5152 impure module function getUnifRandRNGDLU_D3_SK1(lb, ub, s1, s2, s3) result(rand)
5153#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5154 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_SK1
5155#endif
5156 use pm_kind, only: SKG => SK1
5157 character(*,SKG) , intent(in) :: lb, ub
5158 integer(IK) , intent(in) :: s1, s2, s3
5159 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
5160 end function
5161#endif
5162
5163 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5164
5165#if IK5_ENABLED
5166 impure module function getUnifRandRNGDLU_D3_IK5(lb, ub, s1, s2, s3) result(rand)
5167#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5168 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_IK5
5169#endif
5170 use pm_kind, only: IKG => IK5
5171 integer(IKG) , intent(in) :: lb, ub
5172 integer(IK) , intent(in) :: s1, s2, s3
5173 integer(IKG) :: rand(s1, s2, s3)
5174 end function
5175#endif
5176
5177#if IK4_ENABLED
5178 impure module function getUnifRandRNGDLU_D3_IK4(lb, ub, s1, s2, s3) result(rand)
5179#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5180 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_IK4
5181#endif
5182 use pm_kind, only: IKG => IK4
5183 integer(IKG) , intent(in) :: lb, ub
5184 integer(IK) , intent(in) :: s1, s2, s3
5185 integer(IKG) :: rand(s1, s2, s3)
5186 end function
5187#endif
5188
5189#if IK3_ENABLED
5190 impure module function getUnifRandRNGDLU_D3_IK3(lb, ub, s1, s2, s3) result(rand)
5191#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5192 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_IK3
5193#endif
5194 use pm_kind, only: IKG => IK3
5195 integer(IKG) , intent(in) :: lb, ub
5196 integer(IK) , intent(in) :: s1, s2, s3
5197 integer(IKG) :: rand(s1, s2, s3)
5198 end function
5199#endif
5200
5201#if IK2_ENABLED
5202 impure module function getUnifRandRNGDLU_D3_IK2(lb, ub, s1, s2, s3) result(rand)
5203#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5204 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_IK2
5205#endif
5206 use pm_kind, only: IKG => IK2
5207 integer(IKG) , intent(in) :: lb, ub
5208 integer(IK) , intent(in) :: s1, s2, s3
5209 integer(IKG) :: rand(s1, s2, s3)
5210 end function
5211#endif
5212
5213#if IK1_ENABLED
5214 impure module function getUnifRandRNGDLU_D3_IK1(lb, ub, s1, s2, s3) result(rand)
5215#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5216 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_IK1
5217#endif
5218 use pm_kind, only: IKG => IK1
5219 integer(IKG) , intent(in) :: lb, ub
5220 integer(IK) , intent(in) :: s1, s2, s3
5221 integer(IKG) :: rand(s1, s2, s3)
5222 end function
5223#endif
5224
5225 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5226
5227#if LK5_ENABLED
5228 impure module function getUnifRandRNGDLU_D3_LK5(lb, ub, s1, s2, s3) result(rand)
5229#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5230 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_LK5
5231#endif
5232 use pm_kind, only: LKG => LK5
5233 logical(LKG) , intent(in) :: lb, ub
5234 integer(IK) , intent(in) :: s1, s2, s3
5235 logical(LKG) :: rand(s1, s2, s3)
5236 end function
5237#endif
5238
5239#if LK4_ENABLED
5240 impure module function getUnifRandRNGDLU_D3_LK4(lb, ub, s1, s2, s3) result(rand)
5241#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5242 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_LK4
5243#endif
5244 use pm_kind, only: LKG => LK4
5245 logical(LKG) , intent(in) :: lb, ub
5246 integer(IK) , intent(in) :: s1, s2, s3
5247 logical(LKG) :: rand(s1, s2, s3)
5248 end function
5249#endif
5250
5251#if LK3_ENABLED
5252 impure module function getUnifRandRNGDLU_D3_LK3(lb, ub, s1, s2, s3) result(rand)
5253#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5254 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_LK3
5255#endif
5256 use pm_kind, only: LKG => LK3
5257 logical(LKG) , intent(in) :: lb, ub
5258 integer(IK) , intent(in) :: s1, s2, s3
5259 logical(LKG) :: rand(s1, s2, s3)
5260 end function
5261#endif
5262
5263#if LK2_ENABLED
5264 impure module function getUnifRandRNGDLU_D3_LK2(lb, ub, s1, s2, s3) result(rand)
5265#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5266 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_LK2
5267#endif
5268 use pm_kind, only: LKG => LK2
5269 logical(LKG) , intent(in) :: lb, ub
5270 integer(IK) , intent(in) :: s1, s2, s3
5271 logical(LKG) :: rand(s1, s2, s3)
5272 end function
5273#endif
5274
5275#if LK1_ENABLED
5276 impure module function getUnifRandRNGDLU_D3_LK1(lb, ub, s1, s2, s3) result(rand)
5277#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5278 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_LK1
5279#endif
5280 use pm_kind, only: LKG => LK1
5281 logical(LKG) , intent(in) :: lb, ub
5282 integer(IK) , intent(in) :: s1, s2, s3
5283 logical(LKG) :: rand(s1, s2, s3)
5284 end function
5285#endif
5286
5287 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5288
5289#if CK5_ENABLED
5290 impure module function getUnifRandRNGDLU_D3_CK5(lb, ub, s1, s2, s3) result(rand)
5291#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5292 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_CK5
5293#endif
5294 use pm_kind, only: CKG => CK5
5295 complex(CKG) , intent(in) :: lb, ub
5296 integer(IK) , intent(in) :: s1, s2, s3
5297 complex(CKG) :: rand(s1, s2, s3)
5298 end function
5299#endif
5300
5301#if CK4_ENABLED
5302 impure module function getUnifRandRNGDLU_D3_CK4(lb, ub, s1, s2, s3) result(rand)
5303#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5304 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_CK4
5305#endif
5306 use pm_kind, only: CKG => CK4
5307 complex(CKG) , intent(in) :: lb, ub
5308 integer(IK) , intent(in) :: s1, s2, s3
5309 complex(CKG) :: rand(s1, s2, s3)
5310 end function
5311#endif
5312
5313#if CK3_ENABLED
5314 impure module function getUnifRandRNGDLU_D3_CK3(lb, ub, s1, s2, s3) result(rand)
5315#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5316 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_CK3
5317#endif
5318 use pm_kind, only: CKG => CK3
5319 complex(CKG) , intent(in) :: lb, ub
5320 integer(IK) , intent(in) :: s1, s2, s3
5321 complex(CKG) :: rand(s1, s2, s3)
5322 end function
5323#endif
5324
5325#if CK2_ENABLED
5326 impure module function getUnifRandRNGDLU_D3_CK2(lb, ub, s1, s2, s3) result(rand)
5327#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5328 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_CK2
5329#endif
5330 use pm_kind, only: CKG => CK2
5331 complex(CKG) , intent(in) :: lb, ub
5332 integer(IK) , intent(in) :: s1, s2, s3
5333 complex(CKG) :: rand(s1, s2, s3)
5334 end function
5335#endif
5336
5337#if CK1_ENABLED
5338 impure module function getUnifRandRNGDLU_D3_CK1(lb, ub, s1, s2, s3) result(rand)
5339#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5340 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_CK1
5341#endif
5342 use pm_kind, only: CKG => CK1
5343 complex(CKG) , intent(in) :: lb, ub
5344 integer(IK) , intent(in) :: s1, s2, s3
5345 complex(CKG) :: rand(s1, s2, s3)
5346 end function
5347#endif
5348
5349 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5350
5351#if RK5_ENABLED
5352 impure module function getUnifRandRNGDLU_D3_RK5(lb, ub, s1, s2, s3) result(rand)
5353#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5354 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_RK5
5355#endif
5356 use pm_kind, only: RKG => RK5
5357 real(RKG) , intent(in) :: lb, ub
5358 integer(IK) , intent(in) :: s1, s2, s3
5359 real(RKG) :: rand(s1, s2, s3)
5360 end function
5361
5362#endif
5363
5364#if RK4_ENABLED
5365 impure module function getUnifRandRNGDLU_D3_RK4(lb, ub, s1, s2, s3) result(rand)
5366#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5367 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_RK4
5368#endif
5369 use pm_kind, only: RKG => RK4
5370 real(RKG) , intent(in) :: lb, ub
5371 integer(IK) , intent(in) :: s1, s2, s3
5372 real(RKG) :: rand(s1, s2, s3)
5373 end function
5374
5375#endif
5376
5377#if RK3_ENABLED
5378 impure module function getUnifRandRNGDLU_D3_RK3(lb, ub, s1, s2, s3) result(rand)
5379#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5380 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_RK3
5381#endif
5382 use pm_kind, only: RKG => RK3
5383 real(RKG) , intent(in) :: lb, ub
5384 integer(IK) , intent(in) :: s1, s2, s3
5385 real(RKG) :: rand(s1, s2, s3)
5386 end function
5387
5388#endif
5389
5390#if RK2_ENABLED
5391 impure module function getUnifRandRNGDLU_D3_RK2(lb, ub, s1, s2, s3) result(rand)
5392#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5393 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_RK2
5394#endif
5395 use pm_kind, only: RKG => RK2
5396 real(RKG) , intent(in) :: lb, ub
5397 integer(IK) , intent(in) :: s1, s2, s3
5398 real(RKG) :: rand(s1, s2, s3)
5399 end function
5400#endif
5401
5402#if RK1_ENABLED
5403 impure module function getUnifRandRNGDLU_D3_RK1(lb, ub, s1, s2, s3) result(rand)
5404#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5405 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGDLU_D3_RK1
5406#endif
5407 use pm_kind, only: RKG => RK1
5408 real(RKG) , intent(in) :: lb, ub
5409 integer(IK) , intent(in) :: s1, s2, s3
5410 real(RKG) :: rand(s1, s2, s3)
5411 end function
5412#endif
5413
5414 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5415
5416 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5417 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5418 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5419
5420 end interface
5421
5422 ! RNGF
5423
5424 interface getUnifRand
5425
5426 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5427 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5428 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5429
5430 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5431
5432 impure module function getUnifRandRNGFDD_D0_LK(rng) result(rand)
5433#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5434 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFDD_D0_LK
5435#endif
5436 use pm_kind, only: LKG => LK
5437 logical(LKG) :: rand
5438 type(rngf_type) , intent(inout) :: rng
5439 end function
5440
5441 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5442
5443 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5444 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5445 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5446
5447 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5448
5449#if SK5_ENABLED
5450 impure elemental module function getUnifRandRNGFLU_D0_SK5(rng, lb, ub) result(rand)
5451#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5452 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_SK5
5453#endif
5454 use pm_kind, only: SKG => SK5
5455 character(*,SKG) , intent(in) :: lb, ub
5456 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
5457 type(rngf_type) , intent(inout) :: rng
5458 end function
5459#endif
5460
5461#if SK4_ENABLED
5462 impure elemental module function getUnifRandRNGFLU_D0_SK4(rng, lb, ub) result(rand)
5463#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5464 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_SK4
5465#endif
5466 use pm_kind, only: SKG => SK4
5467 character(*,SKG) , intent(in) :: lb, ub
5468 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
5469 type(rngf_type) , intent(inout) :: rng
5470 end function
5471#endif
5472
5473#if SK3_ENABLED
5474 impure elemental module function getUnifRandRNGFLU_D0_SK3(rng, lb, ub) result(rand)
5475#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5476 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_SK3
5477#endif
5478 use pm_kind, only: SKG => SK3
5479 character(*,SKG) , intent(in) :: lb, ub
5480 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
5481 type(rngf_type) , intent(inout) :: rng
5482 end function
5483#endif
5484
5485#if SK2_ENABLED
5486 impure elemental module function getUnifRandRNGFLU_D0_SK2(rng, lb, ub) result(rand)
5487#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5488 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_SK2
5489#endif
5490 use pm_kind, only: SKG => SK2
5491 character(*,SKG) , intent(in) :: lb, ub
5492 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
5493 type(rngf_type) , intent(inout) :: rng
5494 end function
5495#endif
5496
5497#if SK1_ENABLED
5498 impure elemental module function getUnifRandRNGFLU_D0_SK1(rng, lb, ub) result(rand)
5499#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5500 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_SK1
5501#endif
5502 use pm_kind, only: SKG => SK1
5503 character(*,SKG) , intent(in) :: lb, ub
5504 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
5505 type(rngf_type) , intent(inout) :: rng
5506 end function
5507#endif
5508
5509 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5510
5511#if IK5_ENABLED
5512 impure elemental module function getUnifRandRNGFLU_D0_IK5(rng, lb, ub) result(rand)
5513#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5514 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_IK5
5515#endif
5516 use pm_kind, only: IKG => IK5
5517 integer(IKG) , intent(in) :: lb, ub
5518 integer(IKG) :: rand
5519 type(rngf_type) , intent(inout) :: rng
5520 end function
5521#endif
5522
5523#if IK4_ENABLED
5524 impure elemental module function getUnifRandRNGFLU_D0_IK4(rng, lb, ub) result(rand)
5525#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5526 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_IK4
5527#endif
5528 use pm_kind, only: IKG => IK4
5529 integer(IKG) , intent(in) :: lb, ub
5530 integer(IKG) :: rand
5531 type(rngf_type) , intent(inout) :: rng
5532 end function
5533#endif
5534
5535#if IK3_ENABLED
5536 impure elemental module function getUnifRandRNGFLU_D0_IK3(rng, lb, ub) result(rand)
5537#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5538 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_IK3
5539#endif
5540 use pm_kind, only: IKG => IK3
5541 integer(IKG) , intent(in) :: lb, ub
5542 integer(IKG) :: rand
5543 type(rngf_type) , intent(inout) :: rng
5544 end function
5545#endif
5546
5547#if IK2_ENABLED
5548 impure elemental module function getUnifRandRNGFLU_D0_IK2(rng, lb, ub) result(rand)
5549#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5550 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_IK2
5551#endif
5552 use pm_kind, only: IKG => IK2
5553 integer(IKG) , intent(in) :: lb, ub
5554 integer(IKG) :: rand
5555 type(rngf_type) , intent(inout) :: rng
5556 end function
5557#endif
5558
5559#if IK1_ENABLED
5560 impure elemental module function getUnifRandRNGFLU_D0_IK1(rng, lb, ub) result(rand)
5561#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5562 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_IK1
5563#endif
5564 use pm_kind, only: IKG => IK1
5565 integer(IKG) , intent(in) :: lb, ub
5566 integer(IKG) :: rand
5567 type(rngf_type) , intent(inout) :: rng
5568 end function
5569#endif
5570
5571 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5572
5573#if LK5_ENABLED
5574 impure elemental module function getUnifRandRNGFLU_D0_LK5(rng, lb, ub) result(rand)
5575#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5576 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_LK5
5577#endif
5578 use pm_kind, only: LKG => LK5
5579 logical(LKG) , intent(in) :: lb, ub
5580 logical(LKG) :: rand
5581 type(rngf_type) , intent(inout) :: rng
5582 end function
5583#endif
5584
5585#if LK4_ENABLED
5586 impure elemental module function getUnifRandRNGFLU_D0_LK4(rng, lb, ub) result(rand)
5587#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5588 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_LK4
5589#endif
5590 use pm_kind, only: LKG => LK4
5591 logical(LKG) , intent(in) :: lb, ub
5592 logical(LKG) :: rand
5593 type(rngf_type) , intent(inout) :: rng
5594 end function
5595#endif
5596
5597#if LK3_ENABLED
5598 impure elemental module function getUnifRandRNGFLU_D0_LK3(rng, lb, ub) result(rand)
5599#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5600 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_LK3
5601#endif
5602 use pm_kind, only: LKG => LK3
5603 logical(LKG) , intent(in) :: lb, ub
5604 logical(LKG) :: rand
5605 type(rngf_type) , intent(inout) :: rng
5606 end function
5607#endif
5608
5609#if LK2_ENABLED
5610 impure elemental module function getUnifRandRNGFLU_D0_LK2(rng, lb, ub) result(rand)
5611#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5612 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_LK2
5613#endif
5614 use pm_kind, only: LKG => LK2
5615 logical(LKG) , intent(in) :: lb, ub
5616 logical(LKG) :: rand
5617 type(rngf_type) , intent(inout) :: rng
5618 end function
5619#endif
5620
5621#if LK1_ENABLED
5622 impure elemental module function getUnifRandRNGFLU_D0_LK1(rng, lb, ub) result(rand)
5623#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5624 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_LK1
5625#endif
5626 use pm_kind, only: LKG => LK1
5627 logical(LKG) , intent(in) :: lb, ub
5628 logical(LKG) :: rand
5629 type(rngf_type) , intent(inout) :: rng
5630 end function
5631#endif
5632
5633 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5634
5635#if CK5_ENABLED
5636 impure elemental module function getUnifRandRNGFLU_D0_CK5(rng, lb, ub) result(rand)
5637#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5638 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_CK5
5639#endif
5640 use pm_kind, only: CKG => CK5
5641 complex(CKG) , intent(in) :: lb, ub
5642 complex(CKG) :: rand
5643 type(rngf_type) , intent(inout) :: rng
5644 end function
5645#endif
5646
5647#if CK4_ENABLED
5648 impure elemental module function getUnifRandRNGFLU_D0_CK4(rng, lb, ub) result(rand)
5649#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5650 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_CK4
5651#endif
5652 use pm_kind, only: CKG => CK4
5653 complex(CKG) , intent(in) :: lb, ub
5654 complex(CKG) :: rand
5655 type(rngf_type) , intent(inout) :: rng
5656 end function
5657#endif
5658
5659#if CK3_ENABLED
5660 impure elemental module function getUnifRandRNGFLU_D0_CK3(rng, lb, ub) result(rand)
5661#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5662 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_CK3
5663#endif
5664 use pm_kind, only: CKG => CK3
5665 complex(CKG) , intent(in) :: lb, ub
5666 complex(CKG) :: rand
5667 type(rngf_type) , intent(inout) :: rng
5668 end function
5669#endif
5670
5671#if CK2_ENABLED
5672 impure elemental module function getUnifRandRNGFLU_D0_CK2(rng, lb, ub) result(rand)
5673#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5674 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_CK2
5675#endif
5676 use pm_kind, only: CKG => CK2
5677 complex(CKG) , intent(in) :: lb, ub
5678 complex(CKG) :: rand
5679 type(rngf_type) , intent(inout) :: rng
5680 end function
5681#endif
5682
5683#if CK1_ENABLED
5684 impure elemental module function getUnifRandRNGFLU_D0_CK1(rng, lb, ub) result(rand)
5685#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5686 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_CK1
5687#endif
5688 use pm_kind, only: CKG => CK1
5689 complex(CKG) , intent(in) :: lb, ub
5690 complex(CKG) :: rand
5691 type(rngf_type) , intent(inout) :: rng
5692 end function
5693#endif
5694
5695 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5696
5697#if RK5_ENABLED
5698 impure elemental module function getUnifRandRNGFLU_D0_RK5(rng, lb, ub) result(rand)
5699#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5700 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_RK5
5701#endif
5702 use pm_kind, only: RKG => RK5
5703 real(RKG) , intent(in) :: lb, ub
5704 real(RKG) :: rand
5705 type(rngf_type) , intent(inout) :: rng
5706 end function
5707#endif
5708
5709#if RK4_ENABLED
5710 impure elemental module function getUnifRandRNGFLU_D0_RK4(rng, lb, ub) result(rand)
5711#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5712 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_RK4
5713#endif
5714 use pm_kind, only: RKG => RK4
5715 real(RKG) , intent(in) :: lb, ub
5716 real(RKG) :: rand
5717 type(rngf_type) , intent(inout) :: rng
5718 end function
5719#endif
5720
5721#if RK3_ENABLED
5722 impure elemental module function getUnifRandRNGFLU_D0_RK3(rng, lb, ub) result(rand)
5723#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5724 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_RK3
5725#endif
5726 use pm_kind, only: RKG => RK3
5727 real(RKG) , intent(in) :: lb, ub
5728 real(RKG) :: rand
5729 type(rngf_type) , intent(inout) :: rng
5730 end function
5731#endif
5732
5733#if RK2_ENABLED
5734 impure elemental module function getUnifRandRNGFLU_D0_RK2(rng, lb, ub) result(rand)
5735#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5736 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_RK2
5737#endif
5738 use pm_kind, only: RKG => RK2
5739 real(RKG) , intent(in) :: lb, ub
5740 real(RKG) :: rand
5741 type(rngf_type) , intent(inout) :: rng
5742 end function
5743#endif
5744
5745#if RK1_ENABLED
5746 impure elemental module function getUnifRandRNGFLU_D0_RK1(rng, lb, ub) result(rand)
5747#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5748 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D0_RK1
5749#endif
5750 use pm_kind, only: RKG => RK1
5751 real(RKG) , intent(in) :: lb, ub
5752 real(RKG) :: rand
5753 type(rngf_type) , intent(inout) :: rng
5754 end function
5755#endif
5756
5757 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5758
5759 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5760 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5761 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5762
5763 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5764
5765#if SK5_ENABLED
5766 impure module function getUnifRandRNGFLU_D1_SK5(rng, lb, ub, s1) result(rand)
5767#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5768 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_SK5
5769#endif
5770 use pm_kind, only: SKG => SK5
5771 character(*,SKG) , intent(in) :: lb, ub
5772 integer(IK) , intent(in) :: s1
5773 character(len(lb,IK),SKG) :: rand(s1)
5774 type(rngf_type) , intent(inout) :: rng
5775 end function
5776#endif
5777
5778#if SK4_ENABLED
5779 impure module function getUnifRandRNGFLU_D1_SK4(rng, lb, ub, s1) result(rand)
5780#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5781 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_SK4
5782#endif
5783 use pm_kind, only: SKG => SK4
5784 character(*,SKG) , intent(in) :: lb, ub
5785 integer(IK) , intent(in) :: s1
5786 character(len(lb,IK),SKG) :: rand(s1)
5787 type(rngf_type) , intent(inout) :: rng
5788 end function
5789#endif
5790
5791#if SK3_ENABLED
5792 impure module function getUnifRandRNGFLU_D1_SK3(rng, lb, ub, s1) result(rand)
5793#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5794 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_SK3
5795#endif
5796 use pm_kind, only: SKG => SK3
5797 character(*,SKG) , intent(in) :: lb, ub
5798 integer(IK) , intent(in) :: s1
5799 character(len(lb,IK),SKG) :: rand(s1)
5800 type(rngf_type) , intent(inout) :: rng
5801 end function
5802#endif
5803
5804#if SK2_ENABLED
5805 impure module function getUnifRandRNGFLU_D1_SK2(rng, lb, ub, s1) result(rand)
5806#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5807 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_SK2
5808#endif
5809 use pm_kind, only: SKG => SK2
5810 character(*,SKG) , intent(in) :: lb, ub
5811 integer(IK) , intent(in) :: s1
5812 character(len(lb,IK),SKG) :: rand(s1)
5813 type(rngf_type) , intent(inout) :: rng
5814 end function
5815#endif
5816
5817#if SK1_ENABLED
5818 impure module function getUnifRandRNGFLU_D1_SK1(rng, lb, ub, s1) result(rand)
5819#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5820 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_SK1
5821#endif
5822 use pm_kind, only: SKG => SK1
5823 character(*,SKG) , intent(in) :: lb, ub
5824 integer(IK) , intent(in) :: s1
5825 character(len(lb,IK),SKG) :: rand(s1)
5826 type(rngf_type) , intent(inout) :: rng
5827 end function
5828#endif
5829
5830 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5831
5832#if IK5_ENABLED
5833 impure module function getUnifRandRNGFLU_D1_IK5(rng, lb, ub, s1) result(rand)
5834#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5835 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_IK5
5836#endif
5837 use pm_kind, only: IKG => IK5
5838 integer(IKG) , intent(in) :: lb, ub
5839 integer(IK) , intent(in) :: s1
5840 integer(IKG) :: rand(s1)
5841 type(rngf_type) , intent(inout) :: rng
5842 end function
5843#endif
5844
5845#if IK4_ENABLED
5846 impure module function getUnifRandRNGFLU_D1_IK4(rng, lb, ub, s1) result(rand)
5847#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5848 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_IK4
5849#endif
5850 use pm_kind, only: IKG => IK4
5851 integer(IKG) , intent(in) :: lb, ub
5852 integer(IK) , intent(in) :: s1
5853 integer(IKG) :: rand(s1)
5854 type(rngf_type) , intent(inout) :: rng
5855 end function
5856#endif
5857
5858#if IK3_ENABLED
5859 impure module function getUnifRandRNGFLU_D1_IK3(rng, lb, ub, s1) result(rand)
5860#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5861 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_IK3
5862#endif
5863 use pm_kind, only: IKG => IK3
5864 integer(IKG) , intent(in) :: lb, ub
5865 integer(IK) , intent(in) :: s1
5866 integer(IKG) :: rand(s1)
5867 type(rngf_type) , intent(inout) :: rng
5868 end function
5869#endif
5870
5871#if IK2_ENABLED
5872 impure module function getUnifRandRNGFLU_D1_IK2(rng, lb, ub, s1) result(rand)
5873#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5874 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_IK2
5875#endif
5876 use pm_kind, only: IKG => IK2
5877 integer(IKG) , intent(in) :: lb, ub
5878 integer(IK) , intent(in) :: s1
5879 integer(IKG) :: rand(s1)
5880 type(rngf_type) , intent(inout) :: rng
5881 end function
5882#endif
5883
5884#if IK1_ENABLED
5885 impure module function getUnifRandRNGFLU_D1_IK1(rng, lb, ub, s1) result(rand)
5886#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5887 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_IK1
5888#endif
5889 use pm_kind, only: IKG => IK1
5890 integer(IKG) , intent(in) :: lb, ub
5891 integer(IK) , intent(in) :: s1
5892 integer(IKG) :: rand(s1)
5893 type(rngf_type) , intent(inout) :: rng
5894 end function
5895#endif
5896
5897 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5898
5899#if LK5_ENABLED
5900 impure module function getUnifRandRNGFLU_D1_LK5(rng, lb, ub, s1) result(rand)
5901#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5902 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_LK5
5903#endif
5904 use pm_kind, only: LKG => LK5
5905 logical(LKG) , intent(in) :: lb, ub
5906 integer(IK) , intent(in) :: s1
5907 logical(LKG) :: rand(s1)
5908 type(rngf_type) , intent(inout) :: rng
5909 end function
5910#endif
5911
5912#if LK4_ENABLED
5913 impure module function getUnifRandRNGFLU_D1_LK4(rng, lb, ub, s1) result(rand)
5914#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5915 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_LK4
5916#endif
5917 use pm_kind, only: LKG => LK4
5918 logical(LKG) , intent(in) :: lb, ub
5919 integer(IK) , intent(in) :: s1
5920 logical(LKG) :: rand(s1)
5921 type(rngf_type) , intent(inout) :: rng
5922 end function
5923#endif
5924
5925#if LK3_ENABLED
5926 impure module function getUnifRandRNGFLU_D1_LK3(rng, lb, ub, s1) result(rand)
5927#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5928 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_LK3
5929#endif
5930 use pm_kind, only: LKG => LK3
5931 logical(LKG) , intent(in) :: lb, ub
5932 integer(IK) , intent(in) :: s1
5933 logical(LKG) :: rand(s1)
5934 type(rngf_type) , intent(inout) :: rng
5935 end function
5936#endif
5937
5938#if LK2_ENABLED
5939 impure module function getUnifRandRNGFLU_D1_LK2(rng, lb, ub, s1) result(rand)
5940#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5941 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_LK2
5942#endif
5943 use pm_kind, only: LKG => LK2
5944 logical(LKG) , intent(in) :: lb, ub
5945 integer(IK) , intent(in) :: s1
5946 logical(LKG) :: rand(s1)
5947 type(rngf_type) , intent(inout) :: rng
5948 end function
5949#endif
5950
5951#if LK1_ENABLED
5952 impure module function getUnifRandRNGFLU_D1_LK1(rng, lb, ub, s1) result(rand)
5953#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5954 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_LK1
5955#endif
5956 use pm_kind, only: LKG => LK1
5957 logical(LKG) , intent(in) :: lb, ub
5958 integer(IK) , intent(in) :: s1
5959 logical(LKG) :: rand(s1)
5960 type(rngf_type) , intent(inout) :: rng
5961 end function
5962#endif
5963
5964 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5965
5966#if CK5_ENABLED
5967 impure module function getUnifRandRNGFLU_D1_CK5(rng, lb, ub, s1) result(rand)
5968#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5969 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_CK5
5970#endif
5971 use pm_kind, only: CKG => CK5
5972 complex(CKG) , intent(in) :: lb, ub
5973 integer(IK) , intent(in) :: s1
5974 complex(CKG) :: rand(s1)
5975 type(rngf_type) , intent(inout) :: rng
5976 end function
5977#endif
5978
5979#if CK4_ENABLED
5980 impure module function getUnifRandRNGFLU_D1_CK4(rng, lb, ub, s1) result(rand)
5981#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5982 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_CK4
5983#endif
5984 use pm_kind, only: CKG => CK4
5985 complex(CKG) , intent(in) :: lb, ub
5986 integer(IK) , intent(in) :: s1
5987 complex(CKG) :: rand(s1)
5988 type(rngf_type) , intent(inout) :: rng
5989 end function
5990#endif
5991
5992#if CK3_ENABLED
5993 impure module function getUnifRandRNGFLU_D1_CK3(rng, lb, ub, s1) result(rand)
5994#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5995 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_CK3
5996#endif
5997 use pm_kind, only: CKG => CK3
5998 complex(CKG) , intent(in) :: lb, ub
5999 integer(IK) , intent(in) :: s1
6000 complex(CKG) :: rand(s1)
6001 type(rngf_type) , intent(inout) :: rng
6002 end function
6003#endif
6004
6005#if CK2_ENABLED
6006 impure module function getUnifRandRNGFLU_D1_CK2(rng, lb, ub, s1) result(rand)
6007#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6008 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_CK2
6009#endif
6010 use pm_kind, only: CKG => CK2
6011 complex(CKG) , intent(in) :: lb, ub
6012 integer(IK) , intent(in) :: s1
6013 complex(CKG) :: rand(s1)
6014 type(rngf_type) , intent(inout) :: rng
6015 end function
6016#endif
6017
6018#if CK1_ENABLED
6019 impure module function getUnifRandRNGFLU_D1_CK1(rng, lb, ub, s1) result(rand)
6020#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6021 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_CK1
6022#endif
6023 use pm_kind, only: CKG => CK1
6024 complex(CKG) , intent(in) :: lb, ub
6025 integer(IK) , intent(in) :: s1
6026 complex(CKG) :: rand(s1)
6027 type(rngf_type) , intent(inout) :: rng
6028 end function
6029#endif
6030
6031 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6032
6033#if RK5_ENABLED
6034 impure module function getUnifRandRNGFLU_D1_RK5(rng, lb, ub, s1) result(rand)
6035#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6036 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_RK5
6037#endif
6038 use pm_kind, only: RKG => RK5
6039 real(RKG) , intent(in) :: lb, ub
6040 integer(IK) , intent(in) :: s1
6041 real(RKG) :: rand(s1)
6042 type(rngf_type) , intent(inout) :: rng
6043 end function
6044
6045#endif
6046
6047#if RK4_ENABLED
6048 impure module function getUnifRandRNGFLU_D1_RK4(rng, lb, ub, s1) result(rand)
6049#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6050 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_RK4
6051#endif
6052 use pm_kind, only: RKG => RK4
6053 real(RKG) , intent(in) :: lb, ub
6054 integer(IK) , intent(in) :: s1
6055 real(RKG) :: rand(s1)
6056 type(rngf_type) , intent(inout) :: rng
6057 end function
6058
6059#endif
6060
6061#if RK3_ENABLED
6062 impure module function getUnifRandRNGFLU_D1_RK3(rng, lb, ub, s1) result(rand)
6063#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6064 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_RK3
6065#endif
6066 use pm_kind, only: RKG => RK3
6067 real(RKG) , intent(in) :: lb, ub
6068 integer(IK) , intent(in) :: s1
6069 real(RKG) :: rand(s1)
6070 type(rngf_type) , intent(inout) :: rng
6071 end function
6072
6073#endif
6074
6075#if RK2_ENABLED
6076 impure module function getUnifRandRNGFLU_D1_RK2(rng, lb, ub, s1) result(rand)
6077#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6078 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_RK2
6079#endif
6080 use pm_kind, only: RKG => RK2
6081 real(RKG) , intent(in) :: lb, ub
6082 integer(IK) , intent(in) :: s1
6083 real(RKG) :: rand(s1)
6084 type(rngf_type) , intent(inout) :: rng
6085 end function
6086#endif
6087
6088#if RK1_ENABLED
6089 impure module function getUnifRandRNGFLU_D1_RK1(rng, lb, ub, s1) result(rand)
6090#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6091 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D1_RK1
6092#endif
6093 use pm_kind, only: RKG => RK1
6094 real(RKG) , intent(in) :: lb, ub
6095 integer(IK) , intent(in) :: s1
6096 real(RKG) :: rand(s1)
6097 type(rngf_type) , intent(inout) :: rng
6098 end function
6099#endif
6100
6101 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6102
6103 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6104 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6105 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6106
6107 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6108
6109#if SK5_ENABLED
6110 impure module function getUnifRandRNGFLU_D2_SK5(rng, lb, ub, s1, s2) result(rand)
6111#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6112 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_SK5
6113#endif
6114 use pm_kind, only: SKG => SK5
6115 character(*,SKG) , intent(in) :: lb, ub
6116 integer(IK) , intent(in) :: s1, s2
6117 character(len(lb,IK),SKG) :: rand(s1, s2)
6118 type(rngf_type) , intent(inout) :: rng
6119 end function
6120#endif
6121
6122#if SK4_ENABLED
6123 impure module function getUnifRandRNGFLU_D2_SK4(rng, lb, ub, s1, s2) result(rand)
6124#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6125 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_SK4
6126#endif
6127 use pm_kind, only: SKG => SK4
6128 character(*,SKG) , intent(in) :: lb, ub
6129 integer(IK) , intent(in) :: s1, s2
6130 character(len(lb,IK),SKG) :: rand(s1, s2)
6131 type(rngf_type) , intent(inout) :: rng
6132 end function
6133#endif
6134
6135#if SK3_ENABLED
6136 impure module function getUnifRandRNGFLU_D2_SK3(rng, lb, ub, s1, s2) result(rand)
6137#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6138 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_SK3
6139#endif
6140 use pm_kind, only: SKG => SK3
6141 character(*,SKG) , intent(in) :: lb, ub
6142 integer(IK) , intent(in) :: s1, s2
6143 character(len(lb,IK),SKG) :: rand(s1, s2)
6144 type(rngf_type) , intent(inout) :: rng
6145 end function
6146#endif
6147
6148#if SK2_ENABLED
6149 impure module function getUnifRandRNGFLU_D2_SK2(rng, lb, ub, s1, s2) result(rand)
6150#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6151 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_SK2
6152#endif
6153 use pm_kind, only: SKG => SK2
6154 character(*,SKG) , intent(in) :: lb, ub
6155 integer(IK) , intent(in) :: s1, s2
6156 character(len(lb,IK),SKG) :: rand(s1, s2)
6157 type(rngf_type) , intent(inout) :: rng
6158 end function
6159#endif
6160
6161#if SK1_ENABLED
6162 impure module function getUnifRandRNGFLU_D2_SK1(rng, lb, ub, s1, s2) result(rand)
6163#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6164 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_SK1
6165#endif
6166 use pm_kind, only: SKG => SK1
6167 character(*,SKG) , intent(in) :: lb, ub
6168 integer(IK) , intent(in) :: s1, s2
6169 character(len(lb,IK),SKG) :: rand(s1, s2)
6170 type(rngf_type) , intent(inout) :: rng
6171 end function
6172#endif
6173
6174 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6175
6176#if IK5_ENABLED
6177 impure module function getUnifRandRNGFLU_D2_IK5(rng, lb, ub, s1, s2) result(rand)
6178#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6179 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_IK5
6180#endif
6181 use pm_kind, only: IKG => IK5
6182 integer(IKG) , intent(in) :: lb, ub
6183 integer(IK) , intent(in) :: s1, s2
6184 integer(IKG) :: rand(s1, s2)
6185 type(rngf_type) , intent(inout) :: rng
6186 end function
6187#endif
6188
6189#if IK4_ENABLED
6190 impure module function getUnifRandRNGFLU_D2_IK4(rng, lb, ub, s1, s2) result(rand)
6191#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6192 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_IK4
6193#endif
6194 use pm_kind, only: IKG => IK4
6195 integer(IKG) , intent(in) :: lb, ub
6196 integer(IK) , intent(in) :: s1, s2
6197 integer(IKG) :: rand(s1, s2)
6198 type(rngf_type) , intent(inout) :: rng
6199 end function
6200#endif
6201
6202#if IK3_ENABLED
6203 impure module function getUnifRandRNGFLU_D2_IK3(rng, lb, ub, s1, s2) result(rand)
6204#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6205 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_IK3
6206#endif
6207 use pm_kind, only: IKG => IK3
6208 integer(IKG) , intent(in) :: lb, ub
6209 integer(IK) , intent(in) :: s1, s2
6210 integer(IKG) :: rand(s1, s2)
6211 type(rngf_type) , intent(inout) :: rng
6212 end function
6213#endif
6214
6215#if IK2_ENABLED
6216 impure module function getUnifRandRNGFLU_D2_IK2(rng, lb, ub, s1, s2) result(rand)
6217#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6218 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_IK2
6219#endif
6220 use pm_kind, only: IKG => IK2
6221 integer(IKG) , intent(in) :: lb, ub
6222 integer(IK) , intent(in) :: s1, s2
6223 integer(IKG) :: rand(s1, s2)
6224 type(rngf_type) , intent(inout) :: rng
6225 end function
6226#endif
6227
6228#if IK1_ENABLED
6229 impure module function getUnifRandRNGFLU_D2_IK1(rng, lb, ub, s1, s2) result(rand)
6230#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6231 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_IK1
6232#endif
6233 use pm_kind, only: IKG => IK1
6234 integer(IKG) , intent(in) :: lb, ub
6235 integer(IK) , intent(in) :: s1, s2
6236 integer(IKG) :: rand(s1, s2)
6237 type(rngf_type) , intent(inout) :: rng
6238 end function
6239#endif
6240
6241 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6242
6243#if LK5_ENABLED
6244 impure module function getUnifRandRNGFLU_D2_LK5(rng, lb, ub, s1, s2) result(rand)
6245#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6246 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_LK5
6247#endif
6248 use pm_kind, only: LKG => LK5
6249 logical(LKG) , intent(in) :: lb, ub
6250 integer(IK) , intent(in) :: s1, s2
6251 logical(LKG) :: rand(s1, s2)
6252 type(rngf_type) , intent(inout) :: rng
6253 end function
6254#endif
6255
6256#if LK4_ENABLED
6257 impure module function getUnifRandRNGFLU_D2_LK4(rng, lb, ub, s1, s2) result(rand)
6258#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6259 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_LK4
6260#endif
6261 use pm_kind, only: LKG => LK4
6262 logical(LKG) , intent(in) :: lb, ub
6263 integer(IK) , intent(in) :: s1, s2
6264 logical(LKG) :: rand(s1, s2)
6265 type(rngf_type) , intent(inout) :: rng
6266 end function
6267#endif
6268
6269#if LK3_ENABLED
6270 impure module function getUnifRandRNGFLU_D2_LK3(rng, lb, ub, s1, s2) result(rand)
6271#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6272 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_LK3
6273#endif
6274 use pm_kind, only: LKG => LK3
6275 logical(LKG) , intent(in) :: lb, ub
6276 integer(IK) , intent(in) :: s1, s2
6277 logical(LKG) :: rand(s1, s2)
6278 type(rngf_type) , intent(inout) :: rng
6279 end function
6280#endif
6281
6282#if LK2_ENABLED
6283 impure module function getUnifRandRNGFLU_D2_LK2(rng, lb, ub, s1, s2) result(rand)
6284#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6285 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_LK2
6286#endif
6287 use pm_kind, only: LKG => LK2
6288 logical(LKG) , intent(in) :: lb, ub
6289 integer(IK) , intent(in) :: s1, s2
6290 logical(LKG) :: rand(s1, s2)
6291 type(rngf_type) , intent(inout) :: rng
6292 end function
6293#endif
6294
6295#if LK1_ENABLED
6296 impure module function getUnifRandRNGFLU_D2_LK1(rng, lb, ub, s1, s2) result(rand)
6297#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6298 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_LK1
6299#endif
6300 use pm_kind, only: LKG => LK1
6301 logical(LKG) , intent(in) :: lb, ub
6302 integer(IK) , intent(in) :: s1, s2
6303 logical(LKG) :: rand(s1, s2)
6304 type(rngf_type) , intent(inout) :: rng
6305 end function
6306#endif
6307
6308 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6309
6310#if CK5_ENABLED
6311 impure module function getUnifRandRNGFLU_D2_CK5(rng, lb, ub, s1, s2) result(rand)
6312#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6313 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_CK5
6314#endif
6315 use pm_kind, only: CKG => CK5
6316 complex(CKG) , intent(in) :: lb, ub
6317 integer(IK) , intent(in) :: s1, s2
6318 complex(CKG) :: rand(s1, s2)
6319 type(rngf_type) , intent(inout) :: rng
6320 end function
6321#endif
6322
6323#if CK4_ENABLED
6324 impure module function getUnifRandRNGFLU_D2_CK4(rng, lb, ub, s1, s2) result(rand)
6325#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6326 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_CK4
6327#endif
6328 use pm_kind, only: CKG => CK4
6329 complex(CKG) , intent(in) :: lb, ub
6330 integer(IK) , intent(in) :: s1, s2
6331 complex(CKG) :: rand(s1, s2)
6332 type(rngf_type) , intent(inout) :: rng
6333 end function
6334#endif
6335
6336#if CK3_ENABLED
6337 impure module function getUnifRandRNGFLU_D2_CK3(rng, lb, ub, s1, s2) result(rand)
6338#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6339 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_CK3
6340#endif
6341 use pm_kind, only: CKG => CK3
6342 complex(CKG) , intent(in) :: lb, ub
6343 integer(IK) , intent(in) :: s1, s2
6344 complex(CKG) :: rand(s1, s2)
6345 type(rngf_type) , intent(inout) :: rng
6346 end function
6347#endif
6348
6349#if CK2_ENABLED
6350 impure module function getUnifRandRNGFLU_D2_CK2(rng, lb, ub, s1, s2) result(rand)
6351#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6352 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_CK2
6353#endif
6354 use pm_kind, only: CKG => CK2
6355 complex(CKG) , intent(in) :: lb, ub
6356 integer(IK) , intent(in) :: s1, s2
6357 complex(CKG) :: rand(s1, s2)
6358 type(rngf_type) , intent(inout) :: rng
6359 end function
6360#endif
6361
6362#if CK1_ENABLED
6363 impure module function getUnifRandRNGFLU_D2_CK1(rng, lb, ub, s1, s2) result(rand)
6364#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6365 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_CK1
6366#endif
6367 use pm_kind, only: CKG => CK1
6368 complex(CKG) , intent(in) :: lb, ub
6369 integer(IK) , intent(in) :: s1, s2
6370 complex(CKG) :: rand(s1, s2)
6371 type(rngf_type) , intent(inout) :: rng
6372 end function
6373#endif
6374
6375 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6376
6377#if RK5_ENABLED
6378 impure module function getUnifRandRNGFLU_D2_RK5(rng, lb, ub, s1, s2) result(rand)
6379#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6380 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_RK5
6381#endif
6382 use pm_kind, only: RKG => RK5
6383 real(RKG) , intent(in) :: lb, ub
6384 integer(IK) , intent(in) :: s1, s2
6385 real(RKG) :: rand(s1, s2)
6386 type(rngf_type) , intent(inout) :: rng
6387 end function
6388
6389#endif
6390
6391#if RK4_ENABLED
6392 impure module function getUnifRandRNGFLU_D2_RK4(rng, lb, ub, s1, s2) result(rand)
6393#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6394 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_RK4
6395#endif
6396 use pm_kind, only: RKG => RK4
6397 real(RKG) , intent(in) :: lb, ub
6398 integer(IK) , intent(in) :: s1, s2
6399 real(RKG) :: rand(s1, s2)
6400 type(rngf_type) , intent(inout) :: rng
6401 end function
6402
6403#endif
6404
6405#if RK3_ENABLED
6406 impure module function getUnifRandRNGFLU_D2_RK3(rng, lb, ub, s1, s2) result(rand)
6407#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6408 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_RK3
6409#endif
6410 use pm_kind, only: RKG => RK3
6411 real(RKG) , intent(in) :: lb, ub
6412 integer(IK) , intent(in) :: s1, s2
6413 real(RKG) :: rand(s1, s2)
6414 type(rngf_type) , intent(inout) :: rng
6415 end function
6416
6417#endif
6418
6419#if RK2_ENABLED
6420 impure module function getUnifRandRNGFLU_D2_RK2(rng, lb, ub, s1, s2) result(rand)
6421#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6422 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_RK2
6423#endif
6424 use pm_kind, only: RKG => RK2
6425 real(RKG) , intent(in) :: lb, ub
6426 integer(IK) , intent(in) :: s1, s2
6427 real(RKG) :: rand(s1, s2)
6428 type(rngf_type) , intent(inout) :: rng
6429 end function
6430#endif
6431
6432#if RK1_ENABLED
6433 impure module function getUnifRandRNGFLU_D2_RK1(rng, lb, ub, s1, s2) result(rand)
6434#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6435 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D2_RK1
6436#endif
6437 use pm_kind, only: RKG => RK1
6438 real(RKG) , intent(in) :: lb, ub
6439 integer(IK) , intent(in) :: s1, s2
6440 real(RKG) :: rand(s1, s2)
6441 type(rngf_type) , intent(inout) :: rng
6442 end function
6443#endif
6444
6445 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6446
6447 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6448 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6449 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6450
6451 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6452
6453#if SK5_ENABLED
6454 impure module function getUnifRandRNGFLU_D3_SK5(rng, lb, ub, s1, s2, s3) result(rand)
6455#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6456 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_SK5
6457#endif
6458 use pm_kind, only: SKG => SK5
6459 character(*,SKG) , intent(in) :: lb, ub
6460 integer(IK) , intent(in) :: s1, s2, s3
6461 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
6462 type(rngf_type) , intent(inout) :: rng