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
6463 end function
6464#endif
6465
6466#if SK4_ENABLED
6467 impure module function getUnifRandRNGFLU_D3_SK4(rng, lb, ub, s1, s2, s3) result(rand)
6468#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6469 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_SK4
6470#endif
6471 use pm_kind, only: SKG => SK4
6472 character(*,SKG) , intent(in) :: lb, ub
6473 integer(IK) , intent(in) :: s1, s2, s3
6474 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
6475 type(rngf_type) , intent(inout) :: rng
6476 end function
6477#endif
6478
6479#if SK3_ENABLED
6480 impure module function getUnifRandRNGFLU_D3_SK3(rng, lb, ub, s1, s2, s3) result(rand)
6481#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6482 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_SK3
6483#endif
6484 use pm_kind, only: SKG => SK3
6485 character(*,SKG) , intent(in) :: lb, ub
6486 integer(IK) , intent(in) :: s1, s2, s3
6487 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
6488 type(rngf_type) , intent(inout) :: rng
6489 end function
6490#endif
6491
6492#if SK2_ENABLED
6493 impure module function getUnifRandRNGFLU_D3_SK2(rng, lb, ub, s1, s2, s3) result(rand)
6494#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6495 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_SK2
6496#endif
6497 use pm_kind, only: SKG => SK2
6498 character(*,SKG) , intent(in) :: lb, ub
6499 integer(IK) , intent(in) :: s1, s2, s3
6500 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
6501 type(rngf_type) , intent(inout) :: rng
6502 end function
6503#endif
6504
6505#if SK1_ENABLED
6506 impure module function getUnifRandRNGFLU_D3_SK1(rng, lb, ub, s1, s2, s3) result(rand)
6507#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6508 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_SK1
6509#endif
6510 use pm_kind, only: SKG => SK1
6511 character(*,SKG) , intent(in) :: lb, ub
6512 integer(IK) , intent(in) :: s1, s2, s3
6513 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
6514 type(rngf_type) , intent(inout) :: rng
6515 end function
6516#endif
6517
6518 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6519
6520#if IK5_ENABLED
6521 impure module function getUnifRandRNGFLU_D3_IK5(rng, lb, ub, s1, s2, s3) result(rand)
6522#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6523 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_IK5
6524#endif
6525 use pm_kind, only: IKG => IK5
6526 integer(IKG) , intent(in) :: lb, ub
6527 integer(IK) , intent(in) :: s1, s2, s3
6528 integer(IKG) :: rand(s1, s2, s3)
6529 type(rngf_type) , intent(inout) :: rng
6530 end function
6531#endif
6532
6533#if IK4_ENABLED
6534 impure module function getUnifRandRNGFLU_D3_IK4(rng, lb, ub, s1, s2, s3) result(rand)
6535#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6536 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_IK4
6537#endif
6538 use pm_kind, only: IKG => IK4
6539 integer(IKG) , intent(in) :: lb, ub
6540 integer(IK) , intent(in) :: s1, s2, s3
6541 integer(IKG) :: rand(s1, s2, s3)
6542 type(rngf_type) , intent(inout) :: rng
6543 end function
6544#endif
6545
6546#if IK3_ENABLED
6547 impure module function getUnifRandRNGFLU_D3_IK3(rng, lb, ub, s1, s2, s3) result(rand)
6548#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6549 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_IK3
6550#endif
6551 use pm_kind, only: IKG => IK3
6552 integer(IKG) , intent(in) :: lb, ub
6553 integer(IK) , intent(in) :: s1, s2, s3
6554 integer(IKG) :: rand(s1, s2, s3)
6555 type(rngf_type) , intent(inout) :: rng
6556 end function
6557#endif
6558
6559#if IK2_ENABLED
6560 impure module function getUnifRandRNGFLU_D3_IK2(rng, lb, ub, s1, s2, s3) result(rand)
6561#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6562 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_IK2
6563#endif
6564 use pm_kind, only: IKG => IK2
6565 integer(IKG) , intent(in) :: lb, ub
6566 integer(IK) , intent(in) :: s1, s2, s3
6567 integer(IKG) :: rand(s1, s2, s3)
6568 type(rngf_type) , intent(inout) :: rng
6569 end function
6570#endif
6571
6572#if IK1_ENABLED
6573 impure module function getUnifRandRNGFLU_D3_IK1(rng, lb, ub, s1, s2, s3) result(rand)
6574#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6575 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_IK1
6576#endif
6577 use pm_kind, only: IKG => IK1
6578 integer(IKG) , intent(in) :: lb, ub
6579 integer(IK) , intent(in) :: s1, s2, s3
6580 integer(IKG) :: rand(s1, s2, s3)
6581 type(rngf_type) , intent(inout) :: rng
6582 end function
6583#endif
6584
6585 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6586
6587#if LK5_ENABLED
6588 impure module function getUnifRandRNGFLU_D3_LK5(rng, lb, ub, s1, s2, s3) result(rand)
6589#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6590 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_LK5
6591#endif
6592 use pm_kind, only: LKG => LK5
6593 logical(LKG) , intent(in) :: lb, ub
6594 integer(IK) , intent(in) :: s1, s2, s3
6595 logical(LKG) :: rand(s1, s2, s3)
6596 type(rngf_type) , intent(inout) :: rng
6597 end function
6598#endif
6599
6600#if LK4_ENABLED
6601 impure module function getUnifRandRNGFLU_D3_LK4(rng, lb, ub, s1, s2, s3) result(rand)
6602#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6603 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_LK4
6604#endif
6605 use pm_kind, only: LKG => LK4
6606 logical(LKG) , intent(in) :: lb, ub
6607 integer(IK) , intent(in) :: s1, s2, s3
6608 logical(LKG) :: rand(s1, s2, s3)
6609 type(rngf_type) , intent(inout) :: rng
6610 end function
6611#endif
6612
6613#if LK3_ENABLED
6614 impure module function getUnifRandRNGFLU_D3_LK3(rng, lb, ub, s1, s2, s3) result(rand)
6615#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6616 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_LK3
6617#endif
6618 use pm_kind, only: LKG => LK3
6619 logical(LKG) , intent(in) :: lb, ub
6620 integer(IK) , intent(in) :: s1, s2, s3
6621 logical(LKG) :: rand(s1, s2, s3)
6622 type(rngf_type) , intent(inout) :: rng
6623 end function
6624#endif
6625
6626#if LK2_ENABLED
6627 impure module function getUnifRandRNGFLU_D3_LK2(rng, lb, ub, s1, s2, s3) result(rand)
6628#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6629 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_LK2
6630#endif
6631 use pm_kind, only: LKG => LK2
6632 logical(LKG) , intent(in) :: lb, ub
6633 integer(IK) , intent(in) :: s1, s2, s3
6634 logical(LKG) :: rand(s1, s2, s3)
6635 type(rngf_type) , intent(inout) :: rng
6636 end function
6637#endif
6638
6639#if LK1_ENABLED
6640 impure module function getUnifRandRNGFLU_D3_LK1(rng, lb, ub, s1, s2, s3) result(rand)
6641#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6642 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_LK1
6643#endif
6644 use pm_kind, only: LKG => LK1
6645 logical(LKG) , intent(in) :: lb, ub
6646 integer(IK) , intent(in) :: s1, s2, s3
6647 logical(LKG) :: rand(s1, s2, s3)
6648 type(rngf_type) , intent(inout) :: rng
6649 end function
6650#endif
6651
6652 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6653
6654#if CK5_ENABLED
6655 impure module function getUnifRandRNGFLU_D3_CK5(rng, lb, ub, s1, s2, s3) result(rand)
6656#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6657 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_CK5
6658#endif
6659 use pm_kind, only: CKG => CK5
6660 complex(CKG) , intent(in) :: lb, ub
6661 integer(IK) , intent(in) :: s1, s2, s3
6662 complex(CKG) :: rand(s1, s2, s3)
6663 type(rngf_type) , intent(inout) :: rng
6664 end function
6665#endif
6666
6667#if CK4_ENABLED
6668 impure module function getUnifRandRNGFLU_D3_CK4(rng, lb, ub, s1, s2, s3) result(rand)
6669#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6670 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_CK4
6671#endif
6672 use pm_kind, only: CKG => CK4
6673 complex(CKG) , intent(in) :: lb, ub
6674 integer(IK) , intent(in) :: s1, s2, s3
6675 complex(CKG) :: rand(s1, s2, s3)
6676 type(rngf_type) , intent(inout) :: rng
6677 end function
6678#endif
6679
6680#if CK3_ENABLED
6681 impure module function getUnifRandRNGFLU_D3_CK3(rng, lb, ub, s1, s2, s3) result(rand)
6682#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6683 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_CK3
6684#endif
6685 use pm_kind, only: CKG => CK3
6686 complex(CKG) , intent(in) :: lb, ub
6687 integer(IK) , intent(in) :: s1, s2, s3
6688 complex(CKG) :: rand(s1, s2, s3)
6689 type(rngf_type) , intent(inout) :: rng
6690 end function
6691#endif
6692
6693#if CK2_ENABLED
6694 impure module function getUnifRandRNGFLU_D3_CK2(rng, lb, ub, s1, s2, s3) result(rand)
6695#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6696 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_CK2
6697#endif
6698 use pm_kind, only: CKG => CK2
6699 complex(CKG) , intent(in) :: lb, ub
6700 integer(IK) , intent(in) :: s1, s2, s3
6701 complex(CKG) :: rand(s1, s2, s3)
6702 type(rngf_type) , intent(inout) :: rng
6703 end function
6704#endif
6705
6706#if CK1_ENABLED
6707 impure module function getUnifRandRNGFLU_D3_CK1(rng, lb, ub, s1, s2, s3) result(rand)
6708#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6709 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_CK1
6710#endif
6711 use pm_kind, only: CKG => CK1
6712 complex(CKG) , intent(in) :: lb, ub
6713 integer(IK) , intent(in) :: s1, s2, s3
6714 complex(CKG) :: rand(s1, s2, s3)
6715 type(rngf_type) , intent(inout) :: rng
6716 end function
6717#endif
6718
6719 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6720
6721#if RK5_ENABLED
6722 impure module function getUnifRandRNGFLU_D3_RK5(rng, lb, ub, s1, s2, s3) result(rand)
6723#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6724 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_RK5
6725#endif
6726 use pm_kind, only: RKG => RK5
6727 real(RKG) , intent(in) :: lb, ub
6728 integer(IK) , intent(in) :: s1, s2, s3
6729 real(RKG) :: rand(s1, s2, s3)
6730 type(rngf_type) , intent(inout) :: rng
6731 end function
6732
6733#endif
6734
6735#if RK4_ENABLED
6736 impure module function getUnifRandRNGFLU_D3_RK4(rng, lb, ub, s1, s2, s3) result(rand)
6737#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6738 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_RK4
6739#endif
6740 use pm_kind, only: RKG => RK4
6741 real(RKG) , intent(in) :: lb, ub
6742 integer(IK) , intent(in) :: s1, s2, s3
6743 real(RKG) :: rand(s1, s2, s3)
6744 type(rngf_type) , intent(inout) :: rng
6745 end function
6746
6747#endif
6748
6749#if RK3_ENABLED
6750 impure module function getUnifRandRNGFLU_D3_RK3(rng, lb, ub, s1, s2, s3) result(rand)
6751#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6752 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_RK3
6753#endif
6754 use pm_kind, only: RKG => RK3
6755 real(RKG) , intent(in) :: lb, ub
6756 integer(IK) , intent(in) :: s1, s2, s3
6757 real(RKG) :: rand(s1, s2, s3)
6758 type(rngf_type) , intent(inout) :: rng
6759 end function
6760
6761#endif
6762
6763#if RK2_ENABLED
6764 impure module function getUnifRandRNGFLU_D3_RK2(rng, lb, ub, s1, s2, s3) result(rand)
6765#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6766 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_RK2
6767#endif
6768 use pm_kind, only: RKG => RK2
6769 real(RKG) , intent(in) :: lb, ub
6770 integer(IK) , intent(in) :: s1, s2, s3
6771 real(RKG) :: rand(s1, s2, s3)
6772 type(rngf_type) , intent(inout) :: rng
6773 end function
6774#endif
6775
6776#if RK1_ENABLED
6777 impure module function getUnifRandRNGFLU_D3_RK1(rng, lb, ub, s1, s2, s3) result(rand)
6778#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6779 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGFLU_D3_RK1
6780#endif
6781 use pm_kind, only: RKG => RK1
6782 real(RKG) , intent(in) :: lb, ub
6783 integer(IK) , intent(in) :: s1, s2, s3
6784 real(RKG) :: rand(s1, s2, s3)
6785 type(rngf_type) , intent(inout) :: rng
6786 end function
6787#endif
6788
6789 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6790
6791 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6792 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6793 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6794
6795 end interface
6796
6797 ! RNGS
6798
6799 interface getUnifRand
6800
6801 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6802 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6803 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6804
6805 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6806
6807 impure module function getUnifRandRNGSDD_D0_LK(rng) result(rand)
6808#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6809 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSDD_D0_LK
6810#endif
6811 use pm_kind, only: LKG => LK
6812 logical(LKG) :: rand
6813 type(splitmix64_type) , intent(inout) :: rng
6814 end function
6815
6816 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6817
6818 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6819 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6820 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6821
6822 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6823
6824#if SK5_ENABLED
6825 impure elemental module function getUnifRandRNGSLU_D0_SK5(rng, lb, ub) result(rand)
6826#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6827 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_SK5
6828#endif
6829 use pm_kind, only: SKG => SK5
6830 character(*,SKG) , intent(in) :: lb, ub
6831 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
6832 type(splitmix64_type) , intent(inout) :: rng
6833 end function
6834#endif
6835
6836#if SK4_ENABLED
6837 impure elemental module function getUnifRandRNGSLU_D0_SK4(rng, lb, ub) result(rand)
6838#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6839 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_SK4
6840#endif
6841 use pm_kind, only: SKG => SK4
6842 character(*,SKG) , intent(in) :: lb, ub
6843 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
6844 type(splitmix64_type) , intent(inout) :: rng
6845 end function
6846#endif
6847
6848#if SK3_ENABLED
6849 impure elemental module function getUnifRandRNGSLU_D0_SK3(rng, lb, ub) result(rand)
6850#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6851 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_SK3
6852#endif
6853 use pm_kind, only: SKG => SK3
6854 character(*,SKG) , intent(in) :: lb, ub
6855 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
6856 type(splitmix64_type) , intent(inout) :: rng
6857 end function
6858#endif
6859
6860#if SK2_ENABLED
6861 impure elemental module function getUnifRandRNGSLU_D0_SK2(rng, lb, ub) result(rand)
6862#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6863 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_SK2
6864#endif
6865 use pm_kind, only: SKG => SK2
6866 character(*,SKG) , intent(in) :: lb, ub
6867 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
6868 type(splitmix64_type) , intent(inout) :: rng
6869 end function
6870#endif
6871
6872#if SK1_ENABLED
6873 impure elemental module function getUnifRandRNGSLU_D0_SK1(rng, lb, ub) result(rand)
6874#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6875 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_SK1
6876#endif
6877 use pm_kind, only: SKG => SK1
6878 character(*,SKG) , intent(in) :: lb, ub
6879 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
6880 type(splitmix64_type) , intent(inout) :: rng
6881 end function
6882#endif
6883
6884 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6885
6886#if IK5_ENABLED
6887 impure elemental module function getUnifRandRNGSLU_D0_IK5(rng, lb, ub) result(rand)
6888#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6889 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_IK5
6890#endif
6891 use pm_kind, only: IKG => IK5
6892 integer(IKG) , intent(in) :: lb, ub
6893 integer(IKG) :: rand
6894 type(splitmix64_type) , intent(inout) :: rng
6895 end function
6896#endif
6897
6898#if IK4_ENABLED
6899 impure elemental module function getUnifRandRNGSLU_D0_IK4(rng, lb, ub) result(rand)
6900#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6901 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_IK4
6902#endif
6903 use pm_kind, only: IKG => IK4
6904 integer(IKG) , intent(in) :: lb, ub
6905 integer(IKG) :: rand
6906 type(splitmix64_type) , intent(inout) :: rng
6907 end function
6908#endif
6909
6910#if IK3_ENABLED
6911 impure elemental module function getUnifRandRNGSLU_D0_IK3(rng, lb, ub) result(rand)
6912#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6913 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_IK3
6914#endif
6915 use pm_kind, only: IKG => IK3
6916 integer(IKG) , intent(in) :: lb, ub
6917 integer(IKG) :: rand
6918 type(splitmix64_type) , intent(inout) :: rng
6919 end function
6920#endif
6921
6922#if IK2_ENABLED
6923 impure elemental module function getUnifRandRNGSLU_D0_IK2(rng, lb, ub) result(rand)
6924#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6925 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_IK2
6926#endif
6927 use pm_kind, only: IKG => IK2
6928 integer(IKG) , intent(in) :: lb, ub
6929 integer(IKG) :: rand
6930 type(splitmix64_type) , intent(inout) :: rng
6931 end function
6932#endif
6933
6934#if IK1_ENABLED
6935 impure elemental module function getUnifRandRNGSLU_D0_IK1(rng, lb, ub) result(rand)
6936#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6937 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_IK1
6938#endif
6939 use pm_kind, only: IKG => IK1
6940 integer(IKG) , intent(in) :: lb, ub
6941 integer(IKG) :: rand
6942 type(splitmix64_type) , intent(inout) :: rng
6943 end function
6944#endif
6945
6946 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6947
6948#if LK5_ENABLED
6949 impure elemental module function getUnifRandRNGSLU_D0_LK5(rng, lb, ub) result(rand)
6950#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6951 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_LK5
6952#endif
6953 use pm_kind, only: LKG => LK5
6954 logical(LKG) , intent(in) :: lb, ub
6955 logical(LKG) :: rand
6956 type(splitmix64_type) , intent(inout) :: rng
6957 end function
6958#endif
6959
6960#if LK4_ENABLED
6961 impure elemental module function getUnifRandRNGSLU_D0_LK4(rng, lb, ub) result(rand)
6962#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6963 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_LK4
6964#endif
6965 use pm_kind, only: LKG => LK4
6966 logical(LKG) , intent(in) :: lb, ub
6967 logical(LKG) :: rand
6968 type(splitmix64_type) , intent(inout) :: rng
6969 end function
6970#endif
6971
6972#if LK3_ENABLED
6973 impure elemental module function getUnifRandRNGSLU_D0_LK3(rng, lb, ub) result(rand)
6974#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6975 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_LK3
6976#endif
6977 use pm_kind, only: LKG => LK3
6978 logical(LKG) , intent(in) :: lb, ub
6979 logical(LKG) :: rand
6980 type(splitmix64_type) , intent(inout) :: rng
6981 end function
6982#endif
6983
6984#if LK2_ENABLED
6985 impure elemental module function getUnifRandRNGSLU_D0_LK2(rng, lb, ub) result(rand)
6986#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6987 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_LK2
6988#endif
6989 use pm_kind, only: LKG => LK2
6990 logical(LKG) , intent(in) :: lb, ub
6991 logical(LKG) :: rand
6992 type(splitmix64_type) , intent(inout) :: rng
6993 end function
6994#endif
6995
6996#if LK1_ENABLED
6997 impure elemental module function getUnifRandRNGSLU_D0_LK1(rng, lb, ub) result(rand)
6998#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6999 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_LK1
7000#endif
7001 use pm_kind, only: LKG => LK1
7002 logical(LKG) , intent(in) :: lb, ub
7003 logical(LKG) :: rand
7004 type(splitmix64_type) , intent(inout) :: rng
7005 end function
7006#endif
7007
7008 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7009
7010#if CK5_ENABLED
7011 impure elemental module function getUnifRandRNGSLU_D0_CK5(rng, lb, ub) result(rand)
7012#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7013 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_CK5
7014#endif
7015 use pm_kind, only: CKG => CK5
7016 complex(CKG) , intent(in) :: lb, ub
7017 complex(CKG) :: rand
7018 type(splitmix64_type) , intent(inout) :: rng
7019 end function
7020#endif
7021
7022#if CK4_ENABLED
7023 impure elemental module function getUnifRandRNGSLU_D0_CK4(rng, lb, ub) result(rand)
7024#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7025 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_CK4
7026#endif
7027 use pm_kind, only: CKG => CK4
7028 complex(CKG) , intent(in) :: lb, ub
7029 complex(CKG) :: rand
7030 type(splitmix64_type) , intent(inout) :: rng
7031 end function
7032#endif
7033
7034#if CK3_ENABLED
7035 impure elemental module function getUnifRandRNGSLU_D0_CK3(rng, lb, ub) result(rand)
7036#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7037 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_CK3
7038#endif
7039 use pm_kind, only: CKG => CK3
7040 complex(CKG) , intent(in) :: lb, ub
7041 complex(CKG) :: rand
7042 type(splitmix64_type) , intent(inout) :: rng
7043 end function
7044#endif
7045
7046#if CK2_ENABLED
7047 impure elemental module function getUnifRandRNGSLU_D0_CK2(rng, lb, ub) result(rand)
7048#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7049 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_CK2
7050#endif
7051 use pm_kind, only: CKG => CK2
7052 complex(CKG) , intent(in) :: lb, ub
7053 complex(CKG) :: rand
7054 type(splitmix64_type) , intent(inout) :: rng
7055 end function
7056#endif
7057
7058#if CK1_ENABLED
7059 impure elemental module function getUnifRandRNGSLU_D0_CK1(rng, lb, ub) result(rand)
7060#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7061 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_CK1
7062#endif
7063 use pm_kind, only: CKG => CK1
7064 complex(CKG) , intent(in) :: lb, ub
7065 complex(CKG) :: rand
7066 type(splitmix64_type) , intent(inout) :: rng
7067 end function
7068#endif
7069
7070 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7071
7072#if RK5_ENABLED
7073 impure elemental module function getUnifRandRNGSLU_D0_RK5(rng, lb, ub) result(rand)
7074#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7075 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_RK5
7076#endif
7077 use pm_kind, only: RKG => RK5
7078 real(RKG) , intent(in) :: lb, ub
7079 real(RKG) :: rand
7080 type(splitmix64_type) , intent(inout) :: rng
7081 end function
7082#endif
7083
7084#if RK4_ENABLED
7085 impure elemental module function getUnifRandRNGSLU_D0_RK4(rng, lb, ub) result(rand)
7086#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7087 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_RK4
7088#endif
7089 use pm_kind, only: RKG => RK4
7090 real(RKG) , intent(in) :: lb, ub
7091 real(RKG) :: rand
7092 type(splitmix64_type) , intent(inout) :: rng
7093 end function
7094#endif
7095
7096#if RK3_ENABLED
7097 impure elemental module function getUnifRandRNGSLU_D0_RK3(rng, lb, ub) result(rand)
7098#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7099 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_RK3
7100#endif
7101 use pm_kind, only: RKG => RK3
7102 real(RKG) , intent(in) :: lb, ub
7103 real(RKG) :: rand
7104 type(splitmix64_type) , intent(inout) :: rng
7105 end function
7106#endif
7107
7108#if RK2_ENABLED
7109 impure elemental module function getUnifRandRNGSLU_D0_RK2(rng, lb, ub) result(rand)
7110#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7111 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_RK2
7112#endif
7113 use pm_kind, only: RKG => RK2
7114 real(RKG) , intent(in) :: lb, ub
7115 real(RKG) :: rand
7116 type(splitmix64_type) , intent(inout) :: rng
7117 end function
7118#endif
7119
7120#if RK1_ENABLED
7121 impure elemental module function getUnifRandRNGSLU_D0_RK1(rng, lb, ub) result(rand)
7122#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7123 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D0_RK1
7124#endif
7125 use pm_kind, only: RKG => RK1
7126 real(RKG) , intent(in) :: lb, ub
7127 real(RKG) :: rand
7128 type(splitmix64_type) , intent(inout) :: rng
7129 end function
7130#endif
7131
7132 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7133
7134 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7135 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7136 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7137
7138 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7139
7140#if SK5_ENABLED
7141 impure module function getUnifRandRNGSLU_D1_SK5(rng, lb, ub, s1) result(rand)
7142#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7143 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_SK5
7144#endif
7145 use pm_kind, only: SKG => SK5
7146 character(*,SKG) , intent(in) :: lb, ub
7147 integer(IK) , intent(in) :: s1
7148 character(len(lb,IK),SKG) :: rand(s1)
7149 type(splitmix64_type) , intent(inout) :: rng
7150 end function
7151#endif
7152
7153#if SK4_ENABLED
7154 impure module function getUnifRandRNGSLU_D1_SK4(rng, lb, ub, s1) result(rand)
7155#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7156 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_SK4
7157#endif
7158 use pm_kind, only: SKG => SK4
7159 character(*,SKG) , intent(in) :: lb, ub
7160 integer(IK) , intent(in) :: s1
7161 character(len(lb,IK),SKG) :: rand(s1)
7162 type(splitmix64_type) , intent(inout) :: rng
7163 end function
7164#endif
7165
7166#if SK3_ENABLED
7167 impure module function getUnifRandRNGSLU_D1_SK3(rng, lb, ub, s1) result(rand)
7168#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7169 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_SK3
7170#endif
7171 use pm_kind, only: SKG => SK3
7172 character(*,SKG) , intent(in) :: lb, ub
7173 integer(IK) , intent(in) :: s1
7174 character(len(lb,IK),SKG) :: rand(s1)
7175 type(splitmix64_type) , intent(inout) :: rng
7176 end function
7177#endif
7178
7179#if SK2_ENABLED
7180 impure module function getUnifRandRNGSLU_D1_SK2(rng, lb, ub, s1) result(rand)
7181#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7182 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_SK2
7183#endif
7184 use pm_kind, only: SKG => SK2
7185 character(*,SKG) , intent(in) :: lb, ub
7186 integer(IK) , intent(in) :: s1
7187 character(len(lb,IK),SKG) :: rand(s1)
7188 type(splitmix64_type) , intent(inout) :: rng
7189 end function
7190#endif
7191
7192#if SK1_ENABLED
7193 impure module function getUnifRandRNGSLU_D1_SK1(rng, lb, ub, s1) result(rand)
7194#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7195 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_SK1
7196#endif
7197 use pm_kind, only: SKG => SK1
7198 character(*,SKG) , intent(in) :: lb, ub
7199 integer(IK) , intent(in) :: s1
7200 character(len(lb,IK),SKG) :: rand(s1)
7201 type(splitmix64_type) , intent(inout) :: rng
7202 end function
7203#endif
7204
7205 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7206
7207#if IK5_ENABLED
7208 impure module function getUnifRandRNGSLU_D1_IK5(rng, lb, ub, s1) result(rand)
7209#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7210 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_IK5
7211#endif
7212 use pm_kind, only: IKG => IK5
7213 integer(IKG) , intent(in) :: lb, ub
7214 integer(IK) , intent(in) :: s1
7215 integer(IKG) :: rand(s1)
7216 type(splitmix64_type) , intent(inout) :: rng
7217 end function
7218#endif
7219
7220#if IK4_ENABLED
7221 impure module function getUnifRandRNGSLU_D1_IK4(rng, lb, ub, s1) result(rand)
7222#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7223 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_IK4
7224#endif
7225 use pm_kind, only: IKG => IK4
7226 integer(IKG) , intent(in) :: lb, ub
7227 integer(IK) , intent(in) :: s1
7228 integer(IKG) :: rand(s1)
7229 type(splitmix64_type) , intent(inout) :: rng
7230 end function
7231#endif
7232
7233#if IK3_ENABLED
7234 impure module function getUnifRandRNGSLU_D1_IK3(rng, lb, ub, s1) result(rand)
7235#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7236 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_IK3
7237#endif
7238 use pm_kind, only: IKG => IK3
7239 integer(IKG) , intent(in) :: lb, ub
7240 integer(IK) , intent(in) :: s1
7241 integer(IKG) :: rand(s1)
7242 type(splitmix64_type) , intent(inout) :: rng
7243 end function
7244#endif
7245
7246#if IK2_ENABLED
7247 impure module function getUnifRandRNGSLU_D1_IK2(rng, lb, ub, s1) result(rand)
7248#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7249 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_IK2
7250#endif
7251 use pm_kind, only: IKG => IK2
7252 integer(IKG) , intent(in) :: lb, ub
7253 integer(IK) , intent(in) :: s1
7254 integer(IKG) :: rand(s1)
7255 type(splitmix64_type) , intent(inout) :: rng
7256 end function
7257#endif
7258
7259#if IK1_ENABLED
7260 impure module function getUnifRandRNGSLU_D1_IK1(rng, lb, ub, s1) result(rand)
7261#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7262 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_IK1
7263#endif
7264 use pm_kind, only: IKG => IK1
7265 integer(IKG) , intent(in) :: lb, ub
7266 integer(IK) , intent(in) :: s1
7267 integer(IKG) :: rand(s1)
7268 type(splitmix64_type) , intent(inout) :: rng
7269 end function
7270#endif
7271
7272 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7273
7274#if LK5_ENABLED
7275 impure module function getUnifRandRNGSLU_D1_LK5(rng, lb, ub, s1) result(rand)
7276#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7277 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_LK5
7278#endif
7279 use pm_kind, only: LKG => LK5
7280 logical(LKG) , intent(in) :: lb, ub
7281 integer(IK) , intent(in) :: s1
7282 logical(LKG) :: rand(s1)
7283 type(splitmix64_type) , intent(inout) :: rng
7284 end function
7285#endif
7286
7287#if LK4_ENABLED
7288 impure module function getUnifRandRNGSLU_D1_LK4(rng, lb, ub, s1) result(rand)
7289#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7290 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_LK4
7291#endif
7292 use pm_kind, only: LKG => LK4
7293 logical(LKG) , intent(in) :: lb, ub
7294 integer(IK) , intent(in) :: s1
7295 logical(LKG) :: rand(s1)
7296 type(splitmix64_type) , intent(inout) :: rng
7297 end function
7298#endif
7299
7300#if LK3_ENABLED
7301 impure module function getUnifRandRNGSLU_D1_LK3(rng, lb, ub, s1) result(rand)
7302#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7303 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_LK3
7304#endif
7305 use pm_kind, only: LKG => LK3
7306 logical(LKG) , intent(in) :: lb, ub
7307 integer(IK) , intent(in) :: s1
7308 logical(LKG) :: rand(s1)
7309 type(splitmix64_type) , intent(inout) :: rng
7310 end function
7311#endif
7312
7313#if LK2_ENABLED
7314 impure module function getUnifRandRNGSLU_D1_LK2(rng, lb, ub, s1) result(rand)
7315#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7316 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_LK2
7317#endif
7318 use pm_kind, only: LKG => LK2
7319 logical(LKG) , intent(in) :: lb, ub
7320 integer(IK) , intent(in) :: s1
7321 logical(LKG) :: rand(s1)
7322 type(splitmix64_type) , intent(inout) :: rng
7323 end function
7324#endif
7325
7326#if LK1_ENABLED
7327 impure module function getUnifRandRNGSLU_D1_LK1(rng, lb, ub, s1) result(rand)
7328#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7329 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_LK1
7330#endif
7331 use pm_kind, only: LKG => LK1
7332 logical(LKG) , intent(in) :: lb, ub
7333 integer(IK) , intent(in) :: s1
7334 logical(LKG) :: rand(s1)
7335 type(splitmix64_type) , intent(inout) :: rng
7336 end function
7337#endif
7338
7339 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7340
7341#if CK5_ENABLED
7342 impure module function getUnifRandRNGSLU_D1_CK5(rng, lb, ub, s1) result(rand)
7343#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7344 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_CK5
7345#endif
7346 use pm_kind, only: CKG => CK5
7347 complex(CKG) , intent(in) :: lb, ub
7348 integer(IK) , intent(in) :: s1
7349 complex(CKG) :: rand(s1)
7350 type(splitmix64_type) , intent(inout) :: rng
7351 end function
7352#endif
7353
7354#if CK4_ENABLED
7355 impure module function getUnifRandRNGSLU_D1_CK4(rng, lb, ub, s1) result(rand)
7356#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7357 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_CK4
7358#endif
7359 use pm_kind, only: CKG => CK4
7360 complex(CKG) , intent(in) :: lb, ub
7361 integer(IK) , intent(in) :: s1
7362 complex(CKG) :: rand(s1)
7363 type(splitmix64_type) , intent(inout) :: rng
7364 end function
7365#endif
7366
7367#if CK3_ENABLED
7368 impure module function getUnifRandRNGSLU_D1_CK3(rng, lb, ub, s1) result(rand)
7369#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7370 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_CK3
7371#endif
7372 use pm_kind, only: CKG => CK3
7373 complex(CKG) , intent(in) :: lb, ub
7374 integer(IK) , intent(in) :: s1
7375 complex(CKG) :: rand(s1)
7376 type(splitmix64_type) , intent(inout) :: rng
7377 end function
7378#endif
7379
7380#if CK2_ENABLED
7381 impure module function getUnifRandRNGSLU_D1_CK2(rng, lb, ub, s1) result(rand)
7382#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7383 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_CK2
7384#endif
7385 use pm_kind, only: CKG => CK2
7386 complex(CKG) , intent(in) :: lb, ub
7387 integer(IK) , intent(in) :: s1
7388 complex(CKG) :: rand(s1)
7389 type(splitmix64_type) , intent(inout) :: rng
7390 end function
7391#endif
7392
7393#if CK1_ENABLED
7394 impure module function getUnifRandRNGSLU_D1_CK1(rng, lb, ub, s1) result(rand)
7395#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7396 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_CK1
7397#endif
7398 use pm_kind, only: CKG => CK1
7399 complex(CKG) , intent(in) :: lb, ub
7400 integer(IK) , intent(in) :: s1
7401 complex(CKG) :: rand(s1)
7402 type(splitmix64_type) , intent(inout) :: rng
7403 end function
7404#endif
7405
7406 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7407
7408#if RK5_ENABLED
7409 impure module function getUnifRandRNGSLU_D1_RK5(rng, lb, ub, s1) result(rand)
7410#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7411 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_RK5
7412#endif
7413 use pm_kind, only: RKG => RK5
7414 real(RKG) , intent(in) :: lb, ub
7415 integer(IK) , intent(in) :: s1
7416 real(RKG) :: rand(s1)
7417 type(splitmix64_type) , intent(inout) :: rng
7418 end function
7419
7420#endif
7421
7422#if RK4_ENABLED
7423 impure module function getUnifRandRNGSLU_D1_RK4(rng, lb, ub, s1) result(rand)
7424#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7425 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_RK4
7426#endif
7427 use pm_kind, only: RKG => RK4
7428 real(RKG) , intent(in) :: lb, ub
7429 integer(IK) , intent(in) :: s1
7430 real(RKG) :: rand(s1)
7431 type(splitmix64_type) , intent(inout) :: rng
7432 end function
7433
7434#endif
7435
7436#if RK3_ENABLED
7437 impure module function getUnifRandRNGSLU_D1_RK3(rng, lb, ub, s1) result(rand)
7438#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7439 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_RK3
7440#endif
7441 use pm_kind, only: RKG => RK3
7442 real(RKG) , intent(in) :: lb, ub
7443 integer(IK) , intent(in) :: s1
7444 real(RKG) :: rand(s1)
7445 type(splitmix64_type) , intent(inout) :: rng
7446 end function
7447
7448#endif
7449
7450#if RK2_ENABLED
7451 impure module function getUnifRandRNGSLU_D1_RK2(rng, lb, ub, s1) result(rand)
7452#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7453 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_RK2
7454#endif
7455 use pm_kind, only: RKG => RK2
7456 real(RKG) , intent(in) :: lb, ub
7457 integer(IK) , intent(in) :: s1
7458 real(RKG) :: rand(s1)
7459 type(splitmix64_type) , intent(inout) :: rng
7460 end function
7461#endif
7462
7463#if RK1_ENABLED
7464 impure module function getUnifRandRNGSLU_D1_RK1(rng, lb, ub, s1) result(rand)
7465#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7466 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D1_RK1
7467#endif
7468 use pm_kind, only: RKG => RK1
7469 real(RKG) , intent(in) :: lb, ub
7470 integer(IK) , intent(in) :: s1
7471 real(RKG) :: rand(s1)
7472 type(splitmix64_type) , intent(inout) :: rng
7473 end function
7474#endif
7475
7476 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7477
7478 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7479 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7480 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7481
7482 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7483
7484#if SK5_ENABLED
7485 impure module function getUnifRandRNGSLU_D2_SK5(rng, lb, ub, s1, s2) result(rand)
7486#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7487 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_SK5
7488#endif
7489 use pm_kind, only: SKG => SK5
7490 character(*,SKG) , intent(in) :: lb, ub
7491 integer(IK) , intent(in) :: s1, s2
7492 character(len(lb,IK),SKG) :: rand(s1, s2)
7493 type(splitmix64_type) , intent(inout) :: rng
7494 end function
7495#endif
7496
7497#if SK4_ENABLED
7498 impure module function getUnifRandRNGSLU_D2_SK4(rng, lb, ub, s1, s2) result(rand)
7499#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7500 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_SK4
7501#endif
7502 use pm_kind, only: SKG => SK4
7503 character(*,SKG) , intent(in) :: lb, ub
7504 integer(IK) , intent(in) :: s1, s2
7505 character(len(lb,IK),SKG) :: rand(s1, s2)
7506 type(splitmix64_type) , intent(inout) :: rng
7507 end function
7508#endif
7509
7510#if SK3_ENABLED
7511 impure module function getUnifRandRNGSLU_D2_SK3(rng, lb, ub, s1, s2) result(rand)
7512#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7513 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_SK3
7514#endif
7515 use pm_kind, only: SKG => SK3
7516 character(*,SKG) , intent(in) :: lb, ub
7517 integer(IK) , intent(in) :: s1, s2
7518 character(len(lb,IK),SKG) :: rand(s1, s2)
7519 type(splitmix64_type) , intent(inout) :: rng
7520 end function
7521#endif
7522
7523#if SK2_ENABLED
7524 impure module function getUnifRandRNGSLU_D2_SK2(rng, lb, ub, s1, s2) result(rand)
7525#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7526 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_SK2
7527#endif
7528 use pm_kind, only: SKG => SK2
7529 character(*,SKG) , intent(in) :: lb, ub
7530 integer(IK) , intent(in) :: s1, s2
7531 character(len(lb,IK),SKG) :: rand(s1, s2)
7532 type(splitmix64_type) , intent(inout) :: rng
7533 end function
7534#endif
7535
7536#if SK1_ENABLED
7537 impure module function getUnifRandRNGSLU_D2_SK1(rng, lb, ub, s1, s2) result(rand)
7538#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7539 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_SK1
7540#endif
7541 use pm_kind, only: SKG => SK1
7542 character(*,SKG) , intent(in) :: lb, ub
7543 integer(IK) , intent(in) :: s1, s2
7544 character(len(lb,IK),SKG) :: rand(s1, s2)
7545 type(splitmix64_type) , intent(inout) :: rng
7546 end function
7547#endif
7548
7549 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7550
7551#if IK5_ENABLED
7552 impure module function getUnifRandRNGSLU_D2_IK5(rng, lb, ub, s1, s2) result(rand)
7553#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7554 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_IK5
7555#endif
7556 use pm_kind, only: IKG => IK5
7557 integer(IKG) , intent(in) :: lb, ub
7558 integer(IK) , intent(in) :: s1, s2
7559 integer(IKG) :: rand(s1, s2)
7560 type(splitmix64_type) , intent(inout) :: rng
7561 end function
7562#endif
7563
7564#if IK4_ENABLED
7565 impure module function getUnifRandRNGSLU_D2_IK4(rng, lb, ub, s1, s2) result(rand)
7566#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7567 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_IK4
7568#endif
7569 use pm_kind, only: IKG => IK4
7570 integer(IKG) , intent(in) :: lb, ub
7571 integer(IK) , intent(in) :: s1, s2
7572 integer(IKG) :: rand(s1, s2)
7573 type(splitmix64_type) , intent(inout) :: rng
7574 end function
7575#endif
7576
7577#if IK3_ENABLED
7578 impure module function getUnifRandRNGSLU_D2_IK3(rng, lb, ub, s1, s2) result(rand)
7579#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7580 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_IK3
7581#endif
7582 use pm_kind, only: IKG => IK3
7583 integer(IKG) , intent(in) :: lb, ub
7584 integer(IK) , intent(in) :: s1, s2
7585 integer(IKG) :: rand(s1, s2)
7586 type(splitmix64_type) , intent(inout) :: rng
7587 end function
7588#endif
7589
7590#if IK2_ENABLED
7591 impure module function getUnifRandRNGSLU_D2_IK2(rng, lb, ub, s1, s2) result(rand)
7592#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7593 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_IK2
7594#endif
7595 use pm_kind, only: IKG => IK2
7596 integer(IKG) , intent(in) :: lb, ub
7597 integer(IK) , intent(in) :: s1, s2
7598 integer(IKG) :: rand(s1, s2)
7599 type(splitmix64_type) , intent(inout) :: rng
7600 end function
7601#endif
7602
7603#if IK1_ENABLED
7604 impure module function getUnifRandRNGSLU_D2_IK1(rng, lb, ub, s1, s2) result(rand)
7605#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7606 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_IK1
7607#endif
7608 use pm_kind, only: IKG => IK1
7609 integer(IKG) , intent(in) :: lb, ub
7610 integer(IK) , intent(in) :: s1, s2
7611 integer(IKG) :: rand(s1, s2)
7612 type(splitmix64_type) , intent(inout) :: rng
7613 end function
7614#endif
7615
7616 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7617
7618#if LK5_ENABLED
7619 impure module function getUnifRandRNGSLU_D2_LK5(rng, lb, ub, s1, s2) result(rand)
7620#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7621 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_LK5
7622#endif
7623 use pm_kind, only: LKG => LK5
7624 logical(LKG) , intent(in) :: lb, ub
7625 integer(IK) , intent(in) :: s1, s2
7626 logical(LKG) :: rand(s1, s2)
7627 type(splitmix64_type) , intent(inout) :: rng
7628 end function
7629#endif
7630
7631#if LK4_ENABLED
7632 impure module function getUnifRandRNGSLU_D2_LK4(rng, lb, ub, s1, s2) result(rand)
7633#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7634 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_LK4
7635#endif
7636 use pm_kind, only: LKG => LK4
7637 logical(LKG) , intent(in) :: lb, ub
7638 integer(IK) , intent(in) :: s1, s2
7639 logical(LKG) :: rand(s1, s2)
7640 type(splitmix64_type) , intent(inout) :: rng
7641 end function
7642#endif
7643
7644#if LK3_ENABLED
7645 impure module function getUnifRandRNGSLU_D2_LK3(rng, lb, ub, s1, s2) result(rand)
7646#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7647 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_LK3
7648#endif
7649 use pm_kind, only: LKG => LK3
7650 logical(LKG) , intent(in) :: lb, ub
7651 integer(IK) , intent(in) :: s1, s2
7652 logical(LKG) :: rand(s1, s2)
7653 type(splitmix64_type) , intent(inout) :: rng
7654 end function
7655#endif
7656
7657#if LK2_ENABLED
7658 impure module function getUnifRandRNGSLU_D2_LK2(rng, lb, ub, s1, s2) result(rand)
7659#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7660 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_LK2
7661#endif
7662 use pm_kind, only: LKG => LK2
7663 logical(LKG) , intent(in) :: lb, ub
7664 integer(IK) , intent(in) :: s1, s2
7665 logical(LKG) :: rand(s1, s2)
7666 type(splitmix64_type) , intent(inout) :: rng
7667 end function
7668#endif
7669
7670#if LK1_ENABLED
7671 impure module function getUnifRandRNGSLU_D2_LK1(rng, lb, ub, s1, s2) result(rand)
7672#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7673 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_LK1
7674#endif
7675 use pm_kind, only: LKG => LK1
7676 logical(LKG) , intent(in) :: lb, ub
7677 integer(IK) , intent(in) :: s1, s2
7678 logical(LKG) :: rand(s1, s2)
7679 type(splitmix64_type) , intent(inout) :: rng
7680 end function
7681#endif
7682
7683 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7684
7685#if CK5_ENABLED
7686 impure module function getUnifRandRNGSLU_D2_CK5(rng, lb, ub, s1, s2) result(rand)
7687#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7688 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_CK5
7689#endif
7690 use pm_kind, only: CKG => CK5
7691 complex(CKG) , intent(in) :: lb, ub
7692 integer(IK) , intent(in) :: s1, s2
7693 complex(CKG) :: rand(s1, s2)
7694 type(splitmix64_type) , intent(inout) :: rng
7695 end function
7696#endif
7697
7698#if CK4_ENABLED
7699 impure module function getUnifRandRNGSLU_D2_CK4(rng, lb, ub, s1, s2) result(rand)
7700#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7701 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_CK4
7702#endif
7703 use pm_kind, only: CKG => CK4
7704 complex(CKG) , intent(in) :: lb, ub
7705 integer(IK) , intent(in) :: s1, s2
7706 complex(CKG) :: rand(s1, s2)
7707 type(splitmix64_type) , intent(inout) :: rng
7708 end function
7709#endif
7710
7711#if CK3_ENABLED
7712 impure module function getUnifRandRNGSLU_D2_CK3(rng, lb, ub, s1, s2) result(rand)
7713#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7714 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_CK3
7715#endif
7716 use pm_kind, only: CKG => CK3
7717 complex(CKG) , intent(in) :: lb, ub
7718 integer(IK) , intent(in) :: s1, s2
7719 complex(CKG) :: rand(s1, s2)
7720 type(splitmix64_type) , intent(inout) :: rng
7721 end function
7722#endif
7723
7724#if CK2_ENABLED
7725 impure module function getUnifRandRNGSLU_D2_CK2(rng, lb, ub, s1, s2) result(rand)
7726#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7727 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_CK2
7728#endif
7729 use pm_kind, only: CKG => CK2
7730 complex(CKG) , intent(in) :: lb, ub
7731 integer(IK) , intent(in) :: s1, s2
7732 complex(CKG) :: rand(s1, s2)
7733 type(splitmix64_type) , intent(inout) :: rng
7734 end function
7735#endif
7736
7737#if CK1_ENABLED
7738 impure module function getUnifRandRNGSLU_D2_CK1(rng, lb, ub, s1, s2) result(rand)
7739#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7740 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_CK1
7741#endif
7742 use pm_kind, only: CKG => CK1
7743 complex(CKG) , intent(in) :: lb, ub
7744 integer(IK) , intent(in) :: s1, s2
7745 complex(CKG) :: rand(s1, s2)
7746 type(splitmix64_type) , intent(inout) :: rng
7747 end function
7748#endif
7749
7750 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7751
7752#if RK5_ENABLED
7753 impure module function getUnifRandRNGSLU_D2_RK5(rng, lb, ub, s1, s2) result(rand)
7754#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7755 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_RK5
7756#endif
7757 use pm_kind, only: RKG => RK5
7758 real(RKG) , intent(in) :: lb, ub
7759 integer(IK) , intent(in) :: s1, s2
7760 real(RKG) :: rand(s1, s2)
7761 type(splitmix64_type) , intent(inout) :: rng
7762 end function
7763
7764#endif
7765
7766#if RK4_ENABLED
7767 impure module function getUnifRandRNGSLU_D2_RK4(rng, lb, ub, s1, s2) result(rand)
7768#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7769 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_RK4
7770#endif
7771 use pm_kind, only: RKG => RK4
7772 real(RKG) , intent(in) :: lb, ub
7773 integer(IK) , intent(in) :: s1, s2
7774 real(RKG) :: rand(s1, s2)
7775 type(splitmix64_type) , intent(inout) :: rng
7776 end function
7777
7778#endif
7779
7780#if RK3_ENABLED
7781 impure module function getUnifRandRNGSLU_D2_RK3(rng, lb, ub, s1, s2) result(rand)
7782#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7783 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_RK3
7784#endif
7785 use pm_kind, only: RKG => RK3
7786 real(RKG) , intent(in) :: lb, ub
7787 integer(IK) , intent(in) :: s1, s2
7788 real(RKG) :: rand(s1, s2)
7789 type(splitmix64_type) , intent(inout) :: rng
7790 end function
7791
7792#endif
7793
7794#if RK2_ENABLED
7795 impure module function getUnifRandRNGSLU_D2_RK2(rng, lb, ub, s1, s2) result(rand)
7796#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7797 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_RK2
7798#endif
7799 use pm_kind, only: RKG => RK2
7800 real(RKG) , intent(in) :: lb, ub
7801 integer(IK) , intent(in) :: s1, s2
7802 real(RKG) :: rand(s1, s2)
7803 type(splitmix64_type) , intent(inout) :: rng
7804 end function
7805#endif
7806
7807#if RK1_ENABLED
7808 impure module function getUnifRandRNGSLU_D2_RK1(rng, lb, ub, s1, s2) result(rand)
7809#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7810 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D2_RK1
7811#endif
7812 use pm_kind, only: RKG => RK1
7813 real(RKG) , intent(in) :: lb, ub
7814 integer(IK) , intent(in) :: s1, s2
7815 real(RKG) :: rand(s1, s2)
7816 type(splitmix64_type) , intent(inout) :: rng
7817 end function
7818#endif
7819
7820 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7821
7822 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7823 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7824 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7825
7826 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7827
7828#if SK5_ENABLED
7829 impure module function getUnifRandRNGSLU_D3_SK5(rng, lb, ub, s1, s2, s3) result(rand)
7830#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7831 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_SK5
7832#endif
7833 use pm_kind, only: SKG => SK5
7834 character(*,SKG) , intent(in) :: lb, ub
7835 integer(IK) , intent(in) :: s1, s2, s3
7836 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
7837 type(splitmix64_type) , intent(inout) :: rng
7838 end function
7839#endif
7840
7841#if SK4_ENABLED
7842 impure module function getUnifRandRNGSLU_D3_SK4(rng, lb, ub, s1, s2, s3) result(rand)
7843#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7844 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_SK4
7845#endif
7846 use pm_kind, only: SKG => SK4
7847 character(*,SKG) , intent(in) :: lb, ub
7848 integer(IK) , intent(in) :: s1, s2, s3
7849 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
7850 type(splitmix64_type) , intent(inout) :: rng
7851 end function
7852#endif
7853
7854#if SK3_ENABLED
7855 impure module function getUnifRandRNGSLU_D3_SK3(rng, lb, ub, s1, s2, s3) result(rand)
7856#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7857 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_SK3
7858#endif
7859 use pm_kind, only: SKG => SK3
7860 character(*,SKG) , intent(in) :: lb, ub
7861 integer(IK) , intent(in) :: s1, s2, s3
7862 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
7863 type(splitmix64_type) , intent(inout) :: rng
7864 end function
7865#endif
7866
7867#if SK2_ENABLED
7868 impure module function getUnifRandRNGSLU_D3_SK2(rng, lb, ub, s1, s2, s3) result(rand)
7869#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7870 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_SK2
7871#endif
7872 use pm_kind, only: SKG => SK2
7873 character(*,SKG) , intent(in) :: lb, ub
7874 integer(IK) , intent(in) :: s1, s2, s3
7875 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
7876 type(splitmix64_type) , intent(inout) :: rng
7877 end function
7878#endif
7879
7880#if SK1_ENABLED
7881 impure module function getUnifRandRNGSLU_D3_SK1(rng, lb, ub, s1, s2, s3) result(rand)
7882#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7883 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_SK1
7884#endif
7885 use pm_kind, only: SKG => SK1
7886 character(*,SKG) , intent(in) :: lb, ub
7887 integer(IK) , intent(in) :: s1, s2, s3
7888 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
7889 type(splitmix64_type) , intent(inout) :: rng
7890 end function
7891#endif
7892
7893 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7894
7895#if IK5_ENABLED
7896 impure module function getUnifRandRNGSLU_D3_IK5(rng, lb, ub, s1, s2, s3) result(rand)
7897#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7898 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_IK5
7899#endif
7900 use pm_kind, only: IKG => IK5
7901 integer(IKG) , intent(in) :: lb, ub
7902 integer(IK) , intent(in) :: s1, s2, s3
7903 integer(IKG) :: rand(s1, s2, s3)
7904 type(splitmix64_type) , intent(inout) :: rng
7905 end function
7906#endif
7907
7908#if IK4_ENABLED
7909 impure module function getUnifRandRNGSLU_D3_IK4(rng, lb, ub, s1, s2, s3) result(rand)
7910#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7911 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_IK4
7912#endif
7913 use pm_kind, only: IKG => IK4
7914 integer(IKG) , intent(in) :: lb, ub
7915 integer(IK) , intent(in) :: s1, s2, s3
7916 integer(IKG) :: rand(s1, s2, s3)
7917 type(splitmix64_type) , intent(inout) :: rng
7918 end function
7919#endif
7920
7921#if IK3_ENABLED
7922 impure module function getUnifRandRNGSLU_D3_IK3(rng, lb, ub, s1, s2, s3) result(rand)
7923#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7924 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_IK3
7925#endif
7926 use pm_kind, only: IKG => IK3
7927 integer(IKG) , intent(in) :: lb, ub
7928 integer(IK) , intent(in) :: s1, s2, s3
7929 integer(IKG) :: rand(s1, s2, s3)
7930 type(splitmix64_type) , intent(inout) :: rng
7931 end function
7932#endif
7933
7934#if IK2_ENABLED
7935 impure module function getUnifRandRNGSLU_D3_IK2(rng, lb, ub, s1, s2, s3) result(rand)
7936#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7937 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_IK2
7938#endif
7939 use pm_kind, only: IKG => IK2
7940 integer(IKG) , intent(in) :: lb, ub
7941 integer(IK) , intent(in) :: s1, s2, s3
7942 integer(IKG) :: rand(s1, s2, s3)
7943 type(splitmix64_type) , intent(inout) :: rng
7944 end function
7945#endif
7946
7947#if IK1_ENABLED
7948 impure module function getUnifRandRNGSLU_D3_IK1(rng, lb, ub, s1, s2, s3) result(rand)
7949#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7950 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_IK1
7951#endif
7952 use pm_kind, only: IKG => IK1
7953 integer(IKG) , intent(in) :: lb, ub
7954 integer(IK) , intent(in) :: s1, s2, s3
7955 integer(IKG) :: rand(s1, s2, s3)
7956 type(splitmix64_type) , intent(inout) :: rng
7957 end function
7958#endif
7959
7960 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7961
7962#if LK5_ENABLED
7963 impure module function getUnifRandRNGSLU_D3_LK5(rng, lb, ub, s1, s2, s3) result(rand)
7964#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7965 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_LK5
7966#endif
7967 use pm_kind, only: LKG => LK5
7968 logical(LKG) , intent(in) :: lb, ub
7969 integer(IK) , intent(in) :: s1, s2, s3
7970 logical(LKG) :: rand(s1, s2, s3)
7971 type(splitmix64_type) , intent(inout) :: rng
7972 end function
7973#endif
7974
7975#if LK4_ENABLED
7976 impure module function getUnifRandRNGSLU_D3_LK4(rng, lb, ub, s1, s2, s3) result(rand)
7977#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7978 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_LK4
7979#endif
7980 use pm_kind, only: LKG => LK4
7981 logical(LKG) , intent(in) :: lb, ub
7982 integer(IK) , intent(in) :: s1, s2, s3
7983 logical(LKG) :: rand(s1, s2, s3)
7984 type(splitmix64_type) , intent(inout) :: rng
7985 end function
7986#endif
7987
7988#if LK3_ENABLED
7989 impure module function getUnifRandRNGSLU_D3_LK3(rng, lb, ub, s1, s2, s3) result(rand)
7990#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7991 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_LK3
7992#endif
7993 use pm_kind, only: LKG => LK3
7994 logical(LKG) , intent(in) :: lb, ub
7995 integer(IK) , intent(in) :: s1, s2, s3
7996 logical(LKG) :: rand(s1, s2, s3)
7997 type(splitmix64_type) , intent(inout) :: rng
7998 end function
7999#endif
8000
8001#if LK2_ENABLED
8002 impure module function getUnifRandRNGSLU_D3_LK2(rng, lb, ub, s1, s2, s3) result(rand)
8003#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8004 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_LK2
8005#endif
8006 use pm_kind, only: LKG => LK2
8007 logical(LKG) , intent(in) :: lb, ub
8008 integer(IK) , intent(in) :: s1, s2, s3
8009 logical(LKG) :: rand(s1, s2, s3)
8010 type(splitmix64_type) , intent(inout) :: rng
8011 end function
8012#endif
8013
8014#if LK1_ENABLED
8015 impure module function getUnifRandRNGSLU_D3_LK1(rng, lb, ub, s1, s2, s3) result(rand)
8016#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8017 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_LK1
8018#endif
8019 use pm_kind, only: LKG => LK1
8020 logical(LKG) , intent(in) :: lb, ub
8021 integer(IK) , intent(in) :: s1, s2, s3
8022 logical(LKG) :: rand(s1, s2, s3)
8023 type(splitmix64_type) , intent(inout) :: rng
8024 end function
8025#endif
8026
8027 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8028
8029#if CK5_ENABLED
8030 impure module function getUnifRandRNGSLU_D3_CK5(rng, lb, ub, s1, s2, s3) result(rand)
8031#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8032 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_CK5
8033#endif
8034 use pm_kind, only: CKG => CK5
8035 complex(CKG) , intent(in) :: lb, ub
8036 integer(IK) , intent(in) :: s1, s2, s3
8037 complex(CKG) :: rand(s1, s2, s3)
8038 type(splitmix64_type) , intent(inout) :: rng
8039 end function
8040#endif
8041
8042#if CK4_ENABLED
8043 impure module function getUnifRandRNGSLU_D3_CK4(rng, lb, ub, s1, s2, s3) result(rand)
8044#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8045 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_CK4
8046#endif
8047 use pm_kind, only: CKG => CK4
8048 complex(CKG) , intent(in) :: lb, ub
8049 integer(IK) , intent(in) :: s1, s2, s3
8050 complex(CKG) :: rand(s1, s2, s3)
8051 type(splitmix64_type) , intent(inout) :: rng
8052 end function
8053#endif
8054
8055#if CK3_ENABLED
8056 impure module function getUnifRandRNGSLU_D3_CK3(rng, lb, ub, s1, s2, s3) result(rand)
8057#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8058 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_CK3
8059#endif
8060 use pm_kind, only: CKG => CK3
8061 complex(CKG) , intent(in) :: lb, ub
8062 integer(IK) , intent(in) :: s1, s2, s3
8063 complex(CKG) :: rand(s1, s2, s3)
8064 type(splitmix64_type) , intent(inout) :: rng
8065 end function
8066#endif
8067
8068#if CK2_ENABLED
8069 impure module function getUnifRandRNGSLU_D3_CK2(rng, lb, ub, s1, s2, s3) result(rand)
8070#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8071 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_CK2
8072#endif
8073 use pm_kind, only: CKG => CK2
8074 complex(CKG) , intent(in) :: lb, ub
8075 integer(IK) , intent(in) :: s1, s2, s3
8076 complex(CKG) :: rand(s1, s2, s3)
8077 type(splitmix64_type) , intent(inout) :: rng
8078 end function
8079#endif
8080
8081#if CK1_ENABLED
8082 impure module function getUnifRandRNGSLU_D3_CK1(rng, lb, ub, s1, s2, s3) result(rand)
8083#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8084 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_CK1
8085#endif
8086 use pm_kind, only: CKG => CK1
8087 complex(CKG) , intent(in) :: lb, ub
8088 integer(IK) , intent(in) :: s1, s2, s3
8089 complex(CKG) :: rand(s1, s2, s3)
8090 type(splitmix64_type) , intent(inout) :: rng
8091 end function
8092#endif
8093
8094 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8095
8096#if RK5_ENABLED
8097 impure module function getUnifRandRNGSLU_D3_RK5(rng, lb, ub, s1, s2, s3) result(rand)
8098#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8099 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_RK5
8100#endif
8101 use pm_kind, only: RKG => RK5
8102 real(RKG) , intent(in) :: lb, ub
8103 integer(IK) , intent(in) :: s1, s2, s3
8104 real(RKG) :: rand(s1, s2, s3)
8105 type(splitmix64_type) , intent(inout) :: rng
8106 end function
8107
8108#endif
8109
8110#if RK4_ENABLED
8111 impure module function getUnifRandRNGSLU_D3_RK4(rng, lb, ub, s1, s2, s3) result(rand)
8112#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8113 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_RK4
8114#endif
8115 use pm_kind, only: RKG => RK4
8116 real(RKG) , intent(in) :: lb, ub
8117 integer(IK) , intent(in) :: s1, s2, s3
8118 real(RKG) :: rand(s1, s2, s3)
8119 type(splitmix64_type) , intent(inout) :: rng
8120 end function
8121
8122#endif
8123
8124#if RK3_ENABLED
8125 impure module function getUnifRandRNGSLU_D3_RK3(rng, lb, ub, s1, s2, s3) result(rand)
8126#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8127 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_RK3
8128#endif
8129 use pm_kind, only: RKG => RK3
8130 real(RKG) , intent(in) :: lb, ub
8131 integer(IK) , intent(in) :: s1, s2, s3
8132 real(RKG) :: rand(s1, s2, s3)
8133 type(splitmix64_type) , intent(inout) :: rng
8134 end function
8135
8136#endif
8137
8138#if RK2_ENABLED
8139 impure module function getUnifRandRNGSLU_D3_RK2(rng, lb, ub, s1, s2, s3) result(rand)
8140#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8141 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_RK2
8142#endif
8143 use pm_kind, only: RKG => RK2
8144 real(RKG) , intent(in) :: lb, ub
8145 integer(IK) , intent(in) :: s1, s2, s3
8146 real(RKG) :: rand(s1, s2, s3)
8147 type(splitmix64_type) , intent(inout) :: rng
8148 end function
8149#endif
8150
8151#if RK1_ENABLED
8152 impure module function getUnifRandRNGSLU_D3_RK1(rng, lb, ub, s1, s2, s3) result(rand)
8153#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8154 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGSLU_D3_RK1
8155#endif
8156 use pm_kind, only: RKG => RK1
8157 real(RKG) , intent(in) :: lb, ub
8158 integer(IK) , intent(in) :: s1, s2, s3
8159 real(RKG) :: rand(s1, s2, s3)
8160 type(splitmix64_type) , intent(inout) :: rng
8161 end function
8162#endif
8163
8164 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8165
8166 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8167 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8168 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8169
8170 end interface
8171
8172 ! RNGX
8173
8174 interface getUnifRand
8175
8176 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8177 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8178 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8179
8180 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8181
8182 impure module function getUnifRandRNGXDD_D0_LK(rng) result(rand)
8183#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8184 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXDD_D0_LK
8185#endif
8186 use pm_kind, only: LKG => LK
8187 logical(LKG) :: rand
8188 type(xoshiro256ssw_type) , intent(inout) :: rng
8189 end function
8190
8191 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8192
8193 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8194 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8195 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8196
8197 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8198
8199#if SK5_ENABLED
8200 impure elemental module function getUnifRandRNGXLU_D0_SK5(rng, lb, ub) result(rand)
8201#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8202 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_SK5
8203#endif
8204 use pm_kind, only: SKG => SK5
8205 character(*,SKG) , intent(in) :: lb, ub
8206 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
8207 type(xoshiro256ssw_type) , intent(inout) :: rng
8208 end function
8209#endif
8210
8211#if SK4_ENABLED
8212 impure elemental module function getUnifRandRNGXLU_D0_SK4(rng, lb, ub) result(rand)
8213#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8214 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_SK4
8215#endif
8216 use pm_kind, only: SKG => SK4
8217 character(*,SKG) , intent(in) :: lb, ub
8218 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
8219 type(xoshiro256ssw_type) , intent(inout) :: rng
8220 end function
8221#endif
8222
8223#if SK3_ENABLED
8224 impure elemental module function getUnifRandRNGXLU_D0_SK3(rng, lb, ub) result(rand)
8225#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8226 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_SK3
8227#endif
8228 use pm_kind, only: SKG => SK3
8229 character(*,SKG) , intent(in) :: lb, ub
8230 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
8231 type(xoshiro256ssw_type) , intent(inout) :: rng
8232 end function
8233#endif
8234
8235#if SK2_ENABLED
8236 impure elemental module function getUnifRandRNGXLU_D0_SK2(rng, lb, ub) result(rand)
8237#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8238 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_SK2
8239#endif
8240 use pm_kind, only: SKG => SK2
8241 character(*,SKG) , intent(in) :: lb, ub
8242 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
8243 type(xoshiro256ssw_type) , intent(inout) :: rng
8244 end function
8245#endif
8246
8247#if SK1_ENABLED
8248 impure elemental module function getUnifRandRNGXLU_D0_SK1(rng, lb, ub) result(rand)
8249#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8250 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_SK1
8251#endif
8252 use pm_kind, only: SKG => SK1
8253 character(*,SKG) , intent(in) :: lb, ub
8254 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
8255 type(xoshiro256ssw_type) , intent(inout) :: rng
8256 end function
8257#endif
8258
8259 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8260
8261#if IK5_ENABLED
8262 impure elemental module function getUnifRandRNGXLU_D0_IK5(rng, lb, ub) result(rand)
8263#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8264 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_IK5
8265#endif
8266 use pm_kind, only: IKG => IK5
8267 integer(IKG) , intent(in) :: lb, ub
8268 integer(IKG) :: rand
8269 type(xoshiro256ssw_type) , intent(inout) :: rng
8270 end function
8271#endif
8272
8273#if IK4_ENABLED
8274 impure elemental module function getUnifRandRNGXLU_D0_IK4(rng, lb, ub) result(rand)
8275#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8276 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_IK4
8277#endif
8278 use pm_kind, only: IKG => IK4
8279 integer(IKG) , intent(in) :: lb, ub
8280 integer(IKG) :: rand
8281 type(xoshiro256ssw_type) , intent(inout) :: rng
8282 end function
8283#endif
8284
8285#if IK3_ENABLED
8286 impure elemental module function getUnifRandRNGXLU_D0_IK3(rng, lb, ub) result(rand)
8287#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8288 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_IK3
8289#endif
8290 use pm_kind, only: IKG => IK3
8291 integer(IKG) , intent(in) :: lb, ub
8292 integer(IKG) :: rand
8293 type(xoshiro256ssw_type) , intent(inout) :: rng
8294 end function
8295#endif
8296
8297#if IK2_ENABLED
8298 impure elemental module function getUnifRandRNGXLU_D0_IK2(rng, lb, ub) result(rand)
8299#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8300 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_IK2
8301#endif
8302 use pm_kind, only: IKG => IK2
8303 integer(IKG) , intent(in) :: lb, ub
8304 integer(IKG) :: rand
8305 type(xoshiro256ssw_type) , intent(inout) :: rng
8306 end function
8307#endif
8308
8309#if IK1_ENABLED
8310 impure elemental module function getUnifRandRNGXLU_D0_IK1(rng, lb, ub) result(rand)
8311#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8312 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_IK1
8313#endif
8314 use pm_kind, only: IKG => IK1
8315 integer(IKG) , intent(in) :: lb, ub
8316 integer(IKG) :: rand
8317 type(xoshiro256ssw_type) , intent(inout) :: rng
8318 end function
8319#endif
8320
8321 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8322
8323#if LK5_ENABLED
8324 impure elemental module function getUnifRandRNGXLU_D0_LK5(rng, lb, ub) result(rand)
8325#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8326 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_LK5
8327#endif
8328 use pm_kind, only: LKG => LK5
8329 logical(LKG) , intent(in) :: lb, ub
8330 logical(LKG) :: rand
8331 type(xoshiro256ssw_type) , intent(inout) :: rng
8332 end function
8333#endif
8334
8335#if LK4_ENABLED
8336 impure elemental module function getUnifRandRNGXLU_D0_LK4(rng, lb, ub) result(rand)
8337#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8338 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_LK4
8339#endif
8340 use pm_kind, only: LKG => LK4
8341 logical(LKG) , intent(in) :: lb, ub
8342 logical(LKG) :: rand
8343 type(xoshiro256ssw_type) , intent(inout) :: rng
8344 end function
8345#endif
8346
8347#if LK3_ENABLED
8348 impure elemental module function getUnifRandRNGXLU_D0_LK3(rng, lb, ub) result(rand)
8349#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8350 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_LK3
8351#endif
8352 use pm_kind, only: LKG => LK3
8353 logical(LKG) , intent(in) :: lb, ub
8354 logical(LKG) :: rand
8355 type(xoshiro256ssw_type) , intent(inout) :: rng
8356 end function
8357#endif
8358
8359#if LK2_ENABLED
8360 impure elemental module function getUnifRandRNGXLU_D0_LK2(rng, lb, ub) result(rand)
8361#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8362 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_LK2
8363#endif
8364 use pm_kind, only: LKG => LK2
8365 logical(LKG) , intent(in) :: lb, ub
8366 logical(LKG) :: rand
8367 type(xoshiro256ssw_type) , intent(inout) :: rng
8368 end function
8369#endif
8370
8371#if LK1_ENABLED
8372 impure elemental module function getUnifRandRNGXLU_D0_LK1(rng, lb, ub) result(rand)
8373#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8374 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_LK1
8375#endif
8376 use pm_kind, only: LKG => LK1
8377 logical(LKG) , intent(in) :: lb, ub
8378 logical(LKG) :: rand
8379 type(xoshiro256ssw_type) , intent(inout) :: rng
8380 end function
8381#endif
8382
8383 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8384
8385#if CK5_ENABLED
8386 impure elemental module function getUnifRandRNGXLU_D0_CK5(rng, lb, ub) result(rand)
8387#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8388 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_CK5
8389#endif
8390 use pm_kind, only: CKG => CK5
8391 complex(CKG) , intent(in) :: lb, ub
8392 complex(CKG) :: rand
8393 type(xoshiro256ssw_type) , intent(inout) :: rng
8394 end function
8395#endif
8396
8397#if CK4_ENABLED
8398 impure elemental module function getUnifRandRNGXLU_D0_CK4(rng, lb, ub) result(rand)
8399#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8400 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_CK4
8401#endif
8402 use pm_kind, only: CKG => CK4
8403 complex(CKG) , intent(in) :: lb, ub
8404 complex(CKG) :: rand
8405 type(xoshiro256ssw_type) , intent(inout) :: rng
8406 end function
8407#endif
8408
8409#if CK3_ENABLED
8410 impure elemental module function getUnifRandRNGXLU_D0_CK3(rng, lb, ub) result(rand)
8411#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8412 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_CK3
8413#endif
8414 use pm_kind, only: CKG => CK3
8415 complex(CKG) , intent(in) :: lb, ub
8416 complex(CKG) :: rand
8417 type(xoshiro256ssw_type) , intent(inout) :: rng
8418 end function
8419#endif
8420
8421#if CK2_ENABLED
8422 impure elemental module function getUnifRandRNGXLU_D0_CK2(rng, lb, ub) result(rand)
8423#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8424 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_CK2
8425#endif
8426 use pm_kind, only: CKG => CK2
8427 complex(CKG) , intent(in) :: lb, ub
8428 complex(CKG) :: rand
8429 type(xoshiro256ssw_type) , intent(inout) :: rng
8430 end function
8431#endif
8432
8433#if CK1_ENABLED
8434 impure elemental module function getUnifRandRNGXLU_D0_CK1(rng, lb, ub) result(rand)
8435#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8436 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_CK1
8437#endif
8438 use pm_kind, only: CKG => CK1
8439 complex(CKG) , intent(in) :: lb, ub
8440 complex(CKG) :: rand
8441 type(xoshiro256ssw_type) , intent(inout) :: rng
8442 end function
8443#endif
8444
8445 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8446
8447#if RK5_ENABLED
8448 impure elemental module function getUnifRandRNGXLU_D0_RK5(rng, lb, ub) result(rand)
8449#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8450 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_RK5
8451#endif
8452 use pm_kind, only: RKG => RK5
8453 real(RKG) , intent(in) :: lb, ub
8454 real(RKG) :: rand
8455 type(xoshiro256ssw_type) , intent(inout) :: rng
8456 end function
8457#endif
8458
8459#if RK4_ENABLED
8460 impure elemental module function getUnifRandRNGXLU_D0_RK4(rng, lb, ub) result(rand)
8461#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8462 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_RK4
8463#endif
8464 use pm_kind, only: RKG => RK4
8465 real(RKG) , intent(in) :: lb, ub
8466 real(RKG) :: rand
8467 type(xoshiro256ssw_type) , intent(inout) :: rng
8468 end function
8469#endif
8470
8471#if RK3_ENABLED
8472 impure elemental module function getUnifRandRNGXLU_D0_RK3(rng, lb, ub) result(rand)
8473#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8474 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_RK3
8475#endif
8476 use pm_kind, only: RKG => RK3
8477 real(RKG) , intent(in) :: lb, ub
8478 real(RKG) :: rand
8479 type(xoshiro256ssw_type) , intent(inout) :: rng
8480 end function
8481#endif
8482
8483#if RK2_ENABLED
8484 impure elemental module function getUnifRandRNGXLU_D0_RK2(rng, lb, ub) result(rand)
8485#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8486 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_RK2
8487#endif
8488 use pm_kind, only: RKG => RK2
8489 real(RKG) , intent(in) :: lb, ub
8490 real(RKG) :: rand
8491 type(xoshiro256ssw_type) , intent(inout) :: rng
8492 end function
8493#endif
8494
8495#if RK1_ENABLED
8496 impure elemental module function getUnifRandRNGXLU_D0_RK1(rng, lb, ub) result(rand)
8497#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8498 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D0_RK1
8499#endif
8500 use pm_kind, only: RKG => RK1
8501 real(RKG) , intent(in) :: lb, ub
8502 real(RKG) :: rand
8503 type(xoshiro256ssw_type) , intent(inout) :: rng
8504 end function
8505#endif
8506
8507 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8508
8509 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8510 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8511 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8512
8513 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8514
8515#if SK5_ENABLED
8516 impure module function getUnifRandRNGXLU_D1_SK5(rng, lb, ub, s1) result(rand)
8517#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8518 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_SK5
8519#endif
8520 use pm_kind, only: SKG => SK5
8521 character(*,SKG) , intent(in) :: lb, ub
8522 integer(IK) , intent(in) :: s1
8523 character(len(lb,IK),SKG) :: rand(s1)
8524 type(xoshiro256ssw_type) , intent(inout) :: rng
8525 end function
8526#endif
8527
8528#if SK4_ENABLED
8529 impure module function getUnifRandRNGXLU_D1_SK4(rng, lb, ub, s1) result(rand)
8530#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8531 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_SK4
8532#endif
8533 use pm_kind, only: SKG => SK4
8534 character(*,SKG) , intent(in) :: lb, ub
8535 integer(IK) , intent(in) :: s1
8536 character(len(lb,IK),SKG) :: rand(s1)
8537 type(xoshiro256ssw_type) , intent(inout) :: rng
8538 end function
8539#endif
8540
8541#if SK3_ENABLED
8542 impure module function getUnifRandRNGXLU_D1_SK3(rng, lb, ub, s1) result(rand)
8543#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8544 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_SK3
8545#endif
8546 use pm_kind, only: SKG => SK3
8547 character(*,SKG) , intent(in) :: lb, ub
8548 integer(IK) , intent(in) :: s1
8549 character(len(lb,IK),SKG) :: rand(s1)
8550 type(xoshiro256ssw_type) , intent(inout) :: rng
8551 end function
8552#endif
8553
8554#if SK2_ENABLED
8555 impure module function getUnifRandRNGXLU_D1_SK2(rng, lb, ub, s1) result(rand)
8556#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8557 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_SK2
8558#endif
8559 use pm_kind, only: SKG => SK2
8560 character(*,SKG) , intent(in) :: lb, ub
8561 integer(IK) , intent(in) :: s1
8562 character(len(lb,IK),SKG) :: rand(s1)
8563 type(xoshiro256ssw_type) , intent(inout) :: rng
8564 end function
8565#endif
8566
8567#if SK1_ENABLED
8568 impure module function getUnifRandRNGXLU_D1_SK1(rng, lb, ub, s1) result(rand)
8569#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8570 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_SK1
8571#endif
8572 use pm_kind, only: SKG => SK1
8573 character(*,SKG) , intent(in) :: lb, ub
8574 integer(IK) , intent(in) :: s1
8575 character(len(lb,IK),SKG) :: rand(s1)
8576 type(xoshiro256ssw_type) , intent(inout) :: rng
8577 end function
8578#endif
8579
8580 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8581
8582#if IK5_ENABLED
8583 impure module function getUnifRandRNGXLU_D1_IK5(rng, lb, ub, s1) result(rand)
8584#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8585 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_IK5
8586#endif
8587 use pm_kind, only: IKG => IK5
8588 integer(IKG) , intent(in) :: lb, ub
8589 integer(IK) , intent(in) :: s1
8590 integer(IKG) :: rand(s1)
8591 type(xoshiro256ssw_type) , intent(inout) :: rng
8592 end function
8593#endif
8594
8595#if IK4_ENABLED
8596 impure module function getUnifRandRNGXLU_D1_IK4(rng, lb, ub, s1) result(rand)
8597#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8598 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_IK4
8599#endif
8600 use pm_kind, only: IKG => IK4
8601 integer(IKG) , intent(in) :: lb, ub
8602 integer(IK) , intent(in) :: s1
8603 integer(IKG) :: rand(s1)
8604 type(xoshiro256ssw_type) , intent(inout) :: rng
8605 end function
8606#endif
8607
8608#if IK3_ENABLED
8609 impure module function getUnifRandRNGXLU_D1_IK3(rng, lb, ub, s1) result(rand)
8610#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8611 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_IK3
8612#endif
8613 use pm_kind, only: IKG => IK3
8614 integer(IKG) , intent(in) :: lb, ub
8615 integer(IK) , intent(in) :: s1
8616 integer(IKG) :: rand(s1)
8617 type(xoshiro256ssw_type) , intent(inout) :: rng
8618 end function
8619#endif
8620
8621#if IK2_ENABLED
8622 impure module function getUnifRandRNGXLU_D1_IK2(rng, lb, ub, s1) result(rand)
8623#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8624 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_IK2
8625#endif
8626 use pm_kind, only: IKG => IK2
8627 integer(IKG) , intent(in) :: lb, ub
8628 integer(IK) , intent(in) :: s1
8629 integer(IKG) :: rand(s1)
8630 type(xoshiro256ssw_type) , intent(inout) :: rng
8631 end function
8632#endif
8633
8634#if IK1_ENABLED
8635 impure module function getUnifRandRNGXLU_D1_IK1(rng, lb, ub, s1) result(rand)
8636#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8637 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_IK1
8638#endif
8639 use pm_kind, only: IKG => IK1
8640 integer(IKG) , intent(in) :: lb, ub
8641 integer(IK) , intent(in) :: s1
8642 integer(IKG) :: rand(s1)
8643 type(xoshiro256ssw_type) , intent(inout) :: rng
8644 end function
8645#endif
8646
8647 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8648
8649#if LK5_ENABLED
8650 impure module function getUnifRandRNGXLU_D1_LK5(rng, lb, ub, s1) result(rand)
8651#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8652 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_LK5
8653#endif
8654 use pm_kind, only: LKG => LK5
8655 logical(LKG) , intent(in) :: lb, ub
8656 integer(IK) , intent(in) :: s1
8657 logical(LKG) :: rand(s1)
8658 type(xoshiro256ssw_type) , intent(inout) :: rng
8659 end function
8660#endif
8661
8662#if LK4_ENABLED
8663 impure module function getUnifRandRNGXLU_D1_LK4(rng, lb, ub, s1) result(rand)
8664#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8665 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_LK4
8666#endif
8667 use pm_kind, only: LKG => LK4
8668 logical(LKG) , intent(in) :: lb, ub
8669 integer(IK) , intent(in) :: s1
8670 logical(LKG) :: rand(s1)
8671 type(xoshiro256ssw_type) , intent(inout) :: rng
8672 end function
8673#endif
8674
8675#if LK3_ENABLED
8676 impure module function getUnifRandRNGXLU_D1_LK3(rng, lb, ub, s1) result(rand)
8677#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8678 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_LK3
8679#endif
8680 use pm_kind, only: LKG => LK3
8681 logical(LKG) , intent(in) :: lb, ub
8682 integer(IK) , intent(in) :: s1
8683 logical(LKG) :: rand(s1)
8684 type(xoshiro256ssw_type) , intent(inout) :: rng
8685 end function
8686#endif
8687
8688#if LK2_ENABLED
8689 impure module function getUnifRandRNGXLU_D1_LK2(rng, lb, ub, s1) result(rand)
8690#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8691 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_LK2
8692#endif
8693 use pm_kind, only: LKG => LK2
8694 logical(LKG) , intent(in) :: lb, ub
8695 integer(IK) , intent(in) :: s1
8696 logical(LKG) :: rand(s1)
8697 type(xoshiro256ssw_type) , intent(inout) :: rng
8698 end function
8699#endif
8700
8701#if LK1_ENABLED
8702 impure module function getUnifRandRNGXLU_D1_LK1(rng, lb, ub, s1) result(rand)
8703#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8704 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_LK1
8705#endif
8706 use pm_kind, only: LKG => LK1
8707 logical(LKG) , intent(in) :: lb, ub
8708 integer(IK) , intent(in) :: s1
8709 logical(LKG) :: rand(s1)
8710 type(xoshiro256ssw_type) , intent(inout) :: rng
8711 end function
8712#endif
8713
8714 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8715
8716#if CK5_ENABLED
8717 impure module function getUnifRandRNGXLU_D1_CK5(rng, lb, ub, s1) result(rand)
8718#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8719 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_CK5
8720#endif
8721 use pm_kind, only: CKG => CK5
8722 complex(CKG) , intent(in) :: lb, ub
8723 integer(IK) , intent(in) :: s1
8724 complex(CKG) :: rand(s1)
8725 type(xoshiro256ssw_type) , intent(inout) :: rng
8726 end function
8727#endif
8728
8729#if CK4_ENABLED
8730 impure module function getUnifRandRNGXLU_D1_CK4(rng, lb, ub, s1) result(rand)
8731#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8732 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_CK4
8733#endif
8734 use pm_kind, only: CKG => CK4
8735 complex(CKG) , intent(in) :: lb, ub
8736 integer(IK) , intent(in) :: s1
8737 complex(CKG) :: rand(s1)
8738 type(xoshiro256ssw_type) , intent(inout) :: rng
8739 end function
8740#endif
8741
8742#if CK3_ENABLED
8743 impure module function getUnifRandRNGXLU_D1_CK3(rng, lb, ub, s1) result(rand)
8744#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8745 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_CK3
8746#endif
8747 use pm_kind, only: CKG => CK3
8748 complex(CKG) , intent(in) :: lb, ub
8749 integer(IK) , intent(in) :: s1
8750 complex(CKG) :: rand(s1)
8751 type(xoshiro256ssw_type) , intent(inout) :: rng
8752 end function
8753#endif
8754
8755#if CK2_ENABLED
8756 impure module function getUnifRandRNGXLU_D1_CK2(rng, lb, ub, s1) result(rand)
8757#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8758 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_CK2
8759#endif
8760 use pm_kind, only: CKG => CK2
8761 complex(CKG) , intent(in) :: lb, ub
8762 integer(IK) , intent(in) :: s1
8763 complex(CKG) :: rand(s1)
8764 type(xoshiro256ssw_type) , intent(inout) :: rng
8765 end function
8766#endif
8767
8768#if CK1_ENABLED
8769 impure module function getUnifRandRNGXLU_D1_CK1(rng, lb, ub, s1) result(rand)
8770#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8771 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_CK1
8772#endif
8773 use pm_kind, only: CKG => CK1
8774 complex(CKG) , intent(in) :: lb, ub
8775 integer(IK) , intent(in) :: s1
8776 complex(CKG) :: rand(s1)
8777 type(xoshiro256ssw_type) , intent(inout) :: rng
8778 end function
8779#endif
8780
8781 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8782
8783#if RK5_ENABLED
8784 impure module function getUnifRandRNGXLU_D1_RK5(rng, lb, ub, s1) result(rand)
8785#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8786 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_RK5
8787#endif
8788 use pm_kind, only: RKG => RK5
8789 real(RKG) , intent(in) :: lb, ub
8790 integer(IK) , intent(in) :: s1
8791 real(RKG) :: rand(s1)
8792 type(xoshiro256ssw_type) , intent(inout) :: rng
8793 end function
8794
8795#endif
8796
8797#if RK4_ENABLED
8798 impure module function getUnifRandRNGXLU_D1_RK4(rng, lb, ub, s1) result(rand)
8799#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8800 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_RK4
8801#endif
8802 use pm_kind, only: RKG => RK4
8803 real(RKG) , intent(in) :: lb, ub
8804 integer(IK) , intent(in) :: s1
8805 real(RKG) :: rand(s1)
8806 type(xoshiro256ssw_type) , intent(inout) :: rng
8807 end function
8808
8809#endif
8810
8811#if RK3_ENABLED
8812 impure module function getUnifRandRNGXLU_D1_RK3(rng, lb, ub, s1) result(rand)
8813#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8814 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_RK3
8815#endif
8816 use pm_kind, only: RKG => RK3
8817 real(RKG) , intent(in) :: lb, ub
8818 integer(IK) , intent(in) :: s1
8819 real(RKG) :: rand(s1)
8820 type(xoshiro256ssw_type) , intent(inout) :: rng
8821 end function
8822
8823#endif
8824
8825#if RK2_ENABLED
8826 impure module function getUnifRandRNGXLU_D1_RK2(rng, lb, ub, s1) result(rand)
8827#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8828 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_RK2
8829#endif
8830 use pm_kind, only: RKG => RK2
8831 real(RKG) , intent(in) :: lb, ub
8832 integer(IK) , intent(in) :: s1
8833 real(RKG) :: rand(s1)
8834 type(xoshiro256ssw_type) , intent(inout) :: rng
8835 end function
8836#endif
8837
8838#if RK1_ENABLED
8839 impure module function getUnifRandRNGXLU_D1_RK1(rng, lb, ub, s1) result(rand)
8840#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8841 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D1_RK1
8842#endif
8843 use pm_kind, only: RKG => RK1
8844 real(RKG) , intent(in) :: lb, ub
8845 integer(IK) , intent(in) :: s1
8846 real(RKG) :: rand(s1)
8847 type(xoshiro256ssw_type) , intent(inout) :: rng
8848 end function
8849#endif
8850
8851 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8852
8853 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8854 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8855 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8856
8857 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8858
8859#if SK5_ENABLED
8860 impure module function getUnifRandRNGXLU_D2_SK5(rng, lb, ub, s1, s2) result(rand)
8861#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8862 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_SK5
8863#endif
8864 use pm_kind, only: SKG => SK5
8865 character(*,SKG) , intent(in) :: lb, ub
8866 integer(IK) , intent(in) :: s1, s2
8867 character(len(lb,IK),SKG) :: rand(s1, s2)
8868 type(xoshiro256ssw_type) , intent(inout) :: rng
8869 end function
8870#endif
8871
8872#if SK4_ENABLED
8873 impure module function getUnifRandRNGXLU_D2_SK4(rng, lb, ub, s1, s2) result(rand)
8874#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8875 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_SK4
8876#endif
8877 use pm_kind, only: SKG => SK4
8878 character(*,SKG) , intent(in) :: lb, ub
8879 integer(IK) , intent(in) :: s1, s2
8880 character(len(lb,IK),SKG) :: rand(s1, s2)
8881 type(xoshiro256ssw_type) , intent(inout) :: rng
8882 end function
8883#endif
8884
8885#if SK3_ENABLED
8886 impure module function getUnifRandRNGXLU_D2_SK3(rng, lb, ub, s1, s2) result(rand)
8887#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8888 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_SK3
8889#endif
8890 use pm_kind, only: SKG => SK3
8891 character(*,SKG) , intent(in) :: lb, ub
8892 integer(IK) , intent(in) :: s1, s2
8893 character(len(lb,IK),SKG) :: rand(s1, s2)
8894 type(xoshiro256ssw_type) , intent(inout) :: rng
8895 end function
8896#endif
8897
8898#if SK2_ENABLED
8899 impure module function getUnifRandRNGXLU_D2_SK2(rng, lb, ub, s1, s2) result(rand)
8900#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8901 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_SK2
8902#endif
8903 use pm_kind, only: SKG => SK2
8904 character(*,SKG) , intent(in) :: lb, ub
8905 integer(IK) , intent(in) :: s1, s2
8906 character(len(lb,IK),SKG) :: rand(s1, s2)
8907 type(xoshiro256ssw_type) , intent(inout) :: rng
8908 end function
8909#endif
8910
8911#if SK1_ENABLED
8912 impure module function getUnifRandRNGXLU_D2_SK1(rng, lb, ub, s1, s2) result(rand)
8913#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8914 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_SK1
8915#endif
8916 use pm_kind, only: SKG => SK1
8917 character(*,SKG) , intent(in) :: lb, ub
8918 integer(IK) , intent(in) :: s1, s2
8919 character(len(lb,IK),SKG) :: rand(s1, s2)
8920 type(xoshiro256ssw_type) , intent(inout) :: rng
8921 end function
8922#endif
8923
8924 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8925
8926#if IK5_ENABLED
8927 impure module function getUnifRandRNGXLU_D2_IK5(rng, lb, ub, s1, s2) result(rand)
8928#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8929 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_IK5
8930#endif
8931 use pm_kind, only: IKG => IK5
8932 integer(IKG) , intent(in) :: lb, ub
8933 integer(IK) , intent(in) :: s1, s2
8934 integer(IKG) :: rand(s1, s2)
8935 type(xoshiro256ssw_type) , intent(inout) :: rng
8936 end function
8937#endif
8938
8939#if IK4_ENABLED
8940 impure module function getUnifRandRNGXLU_D2_IK4(rng, lb, ub, s1, s2) result(rand)
8941#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8942 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_IK4
8943#endif
8944 use pm_kind, only: IKG => IK4
8945 integer(IKG) , intent(in) :: lb, ub
8946 integer(IK) , intent(in) :: s1, s2
8947 integer(IKG) :: rand(s1, s2)
8948 type(xoshiro256ssw_type) , intent(inout) :: rng
8949 end function
8950#endif
8951
8952#if IK3_ENABLED
8953 impure module function getUnifRandRNGXLU_D2_IK3(rng, lb, ub, s1, s2) result(rand)
8954#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8955 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_IK3
8956#endif
8957 use pm_kind, only: IKG => IK3
8958 integer(IKG) , intent(in) :: lb, ub
8959 integer(IK) , intent(in) :: s1, s2
8960 integer(IKG) :: rand(s1, s2)
8961 type(xoshiro256ssw_type) , intent(inout) :: rng
8962 end function
8963#endif
8964
8965#if IK2_ENABLED
8966 impure module function getUnifRandRNGXLU_D2_IK2(rng, lb, ub, s1, s2) result(rand)
8967#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8968 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_IK2
8969#endif
8970 use pm_kind, only: IKG => IK2
8971 integer(IKG) , intent(in) :: lb, ub
8972 integer(IK) , intent(in) :: s1, s2
8973 integer(IKG) :: rand(s1, s2)
8974 type(xoshiro256ssw_type) , intent(inout) :: rng
8975 end function
8976#endif
8977
8978#if IK1_ENABLED
8979 impure module function getUnifRandRNGXLU_D2_IK1(rng, lb, ub, s1, s2) result(rand)
8980#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8981 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_IK1
8982#endif
8983 use pm_kind, only: IKG => IK1
8984 integer(IKG) , intent(in) :: lb, ub
8985 integer(IK) , intent(in) :: s1, s2
8986 integer(IKG) :: rand(s1, s2)
8987 type(xoshiro256ssw_type) , intent(inout) :: rng
8988 end function
8989#endif
8990
8991 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8992
8993#if LK5_ENABLED
8994 impure module function getUnifRandRNGXLU_D2_LK5(rng, lb, ub, s1, s2) result(rand)
8995#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8996 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_LK5
8997#endif
8998 use pm_kind, only: LKG => LK5
8999 logical(LKG) , intent(in) :: lb, ub
9000 integer(IK) , intent(in) :: s1, s2
9001 logical(LKG) :: rand(s1, s2)
9002 type(xoshiro256ssw_type) , intent(inout) :: rng
9003 end function
9004#endif
9005
9006#if LK4_ENABLED
9007 impure module function getUnifRandRNGXLU_D2_LK4(rng, lb, ub, s1, s2) result(rand)
9008#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9009 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_LK4
9010#endif
9011 use pm_kind, only: LKG => LK4
9012 logical(LKG) , intent(in) :: lb, ub
9013 integer(IK) , intent(in) :: s1, s2
9014 logical(LKG) :: rand(s1, s2)
9015 type(xoshiro256ssw_type) , intent(inout) :: rng
9016 end function
9017#endif
9018
9019#if LK3_ENABLED
9020 impure module function getUnifRandRNGXLU_D2_LK3(rng, lb, ub, s1, s2) result(rand)
9021#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9022 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_LK3
9023#endif
9024 use pm_kind, only: LKG => LK3
9025 logical(LKG) , intent(in) :: lb, ub
9026 integer(IK) , intent(in) :: s1, s2
9027 logical(LKG) :: rand(s1, s2)
9028 type(xoshiro256ssw_type) , intent(inout) :: rng
9029 end function
9030#endif
9031
9032#if LK2_ENABLED
9033 impure module function getUnifRandRNGXLU_D2_LK2(rng, lb, ub, s1, s2) result(rand)
9034#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9035 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_LK2
9036#endif
9037 use pm_kind, only: LKG => LK2
9038 logical(LKG) , intent(in) :: lb, ub
9039 integer(IK) , intent(in) :: s1, s2
9040 logical(LKG) :: rand(s1, s2)
9041 type(xoshiro256ssw_type) , intent(inout) :: rng
9042 end function
9043#endif
9044
9045#if LK1_ENABLED
9046 impure module function getUnifRandRNGXLU_D2_LK1(rng, lb, ub, s1, s2) result(rand)
9047#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9048 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_LK1
9049#endif
9050 use pm_kind, only: LKG => LK1
9051 logical(LKG) , intent(in) :: lb, ub
9052 integer(IK) , intent(in) :: s1, s2
9053 logical(LKG) :: rand(s1, s2)
9054 type(xoshiro256ssw_type) , intent(inout) :: rng
9055 end function
9056#endif
9057
9058 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9059
9060#if CK5_ENABLED
9061 impure module function getUnifRandRNGXLU_D2_CK5(rng, lb, ub, s1, s2) result(rand)
9062#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9063 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_CK5
9064#endif
9065 use pm_kind, only: CKG => CK5
9066 complex(CKG) , intent(in) :: lb, ub
9067 integer(IK) , intent(in) :: s1, s2
9068 complex(CKG) :: rand(s1, s2)
9069 type(xoshiro256ssw_type) , intent(inout) :: rng
9070 end function
9071#endif
9072
9073#if CK4_ENABLED
9074 impure module function getUnifRandRNGXLU_D2_CK4(rng, lb, ub, s1, s2) result(rand)
9075#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9076 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_CK4
9077#endif
9078 use pm_kind, only: CKG => CK4
9079 complex(CKG) , intent(in) :: lb, ub
9080 integer(IK) , intent(in) :: s1, s2
9081 complex(CKG) :: rand(s1, s2)
9082 type(xoshiro256ssw_type) , intent(inout) :: rng
9083 end function
9084#endif
9085
9086#if CK3_ENABLED
9087 impure module function getUnifRandRNGXLU_D2_CK3(rng, lb, ub, s1, s2) result(rand)
9088#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9089 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_CK3
9090#endif
9091 use pm_kind, only: CKG => CK3
9092 complex(CKG) , intent(in) :: lb, ub
9093 integer(IK) , intent(in) :: s1, s2
9094 complex(CKG) :: rand(s1, s2)
9095 type(xoshiro256ssw_type) , intent(inout) :: rng
9096 end function
9097#endif
9098
9099#if CK2_ENABLED
9100 impure module function getUnifRandRNGXLU_D2_CK2(rng, lb, ub, s1, s2) result(rand)
9101#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9102 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_CK2
9103#endif
9104 use pm_kind, only: CKG => CK2
9105 complex(CKG) , intent(in) :: lb, ub
9106 integer(IK) , intent(in) :: s1, s2
9107 complex(CKG) :: rand(s1, s2)
9108 type(xoshiro256ssw_type) , intent(inout) :: rng
9109 end function
9110#endif
9111
9112#if CK1_ENABLED
9113 impure module function getUnifRandRNGXLU_D2_CK1(rng, lb, ub, s1, s2) result(rand)
9114#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9115 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_CK1
9116#endif
9117 use pm_kind, only: CKG => CK1
9118 complex(CKG) , intent(in) :: lb, ub
9119 integer(IK) , intent(in) :: s1, s2
9120 complex(CKG) :: rand(s1, s2)
9121 type(xoshiro256ssw_type) , intent(inout) :: rng
9122 end function
9123#endif
9124
9125 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9126
9127#if RK5_ENABLED
9128 impure module function getUnifRandRNGXLU_D2_RK5(rng, lb, ub, s1, s2) result(rand)
9129#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9130 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_RK5
9131#endif
9132 use pm_kind, only: RKG => RK5
9133 real(RKG) , intent(in) :: lb, ub
9134 integer(IK) , intent(in) :: s1, s2
9135 real(RKG) :: rand(s1, s2)
9136 type(xoshiro256ssw_type) , intent(inout) :: rng
9137 end function
9138
9139#endif
9140
9141#if RK4_ENABLED
9142 impure module function getUnifRandRNGXLU_D2_RK4(rng, lb, ub, s1, s2) result(rand)
9143#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9144 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_RK4
9145#endif
9146 use pm_kind, only: RKG => RK4
9147 real(RKG) , intent(in) :: lb, ub
9148 integer(IK) , intent(in) :: s1, s2
9149 real(RKG) :: rand(s1, s2)
9150 type(xoshiro256ssw_type) , intent(inout) :: rng
9151 end function
9152
9153#endif
9154
9155#if RK3_ENABLED
9156 impure module function getUnifRandRNGXLU_D2_RK3(rng, lb, ub, s1, s2) result(rand)
9157#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9158 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_RK3
9159#endif
9160 use pm_kind, only: RKG => RK3
9161 real(RKG) , intent(in) :: lb, ub
9162 integer(IK) , intent(in) :: s1, s2
9163 real(RKG) :: rand(s1, s2)
9164 type(xoshiro256ssw_type) , intent(inout) :: rng
9165 end function
9166
9167#endif
9168
9169#if RK2_ENABLED
9170 impure module function getUnifRandRNGXLU_D2_RK2(rng, lb, ub, s1, s2) result(rand)
9171#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9172 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_RK2
9173#endif
9174 use pm_kind, only: RKG => RK2
9175 real(RKG) , intent(in) :: lb, ub
9176 integer(IK) , intent(in) :: s1, s2
9177 real(RKG) :: rand(s1, s2)
9178 type(xoshiro256ssw_type) , intent(inout) :: rng
9179 end function
9180#endif
9181
9182#if RK1_ENABLED
9183 impure module function getUnifRandRNGXLU_D2_RK1(rng, lb, ub, s1, s2) result(rand)
9184#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9185 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D2_RK1
9186#endif
9187 use pm_kind, only: RKG => RK1
9188 real(RKG) , intent(in) :: lb, ub
9189 integer(IK) , intent(in) :: s1, s2
9190 real(RKG) :: rand(s1, s2)
9191 type(xoshiro256ssw_type) , intent(inout) :: rng
9192 end function
9193#endif
9194
9195 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9196
9197 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9198 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9199 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9200
9201 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9202
9203#if SK5_ENABLED
9204 impure module function getUnifRandRNGXLU_D3_SK5(rng, lb, ub, s1, s2, s3) result(rand)
9205#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9206 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_SK5
9207#endif
9208 use pm_kind, only: SKG => SK5
9209 character(*,SKG) , intent(in) :: lb, ub
9210 integer(IK) , intent(in) :: s1, s2, s3
9211 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
9212 type(xoshiro256ssw_type) , intent(inout) :: rng
9213 end function
9214#endif
9215
9216#if SK4_ENABLED
9217 impure module function getUnifRandRNGXLU_D3_SK4(rng, lb, ub, s1, s2, s3) result(rand)
9218#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9219 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_SK4
9220#endif
9221 use pm_kind, only: SKG => SK4
9222 character(*,SKG) , intent(in) :: lb, ub
9223 integer(IK) , intent(in) :: s1, s2, s3
9224 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
9225 type(xoshiro256ssw_type) , intent(inout) :: rng
9226 end function
9227#endif
9228
9229#if SK3_ENABLED
9230 impure module function getUnifRandRNGXLU_D3_SK3(rng, lb, ub, s1, s2, s3) result(rand)
9231#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9232 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_SK3
9233#endif
9234 use pm_kind, only: SKG => SK3
9235 character(*,SKG) , intent(in) :: lb, ub
9236 integer(IK) , intent(in) :: s1, s2, s3
9237 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
9238 type(xoshiro256ssw_type) , intent(inout) :: rng
9239 end function
9240#endif
9241
9242#if SK2_ENABLED
9243 impure module function getUnifRandRNGXLU_D3_SK2(rng, lb, ub, s1, s2, s3) result(rand)
9244#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9245 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_SK2
9246#endif
9247 use pm_kind, only: SKG => SK2
9248 character(*,SKG) , intent(in) :: lb, ub
9249 integer(IK) , intent(in) :: s1, s2, s3
9250 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
9251 type(xoshiro256ssw_type) , intent(inout) :: rng
9252 end function
9253#endif
9254
9255#if SK1_ENABLED
9256 impure module function getUnifRandRNGXLU_D3_SK1(rng, lb, ub, s1, s2, s3) result(rand)
9257#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9258 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_SK1
9259#endif
9260 use pm_kind, only: SKG => SK1
9261 character(*,SKG) , intent(in) :: lb, ub
9262 integer(IK) , intent(in) :: s1, s2, s3
9263 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
9264 type(xoshiro256ssw_type) , intent(inout) :: rng
9265 end function
9266#endif
9267
9268 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9269
9270#if IK5_ENABLED
9271 impure module function getUnifRandRNGXLU_D3_IK5(rng, lb, ub, s1, s2, s3) result(rand)
9272#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9273 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_IK5
9274#endif
9275 use pm_kind, only: IKG => IK5
9276 integer(IKG) , intent(in) :: lb, ub
9277 integer(IK) , intent(in) :: s1, s2, s3
9278 integer(IKG) :: rand(s1, s2, s3)
9279 type(xoshiro256ssw_type) , intent(inout) :: rng
9280 end function
9281#endif
9282
9283#if IK4_ENABLED
9284 impure module function getUnifRandRNGXLU_D3_IK4(rng, lb, ub, s1, s2, s3) result(rand)
9285#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9286 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_IK4
9287#endif
9288 use pm_kind, only: IKG => IK4
9289 integer(IKG) , intent(in) :: lb, ub
9290 integer(IK) , intent(in) :: s1, s2, s3
9291 integer(IKG) :: rand(s1, s2, s3)
9292 type(xoshiro256ssw_type) , intent(inout) :: rng
9293 end function
9294#endif
9295
9296#if IK3_ENABLED
9297 impure module function getUnifRandRNGXLU_D3_IK3(rng, lb, ub, s1, s2, s3) result(rand)
9298#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9299 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_IK3
9300#endif
9301 use pm_kind, only: IKG => IK3
9302 integer(IKG) , intent(in) :: lb, ub
9303 integer(IK) , intent(in) :: s1, s2, s3
9304 integer(IKG) :: rand(s1, s2, s3)
9305 type(xoshiro256ssw_type) , intent(inout) :: rng
9306 end function
9307#endif
9308
9309#if IK2_ENABLED
9310 impure module function getUnifRandRNGXLU_D3_IK2(rng, lb, ub, s1, s2, s3) result(rand)
9311#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9312 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_IK2
9313#endif
9314 use pm_kind, only: IKG => IK2
9315 integer(IKG) , intent(in) :: lb, ub
9316 integer(IK) , intent(in) :: s1, s2, s3
9317 integer(IKG) :: rand(s1, s2, s3)
9318 type(xoshiro256ssw_type) , intent(inout) :: rng
9319 end function
9320#endif
9321
9322#if IK1_ENABLED
9323 impure module function getUnifRandRNGXLU_D3_IK1(rng, lb, ub, s1, s2, s3) result(rand)
9324#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9325 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_IK1
9326#endif
9327 use pm_kind, only: IKG => IK1
9328 integer(IKG) , intent(in) :: lb, ub
9329 integer(IK) , intent(in) :: s1, s2, s3
9330 integer(IKG) :: rand(s1, s2, s3)
9331 type(xoshiro256ssw_type) , intent(inout) :: rng
9332 end function
9333#endif
9334
9335 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9336
9337#if LK5_ENABLED
9338 impure module function getUnifRandRNGXLU_D3_LK5(rng, lb, ub, s1, s2, s3) result(rand)
9339#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9340 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_LK5
9341#endif
9342 use pm_kind, only: LKG => LK5
9343 logical(LKG) , intent(in) :: lb, ub
9344 integer(IK) , intent(in) :: s1, s2, s3
9345 logical(LKG) :: rand(s1, s2, s3)
9346 type(xoshiro256ssw_type) , intent(inout) :: rng
9347 end function
9348#endif
9349
9350#if LK4_ENABLED
9351 impure module function getUnifRandRNGXLU_D3_LK4(rng, lb, ub, s1, s2, s3) result(rand)
9352#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9353 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_LK4
9354#endif
9355 use pm_kind, only: LKG => LK4
9356 logical(LKG) , intent(in) :: lb, ub
9357 integer(IK) , intent(in) :: s1, s2, s3
9358 logical(LKG) :: rand(s1, s2, s3)
9359 type(xoshiro256ssw_type) , intent(inout) :: rng
9360 end function
9361#endif
9362
9363#if LK3_ENABLED
9364 impure module function getUnifRandRNGXLU_D3_LK3(rng, lb, ub, s1, s2, s3) result(rand)
9365#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9366 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_LK3
9367#endif
9368 use pm_kind, only: LKG => LK3
9369 logical(LKG) , intent(in) :: lb, ub
9370 integer(IK) , intent(in) :: s1, s2, s3
9371 logical(LKG) :: rand(s1, s2, s3)
9372 type(xoshiro256ssw_type) , intent(inout) :: rng
9373 end function
9374#endif
9375
9376#if LK2_ENABLED
9377 impure module function getUnifRandRNGXLU_D3_LK2(rng, lb, ub, s1, s2, s3) result(rand)
9378#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9379 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_LK2
9380#endif
9381 use pm_kind, only: LKG => LK2
9382 logical(LKG) , intent(in) :: lb, ub
9383 integer(IK) , intent(in) :: s1, s2, s3
9384 logical(LKG) :: rand(s1, s2, s3)
9385 type(xoshiro256ssw_type) , intent(inout) :: rng
9386 end function
9387#endif
9388
9389#if LK1_ENABLED
9390 impure module function getUnifRandRNGXLU_D3_LK1(rng, lb, ub, s1, s2, s3) result(rand)
9391#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9392 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_LK1
9393#endif
9394 use pm_kind, only: LKG => LK1
9395 logical(LKG) , intent(in) :: lb, ub
9396 integer(IK) , intent(in) :: s1, s2, s3
9397 logical(LKG) :: rand(s1, s2, s3)
9398 type(xoshiro256ssw_type) , intent(inout) :: rng
9399 end function
9400#endif
9401
9402 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9403
9404#if CK5_ENABLED
9405 impure module function getUnifRandRNGXLU_D3_CK5(rng, lb, ub, s1, s2, s3) result(rand)
9406#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9407 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_CK5
9408#endif
9409 use pm_kind, only: CKG => CK5
9410 complex(CKG) , intent(in) :: lb, ub
9411 integer(IK) , intent(in) :: s1, s2, s3
9412 complex(CKG) :: rand(s1, s2, s3)
9413 type(xoshiro256ssw_type) , intent(inout) :: rng
9414 end function
9415#endif
9416
9417#if CK4_ENABLED
9418 impure module function getUnifRandRNGXLU_D3_CK4(rng, lb, ub, s1, s2, s3) result(rand)
9419#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9420 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_CK4
9421#endif
9422 use pm_kind, only: CKG => CK4
9423 complex(CKG) , intent(in) :: lb, ub
9424 integer(IK) , intent(in) :: s1, s2, s3
9425 complex(CKG) :: rand(s1, s2, s3)
9426 type(xoshiro256ssw_type) , intent(inout) :: rng
9427 end function
9428#endif
9429
9430#if CK3_ENABLED
9431 impure module function getUnifRandRNGXLU_D3_CK3(rng, lb, ub, s1, s2, s3) result(rand)
9432#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9433 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_CK3
9434#endif
9435 use pm_kind, only: CKG => CK3
9436 complex(CKG) , intent(in) :: lb, ub
9437 integer(IK) , intent(in) :: s1, s2, s3
9438 complex(CKG) :: rand(s1, s2, s3)
9439 type(xoshiro256ssw_type) , intent(inout) :: rng
9440 end function
9441#endif
9442
9443#if CK2_ENABLED
9444 impure module function getUnifRandRNGXLU_D3_CK2(rng, lb, ub, s1, s2, s3) result(rand)
9445#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9446 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_CK2
9447#endif
9448 use pm_kind, only: CKG => CK2
9449 complex(CKG) , intent(in) :: lb, ub
9450 integer(IK) , intent(in) :: s1, s2, s3
9451 complex(CKG) :: rand(s1, s2, s3)
9452 type(xoshiro256ssw_type) , intent(inout) :: rng
9453 end function
9454#endif
9455
9456#if CK1_ENABLED
9457 impure module function getUnifRandRNGXLU_D3_CK1(rng, lb, ub, s1, s2, s3) result(rand)
9458#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9459 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_CK1
9460#endif
9461 use pm_kind, only: CKG => CK1
9462 complex(CKG) , intent(in) :: lb, ub
9463 integer(IK) , intent(in) :: s1, s2, s3
9464 complex(CKG) :: rand(s1, s2, s3)
9465 type(xoshiro256ssw_type) , intent(inout) :: rng
9466 end function
9467#endif
9468
9469 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9470
9471#if RK5_ENABLED
9472 impure module function getUnifRandRNGXLU_D3_RK5(rng, lb, ub, s1, s2, s3) result(rand)
9473#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9474 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_RK5
9475#endif
9476 use pm_kind, only: RKG => RK5
9477 real(RKG) , intent(in) :: lb, ub
9478 integer(IK) , intent(in) :: s1, s2, s3
9479 real(RKG) :: rand(s1, s2, s3)
9480 type(xoshiro256ssw_type) , intent(inout) :: rng
9481 end function
9482
9483#endif
9484
9485#if RK4_ENABLED
9486 impure module function getUnifRandRNGXLU_D3_RK4(rng, lb, ub, s1, s2, s3) result(rand)
9487#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9488 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_RK4
9489#endif
9490 use pm_kind, only: RKG => RK4
9491 real(RKG) , intent(in) :: lb, ub
9492 integer(IK) , intent(in) :: s1, s2, s3
9493 real(RKG) :: rand(s1, s2, s3)
9494 type(xoshiro256ssw_type) , intent(inout) :: rng
9495 end function
9496
9497#endif
9498
9499#if RK3_ENABLED
9500 impure module function getUnifRandRNGXLU_D3_RK3(rng, lb, ub, s1, s2, s3) result(rand)
9501#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9502 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_RK3
9503#endif
9504 use pm_kind, only: RKG => RK3
9505 real(RKG) , intent(in) :: lb, ub
9506 integer(IK) , intent(in) :: s1, s2, s3
9507 real(RKG) :: rand(s1, s2, s3)
9508 type(xoshiro256ssw_type) , intent(inout) :: rng
9509 end function
9510
9511#endif
9512
9513#if RK2_ENABLED
9514 impure module function getUnifRandRNGXLU_D3_RK2(rng, lb, ub, s1, s2, s3) result(rand)
9515#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9516 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_RK2
9517#endif
9518 use pm_kind, only: RKG => RK2
9519 real(RKG) , intent(in) :: lb, ub
9520 integer(IK) , intent(in) :: s1, s2, s3
9521 real(RKG) :: rand(s1, s2, s3)
9522 type(xoshiro256ssw_type) , intent(inout) :: rng
9523 end function
9524#endif
9525
9526#if RK1_ENABLED
9527 impure module function getUnifRandRNGXLU_D3_RK1(rng, lb, ub, s1, s2, s3) result(rand)
9528#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9529 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGXLU_D3_RK1
9530#endif
9531 use pm_kind, only: RKG => RK1
9532 real(RKG) , intent(in) :: lb, ub
9533 integer(IK) , intent(in) :: s1, s2, s3
9534 real(RKG) :: rand(s1, s2, s3)
9535 type(xoshiro256ssw_type) , intent(inout) :: rng
9536 end function
9537#endif
9538
9539 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9540
9541 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9542 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9543 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9544
9545 end interface
9546
9547 ! RNGG
9548
9549 interface getUnifRand
9550
9551 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9552 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9553 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9554
9555 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9556
9557 impure module function getUnifRandRNGGDD_D0_LK(rng) result(rand)
9558#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9559 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGDD_D0_LK
9560#endif
9561 use pm_kind, only: LKG => LK
9562 logical(LKG) :: rand
9563 type(xoshiro256ssg_type) , intent(inout) :: rng
9564 end function
9565
9566 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9567
9568 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9569 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9570 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9571
9572 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9573
9574#if SK5_ENABLED
9575 impure elemental module function getUnifRandRNGGLU_D0_SK5(rng, lb, ub) result(rand)
9576#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9577 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_SK5
9578#endif
9579 use pm_kind, only: SKG => SK5
9580 character(*,SKG) , intent(in) :: lb, ub
9581 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
9582 type(xoshiro256ssg_type) , intent(inout) :: rng
9583 end function
9584#endif
9585
9586#if SK4_ENABLED
9587 impure elemental module function getUnifRandRNGGLU_D0_SK4(rng, lb, ub) result(rand)
9588#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9589 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_SK4
9590#endif
9591 use pm_kind, only: SKG => SK4
9592 character(*,SKG) , intent(in) :: lb, ub
9593 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
9594 type(xoshiro256ssg_type) , intent(inout) :: rng
9595 end function
9596#endif
9597
9598#if SK3_ENABLED
9599 impure elemental module function getUnifRandRNGGLU_D0_SK3(rng, lb, ub) result(rand)
9600#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9601 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_SK3
9602#endif
9603 use pm_kind, only: SKG => SK3
9604 character(*,SKG) , intent(in) :: lb, ub
9605 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
9606 type(xoshiro256ssg_type) , intent(inout) :: rng
9607 end function
9608#endif
9609
9610#if SK2_ENABLED
9611 impure elemental module function getUnifRandRNGGLU_D0_SK2(rng, lb, ub) result(rand)
9612#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9613 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_SK2
9614#endif
9615 use pm_kind, only: SKG => SK2
9616 character(*,SKG) , intent(in) :: lb, ub
9617 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
9618 type(xoshiro256ssg_type) , intent(inout) :: rng
9619 end function
9620#endif
9621
9622#if SK1_ENABLED
9623 impure elemental module function getUnifRandRNGGLU_D0_SK1(rng, lb, ub) result(rand)
9624#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9625 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_SK1
9626#endif
9627 use pm_kind, only: SKG => SK1
9628 character(*,SKG) , intent(in) :: lb, ub
9629 character(max(len(lb,IK),len(ub,IK)),SKG) :: rand
9630 type(xoshiro256ssg_type) , intent(inout) :: rng
9631 end function
9632#endif
9633
9634 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9635
9636#if IK5_ENABLED
9637 impure elemental module function getUnifRandRNGGLU_D0_IK5(rng, lb, ub) result(rand)
9638#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9639 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_IK5
9640#endif
9641 use pm_kind, only: IKG => IK5
9642 integer(IKG) , intent(in) :: lb, ub
9643 integer(IKG) :: rand
9644 type(xoshiro256ssg_type) , intent(inout) :: rng
9645 end function
9646#endif
9647
9648#if IK4_ENABLED
9649 impure elemental module function getUnifRandRNGGLU_D0_IK4(rng, lb, ub) result(rand)
9650#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9651 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_IK4
9652#endif
9653 use pm_kind, only: IKG => IK4
9654 integer(IKG) , intent(in) :: lb, ub
9655 integer(IKG) :: rand
9656 type(xoshiro256ssg_type) , intent(inout) :: rng
9657 end function
9658#endif
9659
9660#if IK3_ENABLED
9661 impure elemental module function getUnifRandRNGGLU_D0_IK3(rng, lb, ub) result(rand)
9662#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9663 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_IK3
9664#endif
9665 use pm_kind, only: IKG => IK3
9666 integer(IKG) , intent(in) :: lb, ub
9667 integer(IKG) :: rand
9668 type(xoshiro256ssg_type) , intent(inout) :: rng
9669 end function
9670#endif
9671
9672#if IK2_ENABLED
9673 impure elemental module function getUnifRandRNGGLU_D0_IK2(rng, lb, ub) result(rand)
9674#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9675 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_IK2
9676#endif
9677 use pm_kind, only: IKG => IK2
9678 integer(IKG) , intent(in) :: lb, ub
9679 integer(IKG) :: rand
9680 type(xoshiro256ssg_type) , intent(inout) :: rng
9681 end function
9682#endif
9683
9684#if IK1_ENABLED
9685 impure elemental module function getUnifRandRNGGLU_D0_IK1(rng, lb, ub) result(rand)
9686#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9687 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_IK1
9688#endif
9689 use pm_kind, only: IKG => IK1
9690 integer(IKG) , intent(in) :: lb, ub
9691 integer(IKG) :: rand
9692 type(xoshiro256ssg_type) , intent(inout) :: rng
9693 end function
9694#endif
9695
9696 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9697
9698#if LK5_ENABLED
9699 impure elemental module function getUnifRandRNGGLU_D0_LK5(rng, lb, ub) result(rand)
9700#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9701 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_LK5
9702#endif
9703 use pm_kind, only: LKG => LK5
9704 logical(LKG) , intent(in) :: lb, ub
9705 logical(LKG) :: rand
9706 type(xoshiro256ssg_type) , intent(inout) :: rng
9707 end function
9708#endif
9709
9710#if LK4_ENABLED
9711 impure elemental module function getUnifRandRNGGLU_D0_LK4(rng, lb, ub) result(rand)
9712#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9713 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_LK4
9714#endif
9715 use pm_kind, only: LKG => LK4
9716 logical(LKG) , intent(in) :: lb, ub
9717 logical(LKG) :: rand
9718 type(xoshiro256ssg_type) , intent(inout) :: rng
9719 end function
9720#endif
9721
9722#if LK3_ENABLED
9723 impure elemental module function getUnifRandRNGGLU_D0_LK3(rng, lb, ub) result(rand)
9724#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9725 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_LK3
9726#endif
9727 use pm_kind, only: LKG => LK3
9728 logical(LKG) , intent(in) :: lb, ub
9729 logical(LKG) :: rand
9730 type(xoshiro256ssg_type) , intent(inout) :: rng
9731 end function
9732#endif
9733
9734#if LK2_ENABLED
9735 impure elemental module function getUnifRandRNGGLU_D0_LK2(rng, lb, ub) result(rand)
9736#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9737 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_LK2
9738#endif
9739 use pm_kind, only: LKG => LK2
9740 logical(LKG) , intent(in) :: lb, ub
9741 logical(LKG) :: rand
9742 type(xoshiro256ssg_type) , intent(inout) :: rng
9743 end function
9744#endif
9745
9746#if LK1_ENABLED
9747 impure elemental module function getUnifRandRNGGLU_D0_LK1(rng, lb, ub) result(rand)
9748#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9749 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_LK1
9750#endif
9751 use pm_kind, only: LKG => LK1
9752 logical(LKG) , intent(in) :: lb, ub
9753 logical(LKG) :: rand
9754 type(xoshiro256ssg_type) , intent(inout) :: rng
9755 end function
9756#endif
9757
9758 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9759
9760#if CK5_ENABLED
9761 impure elemental module function getUnifRandRNGGLU_D0_CK5(rng, lb, ub) result(rand)
9762#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9763 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_CK5
9764#endif
9765 use pm_kind, only: CKG => CK5
9766 complex(CKG) , intent(in) :: lb, ub
9767 complex(CKG) :: rand
9768 type(xoshiro256ssg_type) , intent(inout) :: rng
9769 end function
9770#endif
9771
9772#if CK4_ENABLED
9773 impure elemental module function getUnifRandRNGGLU_D0_CK4(rng, lb, ub) result(rand)
9774#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9775 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_CK4
9776#endif
9777 use pm_kind, only: CKG => CK4
9778 complex(CKG) , intent(in) :: lb, ub
9779 complex(CKG) :: rand
9780 type(xoshiro256ssg_type) , intent(inout) :: rng
9781 end function
9782#endif
9783
9784#if CK3_ENABLED
9785 impure elemental module function getUnifRandRNGGLU_D0_CK3(rng, lb, ub) result(rand)
9786#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9787 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_CK3
9788#endif
9789 use pm_kind, only: CKG => CK3
9790 complex(CKG) , intent(in) :: lb, ub
9791 complex(CKG) :: rand
9792 type(xoshiro256ssg_type) , intent(inout) :: rng
9793 end function
9794#endif
9795
9796#if CK2_ENABLED
9797 impure elemental module function getUnifRandRNGGLU_D0_CK2(rng, lb, ub) result(rand)
9798#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9799 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_CK2
9800#endif
9801 use pm_kind, only: CKG => CK2
9802 complex(CKG) , intent(in) :: lb, ub
9803 complex(CKG) :: rand
9804 type(xoshiro256ssg_type) , intent(inout) :: rng
9805 end function
9806#endif
9807
9808#if CK1_ENABLED
9809 impure elemental module function getUnifRandRNGGLU_D0_CK1(rng, lb, ub) result(rand)
9810#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9811 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_CK1
9812#endif
9813 use pm_kind, only: CKG => CK1
9814 complex(CKG) , intent(in) :: lb, ub
9815 complex(CKG) :: rand
9816 type(xoshiro256ssg_type) , intent(inout) :: rng
9817 end function
9818#endif
9819
9820 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9821
9822#if RK5_ENABLED
9823 impure elemental module function getUnifRandRNGGLU_D0_RK5(rng, lb, ub) result(rand)
9824#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9825 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_RK5
9826#endif
9827 use pm_kind, only: RKG => RK5
9828 real(RKG) , intent(in) :: lb, ub
9829 real(RKG) :: rand
9830 type(xoshiro256ssg_type) , intent(inout) :: rng
9831 end function
9832#endif
9833
9834#if RK4_ENABLED
9835 impure elemental module function getUnifRandRNGGLU_D0_RK4(rng, lb, ub) result(rand)
9836#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9837 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_RK4
9838#endif
9839 use pm_kind, only: RKG => RK4
9840 real(RKG) , intent(in) :: lb, ub
9841 real(RKG) :: rand
9842 type(xoshiro256ssg_type) , intent(inout) :: rng
9843 end function
9844#endif
9845
9846#if RK3_ENABLED
9847 impure elemental module function getUnifRandRNGGLU_D0_RK3(rng, lb, ub) result(rand)
9848#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9849 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_RK3
9850#endif
9851 use pm_kind, only: RKG => RK3
9852 real(RKG) , intent(in) :: lb, ub
9853 real(RKG) :: rand
9854 type(xoshiro256ssg_type) , intent(inout) :: rng
9855 end function
9856#endif
9857
9858#if RK2_ENABLED
9859 impure elemental module function getUnifRandRNGGLU_D0_RK2(rng, lb, ub) result(rand)
9860#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9861 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_RK2
9862#endif
9863 use pm_kind, only: RKG => RK2
9864 real(RKG) , intent(in) :: lb, ub
9865 real(RKG) :: rand
9866 type(xoshiro256ssg_type) , intent(inout) :: rng
9867 end function
9868#endif
9869
9870#if RK1_ENABLED
9871 impure elemental module function getUnifRandRNGGLU_D0_RK1(rng, lb, ub) result(rand)
9872#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9873 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D0_RK1
9874#endif
9875 use pm_kind, only: RKG => RK1
9876 real(RKG) , intent(in) :: lb, ub
9877 real(RKG) :: rand
9878 type(xoshiro256ssg_type) , intent(inout) :: rng
9879 end function
9880#endif
9881
9882 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9883
9884 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9885 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9886 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9887
9888 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9889
9890#if SK5_ENABLED
9891 impure module function getUnifRandRNGGLU_D1_SK5(rng, lb, ub, s1) result(rand)
9892#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9893 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_SK5
9894#endif
9895 use pm_kind, only: SKG => SK5
9896 character(*,SKG) , intent(in) :: lb, ub
9897 integer(IK) , intent(in) :: s1
9898 character(len(lb,IK),SKG) :: rand(s1)
9899 type(xoshiro256ssg_type) , intent(inout) :: rng
9900 end function
9901#endif
9902
9903#if SK4_ENABLED
9904 impure module function getUnifRandRNGGLU_D1_SK4(rng, lb, ub, s1) result(rand)
9905#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9906 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_SK4
9907#endif
9908 use pm_kind, only: SKG => SK4
9909 character(*,SKG) , intent(in) :: lb, ub
9910 integer(IK) , intent(in) :: s1
9911 character(len(lb,IK),SKG) :: rand(s1)
9912 type(xoshiro256ssg_type) , intent(inout) :: rng
9913 end function
9914#endif
9915
9916#if SK3_ENABLED
9917 impure module function getUnifRandRNGGLU_D1_SK3(rng, lb, ub, s1) result(rand)
9918#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9919 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_SK3
9920#endif
9921 use pm_kind, only: SKG => SK3
9922 character(*,SKG) , intent(in) :: lb, ub
9923 integer(IK) , intent(in) :: s1
9924 character(len(lb,IK),SKG) :: rand(s1)
9925 type(xoshiro256ssg_type) , intent(inout) :: rng
9926 end function
9927#endif
9928
9929#if SK2_ENABLED
9930 impure module function getUnifRandRNGGLU_D1_SK2(rng, lb, ub, s1) result(rand)
9931#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9932 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_SK2
9933#endif
9934 use pm_kind, only: SKG => SK2
9935 character(*,SKG) , intent(in) :: lb, ub
9936 integer(IK) , intent(in) :: s1
9937 character(len(lb,IK),SKG) :: rand(s1)
9938 type(xoshiro256ssg_type) , intent(inout) :: rng
9939 end function
9940#endif
9941
9942#if SK1_ENABLED
9943 impure module function getUnifRandRNGGLU_D1_SK1(rng, lb, ub, s1) result(rand)
9944#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9945 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_SK1
9946#endif
9947 use pm_kind, only: SKG => SK1
9948 character(*,SKG) , intent(in) :: lb, ub
9949 integer(IK) , intent(in) :: s1
9950 character(len(lb,IK),SKG) :: rand(s1)
9951 type(xoshiro256ssg_type) , intent(inout) :: rng
9952 end function
9953#endif
9954
9955 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9956
9957#if IK5_ENABLED
9958 impure module function getUnifRandRNGGLU_D1_IK5(rng, lb, ub, s1) result(rand)
9959#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9960 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_IK5
9961#endif
9962 use pm_kind, only: IKG => IK5
9963 integer(IKG) , intent(in) :: lb, ub
9964 integer(IK) , intent(in) :: s1
9965 integer(IKG) :: rand(s1)
9966 type(xoshiro256ssg_type) , intent(inout) :: rng
9967 end function
9968#endif
9969
9970#if IK4_ENABLED
9971 impure module function getUnifRandRNGGLU_D1_IK4(rng, lb, ub, s1) result(rand)
9972#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9973 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_IK4
9974#endif
9975 use pm_kind, only: IKG => IK4
9976 integer(IKG) , intent(in) :: lb, ub
9977 integer(IK) , intent(in) :: s1
9978 integer(IKG) :: rand(s1)
9979 type(xoshiro256ssg_type) , intent(inout) :: rng
9980 end function
9981#endif
9982
9983#if IK3_ENABLED
9984 impure module function getUnifRandRNGGLU_D1_IK3(rng, lb, ub, s1) result(rand)
9985#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9986 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_IK3
9987#endif
9988 use pm_kind, only: IKG => IK3
9989 integer(IKG) , intent(in) :: lb, ub
9990 integer(IK) , intent(in) :: s1
9991 integer(IKG) :: rand(s1)
9992 type(xoshiro256ssg_type) , intent(inout) :: rng
9993 end function
9994#endif
9995
9996#if IK2_ENABLED
9997 impure module function getUnifRandRNGGLU_D1_IK2(rng, lb, ub, s1) result(rand)
9998#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9999 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_IK2
10000#endif
10001 use pm_kind, only: IKG => IK2
10002 integer(IKG) , intent(in) :: lb, ub
10003 integer(IK) , intent(in) :: s1
10004 integer(IKG) :: rand(s1)
10005 type(xoshiro256ssg_type) , intent(inout) :: rng
10006 end function
10007#endif
10008
10009#if IK1_ENABLED
10010 impure module function getUnifRandRNGGLU_D1_IK1(rng, lb, ub, s1) result(rand)
10011#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10012 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_IK1
10013#endif
10014 use pm_kind, only: IKG => IK1
10015 integer(IKG) , intent(in) :: lb, ub
10016 integer(IK) , intent(in) :: s1
10017 integer(IKG) :: rand(s1)
10018 type(xoshiro256ssg_type) , intent(inout) :: rng
10019 end function
10020#endif
10021
10022 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10023
10024#if LK5_ENABLED
10025 impure module function getUnifRandRNGGLU_D1_LK5(rng, lb, ub, s1) result(rand)
10026#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10027 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_LK5
10028#endif
10029 use pm_kind, only: LKG => LK5
10030 logical(LKG) , intent(in) :: lb, ub
10031 integer(IK) , intent(in) :: s1
10032 logical(LKG) :: rand(s1)
10033 type(xoshiro256ssg_type) , intent(inout) :: rng
10034 end function
10035#endif
10036
10037#if LK4_ENABLED
10038 impure module function getUnifRandRNGGLU_D1_LK4(rng, lb, ub, s1) result(rand)
10039#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10040 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_LK4
10041#endif
10042 use pm_kind, only: LKG => LK4
10043 logical(LKG) , intent(in) :: lb, ub
10044 integer(IK) , intent(in) :: s1
10045 logical(LKG) :: rand(s1)
10046 type(xoshiro256ssg_type) , intent(inout) :: rng
10047 end function
10048#endif
10049
10050#if LK3_ENABLED
10051 impure module function getUnifRandRNGGLU_D1_LK3(rng, lb, ub, s1) result(rand)
10052#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10053 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_LK3
10054#endif
10055 use pm_kind, only: LKG => LK3
10056 logical(LKG) , intent(in) :: lb, ub
10057 integer(IK) , intent(in) :: s1
10058 logical(LKG) :: rand(s1)
10059 type(xoshiro256ssg_type) , intent(inout) :: rng
10060 end function
10061#endif
10062
10063#if LK2_ENABLED
10064 impure module function getUnifRandRNGGLU_D1_LK2(rng, lb, ub, s1) result(rand)
10065#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10066 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_LK2
10067#endif
10068 use pm_kind, only: LKG => LK2
10069 logical(LKG) , intent(in) :: lb, ub
10070 integer(IK) , intent(in) :: s1
10071 logical(LKG) :: rand(s1)
10072 type(xoshiro256ssg_type) , intent(inout) :: rng
10073 end function
10074#endif
10075
10076#if LK1_ENABLED
10077 impure module function getUnifRandRNGGLU_D1_LK1(rng, lb, ub, s1) result(rand)
10078#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10079 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_LK1
10080#endif
10081 use pm_kind, only: LKG => LK1
10082 logical(LKG) , intent(in) :: lb, ub
10083 integer(IK) , intent(in) :: s1
10084 logical(LKG) :: rand(s1)
10085 type(xoshiro256ssg_type) , intent(inout) :: rng
10086 end function
10087#endif
10088
10089 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10090
10091#if CK5_ENABLED
10092 impure module function getUnifRandRNGGLU_D1_CK5(rng, lb, ub, s1) result(rand)
10093#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10094 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_CK5
10095#endif
10096 use pm_kind, only: CKG => CK5
10097 complex(CKG) , intent(in) :: lb, ub
10098 integer(IK) , intent(in) :: s1
10099 complex(CKG) :: rand(s1)
10100 type(xoshiro256ssg_type) , intent(inout) :: rng
10101 end function
10102#endif
10103
10104#if CK4_ENABLED
10105 impure module function getUnifRandRNGGLU_D1_CK4(rng, lb, ub, s1) result(rand)
10106#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10107 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_CK4
10108#endif
10109 use pm_kind, only: CKG => CK4
10110 complex(CKG) , intent(in) :: lb, ub
10111 integer(IK) , intent(in) :: s1
10112 complex(CKG) :: rand(s1)
10113 type(xoshiro256ssg_type) , intent(inout) :: rng
10114 end function
10115#endif
10116
10117#if CK3_ENABLED
10118 impure module function getUnifRandRNGGLU_D1_CK3(rng, lb, ub, s1) result(rand)
10119#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10120 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_CK3
10121#endif
10122 use pm_kind, only: CKG => CK3
10123 complex(CKG) , intent(in) :: lb, ub
10124 integer(IK) , intent(in) :: s1
10125 complex(CKG) :: rand(s1)
10126 type(xoshiro256ssg_type) , intent(inout) :: rng
10127 end function
10128#endif
10129
10130#if CK2_ENABLED
10131 impure module function getUnifRandRNGGLU_D1_CK2(rng, lb, ub, s1) result(rand)
10132#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10133 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_CK2
10134#endif
10135 use pm_kind, only: CKG => CK2
10136 complex(CKG) , intent(in) :: lb, ub
10137 integer(IK) , intent(in) :: s1
10138 complex(CKG) :: rand(s1)
10139 type(xoshiro256ssg_type) , intent(inout) :: rng
10140 end function
10141#endif
10142
10143#if CK1_ENABLED
10144 impure module function getUnifRandRNGGLU_D1_CK1(rng, lb, ub, s1) result(rand)
10145#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10146 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_CK1
10147#endif
10148 use pm_kind, only: CKG => CK1
10149 complex(CKG) , intent(in) :: lb, ub
10150 integer(IK) , intent(in) :: s1
10151 complex(CKG) :: rand(s1)
10152 type(xoshiro256ssg_type) , intent(inout) :: rng
10153 end function
10154#endif
10155
10156 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10157
10158#if RK5_ENABLED
10159 impure module function getUnifRandRNGGLU_D1_RK5(rng, lb, ub, s1) result(rand)
10160#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10161 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_RK5
10162#endif
10163 use pm_kind, only: RKG => RK5
10164 real(RKG) , intent(in) :: lb, ub
10165 integer(IK) , intent(in) :: s1
10166 real(RKG) :: rand(s1)
10167 type(xoshiro256ssg_type) , intent(inout) :: rng
10168 end function
10169
10170#endif
10171
10172#if RK4_ENABLED
10173 impure module function getUnifRandRNGGLU_D1_RK4(rng, lb, ub, s1) result(rand)
10174#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10175 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_RK4
10176#endif
10177 use pm_kind, only: RKG => RK4
10178 real(RKG) , intent(in) :: lb, ub
10179 integer(IK) , intent(in) :: s1
10180 real(RKG) :: rand(s1)
10181 type(xoshiro256ssg_type) , intent(inout) :: rng
10182 end function
10183
10184#endif
10185
10186#if RK3_ENABLED
10187 impure module function getUnifRandRNGGLU_D1_RK3(rng, lb, ub, s1) result(rand)
10188#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10189 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_RK3
10190#endif
10191 use pm_kind, only: RKG => RK3
10192 real(RKG) , intent(in) :: lb, ub
10193 integer(IK) , intent(in) :: s1
10194 real(RKG) :: rand(s1)
10195 type(xoshiro256ssg_type) , intent(inout) :: rng
10196 end function
10197
10198#endif
10199
10200#if RK2_ENABLED
10201 impure module function getUnifRandRNGGLU_D1_RK2(rng, lb, ub, s1) result(rand)
10202#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10203 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_RK2
10204#endif
10205 use pm_kind, only: RKG => RK2
10206 real(RKG) , intent(in) :: lb, ub
10207 integer(IK) , intent(in) :: s1
10208 real(RKG) :: rand(s1)
10209 type(xoshiro256ssg_type) , intent(inout) :: rng
10210 end function
10211#endif
10212
10213#if RK1_ENABLED
10214 impure module function getUnifRandRNGGLU_D1_RK1(rng, lb, ub, s1) result(rand)
10215#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10216 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D1_RK1
10217#endif
10218 use pm_kind, only: RKG => RK1
10219 real(RKG) , intent(in) :: lb, ub
10220 integer(IK) , intent(in) :: s1
10221 real(RKG) :: rand(s1)
10222 type(xoshiro256ssg_type) , intent(inout) :: rng
10223 end function
10224#endif
10225
10226 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10227
10228 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10229 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10230 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10231
10232 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10233
10234#if SK5_ENABLED
10235 impure module function getUnifRandRNGGLU_D2_SK5(rng, lb, ub, s1, s2) result(rand)
10236#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10237 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_SK5
10238#endif
10239 use pm_kind, only: SKG => SK5
10240 character(*,SKG) , intent(in) :: lb, ub
10241 integer(IK) , intent(in) :: s1, s2
10242 character(len(lb,IK),SKG) :: rand(s1, s2)
10243 type(xoshiro256ssg_type) , intent(inout) :: rng
10244 end function
10245#endif
10246
10247#if SK4_ENABLED
10248 impure module function getUnifRandRNGGLU_D2_SK4(rng, lb, ub, s1, s2) result(rand)
10249#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10250 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_SK4
10251#endif
10252 use pm_kind, only: SKG => SK4
10253 character(*,SKG) , intent(in) :: lb, ub
10254 integer(IK) , intent(in) :: s1, s2
10255 character(len(lb,IK),SKG) :: rand(s1, s2)
10256 type(xoshiro256ssg_type) , intent(inout) :: rng
10257 end function
10258#endif
10259
10260#if SK3_ENABLED
10261 impure module function getUnifRandRNGGLU_D2_SK3(rng, lb, ub, s1, s2) result(rand)
10262#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10263 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_SK3
10264#endif
10265 use pm_kind, only: SKG => SK3
10266 character(*,SKG) , intent(in) :: lb, ub
10267 integer(IK) , intent(in) :: s1, s2
10268 character(len(lb,IK),SKG) :: rand(s1, s2)
10269 type(xoshiro256ssg_type) , intent(inout) :: rng
10270 end function
10271#endif
10272
10273#if SK2_ENABLED
10274 impure module function getUnifRandRNGGLU_D2_SK2(rng, lb, ub, s1, s2) result(rand)
10275#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10276 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_SK2
10277#endif
10278 use pm_kind, only: SKG => SK2
10279 character(*,SKG) , intent(in) :: lb, ub
10280 integer(IK) , intent(in) :: s1, s2
10281 character(len(lb,IK),SKG) :: rand(s1, s2)
10282 type(xoshiro256ssg_type) , intent(inout) :: rng
10283 end function
10284#endif
10285
10286#if SK1_ENABLED
10287 impure module function getUnifRandRNGGLU_D2_SK1(rng, lb, ub, s1, s2) result(rand)
10288#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10289 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_SK1
10290#endif
10291 use pm_kind, only: SKG => SK1
10292 character(*,SKG) , intent(in) :: lb, ub
10293 integer(IK) , intent(in) :: s1, s2
10294 character(len(lb,IK),SKG) :: rand(s1, s2)
10295 type(xoshiro256ssg_type) , intent(inout) :: rng
10296 end function
10297#endif
10298
10299 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10300
10301#if IK5_ENABLED
10302 impure module function getUnifRandRNGGLU_D2_IK5(rng, lb, ub, s1, s2) result(rand)
10303#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10304 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_IK5
10305#endif
10306 use pm_kind, only: IKG => IK5
10307 integer(IKG) , intent(in) :: lb, ub
10308 integer(IK) , intent(in) :: s1, s2
10309 integer(IKG) :: rand(s1, s2)
10310 type(xoshiro256ssg_type) , intent(inout) :: rng
10311 end function
10312#endif
10313
10314#if IK4_ENABLED
10315 impure module function getUnifRandRNGGLU_D2_IK4(rng, lb, ub, s1, s2) result(rand)
10316#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10317 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_IK4
10318#endif
10319 use pm_kind, only: IKG => IK4
10320 integer(IKG) , intent(in) :: lb, ub
10321 integer(IK) , intent(in) :: s1, s2
10322 integer(IKG) :: rand(s1, s2)
10323 type(xoshiro256ssg_type) , intent(inout) :: rng
10324 end function
10325#endif
10326
10327#if IK3_ENABLED
10328 impure module function getUnifRandRNGGLU_D2_IK3(rng, lb, ub, s1, s2) result(rand)
10329#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10330 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_IK3
10331#endif
10332 use pm_kind, only: IKG => IK3
10333 integer(IKG) , intent(in) :: lb, ub
10334 integer(IK) , intent(in) :: s1, s2
10335 integer(IKG) :: rand(s1, s2)
10336 type(xoshiro256ssg_type) , intent(inout) :: rng
10337 end function
10338#endif
10339
10340#if IK2_ENABLED
10341 impure module function getUnifRandRNGGLU_D2_IK2(rng, lb, ub, s1, s2) result(rand)
10342#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10343 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_IK2
10344#endif
10345 use pm_kind, only: IKG => IK2
10346 integer(IKG) , intent(in) :: lb, ub
10347 integer(IK) , intent(in) :: s1, s2
10348 integer(IKG) :: rand(s1, s2)
10349 type(xoshiro256ssg_type) , intent(inout) :: rng
10350 end function
10351#endif
10352
10353#if IK1_ENABLED
10354 impure module function getUnifRandRNGGLU_D2_IK1(rng, lb, ub, s1, s2) result(rand)
10355#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10356 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_IK1
10357#endif
10358 use pm_kind, only: IKG => IK1
10359 integer(IKG) , intent(in) :: lb, ub
10360 integer(IK) , intent(in) :: s1, s2
10361 integer(IKG) :: rand(s1, s2)
10362 type(xoshiro256ssg_type) , intent(inout) :: rng
10363 end function
10364#endif
10365
10366 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10367
10368#if LK5_ENABLED
10369 impure module function getUnifRandRNGGLU_D2_LK5(rng, lb, ub, s1, s2) result(rand)
10370#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10371 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_LK5
10372#endif
10373 use pm_kind, only: LKG => LK5
10374 logical(LKG) , intent(in) :: lb, ub
10375 integer(IK) , intent(in) :: s1, s2
10376 logical(LKG) :: rand(s1, s2)
10377 type(xoshiro256ssg_type) , intent(inout) :: rng
10378 end function
10379#endif
10380
10381#if LK4_ENABLED
10382 impure module function getUnifRandRNGGLU_D2_LK4(rng, lb, ub, s1, s2) result(rand)
10383#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10384 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_LK4
10385#endif
10386 use pm_kind, only: LKG => LK4
10387 logical(LKG) , intent(in) :: lb, ub
10388 integer(IK) , intent(in) :: s1, s2
10389 logical(LKG) :: rand(s1, s2)
10390 type(xoshiro256ssg_type) , intent(inout) :: rng
10391 end function
10392#endif
10393
10394#if LK3_ENABLED
10395 impure module function getUnifRandRNGGLU_D2_LK3(rng, lb, ub, s1, s2) result(rand)
10396#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10397 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_LK3
10398#endif
10399 use pm_kind, only: LKG => LK3
10400 logical(LKG) , intent(in) :: lb, ub
10401 integer(IK) , intent(in) :: s1, s2
10402 logical(LKG) :: rand(s1, s2)
10403 type(xoshiro256ssg_type) , intent(inout) :: rng
10404 end function
10405#endif
10406
10407#if LK2_ENABLED
10408 impure module function getUnifRandRNGGLU_D2_LK2(rng, lb, ub, s1, s2) result(rand)
10409#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10410 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_LK2
10411#endif
10412 use pm_kind, only: LKG => LK2
10413 logical(LKG) , intent(in) :: lb, ub
10414 integer(IK) , intent(in) :: s1, s2
10415 logical(LKG) :: rand(s1, s2)
10416 type(xoshiro256ssg_type) , intent(inout) :: rng
10417 end function
10418#endif
10419
10420#if LK1_ENABLED
10421 impure module function getUnifRandRNGGLU_D2_LK1(rng, lb, ub, s1, s2) result(rand)
10422#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10423 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_LK1
10424#endif
10425 use pm_kind, only: LKG => LK1
10426 logical(LKG) , intent(in) :: lb, ub
10427 integer(IK) , intent(in) :: s1, s2
10428 logical(LKG) :: rand(s1, s2)
10429 type(xoshiro256ssg_type) , intent(inout) :: rng
10430 end function
10431#endif
10432
10433 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10434
10435#if CK5_ENABLED
10436 impure module function getUnifRandRNGGLU_D2_CK5(rng, lb, ub, s1, s2) result(rand)
10437#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10438 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_CK5
10439#endif
10440 use pm_kind, only: CKG => CK5
10441 complex(CKG) , intent(in) :: lb, ub
10442 integer(IK) , intent(in) :: s1, s2
10443 complex(CKG) :: rand(s1, s2)
10444 type(xoshiro256ssg_type) , intent(inout) :: rng
10445 end function
10446#endif
10447
10448#if CK4_ENABLED
10449 impure module function getUnifRandRNGGLU_D2_CK4(rng, lb, ub, s1, s2) result(rand)
10450#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10451 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_CK4
10452#endif
10453 use pm_kind, only: CKG => CK4
10454 complex(CKG) , intent(in) :: lb, ub
10455 integer(IK) , intent(in) :: s1, s2
10456 complex(CKG) :: rand(s1, s2)
10457 type(xoshiro256ssg_type) , intent(inout) :: rng
10458 end function
10459#endif
10460
10461#if CK3_ENABLED
10462 impure module function getUnifRandRNGGLU_D2_CK3(rng, lb, ub, s1, s2) result(rand)
10463#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10464 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_CK3
10465#endif
10466 use pm_kind, only: CKG => CK3
10467 complex(CKG) , intent(in) :: lb, ub
10468 integer(IK) , intent(in) :: s1, s2
10469 complex(CKG) :: rand(s1, s2)
10470 type(xoshiro256ssg_type) , intent(inout) :: rng
10471 end function
10472#endif
10473
10474#if CK2_ENABLED
10475 impure module function getUnifRandRNGGLU_D2_CK2(rng, lb, ub, s1, s2) result(rand)
10476#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10477 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_CK2
10478#endif
10479 use pm_kind, only: CKG => CK2
10480 complex(CKG) , intent(in) :: lb, ub
10481 integer(IK) , intent(in) :: s1, s2
10482 complex(CKG) :: rand(s1, s2)
10483 type(xoshiro256ssg_type) , intent(inout) :: rng
10484 end function
10485#endif
10486
10487#if CK1_ENABLED
10488 impure module function getUnifRandRNGGLU_D2_CK1(rng, lb, ub, s1, s2) result(rand)
10489#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10490 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_CK1
10491#endif
10492 use pm_kind, only: CKG => CK1
10493 complex(CKG) , intent(in) :: lb, ub
10494 integer(IK) , intent(in) :: s1, s2
10495 complex(CKG) :: rand(s1, s2)
10496 type(xoshiro256ssg_type) , intent(inout) :: rng
10497 end function
10498#endif
10499
10500 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10501
10502#if RK5_ENABLED
10503 impure module function getUnifRandRNGGLU_D2_RK5(rng, lb, ub, s1, s2) result(rand)
10504#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10505 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_RK5
10506#endif
10507 use pm_kind, only: RKG => RK5
10508 real(RKG) , intent(in) :: lb, ub
10509 integer(IK) , intent(in) :: s1, s2
10510 real(RKG) :: rand(s1, s2)
10511 type(xoshiro256ssg_type) , intent(inout) :: rng
10512 end function
10513
10514#endif
10515
10516#if RK4_ENABLED
10517 impure module function getUnifRandRNGGLU_D2_RK4(rng, lb, ub, s1, s2) result(rand)
10518#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10519 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_RK4
10520#endif
10521 use pm_kind, only: RKG => RK4
10522 real(RKG) , intent(in) :: lb, ub
10523 integer(IK) , intent(in) :: s1, s2
10524 real(RKG) :: rand(s1, s2)
10525 type(xoshiro256ssg_type) , intent(inout) :: rng
10526 end function
10527
10528#endif
10529
10530#if RK3_ENABLED
10531 impure module function getUnifRandRNGGLU_D2_RK3(rng, lb, ub, s1, s2) result(rand)
10532#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10533 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_RK3
10534#endif
10535 use pm_kind, only: RKG => RK3
10536 real(RKG) , intent(in) :: lb, ub
10537 integer(IK) , intent(in) :: s1, s2
10538 real(RKG) :: rand(s1, s2)
10539 type(xoshiro256ssg_type) , intent(inout) :: rng
10540 end function
10541
10542#endif
10543
10544#if RK2_ENABLED
10545 impure module function getUnifRandRNGGLU_D2_RK2(rng, lb, ub, s1, s2) result(rand)
10546#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10547 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_RK2
10548#endif
10549 use pm_kind, only: RKG => RK2
10550 real(RKG) , intent(in) :: lb, ub
10551 integer(IK) , intent(in) :: s1, s2
10552 real(RKG) :: rand(s1, s2)
10553 type(xoshiro256ssg_type) , intent(inout) :: rng
10554 end function
10555#endif
10556
10557#if RK1_ENABLED
10558 impure module function getUnifRandRNGGLU_D2_RK1(rng, lb, ub, s1, s2) result(rand)
10559#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10560 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D2_RK1
10561#endif
10562 use pm_kind, only: RKG => RK1
10563 real(RKG) , intent(in) :: lb, ub
10564 integer(IK) , intent(in) :: s1, s2
10565 real(RKG) :: rand(s1, s2)
10566 type(xoshiro256ssg_type) , intent(inout) :: rng
10567 end function
10568#endif
10569
10570 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10571
10572 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10573 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10574 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10575
10576 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10577
10578#if SK5_ENABLED
10579 impure module function getUnifRandRNGGLU_D3_SK5(rng, lb, ub, s1, s2, s3) result(rand)
10580#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10581 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_SK5
10582#endif
10583 use pm_kind, only: SKG => SK5
10584 character(*,SKG) , intent(in) :: lb, ub
10585 integer(IK) , intent(in) :: s1, s2, s3
10586 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
10587 type(xoshiro256ssg_type) , intent(inout) :: rng
10588 end function
10589#endif
10590
10591#if SK4_ENABLED
10592 impure module function getUnifRandRNGGLU_D3_SK4(rng, lb, ub, s1, s2, s3) result(rand)
10593#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10594 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_SK4
10595#endif
10596 use pm_kind, only: SKG => SK4
10597 character(*,SKG) , intent(in) :: lb, ub
10598 integer(IK) , intent(in) :: s1, s2, s3
10599 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
10600 type(xoshiro256ssg_type) , intent(inout) :: rng
10601 end function
10602#endif
10603
10604#if SK3_ENABLED
10605 impure module function getUnifRandRNGGLU_D3_SK3(rng, lb, ub, s1, s2, s3) result(rand)
10606#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10607 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_SK3
10608#endif
10609 use pm_kind, only: SKG => SK3
10610 character(*,SKG) , intent(in) :: lb, ub
10611 integer(IK) , intent(in) :: s1, s2, s3
10612 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
10613 type(xoshiro256ssg_type) , intent(inout) :: rng
10614 end function
10615#endif
10616
10617#if SK2_ENABLED
10618 impure module function getUnifRandRNGGLU_D3_SK2(rng, lb, ub, s1, s2, s3) result(rand)
10619#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10620 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_SK2
10621#endif
10622 use pm_kind, only: SKG => SK2
10623 character(*,SKG) , intent(in) :: lb, ub
10624 integer(IK) , intent(in) :: s1, s2, s3
10625 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
10626 type(xoshiro256ssg_type) , intent(inout) :: rng
10627 end function
10628#endif
10629
10630#if SK1_ENABLED
10631 impure module function getUnifRandRNGGLU_D3_SK1(rng, lb, ub, s1, s2, s3) result(rand)
10632#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10633 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_SK1
10634#endif
10635 use pm_kind, only: SKG => SK1
10636 character(*,SKG) , intent(in) :: lb, ub
10637 integer(IK) , intent(in) :: s1, s2, s3
10638 character(len(lb,IK),SKG) :: rand(s1, s2, s3)
10639 type(xoshiro256ssg_type) , intent(inout) :: rng
10640 end function
10641#endif
10642
10643 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10644
10645#if IK5_ENABLED
10646 impure module function getUnifRandRNGGLU_D3_IK5(rng, lb, ub, s1, s2, s3) result(rand)
10647#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10648 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_IK5
10649#endif
10650 use pm_kind, only: IKG => IK5
10651 integer(IKG) , intent(in) :: lb, ub
10652 integer(IK) , intent(in) :: s1, s2, s3
10653 integer(IKG) :: rand(s1, s2, s3)
10654 type(xoshiro256ssg_type) , intent(inout) :: rng
10655 end function
10656#endif
10657
10658#if IK4_ENABLED
10659 impure module function getUnifRandRNGGLU_D3_IK4(rng, lb, ub, s1, s2, s3) result(rand)
10660#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10661 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_IK4
10662#endif
10663 use pm_kind, only: IKG => IK4
10664 integer(IKG) , intent(in) :: lb, ub
10665 integer(IK) , intent(in) :: s1, s2, s3
10666 integer(IKG) :: rand(s1, s2, s3)
10667 type(xoshiro256ssg_type) , intent(inout) :: rng
10668 end function
10669#endif
10670
10671#if IK3_ENABLED
10672 impure module function getUnifRandRNGGLU_D3_IK3(rng, lb, ub, s1, s2, s3) result(rand)
10673#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10674 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_IK3
10675#endif
10676 use pm_kind, only: IKG => IK3
10677 integer(IKG) , intent(in) :: lb, ub
10678 integer(IK) , intent(in) :: s1, s2, s3
10679 integer(IKG) :: rand(s1, s2, s3)
10680 type(xoshiro256ssg_type) , intent(inout) :: rng
10681 end function
10682#endif
10683
10684#if IK2_ENABLED
10685 impure module function getUnifRandRNGGLU_D3_IK2(rng, lb, ub, s1, s2, s3) result(rand)
10686#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10687 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_IK2
10688#endif
10689 use pm_kind, only: IKG => IK2
10690 integer(IKG) , intent(in) :: lb, ub
10691 integer(IK) , intent(in) :: s1, s2, s3
10692 integer(IKG) :: rand(s1, s2, s3)
10693 type(xoshiro256ssg_type) , intent(inout) :: rng
10694 end function
10695#endif
10696
10697#if IK1_ENABLED
10698 impure module function getUnifRandRNGGLU_D3_IK1(rng, lb, ub, s1, s2, s3) result(rand)
10699#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10700 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_IK1
10701#endif
10702 use pm_kind, only: IKG => IK1
10703 integer(IKG) , intent(in) :: lb, ub
10704 integer(IK) , intent(in) :: s1, s2, s3
10705 integer(IKG) :: rand(s1, s2, s3)
10706 type(xoshiro256ssg_type) , intent(inout) :: rng
10707 end function
10708#endif
10709
10710 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10711
10712#if LK5_ENABLED
10713 impure module function getUnifRandRNGGLU_D3_LK5(rng, lb, ub, s1, s2, s3) result(rand)
10714#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10715 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_LK5
10716#endif
10717 use pm_kind, only: LKG => LK5
10718 logical(LKG) , intent(in) :: lb, ub
10719 integer(IK) , intent(in) :: s1, s2, s3
10720 logical(LKG) :: rand(s1, s2, s3)
10721 type(xoshiro256ssg_type) , intent(inout) :: rng
10722 end function
10723#endif
10724
10725#if LK4_ENABLED
10726 impure module function getUnifRandRNGGLU_D3_LK4(rng, lb, ub, s1, s2, s3) result(rand)
10727#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10728 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_LK4
10729#endif
10730 use pm_kind, only: LKG => LK4
10731 logical(LKG) , intent(in) :: lb, ub
10732 integer(IK) , intent(in) :: s1, s2, s3
10733 logical(LKG) :: rand(s1, s2, s3)
10734 type(xoshiro256ssg_type) , intent(inout) :: rng
10735 end function
10736#endif
10737
10738#if LK3_ENABLED
10739 impure module function getUnifRandRNGGLU_D3_LK3(rng, lb, ub, s1, s2, s3) result(rand)
10740#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10741 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_LK3
10742#endif
10743 use pm_kind, only: LKG => LK3
10744 logical(LKG) , intent(in) :: lb, ub
10745 integer(IK) , intent(in) :: s1, s2, s3
10746 logical(LKG) :: rand(s1, s2, s3)
10747 type(xoshiro256ssg_type) , intent(inout) :: rng
10748 end function
10749#endif
10750
10751#if LK2_ENABLED
10752 impure module function getUnifRandRNGGLU_D3_LK2(rng, lb, ub, s1, s2, s3) result(rand)
10753#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10754 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_LK2
10755#endif
10756 use pm_kind, only: LKG => LK2
10757 logical(LKG) , intent(in) :: lb, ub
10758 integer(IK) , intent(in) :: s1, s2, s3
10759 logical(LKG) :: rand(s1, s2, s3)
10760 type(xoshiro256ssg_type) , intent(inout) :: rng
10761 end function
10762#endif
10763
10764#if LK1_ENABLED
10765 impure module function getUnifRandRNGGLU_D3_LK1(rng, lb, ub, s1, s2, s3) result(rand)
10766#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10767 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_LK1
10768#endif
10769 use pm_kind, only: LKG => LK1
10770 logical(LKG) , intent(in) :: lb, ub
10771 integer(IK) , intent(in) :: s1, s2, s3
10772 logical(LKG) :: rand(s1, s2, s3)
10773 type(xoshiro256ssg_type) , intent(inout) :: rng
10774 end function
10775#endif
10776
10777 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10778
10779#if CK5_ENABLED
10780 impure module function getUnifRandRNGGLU_D3_CK5(rng, lb, ub, s1, s2, s3) result(rand)
10781#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10782 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_CK5
10783#endif
10784 use pm_kind, only: CKG => CK5
10785 complex(CKG) , intent(in) :: lb, ub
10786 integer(IK) , intent(in) :: s1, s2, s3
10787 complex(CKG) :: rand(s1, s2, s3)
10788 type(xoshiro256ssg_type) , intent(inout) :: rng
10789 end function
10790#endif
10791
10792#if CK4_ENABLED
10793 impure module function getUnifRandRNGGLU_D3_CK4(rng, lb, ub, s1, s2, s3) result(rand)
10794#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10795 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_CK4
10796#endif
10797 use pm_kind, only: CKG => CK4
10798 complex(CKG) , intent(in) :: lb, ub
10799 integer(IK) , intent(in) :: s1, s2, s3
10800 complex(CKG) :: rand(s1, s2, s3)
10801 type(xoshiro256ssg_type) , intent(inout) :: rng
10802 end function
10803#endif
10804
10805#if CK3_ENABLED
10806 impure module function getUnifRandRNGGLU_D3_CK3(rng, lb, ub, s1, s2, s3) result(rand)
10807#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10808 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_CK3
10809#endif
10810 use pm_kind, only: CKG => CK3
10811 complex(CKG) , intent(in) :: lb, ub
10812 integer(IK) , intent(in) :: s1, s2, s3
10813 complex(CKG) :: rand(s1, s2, s3)
10814 type(xoshiro256ssg_type) , intent(inout) :: rng
10815 end function
10816#endif
10817
10818#if CK2_ENABLED
10819 impure module function getUnifRandRNGGLU_D3_CK2(rng, lb, ub, s1, s2, s3) result(rand)
10820#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10821 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_CK2
10822#endif
10823 use pm_kind, only: CKG => CK2
10824 complex(CKG) , intent(in) :: lb, ub
10825 integer(IK) , intent(in) :: s1, s2, s3
10826 complex(CKG) :: rand(s1, s2, s3)
10827 type(xoshiro256ssg_type) , intent(inout) :: rng
10828 end function
10829#endif
10830
10831#if CK1_ENABLED
10832 impure module function getUnifRandRNGGLU_D3_CK1(rng, lb, ub, s1, s2, s3) result(rand)
10833#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10834 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_CK1
10835#endif
10836 use pm_kind, only: CKG => CK1
10837 complex(CKG) , intent(in) :: lb, ub
10838 integer(IK) , intent(in) :: s1, s2, s3
10839 complex(CKG) :: rand(s1, s2, s3)
10840 type(xoshiro256ssg_type) , intent(inout) :: rng
10841 end function
10842#endif
10843
10844 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10845
10846#if RK5_ENABLED
10847 impure module function getUnifRandRNGGLU_D3_RK5(rng, lb, ub, s1, s2, s3) result(rand)
10848#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10849 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_RK5
10850#endif
10851 use pm_kind, only: RKG => RK5
10852 real(RKG) , intent(in) :: lb, ub
10853 integer(IK) , intent(in) :: s1, s2, s3
10854 real(RKG) :: rand(s1, s2, s3)
10855 type(xoshiro256ssg_type) , intent(inout) :: rng
10856 end function
10857
10858#endif
10859
10860#if RK4_ENABLED
10861 impure module function getUnifRandRNGGLU_D3_RK4(rng, lb, ub, s1, s2, s3) result(rand)
10862#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10863 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_RK4
10864#endif
10865 use pm_kind, only: RKG => RK4
10866 real(RKG) , intent(in) :: lb, ub
10867 integer(IK) , intent(in) :: s1, s2, s3
10868 real(RKG) :: rand(s1, s2, s3)
10869 type(xoshiro256ssg_type) , intent(inout) :: rng
10870 end function
10871
10872#endif
10873
10874#if RK3_ENABLED
10875 impure module function getUnifRandRNGGLU_D3_RK3(rng, lb, ub, s1, s2, s3) result(rand)
10876#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10877 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_RK3
10878#endif
10879 use pm_kind, only: RKG => RK3
10880 real(RKG) , intent(in) :: lb, ub
10881 integer(IK) , intent(in) :: s1, s2, s3
10882 real(RKG) :: rand(s1, s2, s3)
10883 type(xoshiro256ssg_type) , intent(inout) :: rng
10884 end function
10885
10886#endif
10887
10888#if RK2_ENABLED
10889 impure module function getUnifRandRNGGLU_D3_RK2(rng, lb, ub, s1, s2, s3) result(rand)
10890#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10891 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_RK2
10892#endif
10893 use pm_kind, only: RKG => RK2
10894 real(RKG) , intent(in) :: lb, ub
10895 integer(IK) , intent(in) :: s1, s2, s3
10896 real(RKG) :: rand(s1, s2, s3)
10897 type(xoshiro256ssg_type) , intent(inout) :: rng
10898 end function
10899#endif
10900
10901#if RK1_ENABLED
10902 impure module function getUnifRandRNGGLU_D3_RK1(rng, lb, ub, s1, s2, s3) result(rand)
10903#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10904 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifRandRNGGLU_D3_RK1
10905#endif
10906 use pm_kind, only: RKG => RK1
10907 real(RKG) , intent(in) :: lb, ub
10908 integer(IK) , intent(in) :: s1, s2, s3
10909 real(RKG) :: rand(s1, s2, s3)
10910 type(xoshiro256ssg_type) , intent(inout) :: rng
10911 end function
10912#endif
10913
10914 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10915
10916 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10917 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10918 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10919
10920 end interface
10921
10922!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10923
11080
11081 ! RNGD
11082
11083 interface setUnifRand
11084
11085 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11086 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11087 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11088
11089 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11090
11091#if SK5_ENABLED
11092 impure elemental module subroutine setUnifRandRNGDDD_D0_SK5(rand)
11093#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11094 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_SK5
11095#endif
11096 use pm_kind, only: SKG => SK5
11097 character(*,SKG) , intent(out) :: rand
11098 end subroutine
11099#endif
11100
11101#if SK4_ENABLED
11102 impure elemental module subroutine setUnifRandRNGDDD_D0_SK4(rand)
11103#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11104 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_SK4
11105#endif
11106 use pm_kind, only: SKG => SK4
11107 character(*,SKG) , intent(out) :: rand
11108 end subroutine
11109#endif
11110
11111#if SK3_ENABLED
11112 impure elemental module subroutine setUnifRandRNGDDD_D0_SK3(rand)
11113#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11114 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_SK3
11115#endif
11116 use pm_kind, only: SKG => SK3
11117 character(*,SKG) , intent(out) :: rand
11118 end subroutine
11119#endif
11120
11121#if SK2_ENABLED
11122 impure elemental module subroutine setUnifRandRNGDDD_D0_SK2(rand)
11123#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11124 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_SK2
11125#endif
11126 use pm_kind, only: SKG => SK2
11127 character(*,SKG) , intent(out) :: rand
11128 end subroutine
11129#endif
11130
11131#if SK1_ENABLED
11132 impure elemental module subroutine setUnifRandRNGDDD_D0_SK1(rand)
11133#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11134 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_SK1
11135#endif
11136 use pm_kind, only: SKG => SK1
11137 character(*,SKG) , intent(out) :: rand
11138 end subroutine
11139#endif
11140
11141 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11142
11143#if IK5_ENABLED
11144 impure elemental module subroutine setUnifRandRNGDDD_D0_IK5(rand)
11145#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11146 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_IK5
11147#endif
11148 use pm_kind, only: IKG => IK5
11149 integer(IKG) , intent(out) :: rand
11150 end subroutine
11151#endif
11152
11153#if IK4_ENABLED
11154 impure elemental module subroutine setUnifRandRNGDDD_D0_IK4(rand)
11155#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11156 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_IK4
11157#endif
11158 use pm_kind, only: IKG => IK4
11159 integer(IKG) , intent(out) :: rand
11160 end subroutine
11161#endif
11162
11163#if IK3_ENABLED
11164 impure elemental module subroutine setUnifRandRNGDDD_D0_IK3(rand)
11165#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11166 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_IK3
11167#endif
11168 use pm_kind, only: IKG => IK3
11169 integer(IKG) , intent(out) :: rand
11170 end subroutine
11171#endif
11172
11173#if IK2_ENABLED
11174 impure elemental module subroutine setUnifRandRNGDDD_D0_IK2(rand)
11175#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11176 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_IK2
11177#endif
11178 use pm_kind, only: IKG => IK2
11179 integer(IKG) , intent(out) :: rand
11180 end subroutine
11181#endif
11182
11183#if IK1_ENABLED
11184 impure elemental module subroutine setUnifRandRNGDDD_D0_IK1(rand)
11185#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11186 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_IK1
11187#endif
11188 use pm_kind, only: IKG => IK1
11189 integer(IKG) , intent(out) :: rand
11190 end subroutine
11191#endif
11192
11193 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11194
11195#if LK5_ENABLED
11196 impure elemental module subroutine setUnifRandRNGDDD_D0_LK5(rand)
11197#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11198 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_LK5
11199#endif
11200 use pm_kind, only: LKG => LK5
11201 logical(LKG) , intent(out) :: rand
11202 end subroutine
11203#endif
11204
11205#if LK4_ENABLED
11206 impure elemental module subroutine setUnifRandRNGDDD_D0_LK4(rand)
11207#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11208 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_LK4
11209#endif
11210 use pm_kind, only: LKG => LK4
11211 logical(LKG) , intent(out) :: rand
11212 end subroutine
11213#endif
11214
11215#if LK3_ENABLED
11216 impure elemental module subroutine setUnifRandRNGDDD_D0_LK3(rand)
11217#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11218 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_LK3
11219#endif
11220 use pm_kind, only: LKG => LK3
11221 logical(LKG) , intent(out) :: rand
11222 end subroutine
11223#endif
11224
11225#if LK2_ENABLED
11226 impure elemental module subroutine setUnifRandRNGDDD_D0_LK2(rand)
11227#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11228 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_LK2
11229#endif
11230 use pm_kind, only: LKG => LK2
11231 logical(LKG) , intent(out) :: rand
11232 end subroutine
11233#endif
11234
11235#if LK1_ENABLED
11236 impure elemental module subroutine setUnifRandRNGDDD_D0_LK1(rand)
11237#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11238 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_LK1
11239#endif
11240 use pm_kind, only: LKG => LK1
11241 logical(LKG) , intent(out) :: rand
11242 end subroutine
11243#endif
11244
11245 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11246
11247#if CK5_ENABLED
11248 impure elemental module subroutine setUnifRandRNGDDD_D0_CK5(rand)
11249#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11250 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_CK5
11251#endif
11252 use pm_kind, only: CKG => CK5
11253 complex(CKG) , intent(out) :: rand
11254 end subroutine
11255#endif
11256
11257#if CK4_ENABLED
11258 impure elemental module subroutine setUnifRandRNGDDD_D0_CK4(rand)
11259#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11260 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_CK4
11261#endif
11262 use pm_kind, only: CKG => CK4
11263 complex(CKG) , intent(out) :: rand
11264 end subroutine
11265#endif
11266
11267#if CK3_ENABLED
11268 impure elemental module subroutine setUnifRandRNGDDD_D0_CK3(rand)
11269#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11270 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_CK3
11271#endif
11272 use pm_kind, only: CKG => CK3
11273 complex(CKG) , intent(out) :: rand
11274 end subroutine
11275#endif
11276
11277#if CK2_ENABLED
11278 impure elemental module subroutine setUnifRandRNGDDD_D0_CK2(rand)
11279#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11280 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_CK2
11281#endif
11282 use pm_kind, only: CKG => CK2
11283 complex(CKG) , intent(out) :: rand
11284 end subroutine
11285#endif
11286
11287#if CK1_ENABLED
11288 impure elemental module subroutine setUnifRandRNGDDD_D0_CK1(rand)
11289#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11290 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_CK1
11291#endif
11292 use pm_kind, only: CKG => CK1
11293 complex(CKG) , intent(out) :: rand
11294 end subroutine
11295#endif
11296
11297 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11298
11299#if RK5_ENABLED
11300 impure elemental module subroutine setUnifRandRNGDDD_D0_RK5(rand)
11301#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11302 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_RK5
11303#endif
11304 use pm_kind, only: RKG => RK5
11305 real(RKG) , intent(out) :: rand
11306 end subroutine
11307#endif
11308
11309#if RK4_ENABLED
11310 impure elemental module subroutine setUnifRandRNGDDD_D0_RK4(rand)
11311#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11312 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_RK4
11313#endif
11314 use pm_kind, only: RKG => RK4
11315 real(RKG) , intent(out) :: rand
11316 end subroutine
11317#endif
11318
11319#if RK3_ENABLED
11320 impure elemental module subroutine setUnifRandRNGDDD_D0_RK3(rand)
11321#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11322 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_RK3
11323#endif
11324 use pm_kind, only: RKG => RK3
11325 real(RKG) , intent(out) :: rand
11326 end subroutine
11327#endif
11328
11329#if RK2_ENABLED
11330 impure elemental module subroutine setUnifRandRNGDDD_D0_RK2(rand)
11331#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11332 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_RK2
11333#endif
11334 use pm_kind, only: RKG => RK2
11335 real(RKG) , intent(out) :: rand
11336 end subroutine
11337#endif
11338
11339#if RK1_ENABLED
11340 impure elemental module subroutine setUnifRandRNGDDD_D0_RK1(rand)
11341#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11342 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_RK1
11343#endif
11344 use pm_kind, only: RKG => RK1
11345 real(RKG) , intent(out) :: rand
11346 end subroutine
11347#endif
11348
11349 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11350
11351 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11352 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11353 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11354
11355 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11356
11357#if SK5_ENABLED
11358 impure elemental module subroutine setUnifRandRNGDLU_D0_SK5(rand, lb, ub)
11359#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11360 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_SK5
11361#endif
11362 use pm_kind, only: SKG => SK5
11363 character(*,SKG) , intent(out) :: rand
11364 character(*,SKG) , intent(in) :: lb, ub
11365 end subroutine
11366#endif
11367
11368#if SK4_ENABLED
11369 impure elemental module subroutine setUnifRandRNGDLU_D0_SK4(rand, lb, ub)
11370#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11371 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_SK4
11372#endif
11373 use pm_kind, only: SKG => SK4
11374 character(*,SKG) , intent(out) :: rand
11375 character(*,SKG) , intent(in) :: lb, ub
11376 end subroutine
11377#endif
11378
11379#if SK3_ENABLED
11380 impure elemental module subroutine setUnifRandRNGDLU_D0_SK3(rand, lb, ub)
11381#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11382 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_SK3
11383#endif
11384 use pm_kind, only: SKG => SK3
11385 character(*,SKG) , intent(out) :: rand
11386 character(*,SKG) , intent(in) :: lb, ub
11387 end subroutine
11388#endif
11389
11390#if SK2_ENABLED
11391 impure elemental module subroutine setUnifRandRNGDLU_D0_SK2(rand, lb, ub)
11392#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11393 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_SK2
11394#endif
11395 use pm_kind, only: SKG => SK2
11396 character(*,SKG) , intent(out) :: rand
11397 character(*,SKG) , intent(in) :: lb, ub
11398 end subroutine
11399#endif
11400
11401#if SK1_ENABLED
11402 impure elemental module subroutine setUnifRandRNGDLU_D0_SK1(rand, lb, ub)
11403#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11404 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_SK1
11405#endif
11406 use pm_kind, only: SKG => SK1
11407 character(*,SKG) , intent(out) :: rand
11408 character(*,SKG) , intent(in) :: lb, ub
11409 end subroutine
11410#endif
11411
11412 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11413
11414#if IK5_ENABLED
11415 impure elemental module subroutine setUnifRandRNGDLU_D0_IK5(rand, lb, ub)
11416#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11417 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_IK5
11418#endif
11419 use pm_kind, only: IKG => IK5
11420 integer(IKG) , intent(out) :: rand
11421 integer(IKG) , intent(in) :: lb, ub
11422 end subroutine
11423#endif
11424
11425#if IK4_ENABLED
11426 impure elemental module subroutine setUnifRandRNGDLU_D0_IK4(rand, lb, ub)
11427#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11428 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_IK4
11429#endif
11430 use pm_kind, only: IKG => IK4
11431 integer(IKG) , intent(out) :: rand
11432 integer(IKG) , intent(in) :: lb, ub
11433 end subroutine
11434#endif
11435
11436#if IK3_ENABLED
11437 impure elemental module subroutine setUnifRandRNGDLU_D0_IK3(rand, lb, ub)
11438#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11439 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_IK3
11440#endif
11441 use pm_kind, only: IKG => IK3
11442 integer(IKG) , intent(out) :: rand
11443 integer(IKG) , intent(in) :: lb, ub
11444 end subroutine
11445#endif
11446
11447#if IK2_ENABLED
11448 impure elemental module subroutine setUnifRandRNGDLU_D0_IK2(rand, lb, ub)
11449#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11450 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_IK2
11451#endif
11452 use pm_kind, only: IKG => IK2
11453 integer(IKG) , intent(out) :: rand
11454 integer(IKG) , intent(in) :: lb, ub
11455 end subroutine
11456#endif
11457
11458#if IK1_ENABLED
11459 impure elemental module subroutine setUnifRandRNGDLU_D0_IK1(rand, lb, ub)
11460#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11461 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_IK1
11462#endif
11463 use pm_kind, only: IKG => IK1
11464 integer(IKG) , intent(out) :: rand
11465 integer(IKG) , intent(in) :: lb, ub
11466 end subroutine
11467#endif
11468
11469 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11470
11471#if LK5_ENABLED
11472 impure elemental module subroutine setUnifRandRNGDLU_D0_LK5(rand, lb, ub)
11473#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11474 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_LK5
11475#endif
11476 use pm_kind, only: LKG => LK5
11477 logical(LKG) , intent(out) :: rand
11478 logical(LKG) , intent(in) :: lb, ub
11479 end subroutine
11480#endif
11481
11482#if LK4_ENABLED
11483 impure elemental module subroutine setUnifRandRNGDLU_D0_LK4(rand, lb, ub)
11484#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11485 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_LK4
11486#endif
11487 use pm_kind, only: LKG => LK4
11488 logical(LKG) , intent(out) :: rand
11489 logical(LKG) , intent(in) :: lb, ub
11490 end subroutine
11491#endif
11492
11493#if LK3_ENABLED
11494 impure elemental module subroutine setUnifRandRNGDLU_D0_LK3(rand, lb, ub)
11495#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11496 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_LK3
11497#endif
11498 use pm_kind, only: LKG => LK3
11499 logical(LKG) , intent(out) :: rand
11500 logical(LKG) , intent(in) :: lb, ub
11501 end subroutine
11502#endif
11503
11504#if LK2_ENABLED
11505 impure elemental module subroutine setUnifRandRNGDLU_D0_LK2(rand, lb, ub)
11506#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11507 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_LK2
11508#endif
11509 use pm_kind, only: LKG => LK2
11510 logical(LKG) , intent(out) :: rand
11511 logical(LKG) , intent(in) :: lb, ub
11512 end subroutine
11513#endif
11514
11515#if LK1_ENABLED
11516 impure elemental module subroutine setUnifRandRNGDLU_D0_LK1(rand, lb, ub)
11517#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11518 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_LK1
11519#endif
11520 use pm_kind, only: LKG => LK1
11521 logical(LKG) , intent(out) :: rand
11522 logical(LKG) , intent(in) :: lb, ub
11523 end subroutine
11524#endif
11525
11526 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11527
11528#if CK5_ENABLED
11529 impure elemental module subroutine setUnifRandRNGDLU_D0_CK5(rand, lb, ub)
11530#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11531 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_CK5
11532#endif
11533 use pm_kind, only: CKG => CK5
11534 complex(CKG) , intent(out) :: rand
11535 complex(CKG) , intent(in) :: lb, ub
11536 end subroutine
11537#endif
11538
11539#if CK4_ENABLED
11540 impure elemental module subroutine setUnifRandRNGDLU_D0_CK4(rand, lb, ub)
11541#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11542 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_CK4
11543#endif
11544 use pm_kind, only: CKG => CK4
11545 complex(CKG) , intent(out) :: rand
11546 complex(CKG) , intent(in) :: lb, ub
11547 end subroutine
11548#endif
11549
11550#if CK3_ENABLED
11551 impure elemental module subroutine setUnifRandRNGDLU_D0_CK3(rand, lb, ub)
11552#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11553 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_CK3
11554#endif
11555 use pm_kind, only: CKG => CK3
11556 complex(CKG) , intent(out) :: rand
11557 complex(CKG) , intent(in) :: lb, ub
11558 end subroutine
11559#endif
11560
11561#if CK2_ENABLED
11562 impure elemental module subroutine setUnifRandRNGDLU_D0_CK2(rand, lb, ub)
11563#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11564 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_CK2
11565#endif
11566 use pm_kind, only: CKG => CK2
11567 complex(CKG) , intent(out) :: rand
11568 complex(CKG) , intent(in) :: lb, ub
11569 end subroutine
11570#endif
11571
11572#if CK1_ENABLED
11573 impure elemental module subroutine setUnifRandRNGDLU_D0_CK1(rand, lb, ub)
11574#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11575 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_CK1
11576#endif
11577 use pm_kind, only: CKG => CK1
11578 complex(CKG) , intent(out) :: rand
11579 complex(CKG) , intent(in) :: lb, ub
11580 end subroutine
11581#endif
11582
11583 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11584
11585#if RK5_ENABLED
11586 impure elemental module subroutine setUnifRandRNGDLU_D0_RK5(rand, lb, ub)
11587#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11588 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_RK5
11589#endif
11590 use pm_kind, only: RKG => RK5
11591 real(RKG) , intent(out) :: rand
11592 real(RKG) , intent(in) :: lb, ub
11593 end subroutine
11594#endif
11595
11596#if RK4_ENABLED
11597 impure elemental module subroutine setUnifRandRNGDLU_D0_RK4(rand, lb, ub)
11598#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11599 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_RK4
11600#endif
11601 use pm_kind, only: RKG => RK4
11602 real(RKG) , intent(out) :: rand
11603 real(RKG) , intent(in) :: lb, ub
11604 end subroutine
11605#endif
11606
11607#if RK3_ENABLED
11608 impure elemental module subroutine setUnifRandRNGDLU_D0_RK3(rand, lb, ub)
11609#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11610 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_RK3
11611#endif
11612 use pm_kind, only: RKG => RK3
11613 real(RKG) , intent(out) :: rand
11614 real(RKG) , intent(in) :: lb, ub
11615 end subroutine
11616#endif
11617
11618#if RK2_ENABLED
11619 impure elemental module subroutine setUnifRandRNGDLU_D0_RK2(rand, lb, ub)
11620#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11621 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_RK2
11622#endif
11623 use pm_kind, only: RKG => RK2
11624 real(RKG) , intent(out) :: rand
11625 real(RKG) , intent(in) :: lb, ub
11626 end subroutine
11627#endif
11628
11629#if RK1_ENABLED
11630 impure elemental module subroutine setUnifRandRNGDLU_D0_RK1(rand, lb, ub)
11631#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11632 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_RK1
11633#endif
11634 use pm_kind, only: RKG => RK1
11635 real(RKG) , intent(out) :: rand
11636 real(RKG) , intent(in) :: lb, ub
11637 end subroutine
11638#endif
11639
11640 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11641
11642 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11643 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11644 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11645
11646 end interface
11647
11648 ! RNGF
11649
11650 interface setUnifRand
11651
11652 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11653 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11654 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11655
11656 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11657
11658#if SK5_ENABLED
11659 impure elemental module subroutine setUnifRandRNGFDD_D0_SK5(rng, rand)
11660#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11661 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_SK5
11662#endif
11663 use pm_kind, only: SKG => SK5
11664 character(*,SKG) , intent(out) :: rand
11665 type(rngf_type) , intent(in) :: rng
11666 end subroutine
11667#endif
11668
11669#if SK4_ENABLED
11670 impure elemental module subroutine setUnifRandRNGFDD_D0_SK4(rng, rand)
11671#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11672 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_SK4
11673#endif
11674 use pm_kind, only: SKG => SK4
11675 character(*,SKG) , intent(out) :: rand
11676 type(rngf_type) , intent(in) :: rng
11677 end subroutine
11678#endif
11679
11680#if SK3_ENABLED
11681 impure elemental module subroutine setUnifRandRNGFDD_D0_SK3(rng, rand)
11682#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11683 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_SK3
11684#endif
11685 use pm_kind, only: SKG => SK3
11686 character(*,SKG) , intent(out) :: rand
11687 type(rngf_type) , intent(in) :: rng
11688 end subroutine
11689#endif
11690
11691#if SK2_ENABLED
11692 impure elemental module subroutine setUnifRandRNGFDD_D0_SK2(rng, rand)
11693#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11694 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_SK2
11695#endif
11696 use pm_kind, only: SKG => SK2
11697 character(*,SKG) , intent(out) :: rand
11698 type(rngf_type) , intent(in) :: rng
11699 end subroutine
11700#endif
11701
11702#if SK1_ENABLED
11703 impure elemental module subroutine setUnifRandRNGFDD_D0_SK1(rng, rand)
11704#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11705 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_SK1
11706#endif
11707 use pm_kind, only: SKG => SK1
11708 character(*,SKG) , intent(out) :: rand
11709 type(rngf_type) , intent(in) :: rng
11710 end subroutine
11711#endif
11712
11713 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11714
11715#if IK5_ENABLED
11716 impure elemental module subroutine setUnifRandRNGFDD_D0_IK5(rng, rand)
11717#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11718 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_IK5
11719#endif
11720 use pm_kind, only: IKG => IK5
11721 integer(IKG) , intent(out) :: rand
11722 type(rngf_type) , intent(in) :: rng
11723 end subroutine
11724#endif
11725
11726#if IK4_ENABLED
11727 impure elemental module subroutine setUnifRandRNGFDD_D0_IK4(rng, rand)
11728#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11729 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_IK4
11730#endif
11731 use pm_kind, only: IKG => IK4
11732 integer(IKG) , intent(out) :: rand
11733 type(rngf_type) , intent(in) :: rng
11734 end subroutine
11735#endif
11736
11737#if IK3_ENABLED
11738 impure elemental module subroutine setUnifRandRNGFDD_D0_IK3(rng, rand)
11739#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11740 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_IK3
11741#endif
11742 use pm_kind, only: IKG => IK3
11743 integer(IKG) , intent(out) :: rand
11744 type(rngf_type) , intent(in) :: rng
11745 end subroutine
11746#endif
11747
11748#if IK2_ENABLED
11749 impure elemental module subroutine setUnifRandRNGFDD_D0_IK2(rng, rand)
11750#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11751 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_IK2
11752#endif
11753 use pm_kind, only: IKG => IK2
11754 integer(IKG) , intent(out) :: rand
11755 type(rngf_type) , intent(in) :: rng
11756 end subroutine
11757#endif
11758
11759#if IK1_ENABLED
11760 impure elemental module subroutine setUnifRandRNGFDD_D0_IK1(rng, rand)
11761#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11762 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_IK1
11763#endif
11764 use pm_kind, only: IKG => IK1
11765 integer(IKG) , intent(out) :: rand
11766 type(rngf_type) , intent(in) :: rng
11767 end subroutine
11768#endif
11769
11770 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11771
11772#if LK5_ENABLED
11773 impure elemental module subroutine setUnifRandRNGFDD_D0_LK5(rng, rand)
11774#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11775 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_LK5
11776#endif
11777 use pm_kind, only: LKG => LK5
11778 logical(LKG) , intent(out) :: rand
11779 type(rngf_type) , intent(in) :: rng
11780 end subroutine
11781#endif
11782
11783#if LK4_ENABLED
11784 impure elemental module subroutine setUnifRandRNGFDD_D0_LK4(rng, rand)
11785#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11786 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_LK4
11787#endif
11788 use pm_kind, only: LKG => LK4
11789 logical(LKG) , intent(out) :: rand
11790 type(rngf_type) , intent(in) :: rng
11791 end subroutine
11792#endif
11793
11794#if LK3_ENABLED
11795 impure elemental module subroutine setUnifRandRNGFDD_D0_LK3(rng, rand)
11796#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11797 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_LK3
11798#endif
11799 use pm_kind, only: LKG => LK3
11800 logical(LKG) , intent(out) :: rand
11801 type(rngf_type) , intent(in) :: rng
11802 end subroutine
11803#endif
11804
11805#if LK2_ENABLED
11806 impure elemental module subroutine setUnifRandRNGFDD_D0_LK2(rng, rand)
11807#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11808 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_LK2
11809#endif
11810 use pm_kind, only: LKG => LK2
11811 logical(LKG) , intent(out) :: rand
11812 type(rngf_type) , intent(in) :: rng
11813 end subroutine
11814#endif
11815
11816#if LK1_ENABLED
11817 impure elemental module subroutine setUnifRandRNGFDD_D0_LK1(rng, rand)
11818#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11819 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_LK1
11820#endif
11821 use pm_kind, only: LKG => LK1
11822 logical(LKG) , intent(out) :: rand
11823 type(rngf_type) , intent(in) :: rng
11824 end subroutine
11825#endif
11826
11827 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11828
11829#if CK5_ENABLED
11830 impure elemental module subroutine setUnifRandRNGFDD_D0_CK5(rng, rand)
11831#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11832 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_CK5
11833#endif
11834 use pm_kind, only: CKG => CK5
11835 complex(CKG) , intent(out) :: rand
11836 type(rngf_type) , intent(in) :: rng
11837 end subroutine
11838#endif
11839
11840#if CK4_ENABLED
11841 impure elemental module subroutine setUnifRandRNGFDD_D0_CK4(rng, rand)
11842#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11843 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_CK4
11844#endif
11845 use pm_kind, only: CKG => CK4
11846 complex(CKG) , intent(out) :: rand
11847 type(rngf_type) , intent(in) :: rng
11848 end subroutine
11849#endif
11850
11851#if CK3_ENABLED
11852 impure elemental module subroutine setUnifRandRNGFDD_D0_CK3(rng, rand)
11853#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11854 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_CK3
11855#endif
11856 use pm_kind, only: CKG => CK3
11857 complex(CKG) , intent(out) :: rand
11858 type(rngf_type) , intent(in) :: rng
11859 end subroutine
11860#endif
11861
11862#if CK2_ENABLED
11863 impure elemental module subroutine setUnifRandRNGFDD_D0_CK2(rng, rand)
11864#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11865 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_CK2
11866#endif
11867 use pm_kind, only: CKG => CK2
11868 complex(CKG) , intent(out) :: rand
11869 type(rngf_type) , intent(in) :: rng
11870 end subroutine
11871#endif
11872
11873#if CK1_ENABLED
11874 impure elemental module subroutine setUnifRandRNGFDD_D0_CK1(rng, rand)
11875#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11876 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_CK1
11877#endif
11878 use pm_kind, only: CKG => CK1
11879 complex(CKG) , intent(out) :: rand
11880 type(rngf_type) , intent(in) :: rng
11881 end subroutine
11882#endif
11883
11884 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11885
11886#if RK5_ENABLED
11887 impure elemental module subroutine setUnifRandRNGFDD_D0_RK5(rng, rand)
11888#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11889 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_RK5
11890#endif
11891 use pm_kind, only: RKG => RK5
11892 real(RKG) , intent(out) :: rand
11893 type(rngf_type) , intent(in) :: rng
11894 end subroutine
11895#endif
11896
11897#if RK4_ENABLED
11898 impure elemental module subroutine setUnifRandRNGFDD_D0_RK4(rng, rand)
11899#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11900 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_RK4
11901#endif
11902 use pm_kind, only: RKG => RK4
11903 real(RKG) , intent(out) :: rand
11904 type(rngf_type) , intent(in) :: rng
11905 end subroutine
11906#endif
11907
11908#if RK3_ENABLED
11909 impure elemental module subroutine setUnifRandRNGFDD_D0_RK3(rng, rand)
11910#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11911 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_RK3
11912#endif
11913 use pm_kind, only: RKG => RK3
11914 real(RKG) , intent(out) :: rand
11915 type(rngf_type) , intent(in) :: rng
11916 end subroutine
11917#endif
11918
11919#if RK2_ENABLED
11920 impure elemental module subroutine setUnifRandRNGFDD_D0_RK2(rng, rand)
11921#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11922 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_RK2
11923#endif
11924 use pm_kind, only: RKG => RK2
11925 real(RKG) , intent(out) :: rand
11926 type(rngf_type) , intent(in) :: rng
11927 end subroutine
11928#endif
11929
11930#if RK1_ENABLED
11931 impure elemental module subroutine setUnifRandRNGFDD_D0_RK1(rng, rand)
11932#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11933 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_RK1
11934#endif
11935 use pm_kind, only: RKG => RK1
11936 real(RKG) , intent(out) :: rand
11937 type(rngf_type) , intent(in) :: rng
11938 end subroutine
11939#endif
11940
11941 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11942
11943 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11944 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11945 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11946
11947 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11948
11949#if SK5_ENABLED
11950 impure elemental module subroutine setUnifRandRNGFLU_D0_SK5(rng, rand, lb, ub)
11951#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11952 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_SK5
11953#endif
11954 use pm_kind, only: SKG => SK5
11955 character(*,SKG) , intent(out) :: rand
11956 character(*,SKG) , intent(in) :: lb, ub
11957 type(rngf_type) , intent(in) :: rng
11958 end subroutine
11959#endif
11960
11961#if SK4_ENABLED
11962 impure elemental module subroutine setUnifRandRNGFLU_D0_SK4(rng, rand, lb, ub)
11963#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11964 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_SK4
11965#endif
11966 use pm_kind, only: SKG => SK4
11967 character(*,SKG) , intent(out) :: rand
11968 character(*,SKG) , intent(in) :: lb, ub
11969 type(rngf_type) , intent(in) :: rng
11970 end subroutine
11971#endif
11972
11973#if SK3_ENABLED
11974 impure elemental module subroutine setUnifRandRNGFLU_D0_SK3(rng, rand, lb, ub)
11975#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11976 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_SK3
11977#endif
11978 use pm_kind, only: SKG => SK3
11979 character(*,SKG) , intent(out) :: rand
11980 character(*,SKG) , intent(in) :: lb, ub
11981 type(rngf_type) , intent(in) :: rng
11982 end subroutine
11983#endif
11984
11985#if SK2_ENABLED
11986 impure elemental module subroutine setUnifRandRNGFLU_D0_SK2(rng, rand, lb, ub)
11987#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11988 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_SK2
11989#endif
11990 use pm_kind, only: SKG => SK2
11991 character(*,SKG) , intent(out) :: rand
11992 character(*,SKG) , intent(in) :: lb, ub
11993 type(rngf_type) , intent(in) :: rng
11994 end subroutine
11995#endif
11996
11997#if SK1_ENABLED
11998 impure elemental module subroutine setUnifRandRNGFLU_D0_SK1(rng, rand, lb, ub)
11999#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12000 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_SK1
12001#endif
12002 use pm_kind, only: SKG => SK1
12003 character(*,SKG) , intent(out) :: rand
12004 character(*,SKG) , intent(in) :: lb, ub
12005 type(rngf_type) , intent(in) :: rng
12006 end subroutine
12007#endif
12008
12009 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12010
12011#if IK5_ENABLED
12012 impure elemental module subroutine setUnifRandRNGFLU_D0_IK5(rng, rand, lb, ub)
12013#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12014 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_IK5
12015#endif
12016 use pm_kind, only: IKG => IK5
12017 integer(IKG) , intent(out) :: rand
12018 integer(IKG) , intent(in) :: lb, ub
12019 type(rngf_type) , intent(in) :: rng
12020 end subroutine
12021#endif
12022
12023#if IK4_ENABLED
12024 impure elemental module subroutine setUnifRandRNGFLU_D0_IK4(rng, rand, lb, ub)
12025#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12026 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_IK4
12027#endif
12028 use pm_kind, only: IKG => IK4
12029 integer(IKG) , intent(out) :: rand
12030 integer(IKG) , intent(in) :: lb, ub
12031 type(rngf_type) , intent(in) :: rng
12032 end subroutine
12033#endif
12034
12035#if IK3_ENABLED
12036 impure elemental module subroutine setUnifRandRNGFLU_D0_IK3(rng, rand, lb, ub)
12037#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12038 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_IK3
12039#endif
12040 use pm_kind, only: IKG => IK3
12041 integer(IKG) , intent(out) :: rand
12042 integer(IKG) , intent(in) :: lb, ub
12043 type(rngf_type) , intent(in) :: rng
12044 end subroutine
12045#endif
12046
12047#if IK2_ENABLED
12048 impure elemental module subroutine setUnifRandRNGFLU_D0_IK2(rng, rand, lb, ub)
12049#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12050 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_IK2
12051#endif
12052 use pm_kind, only: IKG => IK2
12053 integer(IKG) , intent(out) :: rand
12054 integer(IKG) , intent(in) :: lb, ub
12055 type(rngf_type) , intent(in) :: rng
12056 end subroutine
12057#endif
12058
12059#if IK1_ENABLED
12060 impure elemental module subroutine setUnifRandRNGFLU_D0_IK1(rng, rand, lb, ub)
12061#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12062 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_IK1
12063#endif
12064 use pm_kind, only: IKG => IK1
12065 integer(IKG) , intent(out) :: rand
12066 integer(IKG) , intent(in) :: lb, ub
12067 type(rngf_type) , intent(in) :: rng
12068 end subroutine
12069#endif
12070
12071 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12072
12073#if LK5_ENABLED
12074 impure elemental module subroutine setUnifRandRNGFLU_D0_LK5(rng, rand, lb, ub)
12075#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12076 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_LK5
12077#endif
12078 use pm_kind, only: LKG => LK5
12079 logical(LKG) , intent(out) :: rand
12080 logical(LKG) , intent(in) :: lb, ub
12081 type(rngf_type) , intent(in) :: rng
12082 end subroutine
12083#endif
12084
12085#if LK4_ENABLED
12086 impure elemental module subroutine setUnifRandRNGFLU_D0_LK4(rng, rand, lb, ub)
12087#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12088 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_LK4
12089#endif
12090 use pm_kind, only: LKG => LK4
12091 logical(LKG) , intent(out) :: rand
12092 logical(LKG) , intent(in) :: lb, ub
12093 type(rngf_type) , intent(in) :: rng
12094 end subroutine
12095#endif
12096
12097#if LK3_ENABLED
12098 impure elemental module subroutine setUnifRandRNGFLU_D0_LK3(rng, rand, lb, ub)
12099#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12100 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_LK3
12101#endif
12102 use pm_kind, only: LKG => LK3
12103 logical(LKG) , intent(out) :: rand
12104 logical(LKG) , intent(in) :: lb, ub
12105 type(rngf_type) , intent(in) :: rng
12106 end subroutine
12107#endif
12108
12109#if LK2_ENABLED
12110 impure elemental module subroutine setUnifRandRNGFLU_D0_LK2(rng, rand, lb, ub)
12111#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12112 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_LK2
12113#endif
12114 use pm_kind, only: LKG => LK2
12115 logical(LKG) , intent(out) :: rand
12116 logical(LKG) , intent(in) :: lb, ub
12117 type(rngf_type) , intent(in) :: rng
12118 end subroutine
12119#endif
12120
12121#if LK1_ENABLED
12122 impure elemental module subroutine setUnifRandRNGFLU_D0_LK1(rng, rand, lb, ub)
12123#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12124 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_LK1
12125#endif
12126 use pm_kind, only: LKG => LK1
12127 logical(LKG) , intent(out) :: rand
12128 logical(LKG) , intent(in) :: lb, ub
12129 type(rngf_type) , intent(in) :: rng
12130 end subroutine
12131#endif
12132
12133 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12134
12135#if CK5_ENABLED
12136 impure elemental module subroutine setUnifRandRNGFLU_D0_CK5(rng, rand, lb, ub)
12137#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12138 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_CK5
12139#endif
12140 use pm_kind, only: CKG => CK5
12141 complex(CKG) , intent(out) :: rand
12142 complex(CKG) , intent(in) :: lb, ub
12143 type(rngf_type) , intent(in) :: rng
12144 end subroutine
12145#endif
12146
12147#if CK4_ENABLED
12148 impure elemental module subroutine setUnifRandRNGFLU_D0_CK4(rng, rand, lb, ub)
12149#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12150 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_CK4
12151#endif
12152 use pm_kind, only: CKG => CK4
12153 complex(CKG) , intent(out) :: rand
12154 complex(CKG) , intent(in) :: lb, ub
12155 type(rngf_type) , intent(in) :: rng
12156 end subroutine
12157#endif
12158
12159#if CK3_ENABLED
12160 impure elemental module subroutine setUnifRandRNGFLU_D0_CK3(rng, rand, lb, ub)
12161#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12162 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_CK3
12163#endif
12164 use pm_kind, only: CKG => CK3
12165 complex(CKG) , intent(out) :: rand
12166 complex(CKG) , intent(in) :: lb, ub
12167 type(rngf_type) , intent(in) :: rng
12168 end subroutine
12169#endif
12170
12171#if CK2_ENABLED
12172 impure elemental module subroutine setUnifRandRNGFLU_D0_CK2(rng, rand, lb, ub)
12173#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12174 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_CK2
12175#endif
12176 use pm_kind, only: CKG => CK2
12177 complex(CKG) , intent(out) :: rand
12178 complex(CKG) , intent(in) :: lb, ub
12179 type(rngf_type) , intent(in) :: rng
12180 end subroutine
12181#endif
12182
12183#if CK1_ENABLED
12184 impure elemental module subroutine setUnifRandRNGFLU_D0_CK1(rng, rand, lb, ub)
12185#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12186 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_CK1
12187#endif
12188 use pm_kind, only: CKG => CK1
12189 complex(CKG) , intent(out) :: rand
12190 complex(CKG) , intent(in) :: lb, ub
12191 type(rngf_type) , intent(in) :: rng
12192 end subroutine
12193#endif
12194
12195 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12196
12197#if RK5_ENABLED
12198 impure elemental module subroutine setUnifRandRNGFLU_D0_RK5(rng, rand, lb, ub)
12199#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12200 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_RK5
12201#endif
12202 use pm_kind, only: RKG => RK5
12203 real(RKG) , intent(out) :: rand
12204 real(RKG) , intent(in) :: lb, ub
12205 type(rngf_type) , intent(in) :: rng
12206 end subroutine
12207#endif
12208
12209#if RK4_ENABLED
12210 impure elemental module subroutine setUnifRandRNGFLU_D0_RK4(rng, rand, lb, ub)
12211#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12212 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_RK4
12213#endif
12214 use pm_kind, only: RKG => RK4
12215 real(RKG) , intent(out) :: rand
12216 real(RKG) , intent(in) :: lb, ub
12217 type(rngf_type) , intent(in) :: rng
12218 end subroutine
12219#endif
12220
12221#if RK3_ENABLED
12222 impure elemental module subroutine setUnifRandRNGFLU_D0_RK3(rng, rand, lb, ub)
12223#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12224 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_RK3
12225#endif
12226 use pm_kind, only: RKG => RK3
12227 real(RKG) , intent(out) :: rand
12228 real(RKG) , intent(in) :: lb, ub
12229 type(rngf_type) , intent(in) :: rng
12230 end subroutine
12231#endif
12232
12233#if RK2_ENABLED
12234 impure elemental module subroutine setUnifRandRNGFLU_D0_RK2(rng, rand, lb, ub)
12235#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12236 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_RK2
12237#endif
12238 use pm_kind, only: RKG => RK2
12239 real(RKG) , intent(out) :: rand
12240 real(RKG) , intent(in) :: lb, ub
12241 type(rngf_type) , intent(in) :: rng
12242 end subroutine
12243#endif
12244
12245#if RK1_ENABLED
12246 impure elemental module subroutine setUnifRandRNGFLU_D0_RK1(rng, rand, lb, ub)
12247#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12248 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_RK1
12249#endif
12250 use pm_kind, only: RKG => RK1
12251 real(RKG) , intent(out) :: rand
12252 real(RKG) , intent(in) :: lb, ub
12253 type(rngf_type) , intent(in) :: rng
12254 end subroutine
12255#endif
12256
12257 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12258
12259 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12260 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12261 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12262
12263 end interface
12264
12265 ! RNGS
12266
12267 interface setUnifRand
12268
12269 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12270 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12271 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12272
12273 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12274
12275#if SK5_ENABLED
12276 PURE elemental module subroutine setUnifRandRNGSDD_D0_SK5(rng, rand)
12277#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12278 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_SK5
12279#endif
12280 use pm_kind, only: SKG => SK5
12281 character(*,SKG) , intent(out) :: rand
12282 type(splitmix64_type) , intent(inout) :: rng
12283 end subroutine
12284#endif
12285
12286#if SK4_ENABLED
12287 PURE elemental module subroutine setUnifRandRNGSDD_D0_SK4(rng, rand)
12288#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12289 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_SK4
12290#endif
12291 use pm_kind, only: SKG => SK4
12292 character(*,SKG) , intent(out) :: rand
12293 type(splitmix64_type) , intent(inout) :: rng
12294 end subroutine
12295#endif
12296
12297#if SK3_ENABLED
12298 PURE elemental module subroutine setUnifRandRNGSDD_D0_SK3(rng, rand)
12299#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12300 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_SK3
12301#endif
12302 use pm_kind, only: SKG => SK3
12303 character(*,SKG) , intent(out) :: rand
12304 type(splitmix64_type) , intent(inout) :: rng
12305 end subroutine
12306#endif
12307
12308#if SK2_ENABLED
12309 PURE elemental module subroutine setUnifRandRNGSDD_D0_SK2(rng, rand)
12310#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12311 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_SK2
12312#endif
12313 use pm_kind, only: SKG => SK2
12314 character(*,SKG) , intent(out) :: rand
12315 type(splitmix64_type) , intent(inout) :: rng
12316 end subroutine
12317#endif
12318
12319#if SK1_ENABLED
12320 PURE elemental module subroutine setUnifRandRNGSDD_D0_SK1(rng, rand)
12321#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12322 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_SK1
12323#endif
12324 use pm_kind, only: SKG => SK1
12325 character(*,SKG) , intent(out) :: rand
12326 type(splitmix64_type) , intent(inout) :: rng
12327 end subroutine
12328#endif
12329
12330 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12331
12332#if IK5_ENABLED
12333 PURE elemental module subroutine setUnifRandRNGSDD_D0_IK5(rng, rand)
12334#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12335 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_IK5
12336#endif
12337 use pm_kind, only: IKG => IK5
12338 integer(IKG) , intent(out) :: rand
12339 type(splitmix64_type) , intent(inout) :: rng
12340 end subroutine
12341#endif
12342
12343#if IK4_ENABLED
12344 PURE elemental module subroutine setUnifRandRNGSDD_D0_IK4(rng, rand)
12345#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12346 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_IK4
12347#endif
12348 use pm_kind, only: IKG => IK4
12349 integer(IKG) , intent(out) :: rand
12350 type(splitmix64_type) , intent(inout) :: rng
12351 end subroutine
12352#endif
12353
12354#if IK3_ENABLED
12355 PURE elemental module subroutine setUnifRandRNGSDD_D0_IK3(rng, rand)
12356#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12357 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_IK3
12358#endif
12359 use pm_kind, only: IKG => IK3
12360 integer(IKG) , intent(out) :: rand
12361 type(splitmix64_type) , intent(inout) :: rng
12362 end subroutine
12363#endif
12364
12365#if IK2_ENABLED
12366 PURE elemental module subroutine setUnifRandRNGSDD_D0_IK2(rng, rand)
12367#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12368 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_IK2
12369#endif
12370 use pm_kind, only: IKG => IK2
12371 integer(IKG) , intent(out) :: rand
12372 type(splitmix64_type) , intent(inout) :: rng
12373 end subroutine
12374#endif
12375
12376#if IK1_ENABLED
12377 PURE elemental module subroutine setUnifRandRNGSDD_D0_IK1(rng, rand)
12378#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12379 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_IK1
12380#endif
12381 use pm_kind, only: IKG => IK1
12382 integer(IKG) , intent(out) :: rand
12383 type(splitmix64_type) , intent(inout) :: rng
12384 end subroutine
12385#endif
12386
12387 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12388
12389#if LK5_ENABLED
12390 PURE elemental module subroutine setUnifRandRNGSDD_D0_LK5(rng, rand)
12391#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12392 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_LK5
12393#endif
12394 use pm_kind, only: LKG => LK5
12395 logical(LKG) , intent(out) :: rand
12396 type(splitmix64_type) , intent(inout) :: rng
12397 end subroutine
12398#endif
12399
12400#if LK4_ENABLED
12401 PURE elemental module subroutine setUnifRandRNGSDD_D0_LK4(rng, rand)
12402#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12403 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_LK4
12404#endif
12405 use pm_kind, only: LKG => LK4
12406 logical(LKG) , intent(out) :: rand
12407 type(splitmix64_type) , intent(inout) :: rng
12408 end subroutine
12409#endif
12410
12411#if LK3_ENABLED
12412 PURE elemental module subroutine setUnifRandRNGSDD_D0_LK3(rng, rand)
12413#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12414 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_LK3
12415#endif
12416 use pm_kind, only: LKG => LK3
12417 logical(LKG) , intent(out) :: rand
12418 type(splitmix64_type) , intent(inout) :: rng
12419 end subroutine
12420#endif
12421
12422#if LK2_ENABLED
12423 PURE elemental module subroutine setUnifRandRNGSDD_D0_LK2(rng, rand)
12424#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12425 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_LK2
12426#endif
12427 use pm_kind, only: LKG => LK2
12428 logical(LKG) , intent(out) :: rand
12429 type(splitmix64_type) , intent(inout) :: rng
12430 end subroutine
12431#endif
12432
12433#if LK1_ENABLED
12434 PURE elemental module subroutine setUnifRandRNGSDD_D0_LK1(rng, rand)
12435#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12436 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_LK1
12437#endif
12438 use pm_kind, only: LKG => LK1
12439 logical(LKG) , intent(out) :: rand
12440 type(splitmix64_type) , intent(inout) :: rng
12441 end subroutine
12442#endif
12443
12444 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12445
12446#if CK5_ENABLED
12447 PURE elemental module subroutine setUnifRandRNGSDD_D0_CK5(rng, rand)
12448#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12449 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_CK5
12450#endif
12451 use pm_kind, only: CKG => CK5
12452 complex(CKG) , intent(out) :: rand
12453 type(splitmix64_type) , intent(inout) :: rng
12454 end subroutine
12455#endif
12456
12457#if CK4_ENABLED
12458 PURE elemental module subroutine setUnifRandRNGSDD_D0_CK4(rng, rand)
12459#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12460 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_CK4
12461#endif
12462 use pm_kind, only: CKG => CK4
12463 complex(CKG) , intent(out) :: rand
12464 type(splitmix64_type) , intent(inout) :: rng
12465 end subroutine
12466#endif
12467
12468#if CK3_ENABLED
12469 PURE elemental module subroutine setUnifRandRNGSDD_D0_CK3(rng, rand)
12470#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12471 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_CK3
12472#endif
12473 use pm_kind, only: CKG => CK3
12474 complex(CKG) , intent(out) :: rand
12475 type(splitmix64_type) , intent(inout) :: rng
12476 end subroutine
12477#endif
12478
12479#if CK2_ENABLED
12480 PURE elemental module subroutine setUnifRandRNGSDD_D0_CK2(rng, rand)
12481#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12482 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_CK2
12483#endif
12484 use pm_kind, only: CKG => CK2
12485 complex(CKG) , intent(out) :: rand
12486 type(splitmix64_type) , intent(inout) :: rng
12487 end subroutine
12488#endif
12489
12490#if CK1_ENABLED
12491 PURE elemental module subroutine setUnifRandRNGSDD_D0_CK1(rng, rand)
12492#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12493 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_CK1
12494#endif
12495 use pm_kind, only: CKG => CK1
12496 complex(CKG) , intent(out) :: rand
12497 type(splitmix64_type) , intent(inout) :: rng
12498 end subroutine
12499#endif
12500
12501 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12502
12503#if RK5_ENABLED
12504 PURE elemental module subroutine setUnifRandRNGSDD_D0_RK5(rng, rand)
12505#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12506 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_RK5
12507#endif
12508 use pm_kind, only: RKG => RK5
12509 real(RKG) , intent(out) :: rand
12510 type(splitmix64_type) , intent(inout) :: rng
12511 end subroutine
12512#endif
12513
12514#if RK4_ENABLED
12515 PURE elemental module subroutine setUnifRandRNGSDD_D0_RK4(rng, rand)
12516#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12517 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_RK4
12518#endif
12519 use pm_kind, only: RKG => RK4
12520 real(RKG) , intent(out) :: rand
12521 type(splitmix64_type) , intent(inout) :: rng
12522 end subroutine
12523#endif
12524
12525#if RK3_ENABLED
12526 PURE elemental module subroutine setUnifRandRNGSDD_D0_RK3(rng, rand)
12527#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12528 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_RK3
12529#endif
12530 use pm_kind, only: RKG => RK3
12531 real(RKG) , intent(out) :: rand
12532 type(splitmix64_type) , intent(inout) :: rng
12533 end subroutine
12534#endif
12535
12536#if RK2_ENABLED
12537 PURE elemental module subroutine setUnifRandRNGSDD_D0_RK2(rng, rand)
12538#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12539 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_RK2
12540#endif
12541 use pm_kind, only: RKG => RK2
12542 real(RKG) , intent(out) :: rand
12543 type(splitmix64_type) , intent(inout) :: rng
12544 end subroutine
12545#endif
12546
12547#if RK1_ENABLED
12548 PURE elemental module subroutine setUnifRandRNGSDD_D0_RK1(rng, rand)
12549#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12550 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_RK1
12551#endif
12552 use pm_kind, only: RKG => RK1
12553 real(RKG) , intent(out) :: rand
12554 type(splitmix64_type) , intent(inout) :: rng
12555 end subroutine
12556#endif
12557
12558 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12559
12560 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12561 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12562 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12563
12564 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12565
12566#if SK5_ENABLED
12567 PURE elemental module subroutine setUnifRandRNGSLU_D0_SK5(rng, rand, lb, ub)
12568#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12569 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_SK5
12570#endif
12571 use pm_kind, only: SKG => SK5
12572 character(*,SKG) , intent(out) :: rand
12573 character(*,SKG) , intent(in) :: lb, ub
12574 type(splitmix64_type) , intent(inout) :: rng
12575 end subroutine
12576#endif
12577
12578#if SK4_ENABLED
12579 PURE elemental module subroutine setUnifRandRNGSLU_D0_SK4(rng, rand, lb, ub)
12580#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12581 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_SK4
12582#endif
12583 use pm_kind, only: SKG => SK4
12584 character(*,SKG) , intent(out) :: rand
12585 character(*,SKG) , intent(in) :: lb, ub
12586 type(splitmix64_type) , intent(inout) :: rng
12587 end subroutine
12588#endif
12589
12590#if SK3_ENABLED
12591 PURE elemental module subroutine setUnifRandRNGSLU_D0_SK3(rng, rand, lb, ub)
12592#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12593 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_SK3
12594#endif
12595 use pm_kind, only: SKG => SK3
12596 character(*,SKG) , intent(out) :: rand
12597 character(*,SKG) , intent(in) :: lb, ub
12598 type(splitmix64_type) , intent(inout) :: rng
12599 end subroutine
12600#endif
12601
12602#if SK2_ENABLED
12603 PURE elemental module subroutine setUnifRandRNGSLU_D0_SK2(rng, rand, lb, ub)
12604#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12605 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_SK2
12606#endif
12607 use pm_kind, only: SKG => SK2
12608 character(*,SKG) , intent(out) :: rand
12609 character(*,SKG) , intent(in) :: lb, ub
12610 type(splitmix64_type) , intent(inout) :: rng
12611 end subroutine
12612#endif
12613
12614#if SK1_ENABLED
12615 PURE elemental module subroutine setUnifRandRNGSLU_D0_SK1(rng, rand, lb, ub)
12616#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12617 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_SK1
12618#endif
12619 use pm_kind, only: SKG => SK1
12620 character(*,SKG) , intent(out) :: rand
12621 character(*,SKG) , intent(in) :: lb, ub
12622 type(splitmix64_type) , intent(inout) :: rng
12623 end subroutine
12624#endif
12625
12626 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12627
12628#if IK5_ENABLED
12629 PURE elemental module subroutine setUnifRandRNGSLU_D0_IK5(rng, rand, lb, ub)
12630#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12631 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_IK5
12632#endif
12633 use pm_kind, only: IKG => IK5
12634 integer(IKG) , intent(out) :: rand
12635 integer(IKG) , intent(in) :: lb, ub
12636 type(splitmix64_type) , intent(inout) :: rng
12637 end subroutine
12638#endif
12639
12640#if IK4_ENABLED
12641 PURE elemental module subroutine setUnifRandRNGSLU_D0_IK4(rng, rand, lb, ub)
12642#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12643 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_IK4
12644#endif
12645 use pm_kind, only: IKG => IK4
12646 integer(IKG) , intent(out) :: rand
12647 integer(IKG) , intent(in) :: lb, ub
12648 type(splitmix64_type) , intent(inout) :: rng
12649 end subroutine
12650#endif
12651
12652#if IK3_ENABLED
12653 PURE elemental module subroutine setUnifRandRNGSLU_D0_IK3(rng, rand, lb, ub)
12654#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12655 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_IK3
12656#endif
12657 use pm_kind, only: IKG => IK3
12658 integer(IKG) , intent(out) :: rand
12659 integer(IKG) , intent(in) :: lb, ub
12660 type(splitmix64_type) , intent(inout) :: rng
12661 end subroutine
12662#endif
12663
12664#if IK2_ENABLED
12665 PURE elemental module subroutine setUnifRandRNGSLU_D0_IK2(rng, rand, lb, ub)
12666#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12667 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_IK2
12668#endif
12669 use pm_kind, only: IKG => IK2
12670 integer(IKG) , intent(out) :: rand
12671 integer(IKG) , intent(in) :: lb, ub
12672 type(splitmix64_type) , intent(inout) :: rng
12673 end subroutine
12674#endif
12675
12676#if IK1_ENABLED
12677 PURE elemental module subroutine setUnifRandRNGSLU_D0_IK1(rng, rand, lb, ub)
12678#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12679 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_IK1
12680#endif
12681 use pm_kind, only: IKG => IK1
12682 integer(IKG) , intent(out) :: rand
12683 integer(IKG) , intent(in) :: lb, ub
12684 type(splitmix64_type) , intent(inout) :: rng
12685 end subroutine
12686#endif
12687
12688 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12689
12690#if LK5_ENABLED
12691 PURE elemental module subroutine setUnifRandRNGSLU_D0_LK5(rng, rand, lb, ub)
12692#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12693 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_LK5
12694#endif
12695 use pm_kind, only: LKG => LK5
12696 logical(LKG) , intent(out) :: rand
12697 logical(LKG) , intent(in) :: lb, ub
12698 type(splitmix64_type) , intent(inout) :: rng
12699 end subroutine
12700#endif
12701
12702#if LK4_ENABLED
12703 PURE elemental module subroutine setUnifRandRNGSLU_D0_LK4(rng, rand, lb, ub)
12704#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12705 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_LK4
12706#endif
12707 use pm_kind, only: LKG => LK4
12708 logical(LKG) , intent(out) :: rand
12709 logical(LKG) , intent(in) :: lb, ub
12710 type(splitmix64_type) , intent(inout) :: rng
12711 end subroutine
12712#endif
12713
12714#if LK3_ENABLED
12715 PURE elemental module subroutine setUnifRandRNGSLU_D0_LK3(rng, rand, lb, ub)
12716#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12717 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_LK3
12718#endif
12719 use pm_kind, only: LKG => LK3
12720 logical(LKG) , intent(out) :: rand
12721 logical(LKG) , intent(in) :: lb, ub
12722 type(splitmix64_type) , intent(inout) :: rng
12723 end subroutine
12724#endif
12725
12726#if LK2_ENABLED
12727 PURE elemental module subroutine setUnifRandRNGSLU_D0_LK2(rng, rand, lb, ub)
12728#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12729 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_LK2
12730#endif
12731 use pm_kind, only: LKG => LK2
12732 logical(LKG) , intent(out) :: rand
12733 logical(LKG) , intent(in) :: lb, ub
12734 type(splitmix64_type) , intent(inout) :: rng
12735 end subroutine
12736#endif
12737
12738#if LK1_ENABLED
12739 PURE elemental module subroutine setUnifRandRNGSLU_D0_LK1(rng, rand, lb, ub)
12740#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12741 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_LK1
12742#endif
12743 use pm_kind, only: LKG => LK1
12744 logical(LKG) , intent(out) :: rand
12745 logical(LKG) , intent(in) :: lb, ub
12746 type(splitmix64_type) , intent(inout) :: rng
12747 end subroutine
12748#endif
12749
12750 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12751
12752#if CK5_ENABLED
12753 PURE elemental module subroutine setUnifRandRNGSLU_D0_CK5(rng, rand, lb, ub)
12754#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12755 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_CK5
12756#endif
12757 use pm_kind, only: CKG => CK5
12758 complex(CKG) , intent(out) :: rand
12759 complex(CKG) , intent(in) :: lb, ub
12760 type(splitmix64_type) , intent(inout) :: rng
12761 end subroutine
12762#endif
12763
12764#if CK4_ENABLED
12765 PURE elemental module subroutine setUnifRandRNGSLU_D0_CK4(rng, rand, lb, ub)
12766#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12767 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_CK4
12768#endif
12769 use pm_kind, only: CKG => CK4
12770 complex(CKG) , intent(out) :: rand
12771 complex(CKG) , intent(in) :: lb, ub
12772 type(splitmix64_type) , intent(inout) :: rng
12773 end subroutine
12774#endif
12775
12776#if CK3_ENABLED
12777 PURE elemental module subroutine setUnifRandRNGSLU_D0_CK3(rng, rand, lb, ub)
12778#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12779 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_CK3
12780#endif
12781 use pm_kind, only: CKG => CK3
12782 complex(CKG) , intent(out) :: rand
12783 complex(CKG) , intent(in) :: lb, ub
12784 type(splitmix64_type) , intent(inout) :: rng
12785 end subroutine
12786#endif
12787
12788#if CK2_ENABLED
12789 PURE elemental module subroutine setUnifRandRNGSLU_D0_CK2(rng, rand, lb, ub)
12790#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12791 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_CK2
12792#endif
12793 use pm_kind, only: CKG => CK2
12794 complex(CKG) , intent(out) :: rand
12795 complex(CKG) , intent(in) :: lb, ub
12796 type(splitmix64_type) , intent(inout) :: rng
12797 end subroutine
12798#endif
12799
12800#if CK1_ENABLED
12801 PURE elemental module subroutine setUnifRandRNGSLU_D0_CK1(rng, rand, lb, ub)
12802#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12803 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_CK1
12804#endif
12805 use pm_kind, only: CKG => CK1
12806 complex(CKG) , intent(out) :: rand
12807 complex(CKG) , intent(in) :: lb, ub
12808 type(splitmix64_type) , intent(inout) :: rng
12809 end subroutine
12810#endif
12811
12812 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12813
12814#if RK5_ENABLED
12815 PURE elemental module subroutine setUnifRandRNGSLU_D0_RK5(rng, rand, lb, ub)
12816#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12817 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_RK5
12818#endif
12819 use pm_kind, only: RKG => RK5
12820 real(RKG) , intent(out) :: rand
12821 real(RKG) , intent(in) :: lb, ub
12822 type(splitmix64_type) , intent(inout) :: rng
12823 end subroutine
12824#endif
12825
12826#if RK4_ENABLED
12827 PURE elemental module subroutine setUnifRandRNGSLU_D0_RK4(rng, rand, lb, ub)
12828#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12829 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_RK4
12830#endif
12831 use pm_kind, only: RKG => RK4
12832 real(RKG) , intent(out) :: rand
12833 real(RKG) , intent(in) :: lb, ub
12834 type(splitmix64_type) , intent(inout) :: rng
12835 end subroutine
12836#endif
12837
12838#if RK3_ENABLED
12839 PURE elemental module subroutine setUnifRandRNGSLU_D0_RK3(rng, rand, lb, ub)
12840#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12841 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_RK3
12842#endif
12843 use pm_kind, only: RKG => RK3
12844 real(RKG) , intent(out) :: rand
12845 real(RKG) , intent(in) :: lb, ub
12846 type(splitmix64_type) , intent(inout) :: rng
12847 end subroutine
12848#endif
12849
12850#if RK2_ENABLED
12851 PURE elemental module subroutine setUnifRandRNGSLU_D0_RK2(rng, rand, lb, ub)
12852#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12853 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_RK2
12854#endif
12855 use pm_kind, only: RKG => RK2
12856 real(RKG) , intent(out) :: rand
12857 real(RKG) , intent(in) :: lb, ub
12858 type(splitmix64_type) , intent(inout) :: rng
12859 end subroutine
12860#endif
12861
12862#if RK1_ENABLED
12863 PURE elemental module subroutine setUnifRandRNGSLU_D0_RK1(rng, rand, lb, ub)
12864#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12865 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_RK1
12866#endif
12867 use pm_kind, only: RKG => RK1
12868 real(RKG) , intent(out) :: rand
12869 real(RKG) , intent(in) :: lb, ub
12870 type(splitmix64_type) , intent(inout) :: rng
12871 end subroutine
12872#endif
12873
12874 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12875
12876 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12877 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12878 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12879
12880 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12881 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12882 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12883
12884 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12885
12886#if SK5_ENABLED
12887 PURE module subroutine setUnifRandRNGSDD_D1_SK5(rng, rand)
12888#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12889 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_SK5
12890#endif
12891 use pm_kind, only: SKG => SK5
12892 character(*,SKG) , intent(out) :: rand(:)
12893 type(splitmix64_type) , intent(inout) :: rng
12894 end subroutine
12895#endif
12896
12897#if SK4_ENABLED
12898 PURE module subroutine setUnifRandRNGSDD_D1_SK4(rng, rand)
12899#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12900 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_SK4
12901#endif
12902 use pm_kind, only: SKG => SK4
12903 character(*,SKG) , intent(out) :: rand(:)
12904 type(splitmix64_type) , intent(inout) :: rng
12905 end subroutine
12906#endif
12907
12908#if SK3_ENABLED
12909 PURE module subroutine setUnifRandRNGSDD_D1_SK3(rng, rand)
12910#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12911 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_SK3
12912#endif
12913 use pm_kind, only: SKG => SK3
12914 character(*,SKG) , intent(out) :: rand(:)
12915 type(splitmix64_type) , intent(inout) :: rng
12916 end subroutine
12917#endif
12918
12919#if SK2_ENABLED
12920 PURE module subroutine setUnifRandRNGSDD_D1_SK2(rng, rand)
12921#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12922 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_SK2
12923#endif
12924 use pm_kind, only: SKG => SK2
12925 character(*,SKG) , intent(out) :: rand(:)
12926 type(splitmix64_type) , intent(inout) :: rng
12927 end subroutine
12928#endif
12929
12930#if SK1_ENABLED
12931 PURE module subroutine setUnifRandRNGSDD_D1_SK1(rng, rand)
12932#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12933 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_SK1
12934#endif
12935 use pm_kind, only: SKG => SK1
12936 character(*,SKG) , intent(out) :: rand(:)
12937 type(splitmix64_type) , intent(inout) :: rng
12938 end subroutine
12939#endif
12940
12941 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12942
12943#if IK5_ENABLED
12944 PURE module subroutine setUnifRandRNGSDD_D1_IK5(rng, rand)
12945#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12946 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_IK5
12947#endif
12948 use pm_kind, only: IKG => IK5
12949 integer(IKG) , intent(out) :: rand(:)
12950 type(splitmix64_type) , intent(inout) :: rng
12951 end subroutine
12952#endif
12953
12954#if IK4_ENABLED
12955 PURE module subroutine setUnifRandRNGSDD_D1_IK4(rng, rand)
12956#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12957 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_IK4
12958#endif
12959 use pm_kind, only: IKG => IK4
12960 integer(IKG) , intent(out) :: rand(:)
12961 type(splitmix64_type) , intent(inout) :: rng
12962 end subroutine
12963#endif
12964
12965#if IK3_ENABLED
12966 PURE module subroutine setUnifRandRNGSDD_D1_IK3(rng, rand)
12967#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12968 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_IK3
12969#endif
12970 use pm_kind, only: IKG => IK3
12971 integer(IKG) , intent(out) :: rand(:)
12972 type(splitmix64_type) , intent(inout) :: rng
12973 end subroutine
12974#endif
12975
12976#if IK2_ENABLED
12977 PURE module subroutine setUnifRandRNGSDD_D1_IK2(rng, rand)
12978#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12979 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_IK2
12980#endif
12981 use pm_kind, only: IKG => IK2
12982 integer(IKG) , intent(out) :: rand(:)
12983 type(splitmix64_type) , intent(inout) :: rng
12984 end subroutine
12985#endif
12986
12987#if IK1_ENABLED
12988 PURE module subroutine setUnifRandRNGSDD_D1_IK1(rng, rand)
12989#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12990 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_IK1
12991#endif
12992 use pm_kind, only: IKG => IK1
12993 integer(IKG) , intent(out) :: rand(:)
12994 type(splitmix64_type) , intent(inout) :: rng
12995 end subroutine
12996#endif
12997
12998 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12999
13000#if LK5_ENABLED
13001 PURE module subroutine setUnifRandRNGSDD_D1_LK5(rng, rand)
13002#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13003 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_LK5
13004#endif
13005 use pm_kind, only: LKG => LK5
13006 logical(LKG) , intent(out) :: rand(:)
13007 type(splitmix64_type) , intent(inout) :: rng
13008 end subroutine
13009#endif
13010
13011#if LK4_ENABLED
13012 PURE module subroutine setUnifRandRNGSDD_D1_LK4(rng, rand)
13013#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13014 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_LK4
13015#endif
13016 use pm_kind, only: LKG => LK4
13017 logical(LKG) , intent(out) :: rand(:)
13018 type(splitmix64_type) , intent(inout) :: rng
13019 end subroutine
13020#endif
13021
13022#if LK3_ENABLED
13023 PURE module subroutine setUnifRandRNGSDD_D1_LK3(rng, rand)
13024#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13025 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_LK3
13026#endif
13027 use pm_kind, only: LKG => LK3
13028 logical(LKG) , intent(out) :: rand(:)
13029 type(splitmix64_type) , intent(inout) :: rng
13030 end subroutine
13031#endif
13032
13033#if LK2_ENABLED
13034 PURE module subroutine setUnifRandRNGSDD_D1_LK2(rng, rand)
13035#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13036 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_LK2
13037#endif
13038 use pm_kind, only: LKG => LK2
13039 logical(LKG) , intent(out) :: rand(:)
13040 type(splitmix64_type) , intent(inout) :: rng
13041 end subroutine
13042#endif
13043
13044#if LK1_ENABLED
13045 PURE module subroutine setUnifRandRNGSDD_D1_LK1(rng, rand)
13046#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13047 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_LK1
13048#endif
13049 use pm_kind, only: LKG => LK1
13050 logical(LKG) , intent(out) :: rand(:)
13051 type(splitmix64_type) , intent(inout) :: rng
13052 end subroutine
13053#endif
13054
13055 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13056
13057#if CK5_ENABLED
13058 PURE module subroutine setUnifRandRNGSDD_D1_CK5(rng, rand)
13059#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13060 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_CK5
13061#endif
13062 use pm_kind, only: CKG => CK5
13063 complex(CKG) , intent(out) :: rand(:)
13064 type(splitmix64_type) , intent(inout) :: rng
13065 end subroutine
13066#endif
13067
13068#if CK4_ENABLED
13069 PURE module subroutine setUnifRandRNGSDD_D1_CK4(rng, rand)
13070#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13071 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_CK4
13072#endif
13073 use pm_kind, only: CKG => CK4
13074 complex(CKG) , intent(out) :: rand(:)
13075 type(splitmix64_type) , intent(inout) :: rng
13076 end subroutine
13077#endif
13078
13079#if CK3_ENABLED
13080 PURE module subroutine setUnifRandRNGSDD_D1_CK3(rng, rand)
13081#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13082 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_CK3
13083#endif
13084 use pm_kind, only: CKG => CK3
13085 complex(CKG) , intent(out) :: rand(:)
13086 type(splitmix64_type) , intent(inout) :: rng
13087 end subroutine
13088#endif
13089
13090#if CK2_ENABLED
13091 PURE module subroutine setUnifRandRNGSDD_D1_CK2(rng, rand)
13092#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13093 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_CK2
13094#endif
13095 use pm_kind, only: CKG => CK2
13096 complex(CKG) , intent(out) :: rand(:)
13097 type(splitmix64_type) , intent(inout) :: rng
13098 end subroutine
13099#endif
13100
13101#if CK1_ENABLED
13102 PURE module subroutine setUnifRandRNGSDD_D1_CK1(rng, rand)
13103#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13104 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_CK1
13105#endif
13106 use pm_kind, only: CKG => CK1
13107 complex(CKG) , intent(out) :: rand(:)
13108 type(splitmix64_type) , intent(inout) :: rng
13109 end subroutine
13110#endif
13111
13112 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13113
13114#if RK5_ENABLED
13115 PURE module subroutine setUnifRandRNGSDD_D1_RK5(rng, rand)
13116#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13117 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_RK5
13118#endif
13119 use pm_kind, only: RKG => RK5
13120 real(RKG) , intent(out) :: rand(:)
13121 type(splitmix64_type) , intent(inout) :: rng
13122 end subroutine
13123#endif
13124
13125#if RK4_ENABLED
13126 PURE module subroutine setUnifRandRNGSDD_D1_RK4(rng, rand)
13127#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13128 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_RK4
13129#endif
13130 use pm_kind, only: RKG => RK4
13131 real(RKG) , intent(out) :: rand(:)
13132 type(splitmix64_type) , intent(inout) :: rng
13133 end subroutine
13134#endif
13135
13136#if RK3_ENABLED
13137 PURE module subroutine setUnifRandRNGSDD_D1_RK3(rng, rand)
13138#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13139 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_RK3
13140#endif
13141 use pm_kind, only: RKG => RK3
13142 real(RKG) , intent(out) :: rand(:)
13143 type(splitmix64_type) , intent(inout) :: rng
13144 end subroutine
13145#endif
13146
13147#if RK2_ENABLED
13148 PURE module subroutine setUnifRandRNGSDD_D1_RK2(rng, rand)
13149#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13150 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_RK2
13151#endif
13152 use pm_kind, only: RKG => RK2
13153 real(RKG) , intent(out) :: rand(:)
13154 type(splitmix64_type) , intent(inout) :: rng
13155 end subroutine
13156#endif
13157
13158#if RK1_ENABLED
13159 PURE module subroutine setUnifRandRNGSDD_D1_RK1(rng, rand)
13160#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13161 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_RK1
13162#endif
13163 use pm_kind, only: RKG => RK1
13164 real(RKG) , intent(out) :: rand(:)
13165 type(splitmix64_type) , intent(inout) :: rng
13166 end subroutine
13167#endif
13168
13169 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13170
13171 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13172 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13173 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13174
13175 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13176
13177#if SK5_ENABLED
13178 PURE module subroutine setUnifRandRNGSLU_D1_SK5(rng, rand, lb, ub)
13179#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13180 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_SK5
13181#endif
13182 use pm_kind, only: SKG => SK5
13183 character(*,SKG) , intent(out) :: rand(:)
13184 character(*,SKG) , intent(in) :: lb, ub
13185 type(splitmix64_type) , intent(inout) :: rng
13186 end subroutine
13187#endif
13188
13189#if SK4_ENABLED
13190 PURE module subroutine setUnifRandRNGSLU_D1_SK4(rng, rand, lb, ub)
13191#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13192 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_SK4
13193#endif
13194 use pm_kind, only: SKG => SK4
13195 character(*,SKG) , intent(out) :: rand(:)
13196 character(*,SKG) , intent(in) :: lb, ub
13197 type(splitmix64_type) , intent(inout) :: rng
13198 end subroutine
13199#endif
13200
13201#if SK3_ENABLED
13202 PURE module subroutine setUnifRandRNGSLU_D1_SK3(rng, rand, lb, ub)
13203#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13204 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_SK3
13205#endif
13206 use pm_kind, only: SKG => SK3
13207 character(*,SKG) , intent(out) :: rand(:)
13208 character(*,SKG) , intent(in) :: lb, ub
13209 type(splitmix64_type) , intent(inout) :: rng
13210 end subroutine
13211#endif
13212
13213#if SK2_ENABLED
13214 PURE module subroutine setUnifRandRNGSLU_D1_SK2(rng, rand, lb, ub)
13215#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13216 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_SK2
13217#endif
13218 use pm_kind, only: SKG => SK2
13219 character(*,SKG) , intent(out) :: rand(:)
13220 character(*,SKG) , intent(in) :: lb, ub
13221 type(splitmix64_type) , intent(inout) :: rng
13222 end subroutine
13223#endif
13224
13225#if SK1_ENABLED
13226 PURE module subroutine setUnifRandRNGSLU_D1_SK1(rng, rand, lb, ub)
13227#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13228 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_SK1
13229#endif
13230 use pm_kind, only: SKG => SK1
13231 character(*,SKG) , intent(out) :: rand(:)
13232 character(*,SKG) , intent(in) :: lb, ub
13233 type(splitmix64_type) , intent(inout) :: rng
13234 end subroutine
13235#endif
13236
13237 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13238
13239#if IK5_ENABLED
13240 PURE module subroutine setUnifRandRNGSLU_D1_IK5(rng, rand, lb, ub)
13241#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13242 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_IK5
13243#endif
13244 use pm_kind, only: IKG => IK5
13245 integer(IKG) , intent(out) :: rand(:)
13246 integer(IKG) , intent(in) :: lb, ub
13247 type(splitmix64_type) , intent(inout) :: rng
13248 end subroutine
13249#endif
13250
13251#if IK4_ENABLED
13252 PURE module subroutine setUnifRandRNGSLU_D1_IK4(rng, rand, lb, ub)
13253#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13254 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_IK4
13255#endif
13256 use pm_kind, only: IKG => IK4
13257 integer(IKG) , intent(out) :: rand(:)
13258 integer(IKG) , intent(in) :: lb, ub
13259 type(splitmix64_type) , intent(inout) :: rng
13260 end subroutine
13261#endif
13262
13263#if IK3_ENABLED
13264 PURE module subroutine setUnifRandRNGSLU_D1_IK3(rng, rand, lb, ub)
13265#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13266 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_IK3
13267#endif
13268 use pm_kind, only: IKG => IK3
13269 integer(IKG) , intent(out) :: rand(:)
13270 integer(IKG) , intent(in) :: lb, ub
13271 type(splitmix64_type) , intent(inout) :: rng
13272 end subroutine
13273#endif
13274
13275#if IK2_ENABLED
13276 PURE module subroutine setUnifRandRNGSLU_D1_IK2(rng, rand, lb, ub)
13277#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13278 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_IK2
13279#endif
13280 use pm_kind, only: IKG => IK2
13281 integer(IKG) , intent(out) :: rand(:)
13282 integer(IKG) , intent(in) :: lb, ub
13283 type(splitmix64_type) , intent(inout) :: rng
13284 end subroutine
13285#endif
13286
13287#if IK1_ENABLED
13288 PURE module subroutine setUnifRandRNGSLU_D1_IK1(rng, rand, lb, ub)
13289#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13290 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_IK1
13291#endif
13292 use pm_kind, only: IKG => IK1
13293 integer(IKG) , intent(out) :: rand(:)
13294 integer(IKG) , intent(in) :: lb, ub
13295 type(splitmix64_type) , intent(inout) :: rng
13296 end subroutine
13297#endif
13298
13299 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13300
13301#if LK5_ENABLED
13302 PURE module subroutine setUnifRandRNGSLU_D1_LK5(rng, rand, lb, ub)
13303#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13304 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_LK5
13305#endif
13306 use pm_kind, only: LKG => LK5
13307 logical(LKG) , intent(out) :: rand(:)
13308 logical(LKG) , intent(in) :: lb, ub
13309 type(splitmix64_type) , intent(inout) :: rng
13310 end subroutine
13311#endif
13312
13313#if LK4_ENABLED
13314 PURE module subroutine setUnifRandRNGSLU_D1_LK4(rng, rand, lb, ub)
13315#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13316 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_LK4
13317#endif
13318 use pm_kind, only: LKG => LK4
13319 logical(LKG) , intent(out) :: rand(:)
13320 logical(LKG) , intent(in) :: lb, ub
13321 type(splitmix64_type) , intent(inout) :: rng
13322 end subroutine
13323#endif
13324
13325#if LK3_ENABLED
13326 PURE module subroutine setUnifRandRNGSLU_D1_LK3(rng, rand, lb, ub)
13327#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13328 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_LK3
13329#endif
13330 use pm_kind, only: LKG => LK3
13331 logical(LKG) , intent(out) :: rand(:)
13332 logical(LKG) , intent(in) :: lb, ub
13333 type(splitmix64_type) , intent(inout) :: rng
13334 end subroutine
13335#endif
13336
13337#if LK2_ENABLED
13338 PURE module subroutine setUnifRandRNGSLU_D1_LK2(rng, rand, lb, ub)
13339#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13340 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_LK2
13341#endif
13342 use pm_kind, only: LKG => LK2
13343 logical(LKG) , intent(out) :: rand(:)
13344 logical(LKG) , intent(in) :: lb, ub
13345 type(splitmix64_type) , intent(inout) :: rng
13346 end subroutine
13347#endif
13348
13349#if LK1_ENABLED
13350 PURE module subroutine setUnifRandRNGSLU_D1_LK1(rng, rand, lb, ub)
13351#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13352 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_LK1
13353#endif
13354 use pm_kind, only: LKG => LK1
13355 logical(LKG) , intent(out) :: rand(:)
13356 logical(LKG) , intent(in) :: lb, ub
13357 type(splitmix64_type) , intent(inout) :: rng
13358 end subroutine
13359#endif
13360
13361 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13362
13363#if CK5_ENABLED
13364 PURE module subroutine setUnifRandRNGSLU_D1_CK5(rng, rand, lb, ub)
13365#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13366 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_CK5
13367#endif
13368 use pm_kind, only: CKG => CK5
13369 complex(CKG) , intent(out) :: rand(:)
13370 complex(CKG) , intent(in) :: lb, ub
13371 type(splitmix64_type) , intent(inout) :: rng
13372 end subroutine
13373#endif
13374
13375#if CK4_ENABLED
13376 PURE module subroutine setUnifRandRNGSLU_D1_CK4(rng, rand, lb, ub)
13377#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13378 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_CK4
13379#endif
13380 use pm_kind, only: CKG => CK4
13381 complex(CKG) , intent(out) :: rand(:)
13382 complex(CKG) , intent(in) :: lb, ub
13383 type(splitmix64_type) , intent(inout) :: rng
13384 end subroutine
13385#endif
13386
13387#if CK3_ENABLED
13388 PURE module subroutine setUnifRandRNGSLU_D1_CK3(rng, rand, lb, ub)
13389#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13390 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_CK3
13391#endif
13392 use pm_kind, only: CKG => CK3
13393 complex(CKG) , intent(out) :: rand(:)
13394 complex(CKG) , intent(in) :: lb, ub
13395 type(splitmix64_type) , intent(inout) :: rng
13396 end subroutine
13397#endif
13398
13399#if CK2_ENABLED
13400 PURE module subroutine setUnifRandRNGSLU_D1_CK2(rng, rand, lb, ub)
13401#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13402 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_CK2
13403#endif
13404 use pm_kind, only: CKG => CK2
13405 complex(CKG) , intent(out) :: rand(:)
13406 complex(CKG) , intent(in) :: lb, ub
13407 type(splitmix64_type) , intent(inout) :: rng
13408 end subroutine
13409#endif
13410
13411#if CK1_ENABLED
13412 PURE module subroutine setUnifRandRNGSLU_D1_CK1(rng, rand, lb, ub)
13413#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13414 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_CK1
13415#endif
13416 use pm_kind, only: CKG => CK1
13417 complex(CKG) , intent(out) :: rand(:)
13418 complex(CKG) , intent(in) :: lb, ub
13419 type(splitmix64_type) , intent(inout) :: rng
13420 end subroutine
13421#endif
13422
13423 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13424
13425#if RK5_ENABLED
13426 PURE module subroutine setUnifRandRNGSLU_D1_RK5(rng, rand, lb, ub)
13427#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13428 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_RK5
13429#endif
13430 use pm_kind, only: RKG => RK5
13431 real(RKG) , intent(out) :: rand(:)
13432 real(RKG) , intent(in) :: lb, ub
13433 type(splitmix64_type) , intent(inout) :: rng
13434 end subroutine
13435#endif
13436
13437#if RK4_ENABLED
13438 PURE module subroutine setUnifRandRNGSLU_D1_RK4(rng, rand, lb, ub)
13439#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13440 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_RK4
13441#endif
13442 use pm_kind, only: RKG => RK4
13443 real(RKG) , intent(out) :: rand(:)
13444 real(RKG) , intent(in) :: lb, ub
13445 type(splitmix64_type) , intent(inout) :: rng
13446 end subroutine
13447#endif
13448
13449#if RK3_ENABLED
13450 PURE module subroutine setUnifRandRNGSLU_D1_RK3(rng, rand, lb, ub)
13451#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13452 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_RK3
13453#endif
13454 use pm_kind, only: RKG => RK3
13455 real(RKG) , intent(out) :: rand(:)
13456 real(RKG) , intent(in) :: lb, ub
13457 type(splitmix64_type) , intent(inout) :: rng
13458 end subroutine
13459#endif
13460
13461#if RK2_ENABLED
13462 PURE module subroutine setUnifRandRNGSLU_D1_RK2(rng, rand, lb, ub)
13463#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13464 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_RK2
13465#endif
13466 use pm_kind, only: RKG => RK2
13467 real(RKG) , intent(out) :: rand(:)
13468 real(RKG) , intent(in) :: lb, ub
13469 type(splitmix64_type) , intent(inout) :: rng
13470 end subroutine
13471#endif
13472
13473#if RK1_ENABLED
13474 PURE module subroutine setUnifRandRNGSLU_D1_RK1(rng, rand, lb, ub)
13475#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13476 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_RK1
13477#endif
13478 use pm_kind, only: RKG => RK1
13479 real(RKG) , intent(out) :: rand(:)
13480 real(RKG) , intent(in) :: lb, ub
13481 type(splitmix64_type) , intent(inout) :: rng
13482 end subroutine
13483#endif
13484
13485 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13486
13487 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13488 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13489 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13490
13491 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13492 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13493 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13494
13495 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13496
13497#if SK5_ENABLED
13498 PURE module subroutine setUnifRandRNGSDD_D2_SK5(rng, rand)
13499#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13500 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_SK5
13501#endif
13502 use pm_kind, only: SKG => SK5
13503 character(*,SKG) , intent(out) :: rand(:,:)
13504 type(splitmix64_type) , intent(inout) :: rng
13505 end subroutine
13506#endif
13507
13508#if SK4_ENABLED
13509 PURE module subroutine setUnifRandRNGSDD_D2_SK4(rng, rand)
13510#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13511 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_SK4
13512#endif
13513 use pm_kind, only: SKG => SK4
13514 character(*,SKG) , intent(out) :: rand(:,:)
13515 type(splitmix64_type) , intent(inout) :: rng
13516 end subroutine
13517#endif
13518
13519#if SK3_ENABLED
13520 PURE module subroutine setUnifRandRNGSDD_D2_SK3(rng, rand)
13521#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13522 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_SK3
13523#endif
13524 use pm_kind, only: SKG => SK3
13525 character(*,SKG) , intent(out) :: rand(:,:)
13526 type(splitmix64_type) , intent(inout) :: rng
13527 end subroutine
13528#endif
13529
13530#if SK2_ENABLED
13531 PURE module subroutine setUnifRandRNGSDD_D2_SK2(rng, rand)
13532#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13533 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_SK2
13534#endif
13535 use pm_kind, only: SKG => SK2
13536 character(*,SKG) , intent(out) :: rand(:,:)
13537 type(splitmix64_type) , intent(inout) :: rng
13538 end subroutine
13539#endif
13540
13541#if SK1_ENABLED
13542 PURE module subroutine setUnifRandRNGSDD_D2_SK1(rng, rand)
13543#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13544 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_SK1
13545#endif
13546 use pm_kind, only: SKG => SK1
13547 character(*,SKG) , intent(out) :: rand(:,:)
13548 type(splitmix64_type) , intent(inout) :: rng
13549 end subroutine
13550#endif
13551
13552 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13553
13554#if IK5_ENABLED
13555 PURE module subroutine setUnifRandRNGSDD_D2_IK5(rng, rand)
13556#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13557 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_IK5
13558#endif
13559 use pm_kind, only: IKG => IK5
13560 integer(IKG) , intent(out) :: rand(:,:)
13561 type(splitmix64_type) , intent(inout) :: rng
13562 end subroutine
13563#endif
13564
13565#if IK4_ENABLED
13566 PURE module subroutine setUnifRandRNGSDD_D2_IK4(rng, rand)
13567#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13568 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_IK4
13569#endif
13570 use pm_kind, only: IKG => IK4
13571 integer(IKG) , intent(out) :: rand(:,:)
13572 type(splitmix64_type) , intent(inout) :: rng
13573 end subroutine
13574#endif
13575
13576#if IK3_ENABLED
13577 PURE module subroutine setUnifRandRNGSDD_D2_IK3(rng, rand)
13578#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13579 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_IK3
13580#endif
13581 use pm_kind, only: IKG => IK3
13582 integer(IKG) , intent(out) :: rand(:,:)
13583 type(splitmix64_type) , intent(inout) :: rng
13584 end subroutine
13585#endif
13586
13587#if IK2_ENABLED
13588 PURE module subroutine setUnifRandRNGSDD_D2_IK2(rng, rand)
13589#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13590 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_IK2
13591#endif
13592 use pm_kind, only: IKG => IK2
13593 integer(IKG) , intent(out) :: rand(:,:)
13594 type(splitmix64_type) , intent(inout) :: rng
13595 end subroutine
13596#endif
13597
13598#if IK1_ENABLED
13599 PURE module subroutine setUnifRandRNGSDD_D2_IK1(rng, rand)
13600#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13601 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_IK1
13602#endif
13603 use pm_kind, only: IKG => IK1
13604 integer(IKG) , intent(out) :: rand(:,:)
13605 type(splitmix64_type) , intent(inout) :: rng
13606 end subroutine
13607#endif
13608
13609 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13610
13611#if LK5_ENABLED
13612 PURE module subroutine setUnifRandRNGSDD_D2_LK5(rng, rand)
13613#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13614 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_LK5
13615#endif
13616 use pm_kind, only: LKG => LK5
13617 logical(LKG) , intent(out) :: rand(:,:)
13618 type(splitmix64_type) , intent(inout) :: rng
13619 end subroutine
13620#endif
13621
13622#if LK4_ENABLED
13623 PURE module subroutine setUnifRandRNGSDD_D2_LK4(rng, rand)
13624#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13625 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_LK4
13626#endif
13627 use pm_kind, only: LKG => LK4
13628 logical(LKG) , intent(out) :: rand(:,:)
13629 type(splitmix64_type) , intent(inout) :: rng
13630 end subroutine
13631#endif
13632
13633#if LK3_ENABLED
13634 PURE module subroutine setUnifRandRNGSDD_D2_LK3(rng, rand)
13635#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13636 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_LK3
13637#endif
13638 use pm_kind, only: LKG => LK3
13639 logical(LKG) , intent(out) :: rand(:,:)
13640 type(splitmix64_type) , intent(inout) :: rng
13641 end subroutine
13642#endif
13643
13644#if LK2_ENABLED
13645 PURE module subroutine setUnifRandRNGSDD_D2_LK2(rng, rand)
13646#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13647 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_LK2
13648#endif
13649 use pm_kind, only: LKG => LK2
13650 logical(LKG) , intent(out) :: rand(:,:)
13651 type(splitmix64_type) , intent(inout) :: rng
13652 end subroutine
13653#endif
13654
13655#if LK1_ENABLED
13656 PURE module subroutine setUnifRandRNGSDD_D2_LK1(rng, rand)
13657#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13658 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_LK1
13659#endif
13660 use pm_kind, only: LKG => LK1
13661 logical(LKG) , intent(out) :: rand(:,:)
13662 type(splitmix64_type) , intent(inout) :: rng
13663 end subroutine
13664#endif
13665
13666 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13667
13668#if CK5_ENABLED
13669 PURE module subroutine setUnifRandRNGSDD_D2_CK5(rng, rand)
13670#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13671 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_CK5
13672#endif
13673 use pm_kind, only: CKG => CK5
13674 complex(CKG) , intent(out) :: rand(:,:)
13675 type(splitmix64_type) , intent(inout) :: rng
13676 end subroutine
13677#endif
13678
13679#if CK4_ENABLED
13680 PURE module subroutine setUnifRandRNGSDD_D2_CK4(rng, rand)
13681#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13682 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_CK4
13683#endif
13684 use pm_kind, only: CKG => CK4
13685 complex(CKG) , intent(out) :: rand(:,:)
13686 type(splitmix64_type) , intent(inout) :: rng
13687 end subroutine
13688#endif
13689
13690#if CK3_ENABLED
13691 PURE module subroutine setUnifRandRNGSDD_D2_CK3(rng, rand)
13692#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13693 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_CK3
13694#endif
13695 use pm_kind, only: CKG => CK3
13696 complex(CKG) , intent(out) :: rand(:,:)
13697 type(splitmix64_type) , intent(inout) :: rng
13698 end subroutine
13699#endif
13700
13701#if CK2_ENABLED
13702 PURE module subroutine setUnifRandRNGSDD_D2_CK2(rng, rand)
13703#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13704 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_CK2
13705#endif
13706 use pm_kind, only: CKG => CK2
13707 complex(CKG) , intent(out) :: rand(:,:)
13708 type(splitmix64_type) , intent(inout) :: rng
13709 end subroutine
13710#endif
13711
13712#if CK1_ENABLED
13713 PURE module subroutine setUnifRandRNGSDD_D2_CK1(rng, rand)
13714#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13715 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_CK1
13716#endif
13717 use pm_kind, only: CKG => CK1
13718 complex(CKG) , intent(out) :: rand(:,:)
13719 type(splitmix64_type) , intent(inout) :: rng
13720 end subroutine
13721#endif
13722
13723 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13724
13725#if RK5_ENABLED
13726 PURE module subroutine setUnifRandRNGSDD_D2_RK5(rng, rand)
13727#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13728 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_RK5
13729#endif
13730 use pm_kind, only: RKG => RK5
13731 real(RKG) , intent(out) :: rand(:,:)
13732 type(splitmix64_type) , intent(inout) :: rng
13733 end subroutine
13734#endif
13735
13736#if RK4_ENABLED
13737 PURE module subroutine setUnifRandRNGSDD_D2_RK4(rng, rand)
13738#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13739 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_RK4
13740#endif
13741 use pm_kind, only: RKG => RK4
13742 real(RKG) , intent(out) :: rand(:,:)
13743 type(splitmix64_type) , intent(inout) :: rng
13744 end subroutine
13745#endif
13746
13747#if RK3_ENABLED
13748 PURE module subroutine setUnifRandRNGSDD_D2_RK3(rng, rand)
13749#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13750 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_RK3
13751#endif
13752 use pm_kind, only: RKG => RK3
13753 real(RKG) , intent(out) :: rand(:,:)
13754 type(splitmix64_type) , intent(inout) :: rng
13755 end subroutine
13756#endif
13757
13758#if RK2_ENABLED
13759 PURE module subroutine setUnifRandRNGSDD_D2_RK2(rng, rand)
13760#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13761 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_RK2
13762#endif
13763 use pm_kind, only: RKG => RK2
13764 real(RKG) , intent(out) :: rand(:,:)
13765 type(splitmix64_type) , intent(inout) :: rng
13766 end subroutine
13767#endif
13768
13769#if RK1_ENABLED
13770 PURE module subroutine setUnifRandRNGSDD_D2_RK1(rng, rand)
13771#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13772 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_RK1
13773#endif
13774 use pm_kind, only: RKG => RK1
13775 real(RKG) , intent(out) :: rand(:,:)
13776 type(splitmix64_type) , intent(inout) :: rng
13777 end subroutine
13778#endif
13779
13780 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13781
13782 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13783 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13784 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13785
13786 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13787
13788#if SK5_ENABLED
13789 PURE module subroutine setUnifRandRNGSLU_D2_SK5(rng, rand, lb, ub)
13790#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13791 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_SK5
13792#endif
13793 use pm_kind, only: SKG => SK5
13794 character(*,SKG) , intent(out) :: rand(:,:)
13795 character(*,SKG) , intent(in) :: lb, ub
13796 type(splitmix64_type) , intent(inout) :: rng
13797 end subroutine
13798#endif
13799
13800#if SK4_ENABLED
13801 PURE module subroutine setUnifRandRNGSLU_D2_SK4(rng, rand, lb, ub)
13802#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13803 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_SK4
13804#endif
13805 use pm_kind, only: SKG => SK4
13806 character(*,SKG) , intent(out) :: rand(:,:)
13807 character(*,SKG) , intent(in) :: lb, ub
13808 type(splitmix64_type) , intent(inout) :: rng
13809 end subroutine
13810#endif
13811
13812#if SK3_ENABLED
13813 PURE module subroutine setUnifRandRNGSLU_D2_SK3(rng, rand, lb, ub)
13814#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13815 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_SK3
13816#endif
13817 use pm_kind, only: SKG => SK3
13818 character(*,SKG) , intent(out) :: rand(:,:)
13819 character(*,SKG) , intent(in) :: lb, ub
13820 type(splitmix64_type) , intent(inout) :: rng
13821 end subroutine
13822#endif
13823
13824#if SK2_ENABLED
13825 PURE module subroutine setUnifRandRNGSLU_D2_SK2(rng, rand, lb, ub)
13826#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13827 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_SK2
13828#endif
13829 use pm_kind, only: SKG => SK2
13830 character(*,SKG) , intent(out) :: rand(:,:)
13831 character(*,SKG) , intent(in) :: lb, ub
13832 type(splitmix64_type) , intent(inout) :: rng
13833 end subroutine
13834#endif
13835
13836#if SK1_ENABLED
13837 PURE module subroutine setUnifRandRNGSLU_D2_SK1(rng, rand, lb, ub)
13838#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13839 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_SK1
13840#endif
13841 use pm_kind, only: SKG => SK1
13842 character(*,SKG) , intent(out) :: rand(:,:)
13843 character(*,SKG) , intent(in) :: lb, ub
13844 type(splitmix64_type) , intent(inout) :: rng
13845 end subroutine
13846#endif
13847
13848 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13849
13850#if IK5_ENABLED
13851 PURE module subroutine setUnifRandRNGSLU_D2_IK5(rng, rand, lb, ub)
13852#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13853 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_IK5
13854#endif
13855 use pm_kind, only: IKG => IK5
13856 integer(IKG) , intent(out) :: rand(:,:)
13857 integer(IKG) , intent(in) :: lb, ub
13858 type(splitmix64_type) , intent(inout) :: rng
13859 end subroutine
13860#endif
13861
13862#if IK4_ENABLED
13863 PURE module subroutine setUnifRandRNGSLU_D2_IK4(rng, rand, lb, ub)
13864#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13865 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_IK4
13866#endif
13867 use pm_kind, only: IKG => IK4
13868 integer(IKG) , intent(out) :: rand(:,:)
13869 integer(IKG) , intent(in) :: lb, ub
13870 type(splitmix64_type) , intent(inout) :: rng
13871 end subroutine
13872#endif
13873
13874#if IK3_ENABLED
13875 PURE module subroutine setUnifRandRNGSLU_D2_IK3(rng, rand, lb, ub)
13876#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13877 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_IK3
13878#endif
13879 use pm_kind, only: IKG => IK3
13880 integer(IKG) , intent(out) :: rand(:,:)
13881 integer(IKG) , intent(in) :: lb, ub
13882 type(splitmix64_type) , intent(inout) :: rng
13883 end subroutine
13884#endif
13885
13886#if IK2_ENABLED
13887 PURE module subroutine setUnifRandRNGSLU_D2_IK2(rng, rand, lb, ub)
13888#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13889 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_IK2
13890#endif
13891 use pm_kind, only: IKG => IK2
13892 integer(IKG) , intent(out) :: rand(:,:)
13893 integer(IKG) , intent(in) :: lb, ub
13894 type(splitmix64_type) , intent(inout) :: rng
13895 end subroutine
13896#endif
13897
13898#if IK1_ENABLED
13899 PURE module subroutine setUnifRandRNGSLU_D2_IK1(rng, rand, lb, ub)
13900#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13901 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_IK1
13902#endif
13903 use pm_kind, only: IKG => IK1
13904 integer(IKG) , intent(out) :: rand(:,:)
13905 integer(IKG) , intent(in) :: lb, ub
13906 type(splitmix64_type) , intent(inout) :: rng
13907 end subroutine
13908#endif
13909
13910 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13911
13912#if LK5_ENABLED
13913 PURE module subroutine setUnifRandRNGSLU_D2_LK5(rng, rand, lb, ub)
13914#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13915 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_LK5
13916#endif
13917 use pm_kind, only: LKG => LK5
13918 logical(LKG) , intent(out) :: rand(:,:)
13919 logical(LKG) , intent(in) :: lb, ub
13920 type(splitmix64_type) , intent(inout) :: rng
13921 end subroutine
13922#endif
13923
13924#if LK4_ENABLED
13925 PURE module subroutine setUnifRandRNGSLU_D2_LK4(rng, rand, lb, ub)
13926#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13927 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_LK4
13928#endif
13929 use pm_kind, only: LKG => LK4
13930 logical(LKG) , intent(out) :: rand(:,:)
13931 logical(LKG) , intent(in) :: lb, ub
13932 type(splitmix64_type) , intent(inout) :: rng
13933 end subroutine
13934#endif
13935
13936#if LK3_ENABLED
13937 PURE module subroutine setUnifRandRNGSLU_D2_LK3(rng, rand, lb, ub)
13938#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13939 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_LK3
13940#endif
13941 use pm_kind, only: LKG => LK3
13942 logical(LKG) , intent(out) :: rand(:,:)
13943 logical(LKG) , intent(in) :: lb, ub
13944 type(splitmix64_type) , intent(inout) :: rng
13945 end subroutine
13946#endif
13947
13948#if LK2_ENABLED
13949 PURE module subroutine setUnifRandRNGSLU_D2_LK2(rng, rand, lb, ub)
13950#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13951 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_LK2
13952#endif
13953 use pm_kind, only: LKG => LK2
13954 logical(LKG) , intent(out) :: rand(:,:)
13955 logical(LKG) , intent(in) :: lb, ub
13956 type(splitmix64_type) , intent(inout) :: rng
13957 end subroutine
13958#endif
13959
13960#if LK1_ENABLED
13961 PURE module subroutine setUnifRandRNGSLU_D2_LK1(rng, rand, lb, ub)
13962#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13963 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_LK1
13964#endif
13965 use pm_kind, only: LKG => LK1
13966 logical(LKG) , intent(out) :: rand(:,:)
13967 logical(LKG) , intent(in) :: lb, ub
13968 type(splitmix64_type) , intent(inout) :: rng
13969 end subroutine
13970#endif
13971
13972 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13973
13974#if CK5_ENABLED
13975 PURE module subroutine setUnifRandRNGSLU_D2_CK5(rng, rand, lb, ub)
13976#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13977 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_CK5
13978#endif
13979 use pm_kind, only: CKG => CK5
13980 complex(CKG) , intent(out) :: rand(:,:)
13981 complex(CKG) , intent(in) :: lb, ub
13982 type(splitmix64_type) , intent(inout) :: rng
13983 end subroutine
13984#endif
13985
13986#if CK4_ENABLED
13987 PURE module subroutine setUnifRandRNGSLU_D2_CK4(rng, rand, lb, ub)
13988#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13989 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_CK4
13990#endif
13991 use pm_kind, only: CKG => CK4
13992 complex(CKG) , intent(out) :: rand(:,:)
13993 complex(CKG) , intent(in) :: lb, ub
13994 type(splitmix64_type) , intent(inout) :: rng
13995 end subroutine
13996#endif
13997
13998#if CK3_ENABLED
13999 PURE module subroutine setUnifRandRNGSLU_D2_CK3(rng, rand, lb, ub)
14000#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14001 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_CK3
14002#endif
14003 use pm_kind, only: CKG => CK3
14004 complex(CKG) , intent(out) :: rand(:,:)
14005 complex(CKG) , intent(in) :: lb, ub
14006 type(splitmix64_type) , intent(inout) :: rng
14007 end subroutine
14008#endif
14009
14010#if CK2_ENABLED
14011 PURE module subroutine setUnifRandRNGSLU_D2_CK2(rng, rand, lb, ub)
14012#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14013 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_CK2
14014#endif
14015 use pm_kind, only: CKG => CK2
14016 complex(CKG) , intent(out) :: rand(:,:)
14017 complex(CKG) , intent(in) :: lb, ub
14018 type(splitmix64_type) , intent(inout) :: rng
14019 end subroutine
14020#endif
14021
14022#if CK1_ENABLED
14023 PURE module subroutine setUnifRandRNGSLU_D2_CK1(rng, rand, lb, ub)
14024#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14025 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_CK1
14026#endif
14027 use pm_kind, only: CKG => CK1
14028 complex(CKG) , intent(out) :: rand(:,:)
14029 complex(CKG) , intent(in) :: lb, ub
14030 type(splitmix64_type) , intent(inout) :: rng
14031 end subroutine
14032#endif
14033
14034 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14035
14036#if RK5_ENABLED
14037 PURE module subroutine setUnifRandRNGSLU_D2_RK5(rng, rand, lb, ub)
14038#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14039 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_RK5
14040#endif
14041 use pm_kind, only: RKG => RK5
14042 real(RKG) , intent(out) :: rand(:,:)
14043 real(RKG) , intent(in) :: lb, ub
14044 type(splitmix64_type) , intent(inout) :: rng
14045 end subroutine
14046#endif
14047
14048#if RK4_ENABLED
14049 PURE module subroutine setUnifRandRNGSLU_D2_RK4(rng, rand, lb, ub)
14050#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14051 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_RK4
14052#endif
14053 use pm_kind, only: RKG => RK4
14054 real(RKG) , intent(out) :: rand(:,:)
14055 real(RKG) , intent(in) :: lb, ub
14056 type(splitmix64_type) , intent(inout) :: rng
14057 end subroutine
14058#endif
14059
14060#if RK3_ENABLED
14061 PURE module subroutine setUnifRandRNGSLU_D2_RK3(rng, rand, lb, ub)
14062#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14063 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_RK3
14064#endif
14065 use pm_kind, only: RKG => RK3
14066 real(RKG) , intent(out) :: rand(:,:)
14067 real(RKG) , intent(in) :: lb, ub
14068 type(splitmix64_type) , intent(inout) :: rng
14069 end subroutine
14070#endif
14071
14072#if RK2_ENABLED
14073 PURE module subroutine setUnifRandRNGSLU_D2_RK2(rng, rand, lb, ub)
14074#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14075 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_RK2
14076#endif
14077 use pm_kind, only: RKG => RK2
14078 real(RKG) , intent(out) :: rand(:,:)
14079 real(RKG) , intent(in) :: lb, ub
14080 type(splitmix64_type) , intent(inout) :: rng
14081 end subroutine
14082#endif
14083
14084#if RK1_ENABLED
14085 PURE module subroutine setUnifRandRNGSLU_D2_RK1(rng, rand, lb, ub)
14086#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14087 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_RK1
14088#endif
14089 use pm_kind, only: RKG => RK1
14090 real(RKG) , intent(out) :: rand(:,:)
14091 real(RKG) , intent(in) :: lb, ub
14092 type(splitmix64_type) , intent(inout) :: rng
14093 end subroutine
14094#endif
14095
14096 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14097
14098 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14099 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14100 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14101
14102 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14103 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14104 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14105
14106 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14107
14108#if SK5_ENABLED
14109 PURE module subroutine setUnifRandRNGSDD_D3_SK5(rng, rand)
14110#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14111 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_SK5
14112#endif
14113 use pm_kind, only: SKG => SK5
14114 character(*,SKG) , intent(out) :: rand(:,:,:)
14115 type(splitmix64_type) , intent(inout) :: rng
14116 end subroutine
14117#endif
14118
14119#if SK4_ENABLED
14120 PURE module subroutine setUnifRandRNGSDD_D3_SK4(rng, rand)
14121#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14122 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_SK4
14123#endif
14124 use pm_kind, only: SKG => SK4
14125 character(*,SKG) , intent(out) :: rand(:,:,:)
14126 type(splitmix64_type) , intent(inout) :: rng
14127 end subroutine
14128#endif
14129
14130#if SK3_ENABLED
14131 PURE module subroutine setUnifRandRNGSDD_D3_SK3(rng, rand)
14132#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14133 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_SK3
14134#endif
14135 use pm_kind, only: SKG => SK3
14136 character(*,SKG) , intent(out) :: rand(:,:,:)
14137 type(splitmix64_type) , intent(inout) :: rng
14138 end subroutine
14139#endif
14140
14141#if SK2_ENABLED
14142 PURE module subroutine setUnifRandRNGSDD_D3_SK2(rng, rand)
14143#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14144 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_SK2
14145#endif
14146 use pm_kind, only: SKG => SK2
14147 character(*,SKG) , intent(out) :: rand(:,:,:)
14148 type(splitmix64_type) , intent(inout) :: rng
14149 end subroutine
14150#endif
14151
14152#if SK1_ENABLED
14153 PURE module subroutine setUnifRandRNGSDD_D3_SK1(rng, rand)
14154#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14155 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_SK1
14156#endif
14157 use pm_kind, only: SKG => SK1
14158 character(*,SKG) , intent(out) :: rand(:,:,:)
14159 type(splitmix64_type) , intent(inout) :: rng
14160 end subroutine
14161#endif
14162
14163 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14164
14165#if IK5_ENABLED
14166 PURE module subroutine setUnifRandRNGSDD_D3_IK5(rng, rand)
14167#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14168 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_IK5
14169#endif
14170 use pm_kind, only: IKG => IK5
14171 integer(IKG) , intent(out) :: rand(:,:,:)
14172 type(splitmix64_type) , intent(inout) :: rng
14173 end subroutine
14174#endif
14175
14176#if IK4_ENABLED
14177 PURE module subroutine setUnifRandRNGSDD_D3_IK4(rng, rand)
14178#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14179 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_IK4
14180#endif
14181 use pm_kind, only: IKG => IK4
14182 integer(IKG) , intent(out) :: rand(:,:,:)
14183 type(splitmix64_type) , intent(inout) :: rng
14184 end subroutine
14185#endif
14186
14187#if IK3_ENABLED
14188 PURE module subroutine setUnifRandRNGSDD_D3_IK3(rng, rand)
14189#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14190 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_IK3
14191#endif
14192 use pm_kind, only: IKG => IK3
14193 integer(IKG) , intent(out) :: rand(:,:,:)
14194 type(splitmix64_type) , intent(inout) :: rng
14195 end subroutine
14196#endif
14197
14198#if IK2_ENABLED
14199 PURE module subroutine setUnifRandRNGSDD_D3_IK2(rng, rand)
14200#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14201 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_IK2
14202#endif
14203 use pm_kind, only: IKG => IK2
14204 integer(IKG) , intent(out) :: rand(:,:,:)
14205 type(splitmix64_type) , intent(inout) :: rng
14206 end subroutine
14207#endif
14208
14209#if IK1_ENABLED
14210 PURE module subroutine setUnifRandRNGSDD_D3_IK1(rng, rand)
14211#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14212 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_IK1
14213#endif
14214 use pm_kind, only: IKG => IK1
14215 integer(IKG) , intent(out) :: rand(:,:,:)
14216 type(splitmix64_type) , intent(inout) :: rng
14217 end subroutine
14218#endif
14219
14220 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14221
14222#if LK5_ENABLED
14223 PURE module subroutine setUnifRandRNGSDD_D3_LK5(rng, rand)
14224#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14225 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_LK5
14226#endif
14227 use pm_kind, only: LKG => LK5
14228 logical(LKG) , intent(out) :: rand(:,:,:)
14229 type(splitmix64_type) , intent(inout) :: rng
14230 end subroutine
14231#endif
14232
14233#if LK4_ENABLED
14234 PURE module subroutine setUnifRandRNGSDD_D3_LK4(rng, rand)
14235#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14236 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_LK4
14237#endif
14238 use pm_kind, only: LKG => LK4
14239 logical(LKG) , intent(out) :: rand(:,:,:)
14240 type(splitmix64_type) , intent(inout) :: rng
14241 end subroutine
14242#endif
14243
14244#if LK3_ENABLED
14245 PURE module subroutine setUnifRandRNGSDD_D3_LK3(rng, rand)
14246#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14247 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_LK3
14248#endif
14249 use pm_kind, only: LKG => LK3
14250 logical(LKG) , intent(out) :: rand(:,:,:)
14251 type(splitmix64_type) , intent(inout) :: rng
14252 end subroutine
14253#endif
14254
14255#if LK2_ENABLED
14256 PURE module subroutine setUnifRandRNGSDD_D3_LK2(rng, rand)
14257#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14258 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_LK2
14259#endif
14260 use pm_kind, only: LKG => LK2
14261 logical(LKG) , intent(out) :: rand(:,:,:)
14262 type(splitmix64_type) , intent(inout) :: rng
14263 end subroutine
14264#endif
14265
14266#if LK1_ENABLED
14267 PURE module subroutine setUnifRandRNGSDD_D3_LK1(rng, rand)
14268#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14269 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_LK1
14270#endif
14271 use pm_kind, only: LKG => LK1
14272 logical(LKG) , intent(out) :: rand(:,:,:)
14273 type(splitmix64_type) , intent(inout) :: rng
14274 end subroutine
14275#endif
14276
14277 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14278
14279#if CK5_ENABLED
14280 PURE module subroutine setUnifRandRNGSDD_D3_CK5(rng, rand)
14281#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14282 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_CK5
14283#endif
14284 use pm_kind, only: CKG => CK5
14285 complex(CKG) , intent(out) :: rand(:,:,:)
14286 type(splitmix64_type) , intent(inout) :: rng
14287 end subroutine
14288#endif
14289
14290#if CK4_ENABLED
14291 PURE module subroutine setUnifRandRNGSDD_D3_CK4(rng, rand)
14292#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14293 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_CK4
14294#endif
14295 use pm_kind, only: CKG => CK4
14296 complex(CKG) , intent(out) :: rand(:,:,:)
14297 type(splitmix64_type) , intent(inout) :: rng
14298 end subroutine
14299#endif
14300
14301#if CK3_ENABLED
14302 PURE module subroutine setUnifRandRNGSDD_D3_CK3(rng, rand)
14303#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14304 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_CK3
14305#endif
14306 use pm_kind, only: CKG => CK3
14307 complex(CKG) , intent(out) :: rand(:,:,:)
14308 type(splitmix64_type) , intent(inout) :: rng
14309 end subroutine
14310#endif
14311
14312#if CK2_ENABLED
14313 PURE module subroutine setUnifRandRNGSDD_D3_CK2(rng, rand)
14314#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14315 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_CK2
14316#endif
14317 use pm_kind, only: CKG => CK2
14318 complex(CKG) , intent(out) :: rand(:,:,:)
14319 type(splitmix64_type) , intent(inout) :: rng
14320 end subroutine
14321#endif
14322
14323#if CK1_ENABLED
14324 PURE module subroutine setUnifRandRNGSDD_D3_CK1(rng, rand)
14325#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14326 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_CK1
14327#endif
14328 use pm_kind, only: CKG => CK1
14329 complex(CKG) , intent(out) :: rand(:,:,:)
14330 type(splitmix64_type) , intent(inout) :: rng
14331 end subroutine
14332#endif
14333
14334 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14335
14336#if RK5_ENABLED
14337 PURE module subroutine setUnifRandRNGSDD_D3_RK5(rng, rand)
14338#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14339 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_RK5
14340#endif
14341 use pm_kind, only: RKG => RK5
14342 real(RKG) , intent(out) :: rand(:,:,:)
14343 type(splitmix64_type) , intent(inout) :: rng
14344 end subroutine
14345#endif
14346
14347#if RK4_ENABLED
14348 PURE module subroutine setUnifRandRNGSDD_D3_RK4(rng, rand)
14349#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14350 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_RK4
14351#endif
14352 use pm_kind, only: RKG => RK4
14353 real(RKG) , intent(out) :: rand(:,:,:)
14354 type(splitmix64_type) , intent(inout) :: rng
14355 end subroutine
14356#endif
14357
14358#if RK3_ENABLED
14359 PURE module subroutine setUnifRandRNGSDD_D3_RK3(rng, rand)
14360#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14361 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_RK3
14362#endif
14363 use pm_kind, only: RKG => RK3
14364 real(RKG) , intent(out) :: rand(:,:,:)
14365 type(splitmix64_type) , intent(inout) :: rng
14366 end subroutine
14367#endif
14368
14369#if RK2_ENABLED
14370 PURE module subroutine setUnifRandRNGSDD_D3_RK2(rng, rand)
14371#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14372 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_RK2
14373#endif
14374 use pm_kind, only: RKG => RK2
14375 real(RKG) , intent(out) :: rand(:,:,:)
14376 type(splitmix64_type) , intent(inout) :: rng
14377 end subroutine
14378#endif
14379
14380#if RK1_ENABLED
14381 PURE module subroutine setUnifRandRNGSDD_D3_RK1(rng, rand)
14382#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14383 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_RK1
14384#endif
14385 use pm_kind, only: RKG => RK1
14386 real(RKG) , intent(out) :: rand(:,:,:)
14387 type(splitmix64_type) , intent(inout) :: rng
14388 end subroutine
14389#endif
14390
14391 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14392
14393 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14394 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14395 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14396
14397 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14398
14399#if SK5_ENABLED
14400 PURE module subroutine setUnifRandRNGSLU_D3_SK5(rng, rand, lb, ub)
14401#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14402 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_SK5
14403#endif
14404 use pm_kind, only: SKG => SK5
14405 character(*,SKG) , intent(out) :: rand(:,:,:)
14406 character(*,SKG) , intent(in) :: lb, ub
14407 type(splitmix64_type) , intent(inout) :: rng
14408 end subroutine
14409#endif
14410
14411#if SK4_ENABLED
14412 PURE module subroutine setUnifRandRNGSLU_D3_SK4(rng, rand, lb, ub)
14413#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14414 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_SK4
14415#endif
14416 use pm_kind, only: SKG => SK4
14417 character(*,SKG) , intent(out) :: rand(:,:,:)
14418 character(*,SKG) , intent(in) :: lb, ub
14419 type(splitmix64_type) , intent(inout) :: rng
14420 end subroutine
14421#endif
14422
14423#if SK3_ENABLED
14424 PURE module subroutine setUnifRandRNGSLU_D3_SK3(rng, rand, lb, ub)
14425#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14426 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_SK3
14427#endif
14428 use pm_kind, only: SKG => SK3
14429 character(*,SKG) , intent(out) :: rand(:,:,:)
14430 character(*,SKG) , intent(in) :: lb, ub
14431 type(splitmix64_type) , intent(inout) :: rng
14432 end subroutine
14433#endif
14434
14435#if SK2_ENABLED
14436 PURE module subroutine setUnifRandRNGSLU_D3_SK2(rng, rand, lb, ub)
14437#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14438 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_SK2
14439#endif
14440 use pm_kind, only: SKG => SK2
14441 character(*,SKG) , intent(out) :: rand(:,:,:)
14442 character(*,SKG) , intent(in) :: lb, ub
14443 type(splitmix64_type) , intent(inout) :: rng
14444 end subroutine
14445#endif
14446
14447#if SK1_ENABLED
14448 PURE module subroutine setUnifRandRNGSLU_D3_SK1(rng, rand, lb, ub)
14449#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14450 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_SK1
14451#endif
14452 use pm_kind, only: SKG => SK1
14453 character(*,SKG) , intent(out) :: rand(:,:,:)
14454 character(*,SKG) , intent(in) :: lb, ub
14455 type(splitmix64_type) , intent(inout) :: rng
14456 end subroutine
14457#endif
14458
14459 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14460
14461#if IK5_ENABLED
14462 PURE module subroutine setUnifRandRNGSLU_D3_IK5(rng, rand, lb, ub)
14463#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14464 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_IK5
14465#endif
14466 use pm_kind, only: IKG => IK5
14467 integer(IKG) , intent(out) :: rand(:,:,:)
14468 integer(IKG) , intent(in) :: lb, ub
14469 type(splitmix64_type) , intent(inout) :: rng
14470 end subroutine
14471#endif
14472
14473#if IK4_ENABLED
14474 PURE module subroutine setUnifRandRNGSLU_D3_IK4(rng, rand, lb, ub)
14475#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14476 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_IK4
14477#endif
14478 use pm_kind, only: IKG => IK4
14479 integer(IKG) , intent(out) :: rand(:,:,:)
14480 integer(IKG) , intent(in) :: lb, ub
14481 type(splitmix64_type) , intent(inout) :: rng
14482 end subroutine
14483#endif
14484
14485#if IK3_ENABLED
14486 PURE module subroutine setUnifRandRNGSLU_D3_IK3(rng, rand, lb, ub)
14487#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14488 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_IK3
14489#endif
14490 use pm_kind, only: IKG => IK3
14491 integer(IKG) , intent(out) :: rand(:,:,:)
14492 integer(IKG) , intent(in) :: lb, ub
14493 type(splitmix64_type) , intent(inout) :: rng
14494 end subroutine
14495#endif
14496
14497#if IK2_ENABLED
14498 PURE module subroutine setUnifRandRNGSLU_D3_IK2(rng, rand, lb, ub)
14499#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14500 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_IK2
14501#endif
14502 use pm_kind, only: IKG => IK2
14503 integer(IKG) , intent(out) :: rand(:,:,:)
14504 integer(IKG) , intent(in) :: lb, ub
14505 type(splitmix64_type) , intent(inout) :: rng
14506 end subroutine
14507#endif
14508
14509#if IK1_ENABLED
14510 PURE module subroutine setUnifRandRNGSLU_D3_IK1(rng, rand, lb, ub)
14511#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14512 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_IK1
14513#endif
14514 use pm_kind, only: IKG => IK1
14515 integer(IKG) , intent(out) :: rand(:,:,:)
14516 integer(IKG) , intent(in) :: lb, ub
14517 type(splitmix64_type) , intent(inout) :: rng
14518 end subroutine
14519#endif
14520
14521 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14522
14523#if LK5_ENABLED
14524 PURE module subroutine setUnifRandRNGSLU_D3_LK5(rng, rand, lb, ub)
14525#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14526 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_LK5
14527#endif
14528 use pm_kind, only: LKG => LK5
14529 logical(LKG) , intent(out) :: rand(:,:,:)
14530 logical(LKG) , intent(in) :: lb, ub
14531 type(splitmix64_type) , intent(inout) :: rng
14532 end subroutine
14533#endif
14534
14535#if LK4_ENABLED
14536 PURE module subroutine setUnifRandRNGSLU_D3_LK4(rng, rand, lb, ub)
14537#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14538 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_LK4
14539#endif
14540 use pm_kind, only: LKG => LK4
14541 logical(LKG) , intent(out) :: rand(:,:,:)
14542 logical(LKG) , intent(in) :: lb, ub
14543 type(splitmix64_type) , intent(inout) :: rng
14544 end subroutine
14545#endif
14546
14547#if LK3_ENABLED
14548 PURE module subroutine setUnifRandRNGSLU_D3_LK3(rng, rand, lb, ub)
14549#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14550 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_LK3
14551#endif
14552 use pm_kind, only: LKG => LK3
14553 logical(LKG) , intent(out) :: rand(:,:,:)
14554 logical(LKG) , intent(in) :: lb, ub
14555 type(splitmix64_type) , intent(inout) :: rng
14556 end subroutine
14557#endif
14558
14559#if LK2_ENABLED
14560 PURE module subroutine setUnifRandRNGSLU_D3_LK2(rng, rand, lb, ub)
14561#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14562 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_LK2
14563#endif
14564 use pm_kind, only: LKG => LK2
14565 logical(LKG) , intent(out) :: rand(:,:,:)
14566 logical(LKG) , intent(in) :: lb, ub
14567 type(splitmix64_type) , intent(inout) :: rng
14568 end subroutine
14569#endif
14570
14571#if LK1_ENABLED
14572 PURE module subroutine setUnifRandRNGSLU_D3_LK1(rng, rand, lb, ub)
14573#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14574 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_LK1
14575#endif
14576 use pm_kind, only: LKG => LK1
14577 logical(LKG) , intent(out) :: rand(:,:,:)
14578 logical(LKG) , intent(in) :: lb, ub
14579 type(splitmix64_type) , intent(inout) :: rng
14580 end subroutine
14581#endif
14582
14583 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14584
14585#if CK5_ENABLED
14586 PURE module subroutine setUnifRandRNGSLU_D3_CK5(rng, rand, lb, ub)
14587#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14588 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_CK5
14589#endif
14590 use pm_kind, only: CKG => CK5
14591 complex(CKG) , intent(out) :: rand(:,:,:)
14592 complex(CKG) , intent(in) :: lb, ub
14593 type(splitmix64_type) , intent(inout) :: rng
14594 end subroutine
14595#endif
14596
14597#if CK4_ENABLED
14598 PURE module subroutine setUnifRandRNGSLU_D3_CK4(rng, rand, lb, ub)
14599#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14600 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_CK4
14601#endif
14602 use pm_kind, only: CKG => CK4
14603 complex(CKG) , intent(out) :: rand(:,:,:)
14604 complex(CKG) , intent(in) :: lb, ub
14605 type(splitmix64_type) , intent(inout) :: rng
14606 end subroutine
14607#endif
14608
14609#if CK3_ENABLED
14610 PURE module subroutine setUnifRandRNGSLU_D3_CK3(rng, rand, lb, ub)
14611#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14612 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_CK3
14613#endif
14614 use pm_kind, only: CKG => CK3
14615 complex(CKG) , intent(out) :: rand(:,:,:)
14616 complex(CKG) , intent(in) :: lb, ub
14617 type(splitmix64_type) , intent(inout) :: rng
14618 end subroutine
14619#endif
14620
14621#if CK2_ENABLED
14622 PURE module subroutine setUnifRandRNGSLU_D3_CK2(rng, rand, lb, ub)
14623#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14624 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_CK2
14625#endif
14626 use pm_kind, only: CKG => CK2
14627 complex(CKG) , intent(out) :: rand(:,:,:)
14628 complex(CKG) , intent(in) :: lb, ub
14629 type(splitmix64_type) , intent(inout) :: rng
14630 end subroutine
14631#endif
14632
14633#if CK1_ENABLED
14634 PURE module subroutine setUnifRandRNGSLU_D3_CK1(rng, rand, lb, ub)
14635#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14636 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_CK1
14637#endif
14638 use pm_kind, only: CKG => CK1
14639 complex(CKG) , intent(out) :: rand(:,:,:)
14640 complex(CKG) , intent(in) :: lb, ub
14641 type(splitmix64_type) , intent(inout) :: rng
14642 end subroutine
14643#endif
14644
14645 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14646
14647#if RK5_ENABLED
14648 PURE module subroutine setUnifRandRNGSLU_D3_RK5(rng, rand, lb, ub)
14649#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14650 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_RK5
14651#endif
14652 use pm_kind, only: RKG => RK5
14653 real(RKG) , intent(out) :: rand(:,:,:)
14654 real(RKG) , intent(in) :: lb, ub
14655 type(splitmix64_type) , intent(inout) :: rng
14656 end subroutine
14657#endif
14658
14659#if RK4_ENABLED
14660 PURE module subroutine setUnifRandRNGSLU_D3_RK4(rng, rand, lb, ub)
14661#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14662 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_RK4
14663#endif
14664 use pm_kind, only: RKG => RK4
14665 real(RKG) , intent(out) :: rand(:,:,:)
14666 real(RKG) , intent(in) :: lb, ub
14667 type(splitmix64_type) , intent(inout) :: rng
14668 end subroutine
14669#endif
14670
14671#if RK3_ENABLED
14672 PURE module subroutine setUnifRandRNGSLU_D3_RK3(rng, rand, lb, ub)
14673#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14674 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_RK3
14675#endif
14676 use pm_kind, only: RKG => RK3
14677 real(RKG) , intent(out) :: rand(:,:,:)
14678 real(RKG) , intent(in) :: lb, ub
14679 type(splitmix64_type) , intent(inout) :: rng
14680 end subroutine
14681#endif
14682
14683#if RK2_ENABLED
14684 PURE module subroutine setUnifRandRNGSLU_D3_RK2(rng, rand, lb, ub)
14685#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14686 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_RK2
14687#endif
14688 use pm_kind, only: RKG => RK2
14689 real(RKG) , intent(out) :: rand(:,:,:)
14690 real(RKG) , intent(in) :: lb, ub
14691 type(splitmix64_type) , intent(inout) :: rng
14692 end subroutine
14693#endif
14694
14695#if RK1_ENABLED
14696 PURE module subroutine setUnifRandRNGSLU_D3_RK1(rng, rand, lb, ub)
14697#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14698 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_RK1
14699#endif
14700 use pm_kind, only: RKG => RK1
14701 real(RKG) , intent(out) :: rand(:,:,:)
14702 real(RKG) , intent(in) :: lb, ub
14703 type(splitmix64_type) , intent(inout) :: rng
14704 end subroutine
14705#endif
14706
14707 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14708
14709 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14710 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14711 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14712
14713 end interface
14714
14715 ! RNGX
14716
14717 interface setUnifRand
14718
14719 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14720 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14721 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14722
14723 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14724
14725#if SK5_ENABLED
14726 PURE elemental module subroutine setUnifRandRNGGDD_D0_SK5(rng, rand)
14727#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14728 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_SK5
14729#endif
14730 use pm_kind, only: SKG => SK5
14731 character(*,SKG) , intent(out) :: rand
14732 type(xoshiro256ssg_type) , intent(inout) :: rng
14733 end subroutine
14734#endif
14735
14736#if SK4_ENABLED
14737 PURE elemental module subroutine setUnifRandRNGGDD_D0_SK4(rng, rand)
14738#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14739 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_SK4
14740#endif
14741 use pm_kind, only: SKG => SK4
14742 character(*,SKG) , intent(out) :: rand
14743 type(xoshiro256ssg_type) , intent(inout) :: rng
14744 end subroutine
14745#endif
14746
14747#if SK3_ENABLED
14748 PURE elemental module subroutine setUnifRandRNGGDD_D0_SK3(rng, rand)
14749#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14750 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_SK3
14751#endif
14752 use pm_kind, only: SKG => SK3
14753 character(*,SKG) , intent(out) :: rand
14754 type(xoshiro256ssg_type) , intent(inout) :: rng
14755 end subroutine
14756#endif
14757
14758#if SK2_ENABLED
14759 PURE elemental module subroutine setUnifRandRNGGDD_D0_SK2(rng, rand)
14760#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14761 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_SK2
14762#endif
14763 use pm_kind, only: SKG => SK2
14764 character(*,SKG) , intent(out) :: rand
14765 type(xoshiro256ssg_type) , intent(inout) :: rng
14766 end subroutine
14767#endif
14768
14769#if SK1_ENABLED
14770 PURE elemental module subroutine setUnifRandRNGGDD_D0_SK1(rng, rand)
14771#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14772 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_SK1
14773#endif
14774 use pm_kind, only: SKG => SK1
14775 character(*,SKG) , intent(out) :: rand
14776 type(xoshiro256ssg_type) , intent(inout) :: rng
14777 end subroutine
14778#endif
14779
14780 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14781
14782#if IK5_ENABLED
14783 PURE elemental module subroutine setUnifRandRNGGDD_D0_IK5(rng, rand)
14784#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14785 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_IK5
14786#endif
14787 use pm_kind, only: IKG => IK5
14788 integer(IKG) , intent(out) :: rand
14789 type(xoshiro256ssg_type) , intent(inout) :: rng
14790 end subroutine
14791#endif
14792
14793#if IK4_ENABLED
14794 PURE elemental module subroutine setUnifRandRNGGDD_D0_IK4(rng, rand)
14795#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14796 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_IK4
14797#endif
14798 use pm_kind, only: IKG => IK4
14799 integer(IKG) , intent(out) :: rand
14800 type(xoshiro256ssg_type) , intent(inout) :: rng
14801 end subroutine
14802#endif
14803
14804#if IK3_ENABLED
14805 PURE elemental module subroutine setUnifRandRNGGDD_D0_IK3(rng, rand)
14806#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14807 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_IK3
14808#endif
14809 use pm_kind, only: IKG => IK3
14810 integer(IKG) , intent(out) :: rand
14811 type(xoshiro256ssg_type) , intent(inout) :: rng
14812 end subroutine
14813#endif
14814
14815#if IK2_ENABLED
14816 PURE elemental module subroutine setUnifRandRNGGDD_D0_IK2(rng, rand)
14817#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14818 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_IK2
14819#endif
14820 use pm_kind, only: IKG => IK2
14821 integer(IKG) , intent(out) :: rand
14822 type(xoshiro256ssg_type) , intent(inout) :: rng
14823 end subroutine
14824#endif
14825
14826#if IK1_ENABLED
14827 PURE elemental module subroutine setUnifRandRNGGDD_D0_IK1(rng, rand)
14828#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14829 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_IK1
14830#endif
14831 use pm_kind, only: IKG => IK1
14832 integer(IKG) , intent(out) :: rand
14833 type(xoshiro256ssg_type) , intent(inout) :: rng
14834 end subroutine
14835#endif
14836
14837 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14838
14839#if LK5_ENABLED
14840 PURE elemental module subroutine setUnifRandRNGGDD_D0_LK5(rng, rand)
14841#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14842 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_LK5
14843#endif
14844 use pm_kind, only: LKG => LK5
14845 logical(LKG) , intent(out) :: rand
14846 type(xoshiro256ssg_type) , intent(inout) :: rng
14847 end subroutine
14848#endif
14849
14850#if LK4_ENABLED
14851 PURE elemental module subroutine setUnifRandRNGGDD_D0_LK4(rng, rand)
14852#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14853 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_LK4
14854#endif
14855 use pm_kind, only: LKG => LK4
14856 logical(LKG) , intent(out) :: rand
14857 type(xoshiro256ssg_type) , intent(inout) :: rng
14858 end subroutine
14859#endif
14860
14861#if LK3_ENABLED
14862 PURE elemental module subroutine setUnifRandRNGGDD_D0_LK3(rng, rand)
14863#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14864 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_LK3
14865#endif
14866 use pm_kind, only: LKG => LK3
14867 logical(LKG) , intent(out) :: rand
14868 type(xoshiro256ssg_type) , intent(inout) :: rng
14869 end subroutine
14870#endif
14871
14872#if LK2_ENABLED
14873 PURE elemental module subroutine setUnifRandRNGGDD_D0_LK2(rng, rand)
14874#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14875 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_LK2
14876#endif
14877 use pm_kind, only: LKG => LK2
14878 logical(LKG) , intent(out) :: rand
14879 type(xoshiro256ssg_type) , intent(inout) :: rng
14880 end subroutine
14881#endif
14882
14883#if LK1_ENABLED
14884 PURE elemental module subroutine setUnifRandRNGGDD_D0_LK1(rng, rand)
14885#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14886 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_LK1
14887#endif
14888 use pm_kind, only: LKG => LK1
14889 logical(LKG) , intent(out) :: rand
14890 type(xoshiro256ssg_type) , intent(inout) :: rng
14891 end subroutine
14892#endif
14893
14894 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14895
14896#if CK5_ENABLED
14897 PURE elemental module subroutine setUnifRandRNGGDD_D0_CK5(rng, rand)
14898#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14899 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_CK5
14900#endif
14901 use pm_kind, only: CKG => CK5
14902 complex(CKG) , intent(out) :: rand
14903 type(xoshiro256ssg_type) , intent(inout) :: rng
14904 end subroutine
14905#endif
14906
14907#if CK4_ENABLED
14908 PURE elemental module subroutine setUnifRandRNGGDD_D0_CK4(rng, rand)
14909#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14910 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_CK4
14911#endif
14912 use pm_kind, only: CKG => CK4
14913 complex(CKG) , intent(out) :: rand
14914 type(xoshiro256ssg_type) , intent(inout) :: rng
14915 end subroutine
14916#endif
14917
14918#if CK3_ENABLED
14919 PURE elemental module subroutine setUnifRandRNGGDD_D0_CK3(rng, rand)
14920#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14921 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_CK3
14922#endif
14923 use pm_kind, only: CKG => CK3
14924 complex(CKG) , intent(out) :: rand
14925 type(xoshiro256ssg_type) , intent(inout) :: rng
14926 end subroutine
14927#endif
14928
14929#if CK2_ENABLED
14930 PURE elemental module subroutine setUnifRandRNGGDD_D0_CK2(rng, rand)
14931#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14932 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_CK2
14933#endif
14934 use pm_kind, only: CKG => CK2
14935 complex(CKG) , intent(out) :: rand
14936 type(xoshiro256ssg_type) , intent(inout) :: rng
14937 end subroutine
14938#endif
14939
14940#if CK1_ENABLED
14941 PURE elemental module subroutine setUnifRandRNGGDD_D0_CK1(rng, rand)
14942#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14943 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_CK1
14944#endif
14945 use pm_kind, only: CKG => CK1
14946 complex(CKG) , intent(out) :: rand
14947 type(xoshiro256ssg_type) , intent(inout) :: rng
14948 end subroutine
14949#endif
14950
14951 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14952
14953#if RK5_ENABLED
14954 PURE elemental module subroutine setUnifRandRNGGDD_D0_RK5(rng, rand)
14955#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14956 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_RK5
14957#endif
14958 use pm_kind, only: RKG => RK5
14959 real(RKG) , intent(out) :: rand
14960 type(xoshiro256ssg_type) , intent(inout) :: rng
14961 end subroutine
14962#endif
14963
14964#if RK4_ENABLED
14965 PURE elemental module subroutine setUnifRandRNGGDD_D0_RK4(rng, rand)
14966#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14967 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_RK4
14968#endif
14969 use pm_kind, only: RKG => RK4
14970 real(RKG) , intent(out) :: rand
14971 type(xoshiro256ssg_type) , intent(inout) :: rng
14972 end subroutine
14973#endif
14974
14975#if RK3_ENABLED
14976 PURE elemental module subroutine setUnifRandRNGGDD_D0_RK3(rng, rand)
14977#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14978 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_RK3
14979#endif
14980 use pm_kind, only: RKG => RK3
14981 real(RKG) , intent(out) :: rand
14982 type(xoshiro256ssg_type) , intent(inout) :: rng
14983 end subroutine
14984#endif
14985
14986#if RK2_ENABLED
14987 PURE elemental module subroutine setUnifRandRNGGDD_D0_RK2(rng, rand)
14988#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14989 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_RK2
14990#endif
14991 use pm_kind, only: RKG => RK2
14992 real(RKG) , intent(out) :: rand
14993 type(xoshiro256ssg_type) , intent(inout) :: rng
14994 end subroutine
14995#endif
14996
14997#if RK1_ENABLED
14998 PURE elemental module subroutine setUnifRandRNGGDD_D0_RK1(rng, rand)
14999#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15000 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_RK1
15001#endif
15002 use pm_kind, only: RKG => RK1
15003 real(RKG) , intent(out) :: rand
15004 type(xoshiro256ssg_type) , intent(inout) :: rng
15005 end subroutine
15006#endif
15007
15008 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15009
15010 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15011 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15012 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15013
15014 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15015
15016#if SK5_ENABLED
15017 PURE elemental module subroutine setUnifRandRNGGLU_D0_SK5(rng, rand, lb, ub)
15018#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15019 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_SK5
15020#endif
15021 use pm_kind, only: SKG => SK5
15022 character(*,SKG) , intent(out) :: rand
15023 character(*,SKG) , intent(in) :: lb, ub
15024 type(xoshiro256ssg_type) , intent(inout) :: rng
15025 end subroutine
15026#endif
15027
15028#if SK4_ENABLED
15029 PURE elemental module subroutine setUnifRandRNGGLU_D0_SK4(rng, rand, lb, ub)
15030#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15031 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_SK4
15032#endif
15033 use pm_kind, only: SKG => SK4
15034 character(*,SKG) , intent(out) :: rand
15035 character(*,SKG) , intent(in) :: lb, ub
15036 type(xoshiro256ssg_type) , intent(inout) :: rng
15037 end subroutine
15038#endif
15039
15040#if SK3_ENABLED
15041 PURE elemental module subroutine setUnifRandRNGGLU_D0_SK3(rng, rand, lb, ub)
15042#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15043 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_SK3
15044#endif
15045 use pm_kind, only: SKG => SK3
15046 character(*,SKG) , intent(out) :: rand
15047 character(*,SKG) , intent(in) :: lb, ub
15048 type(xoshiro256ssg_type) , intent(inout) :: rng
15049 end subroutine
15050#endif
15051
15052#if SK2_ENABLED
15053 PURE elemental module subroutine setUnifRandRNGGLU_D0_SK2(rng, rand, lb, ub)
15054#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15055 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_SK2
15056#endif
15057 use pm_kind, only: SKG => SK2
15058 character(*,SKG) , intent(out) :: rand
15059 character(*,SKG) , intent(in) :: lb, ub
15060 type(xoshiro256ssg_type) , intent(inout) :: rng
15061 end subroutine
15062#endif
15063
15064#if SK1_ENABLED
15065 PURE elemental module subroutine setUnifRandRNGGLU_D0_SK1(rng, rand, lb, ub)
15066#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15067 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_SK1
15068#endif
15069 use pm_kind, only: SKG => SK1
15070 character(*,SKG) , intent(out) :: rand
15071 character(*,SKG) , intent(in) :: lb, ub
15072 type(xoshiro256ssg_type) , intent(inout) :: rng
15073 end subroutine
15074#endif
15075
15076 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15077
15078#if IK5_ENABLED
15079 PURE elemental module subroutine setUnifRandRNGGLU_D0_IK5(rng, rand, lb, ub)
15080#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15081 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_IK5
15082#endif
15083 use pm_kind, only: IKG => IK5
15084 integer(IKG) , intent(out) :: rand
15085 integer(IKG) , intent(in) :: lb, ub
15086 type(xoshiro256ssg_type) , intent(inout) :: rng
15087 end subroutine
15088#endif
15089
15090#if IK4_ENABLED
15091 PURE elemental module subroutine setUnifRandRNGGLU_D0_IK4(rng, rand, lb, ub)
15092#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15093 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_IK4
15094#endif
15095 use pm_kind, only: IKG => IK4
15096 integer(IKG) , intent(out) :: rand
15097 integer(IKG) , intent(in) :: lb, ub
15098 type(xoshiro256ssg_type) , intent(inout) :: rng
15099 end subroutine
15100#endif
15101
15102#if IK3_ENABLED
15103 PURE elemental module subroutine setUnifRandRNGGLU_D0_IK3(rng, rand, lb, ub)
15104#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15105 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_IK3
15106#endif
15107 use pm_kind, only: IKG => IK3
15108 integer(IKG) , intent(out) :: rand
15109 integer(IKG) , intent(in) :: lb, ub
15110 type(xoshiro256ssg_type) , intent(inout) :: rng
15111 end subroutine
15112#endif
15113
15114#if IK2_ENABLED
15115 PURE elemental module subroutine setUnifRandRNGGLU_D0_IK2(rng, rand, lb, ub)
15116#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15117 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_IK2
15118#endif
15119 use pm_kind, only: IKG => IK2
15120 integer(IKG) , intent(out) :: rand
15121 integer(IKG) , intent(in) :: lb, ub
15122 type(xoshiro256ssg_type) , intent(inout) :: rng
15123 end subroutine
15124#endif
15125
15126#if IK1_ENABLED
15127 PURE elemental module subroutine setUnifRandRNGGLU_D0_IK1(rng, rand, lb, ub)
15128#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15129 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_IK1
15130#endif
15131 use pm_kind, only: IKG => IK1
15132 integer(IKG) , intent(out) :: rand
15133 integer(IKG) , intent(in) :: lb, ub
15134 type(xoshiro256ssg_type) , intent(inout) :: rng
15135 end subroutine
15136#endif
15137
15138 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15139
15140#if LK5_ENABLED
15141 PURE elemental module subroutine setUnifRandRNGGLU_D0_LK5(rng, rand, lb, ub)
15142#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15143 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_LK5
15144#endif
15145 use pm_kind, only: LKG => LK5
15146 logical(LKG) , intent(out) :: rand
15147 logical(LKG) , intent(in) :: lb, ub
15148 type(xoshiro256ssg_type) , intent(inout) :: rng
15149 end subroutine
15150#endif
15151
15152#if LK4_ENABLED
15153 PURE elemental module subroutine setUnifRandRNGGLU_D0_LK4(rng, rand, lb, ub)
15154#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15155 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_LK4
15156#endif
15157 use pm_kind, only: LKG => LK4
15158 logical(LKG) , intent(out) :: rand
15159 logical(LKG) , intent(in) :: lb, ub
15160 type(xoshiro256ssg_type) , intent(inout) :: rng
15161 end subroutine
15162#endif
15163
15164#if LK3_ENABLED
15165 PURE elemental module subroutine setUnifRandRNGGLU_D0_LK3(rng, rand, lb, ub)
15166#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15167 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_LK3
15168#endif
15169 use pm_kind, only: LKG => LK3
15170 logical(LKG) , intent(out) :: rand
15171 logical(LKG) , intent(in) :: lb, ub
15172 type(xoshiro256ssg_type) , intent(inout) :: rng
15173 end subroutine
15174#endif
15175
15176#if LK2_ENABLED
15177 PURE elemental module subroutine setUnifRandRNGGLU_D0_LK2(rng, rand, lb, ub)
15178#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15179 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_LK2
15180#endif
15181 use pm_kind, only: LKG => LK2
15182 logical(LKG) , intent(out) :: rand
15183 logical(LKG) , intent(in) :: lb, ub
15184 type(xoshiro256ssg_type) , intent(inout) :: rng
15185 end subroutine
15186#endif
15187
15188#if LK1_ENABLED
15189 PURE elemental module subroutine setUnifRandRNGGLU_D0_LK1(rng, rand, lb, ub)
15190#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15191 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_LK1
15192#endif
15193 use pm_kind, only: LKG => LK1
15194 logical(LKG) , intent(out) :: rand
15195 logical(LKG) , intent(in) :: lb, ub
15196 type(xoshiro256ssg_type) , intent(inout) :: rng
15197 end subroutine
15198#endif
15199
15200 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15201
15202#if CK5_ENABLED
15203 PURE elemental module subroutine setUnifRandRNGGLU_D0_CK5(rng, rand, lb, ub)
15204#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15205 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_CK5
15206#endif
15207 use pm_kind, only: CKG => CK5
15208 complex(CKG) , intent(out) :: rand
15209 complex(CKG) , intent(in) :: lb, ub
15210 type(xoshiro256ssg_type) , intent(inout) :: rng
15211 end subroutine
15212#endif
15213
15214#if CK4_ENABLED
15215 PURE elemental module subroutine setUnifRandRNGGLU_D0_CK4(rng, rand, lb, ub)
15216#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15217 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_CK4
15218#endif
15219 use pm_kind, only: CKG => CK4
15220 complex(CKG) , intent(out) :: rand
15221 complex(CKG) , intent(in) :: lb, ub
15222 type(xoshiro256ssg_type) , intent(inout) :: rng
15223 end subroutine
15224#endif
15225
15226#if CK3_ENABLED
15227 PURE elemental module subroutine setUnifRandRNGGLU_D0_CK3(rng, rand, lb, ub)
15228#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15229 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_CK3
15230#endif
15231 use pm_kind, only: CKG => CK3
15232 complex(CKG) , intent(out) :: rand
15233 complex(CKG) , intent(in) :: lb, ub
15234 type(xoshiro256ssg_type) , intent(inout) :: rng
15235 end subroutine
15236#endif
15237
15238#if CK2_ENABLED
15239 PURE elemental module subroutine setUnifRandRNGGLU_D0_CK2(rng, rand, lb, ub)
15240#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15241 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_CK2
15242#endif
15243 use pm_kind, only: CKG => CK2
15244 complex(CKG) , intent(out) :: rand
15245 complex(CKG) , intent(in) :: lb, ub
15246 type(xoshiro256ssg_type) , intent(inout) :: rng
15247 end subroutine
15248#endif
15249
15250#if CK1_ENABLED
15251 PURE elemental module subroutine setUnifRandRNGGLU_D0_CK1(rng, rand, lb, ub)
15252#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15253 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_CK1
15254#endif
15255 use pm_kind, only: CKG => CK1
15256 complex(CKG) , intent(out) :: rand
15257 complex(CKG) , intent(in) :: lb, ub
15258 type(xoshiro256ssg_type) , intent(inout) :: rng
15259 end subroutine
15260#endif
15261
15262 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15263
15264#if RK5_ENABLED
15265 PURE elemental module subroutine setUnifRandRNGGLU_D0_RK5(rng, rand, lb, ub)
15266#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15267 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_RK5
15268#endif
15269 use pm_kind, only: RKG => RK5
15270 real(RKG) , intent(out) :: rand
15271 real(RKG) , intent(in) :: lb, ub
15272 type(xoshiro256ssg_type) , intent(inout) :: rng
15273 end subroutine
15274#endif
15275
15276#if RK4_ENABLED
15277 PURE elemental module subroutine setUnifRandRNGGLU_D0_RK4(rng, rand, lb, ub)
15278#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15279 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_RK4
15280#endif
15281 use pm_kind, only: RKG => RK4
15282 real(RKG) , intent(out) :: rand
15283 real(RKG) , intent(in) :: lb, ub
15284 type(xoshiro256ssg_type) , intent(inout) :: rng
15285 end subroutine
15286#endif
15287
15288#if RK3_ENABLED
15289 PURE elemental module subroutine setUnifRandRNGGLU_D0_RK3(rng, rand, lb, ub)
15290#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15291 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_RK3
15292#endif
15293 use pm_kind, only: RKG => RK3
15294 real(RKG) , intent(out) :: rand
15295 real(RKG) , intent(in) :: lb, ub
15296 type(xoshiro256ssg_type) , intent(inout) :: rng
15297 end subroutine
15298#endif
15299
15300#if RK2_ENABLED
15301 PURE elemental module subroutine setUnifRandRNGGLU_D0_RK2(rng, rand, lb, ub)
15302#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15303 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_RK2
15304#endif
15305 use pm_kind, only: RKG => RK2
15306 real(RKG) , intent(out) :: rand
15307 real(RKG) , intent(in) :: lb, ub
15308 type(xoshiro256ssg_type) , intent(inout) :: rng
15309 end subroutine
15310#endif
15311
15312#if RK1_ENABLED
15313 PURE elemental module subroutine setUnifRandRNGGLU_D0_RK1(rng, rand, lb, ub)
15314#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15315 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_RK1
15316#endif
15317 use pm_kind, only: RKG => RK1
15318 real(RKG) , intent(out) :: rand
15319 real(RKG) , intent(in) :: lb, ub
15320 type(xoshiro256ssg_type) , intent(inout) :: rng
15321 end subroutine
15322#endif
15323
15324 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15325
15326 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15327 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15328 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15329
15330 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15331 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15332 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15333
15334 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15335
15336#if SK5_ENABLED
15337 PURE module subroutine setUnifRandRNGGDD_D1_SK5(rng, rand)
15338#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15339 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_SK5
15340#endif
15341 use pm_kind, only: SKG => SK5
15342 character(*,SKG) , intent(out) :: rand(:)
15343 type(xoshiro256ssg_type) , intent(inout) :: rng
15344 end subroutine
15345#endif
15346
15347#if SK4_ENABLED
15348 PURE module subroutine setUnifRandRNGGDD_D1_SK4(rng, rand)
15349#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15350 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_SK4
15351#endif
15352 use pm_kind, only: SKG => SK4
15353 character(*,SKG) , intent(out) :: rand(:)
15354 type(xoshiro256ssg_type) , intent(inout) :: rng
15355 end subroutine
15356#endif
15357
15358#if SK3_ENABLED
15359 PURE module subroutine setUnifRandRNGGDD_D1_SK3(rng, rand)
15360#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15361 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_SK3
15362#endif
15363 use pm_kind, only: SKG => SK3
15364 character(*,SKG) , intent(out) :: rand(:)
15365 type(xoshiro256ssg_type) , intent(inout) :: rng
15366 end subroutine
15367#endif
15368
15369#if SK2_ENABLED
15370 PURE module subroutine setUnifRandRNGGDD_D1_SK2(rng, rand)
15371#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15372 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_SK2
15373#endif
15374 use pm_kind, only: SKG => SK2
15375 character(*,SKG) , intent(out) :: rand(:)
15376 type(xoshiro256ssg_type) , intent(inout) :: rng
15377 end subroutine
15378#endif
15379
15380#if SK1_ENABLED
15381 PURE module subroutine setUnifRandRNGGDD_D1_SK1(rng, rand)
15382#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15383 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_SK1
15384#endif
15385 use pm_kind, only: SKG => SK1
15386 character(*,SKG) , intent(out) :: rand(:)
15387 type(xoshiro256ssg_type) , intent(inout) :: rng
15388 end subroutine
15389#endif
15390
15391 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15392
15393#if IK5_ENABLED
15394 PURE module subroutine setUnifRandRNGGDD_D1_IK5(rng, rand)
15395#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15396 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_IK5
15397#endif
15398 use pm_kind, only: IKG => IK5
15399 integer(IKG) , intent(out) :: rand(:)
15400 type(xoshiro256ssg_type) , intent(inout) :: rng
15401 end subroutine
15402#endif
15403
15404#if IK4_ENABLED
15405 PURE module subroutine setUnifRandRNGGDD_D1_IK4(rng, rand)
15406#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15407 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_IK4
15408#endif
15409 use pm_kind, only: IKG => IK4
15410 integer(IKG) , intent(out) :: rand(:)
15411 type(xoshiro256ssg_type) , intent(inout) :: rng
15412 end subroutine
15413#endif
15414
15415#if IK3_ENABLED
15416 PURE module subroutine setUnifRandRNGGDD_D1_IK3(rng, rand)
15417#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15418 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_IK3
15419#endif
15420 use pm_kind, only: IKG => IK3
15421 integer(IKG) , intent(out) :: rand(:)
15422 type(xoshiro256ssg_type) , intent(inout) :: rng
15423 end subroutine
15424#endif
15425
15426#if IK2_ENABLED
15427 PURE module subroutine setUnifRandRNGGDD_D1_IK2(rng, rand)
15428#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15429 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_IK2
15430#endif
15431 use pm_kind, only: IKG => IK2
15432 integer(IKG) , intent(out) :: rand(:)
15433 type(xoshiro256ssg_type) , intent(inout) :: rng
15434 end subroutine
15435#endif
15436
15437#if IK1_ENABLED
15438 PURE module subroutine setUnifRandRNGGDD_D1_IK1(rng, rand)
15439#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15440 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_IK1
15441#endif
15442 use pm_kind, only: IKG => IK1
15443 integer(IKG) , intent(out) :: rand(:)
15444 type(xoshiro256ssg_type) , intent(inout) :: rng
15445 end subroutine
15446#endif
15447
15448 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15449
15450#if LK5_ENABLED
15451 PURE module subroutine setUnifRandRNGGDD_D1_LK5(rng, rand)
15452#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15453 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_LK5
15454#endif
15455 use pm_kind, only: LKG => LK5
15456 logical(LKG) , intent(out) :: rand(:)
15457 type(xoshiro256ssg_type) , intent(inout) :: rng
15458 end subroutine
15459#endif
15460
15461#if LK4_ENABLED
15462 PURE module subroutine setUnifRandRNGGDD_D1_LK4(rng, rand)
15463#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15464 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_LK4
15465#endif
15466 use pm_kind, only: LKG => LK4
15467 logical(LKG) , intent(out) :: rand(:)
15468 type(xoshiro256ssg_type) , intent(inout) :: rng
15469 end subroutine
15470#endif
15471
15472#if LK3_ENABLED
15473 PURE module subroutine setUnifRandRNGGDD_D1_LK3(rng, rand)
15474#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15475 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_LK3
15476#endif
15477 use pm_kind, only: LKG => LK3
15478 logical(LKG) , intent(out) :: rand(:)
15479 type(xoshiro256ssg_type) , intent(inout) :: rng
15480 end subroutine
15481#endif
15482
15483#if LK2_ENABLED
15484 PURE module subroutine setUnifRandRNGGDD_D1_LK2(rng, rand)
15485#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15486 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_LK2
15487#endif
15488 use pm_kind, only: LKG => LK2
15489 logical(LKG) , intent(out) :: rand(:)
15490 type(xoshiro256ssg_type) , intent(inout) :: rng
15491 end subroutine
15492#endif
15493
15494#if LK1_ENABLED
15495 PURE module subroutine setUnifRandRNGGDD_D1_LK1(rng, rand)
15496#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15497 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_LK1
15498#endif
15499 use pm_kind, only: LKG => LK1
15500 logical(LKG) , intent(out) :: rand(:)
15501 type(xoshiro256ssg_type) , intent(inout) :: rng
15502 end subroutine
15503#endif
15504
15505 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15506
15507#if CK5_ENABLED
15508 PURE module subroutine setUnifRandRNGGDD_D1_CK5(rng, rand)
15509#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15510 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_CK5
15511#endif
15512 use pm_kind, only: CKG => CK5
15513 complex(CKG) , intent(out) :: rand(:)
15514 type(xoshiro256ssg_type) , intent(inout) :: rng
15515 end subroutine
15516#endif
15517
15518#if CK4_ENABLED
15519 PURE module subroutine setUnifRandRNGGDD_D1_CK4(rng, rand)
15520#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15521 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_CK4
15522#endif
15523 use pm_kind, only: CKG => CK4
15524 complex(CKG) , intent(out) :: rand(:)
15525 type(xoshiro256ssg_type) , intent(inout) :: rng
15526 end subroutine
15527#endif
15528
15529#if CK3_ENABLED
15530 PURE module subroutine setUnifRandRNGGDD_D1_CK3(rng, rand)
15531#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15532 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_CK3
15533#endif
15534 use pm_kind, only: CKG => CK3
15535 complex(CKG) , intent(out) :: rand(:)
15536 type(xoshiro256ssg_type) , intent(inout) :: rng
15537 end subroutine
15538#endif
15539
15540#if CK2_ENABLED
15541 PURE module subroutine setUnifRandRNGGDD_D1_CK2(rng, rand)
15542#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15543 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_CK2
15544#endif
15545 use pm_kind, only: CKG => CK2
15546 complex(CKG) , intent(out) :: rand(:)
15547 type(xoshiro256ssg_type) , intent(inout) :: rng
15548 end subroutine
15549#endif
15550
15551#if CK1_ENABLED
15552 PURE module subroutine setUnifRandRNGGDD_D1_CK1(rng, rand)
15553#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15554 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_CK1
15555#endif
15556 use pm_kind, only: CKG => CK1
15557 complex(CKG) , intent(out) :: rand(:)
15558 type(xoshiro256ssg_type) , intent(inout) :: rng
15559 end subroutine
15560#endif
15561
15562 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15563
15564#if RK5_ENABLED
15565 PURE module subroutine setUnifRandRNGGDD_D1_RK5(rng, rand)
15566#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15567 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_RK5
15568#endif
15569 use pm_kind, only: RKG => RK5
15570 real(RKG) , intent(out) :: rand(:)
15571 type(xoshiro256ssg_type) , intent(inout) :: rng
15572 end subroutine
15573#endif
15574
15575#if RK4_ENABLED
15576 PURE module subroutine setUnifRandRNGGDD_D1_RK4(rng, rand)
15577#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15578 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_RK4
15579#endif
15580 use pm_kind, only: RKG => RK4
15581 real(RKG) , intent(out) :: rand(:)
15582 type(xoshiro256ssg_type) , intent(inout) :: rng
15583 end subroutine
15584#endif
15585
15586#if RK3_ENABLED
15587 PURE module subroutine setUnifRandRNGGDD_D1_RK3(rng, rand)
15588#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15589 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_RK3
15590#endif
15591 use pm_kind, only: RKG => RK3
15592 real(RKG) , intent(out) :: rand(:)
15593 type(xoshiro256ssg_type) , intent(inout) :: rng
15594 end subroutine
15595#endif
15596
15597#if RK2_ENABLED
15598 PURE module subroutine setUnifRandRNGGDD_D1_RK2(rng, rand)
15599#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15600 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_RK2
15601#endif
15602 use pm_kind, only: RKG => RK2
15603 real(RKG) , intent(out) :: rand(:)
15604 type(xoshiro256ssg_type) , intent(inout) :: rng
15605 end subroutine
15606#endif
15607
15608#if RK1_ENABLED
15609 PURE module subroutine setUnifRandRNGGDD_D1_RK1(rng, rand)
15610#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15611 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_RK1
15612#endif
15613 use pm_kind, only: RKG => RK1
15614 real(RKG) , intent(out) :: rand(:)
15615 type(xoshiro256ssg_type) , intent(inout) :: rng
15616 end subroutine
15617#endif
15618
15619 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15620
15621 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15622 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15623 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15624
15625 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15626
15627#if SK5_ENABLED
15628 PURE module subroutine setUnifRandRNGGLU_D1_SK5(rng, rand, lb, ub)
15629#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15630 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_SK5
15631#endif
15632 use pm_kind, only: SKG => SK5
15633 character(*,SKG) , intent(out) :: rand(:)
15634 character(*,SKG) , intent(in) :: lb, ub
15635 type(xoshiro256ssg_type) , intent(inout) :: rng
15636 end subroutine
15637#endif
15638
15639#if SK4_ENABLED
15640 PURE module subroutine setUnifRandRNGGLU_D1_SK4(rng, rand, lb, ub)
15641#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15642 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_SK4
15643#endif
15644 use pm_kind, only: SKG => SK4
15645 character(*,SKG) , intent(out) :: rand(:)
15646 character(*,SKG) , intent(in) :: lb, ub
15647 type(xoshiro256ssg_type) , intent(inout) :: rng
15648 end subroutine
15649#endif
15650
15651#if SK3_ENABLED
15652 PURE module subroutine setUnifRandRNGGLU_D1_SK3(rng, rand, lb, ub)
15653#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15654 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_SK3
15655#endif
15656 use pm_kind, only: SKG => SK3
15657 character(*,SKG) , intent(out) :: rand(:)
15658 character(*,SKG) , intent(in) :: lb, ub
15659 type(xoshiro256ssg_type) , intent(inout) :: rng
15660 end subroutine
15661#endif
15662
15663#if SK2_ENABLED
15664 PURE module subroutine setUnifRandRNGGLU_D1_SK2(rng, rand, lb, ub)
15665#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15666 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_SK2
15667#endif
15668 use pm_kind, only: SKG => SK2
15669 character(*,SKG) , intent(out) :: rand(:)
15670 character(*,SKG) , intent(in) :: lb, ub
15671 type(xoshiro256ssg_type) , intent(inout) :: rng
15672 end subroutine
15673#endif
15674
15675#if SK1_ENABLED
15676 PURE module subroutine setUnifRandRNGGLU_D1_SK1(rng, rand, lb, ub)
15677#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15678 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_SK1
15679#endif
15680 use pm_kind, only: SKG => SK1
15681 character(*,SKG) , intent(out) :: rand(:)
15682 character(*,SKG) , intent(in) :: lb, ub
15683 type(xoshiro256ssg_type) , intent(inout) :: rng
15684 end subroutine
15685#endif
15686
15687 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15688
15689#if IK5_ENABLED
15690 PURE module subroutine setUnifRandRNGGLU_D1_IK5(rng, rand, lb, ub)
15691#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15692 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_IK5
15693#endif
15694 use pm_kind, only: IKG => IK5
15695 integer(IKG) , intent(out) :: rand(:)
15696 integer(IKG) , intent(in) :: lb, ub
15697 type(xoshiro256ssg_type) , intent(inout) :: rng
15698 end subroutine
15699#endif
15700
15701#if IK4_ENABLED
15702 PURE module subroutine setUnifRandRNGGLU_D1_IK4(rng, rand, lb, ub)
15703#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15704 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_IK4
15705#endif
15706 use pm_kind, only: IKG => IK4
15707 integer(IKG) , intent(out) :: rand(:)
15708 integer(IKG) , intent(in) :: lb, ub
15709 type(xoshiro256ssg_type) , intent(inout) :: rng
15710 end subroutine
15711#endif
15712
15713#if IK3_ENABLED
15714 PURE module subroutine setUnifRandRNGGLU_D1_IK3(rng, rand, lb, ub)
15715#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15716 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_IK3
15717#endif
15718 use pm_kind, only: IKG => IK3
15719 integer(IKG) , intent(out) :: rand(:)
15720 integer(IKG) , intent(in) :: lb, ub
15721 type(xoshiro256ssg_type) , intent(inout) :: rng
15722 end subroutine
15723#endif
15724
15725#if IK2_ENABLED
15726 PURE module subroutine setUnifRandRNGGLU_D1_IK2(rng, rand, lb, ub)
15727#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15728 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_IK2
15729#endif
15730 use pm_kind, only: IKG => IK2
15731 integer(IKG) , intent(out) :: rand(:)
15732 integer(IKG) , intent(in) :: lb, ub
15733 type(xoshiro256ssg_type) , intent(inout) :: rng
15734 end subroutine
15735#endif
15736
15737#if IK1_ENABLED
15738 PURE module subroutine setUnifRandRNGGLU_D1_IK1(rng, rand, lb, ub)
15739#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15740 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_IK1
15741#endif
15742 use pm_kind, only: IKG => IK1
15743 integer(IKG) , intent(out) :: rand(:)
15744 integer(IKG) , intent(in) :: lb, ub
15745 type(xoshiro256ssg_type) , intent(inout) :: rng
15746 end subroutine
15747#endif
15748
15749 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15750
15751#if LK5_ENABLED
15752 PURE module subroutine setUnifRandRNGGLU_D1_LK5(rng, rand, lb, ub)
15753#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15754 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_LK5
15755#endif
15756 use pm_kind, only: LKG => LK5
15757 logical(LKG) , intent(out) :: rand(:)
15758 logical(LKG) , intent(in) :: lb, ub
15759 type(xoshiro256ssg_type) , intent(inout) :: rng
15760 end subroutine
15761#endif
15762
15763#if LK4_ENABLED
15764 PURE module subroutine setUnifRandRNGGLU_D1_LK4(rng, rand, lb, ub)
15765#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15766 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_LK4
15767#endif
15768 use pm_kind, only: LKG => LK4
15769 logical(LKG) , intent(out) :: rand(:)
15770 logical(LKG) , intent(in) :: lb, ub
15771 type(xoshiro256ssg_type) , intent(inout) :: rng
15772 end subroutine
15773#endif
15774
15775#if LK3_ENABLED
15776 PURE module subroutine setUnifRandRNGGLU_D1_LK3(rng, rand, lb, ub)
15777#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15778 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_LK3
15779#endif
15780 use pm_kind, only: LKG => LK3
15781 logical(LKG) , intent(out) :: rand(:)
15782 logical(LKG) , intent(in) :: lb, ub
15783 type(xoshiro256ssg_type) , intent(inout) :: rng
15784 end subroutine
15785#endif
15786
15787#if LK2_ENABLED
15788 PURE module subroutine setUnifRandRNGGLU_D1_LK2(rng, rand, lb, ub)
15789#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15790 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_LK2
15791#endif
15792 use pm_kind, only: LKG => LK2
15793 logical(LKG) , intent(out) :: rand(:)
15794 logical(LKG) , intent(in) :: lb, ub
15795 type(xoshiro256ssg_type) , intent(inout) :: rng
15796 end subroutine
15797#endif
15798
15799#if LK1_ENABLED
15800 PURE module subroutine setUnifRandRNGGLU_D1_LK1(rng, rand, lb, ub)
15801#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15802 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_LK1
15803#endif
15804 use pm_kind, only: LKG => LK1
15805 logical(LKG) , intent(out) :: rand(:)
15806 logical(LKG) , intent(in) :: lb, ub
15807 type(xoshiro256ssg_type) , intent(inout) :: rng
15808 end subroutine
15809#endif
15810
15811 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15812
15813#if CK5_ENABLED
15814 PURE module subroutine setUnifRandRNGGLU_D1_CK5(rng, rand, lb, ub)
15815#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15816 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_CK5
15817#endif
15818 use pm_kind, only: CKG => CK5
15819 complex(CKG) , intent(out) :: rand(:)
15820 complex(CKG) , intent(in) :: lb, ub
15821 type(xoshiro256ssg_type) , intent(inout) :: rng
15822 end subroutine
15823#endif
15824
15825#if CK4_ENABLED
15826 PURE module subroutine setUnifRandRNGGLU_D1_CK4(rng, rand, lb, ub)
15827#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15828 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_CK4
15829#endif
15830 use pm_kind, only: CKG => CK4
15831 complex(CKG) , intent(out) :: rand(:)
15832 complex(CKG) , intent(in) :: lb, ub
15833 type(xoshiro256ssg_type) , intent(inout) :: rng
15834 end subroutine
15835#endif
15836
15837#if CK3_ENABLED
15838 PURE module subroutine setUnifRandRNGGLU_D1_CK3(rng, rand, lb, ub)
15839#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15840 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_CK3
15841#endif
15842 use pm_kind, only: CKG => CK3
15843 complex(CKG) , intent(out) :: rand(:)
15844 complex(CKG) , intent(in) :: lb, ub
15845 type(xoshiro256ssg_type) , intent(inout) :: rng
15846 end subroutine
15847#endif
15848
15849#if CK2_ENABLED
15850 PURE module subroutine setUnifRandRNGGLU_D1_CK2(rng, rand, lb, ub)
15851#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15852 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_CK2
15853#endif
15854 use pm_kind, only: CKG => CK2
15855 complex(CKG) , intent(out) :: rand(:)
15856 complex(CKG) , intent(in) :: lb, ub
15857 type(xoshiro256ssg_type) , intent(inout) :: rng
15858 end subroutine
15859#endif
15860
15861#if CK1_ENABLED
15862 PURE module subroutine setUnifRandRNGGLU_D1_CK1(rng, rand, lb, ub)
15863#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15864 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_CK1
15865#endif
15866 use pm_kind, only: CKG => CK1
15867 complex(CKG) , intent(out) :: rand(:)
15868 complex(CKG) , intent(in) :: lb, ub
15869 type(xoshiro256ssg_type) , intent(inout) :: rng
15870 end subroutine
15871#endif
15872
15873 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15874
15875#if RK5_ENABLED
15876 PURE module subroutine setUnifRandRNGGLU_D1_RK5(rng, rand, lb, ub)
15877#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15878 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_RK5
15879#endif
15880 use pm_kind, only: RKG => RK5
15881 real(RKG) , intent(out) :: rand(:)
15882 real(RKG) , intent(in) :: lb, ub
15883 type(xoshiro256ssg_type) , intent(inout) :: rng
15884 end subroutine
15885#endif
15886
15887#if RK4_ENABLED
15888 PURE module subroutine setUnifRandRNGGLU_D1_RK4(rng, rand, lb, ub)
15889#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15890 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_RK4
15891#endif
15892 use pm_kind, only: RKG => RK4
15893 real(RKG) , intent(out) :: rand(:)
15894 real(RKG) , intent(in) :: lb, ub
15895 type(xoshiro256ssg_type) , intent(inout) :: rng
15896 end subroutine
15897#endif
15898
15899#if RK3_ENABLED
15900 PURE module subroutine setUnifRandRNGGLU_D1_RK3(rng, rand, lb, ub)
15901#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15902 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_RK3
15903#endif
15904 use pm_kind, only: RKG => RK3
15905 real(RKG) , intent(out) :: rand(:)
15906 real(RKG) , intent(in) :: lb, ub
15907 type(xoshiro256ssg_type) , intent(inout) :: rng
15908 end subroutine
15909#endif
15910
15911#if RK2_ENABLED
15912 PURE module subroutine setUnifRandRNGGLU_D1_RK2(rng, rand, lb, ub)
15913#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15914 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_RK2
15915#endif
15916 use pm_kind, only: RKG => RK2
15917 real(RKG) , intent(out) :: rand(:)
15918 real(RKG) , intent(in) :: lb, ub
15919 type(xoshiro256ssg_type) , intent(inout) :: rng
15920 end subroutine
15921#endif
15922
15923#if RK1_ENABLED
15924 PURE module subroutine setUnifRandRNGGLU_D1_RK1(rng, rand, lb, ub)
15925#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15926 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_RK1
15927#endif
15928 use pm_kind, only: RKG => RK1
15929 real(RKG) , intent(out) :: rand(:)
15930 real(RKG) , intent(in) :: lb, ub
15931 type(xoshiro256ssg_type) , intent(inout) :: rng
15932 end subroutine
15933#endif
15934
15935 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15936
15937 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15938 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15939 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15940
15941 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15942 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15943 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15944
15945 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15946
15947#if SK5_ENABLED
15948 PURE module subroutine setUnifRandRNGGDD_D2_SK5(rng, rand)
15949#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15950 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_SK5
15951#endif
15952 use pm_kind, only: SKG => SK5
15953 character(*,SKG) , intent(out) :: rand(:,:)
15954 type(xoshiro256ssg_type) , intent(inout) :: rng
15955 end subroutine
15956#endif
15957
15958#if SK4_ENABLED
15959 PURE module subroutine setUnifRandRNGGDD_D2_SK4(rng, rand)
15960#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15961 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_SK4
15962#endif
15963 use pm_kind, only: SKG => SK4
15964 character(*,SKG) , intent(out) :: rand(:,:)
15965 type(xoshiro256ssg_type) , intent(inout) :: rng
15966 end subroutine
15967#endif
15968
15969#if SK3_ENABLED
15970 PURE module subroutine setUnifRandRNGGDD_D2_SK3(rng, rand)
15971#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15972 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_SK3
15973#endif
15974 use pm_kind, only: SKG => SK3
15975 character(*,SKG) , intent(out) :: rand(:,:)
15976 type(xoshiro256ssg_type) , intent(inout) :: rng
15977 end subroutine
15978#endif
15979
15980#if SK2_ENABLED
15981 PURE module subroutine setUnifRandRNGGDD_D2_SK2(rng, rand)
15982#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15983 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_SK2
15984#endif
15985 use pm_kind, only: SKG => SK2
15986 character(*,SKG) , intent(out) :: rand(:,:)
15987 type(xoshiro256ssg_type) , intent(inout) :: rng
15988 end subroutine
15989#endif
15990
15991#if SK1_ENABLED
15992 PURE module subroutine setUnifRandRNGGDD_D2_SK1(rng, rand)
15993#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15994 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_SK1
15995#endif
15996 use pm_kind, only: SKG => SK1
15997 character(*,SKG) , intent(out) :: rand(:,:)
15998 type(xoshiro256ssg_type) , intent(inout) :: rng
15999 end subroutine
16000#endif
16001
16002 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16003
16004#if IK5_ENABLED
16005 PURE module subroutine setUnifRandRNGGDD_D2_IK5(rng, rand)
16006#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16007 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_IK5
16008#endif
16009 use pm_kind, only: IKG => IK5
16010 integer(IKG) , intent(out) :: rand(:,:)
16011 type(xoshiro256ssg_type) , intent(inout) :: rng
16012 end subroutine
16013#endif
16014
16015#if IK4_ENABLED
16016 PURE module subroutine setUnifRandRNGGDD_D2_IK4(rng, rand)
16017#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16018 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_IK4
16019#endif
16020 use pm_kind, only: IKG => IK4
16021 integer(IKG) , intent(out) :: rand(:,:)
16022 type(xoshiro256ssg_type) , intent(inout) :: rng
16023 end subroutine
16024#endif
16025
16026#if IK3_ENABLED
16027 PURE module subroutine setUnifRandRNGGDD_D2_IK3(rng, rand)
16028#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16029 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_IK3
16030#endif
16031 use pm_kind, only: IKG => IK3
16032 integer(IKG) , intent(out) :: rand(:,:)
16033 type(xoshiro256ssg_type) , intent(inout) :: rng
16034 end subroutine
16035#endif
16036
16037#if IK2_ENABLED
16038 PURE module subroutine setUnifRandRNGGDD_D2_IK2(rng, rand)
16039#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16040 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_IK2
16041#endif
16042 use pm_kind, only: IKG => IK2
16043 integer(IKG) , intent(out) :: rand(:,:)
16044 type(xoshiro256ssg_type) , intent(inout) :: rng
16045 end subroutine
16046#endif
16047
16048#if IK1_ENABLED
16049 PURE module subroutine setUnifRandRNGGDD_D2_IK1(rng, rand)
16050#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16051 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_IK1
16052#endif
16053 use pm_kind, only: IKG => IK1
16054 integer(IKG) , intent(out) :: rand(:,:)
16055 type(xoshiro256ssg_type) , intent(inout) :: rng
16056 end subroutine
16057#endif
16058
16059 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16060
16061#if LK5_ENABLED
16062 PURE module subroutine setUnifRandRNGGDD_D2_LK5(rng, rand)
16063#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16064 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_LK5
16065#endif
16066 use pm_kind, only: LKG => LK5
16067 logical(LKG) , intent(out) :: rand(:,:)
16068 type(xoshiro256ssg_type) , intent(inout) :: rng
16069 end subroutine
16070#endif
16071
16072#if LK4_ENABLED
16073 PURE module subroutine setUnifRandRNGGDD_D2_LK4(rng, rand)
16074#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16075 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_LK4
16076#endif
16077 use pm_kind, only: LKG => LK4
16078 logical(LKG) , intent(out) :: rand(:,:)
16079 type(xoshiro256ssg_type) , intent(inout) :: rng
16080 end subroutine
16081#endif
16082
16083#if LK3_ENABLED
16084 PURE module subroutine setUnifRandRNGGDD_D2_LK3(rng, rand)
16085#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16086 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_LK3
16087#endif
16088 use pm_kind, only: LKG => LK3
16089 logical(LKG) , intent(out) :: rand(:,:)
16090 type(xoshiro256ssg_type) , intent(inout) :: rng
16091 end subroutine
16092#endif
16093
16094#if LK2_ENABLED
16095 PURE module subroutine setUnifRandRNGGDD_D2_LK2(rng, rand)
16096#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16097 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_LK2
16098#endif
16099 use pm_kind, only: LKG => LK2
16100 logical(LKG) , intent(out) :: rand(:,:)
16101 type(xoshiro256ssg_type) , intent(inout) :: rng
16102 end subroutine
16103#endif
16104
16105#if LK1_ENABLED
16106 PURE module subroutine setUnifRandRNGGDD_D2_LK1(rng, rand)
16107#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16108 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_LK1
16109#endif
16110 use pm_kind, only: LKG => LK1
16111 logical(LKG) , intent(out) :: rand(:,:)
16112 type(xoshiro256ssg_type) , intent(inout) :: rng
16113 end subroutine
16114#endif
16115
16116 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16117
16118#if CK5_ENABLED
16119 PURE module subroutine setUnifRandRNGGDD_D2_CK5(rng, rand)
16120#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16121 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_CK5
16122#endif
16123 use pm_kind, only: CKG => CK5
16124 complex(CKG) , intent(out) :: rand(:,:)
16125 type(xoshiro256ssg_type) , intent(inout) :: rng
16126 end subroutine
16127#endif
16128
16129#if CK4_ENABLED
16130 PURE module subroutine setUnifRandRNGGDD_D2_CK4(rng, rand)
16131#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16132 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_CK4
16133#endif
16134 use pm_kind, only: CKG => CK4
16135 complex(CKG) , intent(out) :: rand(:,:)
16136 type(xoshiro256ssg_type) , intent(inout) :: rng
16137 end subroutine
16138#endif
16139
16140#if CK3_ENABLED
16141 PURE module subroutine setUnifRandRNGGDD_D2_CK3(rng, rand)
16142#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16143 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_CK3
16144#endif
16145 use pm_kind, only: CKG => CK3
16146 complex(CKG) , intent(out) :: rand(:,:)
16147 type(xoshiro256ssg_type) , intent(inout) :: rng
16148 end subroutine
16149#endif
16150
16151#if CK2_ENABLED
16152 PURE module subroutine setUnifRandRNGGDD_D2_CK2(rng, rand)
16153#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16154 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_CK2
16155#endif
16156 use pm_kind, only: CKG => CK2
16157 complex(CKG) , intent(out) :: rand(:,:)
16158 type(xoshiro256ssg_type) , intent(inout) :: rng
16159 end subroutine
16160#endif
16161
16162#if CK1_ENABLED
16163 PURE module subroutine setUnifRandRNGGDD_D2_CK1(rng, rand)
16164#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16165 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_CK1
16166#endif
16167 use pm_kind, only: CKG => CK1
16168 complex(CKG) , intent(out) :: rand(:,:)
16169 type(xoshiro256ssg_type) , intent(inout) :: rng
16170 end subroutine
16171#endif
16172
16173 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16174
16175#if RK5_ENABLED
16176 PURE module subroutine setUnifRandRNGGDD_D2_RK5(rng, rand)
16177#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16178 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_RK5
16179#endif
16180 use pm_kind, only: RKG => RK5
16181 real(RKG) , intent(out) :: rand(:,:)
16182 type(xoshiro256ssg_type) , intent(inout) :: rng
16183 end subroutine
16184#endif
16185
16186#if RK4_ENABLED
16187 PURE module subroutine setUnifRandRNGGDD_D2_RK4(rng, rand)
16188#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16189 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_RK4
16190#endif
16191 use pm_kind, only: RKG => RK4
16192 real(RKG) , intent(out) :: rand(:,:)
16193 type(xoshiro256ssg_type) , intent(inout) :: rng
16194 end subroutine
16195#endif
16196
16197#if RK3_ENABLED
16198 PURE module subroutine setUnifRandRNGGDD_D2_RK3(rng, rand)
16199#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16200 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_RK3
16201#endif
16202 use pm_kind, only: RKG => RK3
16203 real(RKG) , intent(out) :: rand(:,:)
16204 type(xoshiro256ssg_type) , intent(inout) :: rng
16205 end subroutine
16206#endif
16207
16208#if RK2_ENABLED
16209 PURE module subroutine setUnifRandRNGGDD_D2_RK2(rng, rand)
16210#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16211 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_RK2
16212#endif
16213 use pm_kind, only: RKG => RK2
16214 real(RKG) , intent(out) :: rand(:,:)
16215 type(xoshiro256ssg_type) , intent(inout) :: rng
16216 end subroutine
16217#endif
16218
16219#if RK1_ENABLED
16220 PURE module subroutine setUnifRandRNGGDD_D2_RK1(rng, rand)
16221#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16222 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_RK1
16223#endif
16224 use pm_kind, only: RKG => RK1
16225 real(RKG) , intent(out) :: rand(:,:)
16226 type(xoshiro256ssg_type) , intent(inout) :: rng
16227 end subroutine
16228#endif
16229
16230 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16231
16232 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16233 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16234 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16235
16236 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16237
16238#if SK5_ENABLED
16239 PURE module subroutine setUnifRandRNGGLU_D2_SK5(rng, rand, lb, ub)
16240#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16241 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_SK5
16242#endif
16243 use pm_kind, only: SKG => SK5
16244 character(*,SKG) , intent(out) :: rand(:,:)
16245 character(*,SKG) , intent(in) :: lb, ub
16246 type(xoshiro256ssg_type) , intent(inout) :: rng
16247 end subroutine
16248#endif
16249
16250#if SK4_ENABLED
16251 PURE module subroutine setUnifRandRNGGLU_D2_SK4(rng, rand, lb, ub)
16252#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16253 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_SK4
16254#endif
16255 use pm_kind, only: SKG => SK4
16256 character(*,SKG) , intent(out) :: rand(:,:)
16257 character(*,SKG) , intent(in) :: lb, ub
16258 type(xoshiro256ssg_type) , intent(inout) :: rng
16259 end subroutine
16260#endif
16261
16262#if SK3_ENABLED
16263 PURE module subroutine setUnifRandRNGGLU_D2_SK3(rng, rand, lb, ub)
16264#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16265 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_SK3
16266#endif
16267 use pm_kind, only: SKG => SK3
16268 character(*,SKG) , intent(out) :: rand(:,:)
16269 character(*,SKG) , intent(in) :: lb, ub
16270 type(xoshiro256ssg_type) , intent(inout) :: rng
16271 end subroutine
16272#endif
16273
16274#if SK2_ENABLED
16275 PURE module subroutine setUnifRandRNGGLU_D2_SK2(rng, rand, lb, ub)
16276#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16277 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_SK2
16278#endif
16279 use pm_kind, only: SKG => SK2
16280 character(*,SKG) , intent(out) :: rand(:,:)
16281 character(*,SKG) , intent(in) :: lb, ub
16282 type(xoshiro256ssg_type) , intent(inout) :: rng
16283 end subroutine
16284#endif
16285
16286#if SK1_ENABLED
16287 PURE module subroutine setUnifRandRNGGLU_D2_SK1(rng, rand, lb, ub)
16288#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16289 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_SK1
16290#endif
16291 use pm_kind, only: SKG => SK1
16292 character(*,SKG) , intent(out) :: rand(:,:)
16293 character(*,SKG) , intent(in) :: lb, ub
16294 type(xoshiro256ssg_type) , intent(inout) :: rng
16295 end subroutine
16296#endif
16297
16298 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16299
16300#if IK5_ENABLED
16301 PURE module subroutine setUnifRandRNGGLU_D2_IK5(rng, rand, lb, ub)
16302#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16303 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_IK5
16304#endif
16305 use pm_kind, only: IKG => IK5
16306 integer(IKG) , intent(out) :: rand(:,:)
16307 integer(IKG) , intent(in) :: lb, ub
16308 type(xoshiro256ssg_type) , intent(inout) :: rng
16309 end subroutine
16310#endif
16311
16312#if IK4_ENABLED
16313 PURE module subroutine setUnifRandRNGGLU_D2_IK4(rng, rand, lb, ub)
16314#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16315 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_IK4
16316#endif
16317 use pm_kind, only: IKG => IK4
16318 integer(IKG) , intent(out) :: rand(:,:)
16319 integer(IKG) , intent(in) :: lb, ub
16320 type(xoshiro256ssg_type) , intent(inout) :: rng
16321 end subroutine
16322#endif
16323
16324#if IK3_ENABLED
16325 PURE module subroutine setUnifRandRNGGLU_D2_IK3(rng, rand, lb, ub)
16326#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16327 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_IK3
16328#endif
16329 use pm_kind, only: IKG => IK3
16330 integer(IKG) , intent(out) :: rand(:,:)
16331 integer(IKG) , intent(in) :: lb, ub
16332 type(xoshiro256ssg_type) , intent(inout) :: rng
16333 end subroutine
16334#endif
16335
16336#if IK2_ENABLED
16337 PURE module subroutine setUnifRandRNGGLU_D2_IK2(rng, rand, lb, ub)
16338#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16339 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_IK2
16340#endif
16341 use pm_kind, only: IKG => IK2
16342 integer(IKG) , intent(out) :: rand(:,:)
16343 integer(IKG) , intent(in) :: lb, ub
16344 type(xoshiro256ssg_type) , intent(inout) :: rng
16345 end subroutine
16346#endif
16347
16348#if IK1_ENABLED
16349 PURE module subroutine setUnifRandRNGGLU_D2_IK1(rng, rand, lb, ub)
16350#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16351 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_IK1
16352#endif
16353 use pm_kind, only: IKG => IK1
16354 integer(IKG) , intent(out) :: rand(:,:)
16355 integer(IKG) , intent(in) :: lb, ub
16356 type(xoshiro256ssg_type) , intent(inout) :: rng
16357 end subroutine
16358#endif
16359
16360 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16361
16362#if LK5_ENABLED
16363 PURE module subroutine setUnifRandRNGGLU_D2_LK5(rng, rand, lb, ub)
16364#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16365 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_LK5
16366#endif
16367 use pm_kind, only: LKG => LK5
16368 logical(LKG) , intent(out) :: rand(:,:)
16369 logical(LKG) , intent(in) :: lb, ub
16370 type(xoshiro256ssg_type) , intent(inout) :: rng
16371 end subroutine
16372#endif
16373
16374#if LK4_ENABLED
16375 PURE module subroutine setUnifRandRNGGLU_D2_LK4(rng, rand, lb, ub)
16376#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16377 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_LK4
16378#endif
16379 use pm_kind, only: LKG => LK4
16380 logical(LKG) , intent(out) :: rand(:,:)
16381 logical(LKG) , intent(in) :: lb, ub
16382 type(xoshiro256ssg_type) , intent(inout) :: rng
16383 end subroutine
16384#endif
16385
16386#if LK3_ENABLED
16387 PURE module subroutine setUnifRandRNGGLU_D2_LK3(rng, rand, lb, ub)
16388#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16389 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_LK3
16390#endif
16391 use pm_kind, only: LKG => LK3
16392 logical(LKG) , intent(out) :: rand(:,:)
16393 logical(LKG) , intent(in) :: lb, ub
16394 type(xoshiro256ssg_type) , intent(inout) :: rng
16395 end subroutine
16396#endif
16397
16398#if LK2_ENABLED
16399 PURE module subroutine setUnifRandRNGGLU_D2_LK2(rng, rand, lb, ub)
16400#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16401 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_LK2
16402#endif
16403 use pm_kind, only: LKG => LK2
16404 logical(LKG) , intent(out) :: rand(:,:)
16405 logical(LKG) , intent(in) :: lb, ub
16406 type(xoshiro256ssg_type) , intent(inout) :: rng
16407 end subroutine
16408#endif
16409
16410#if LK1_ENABLED
16411 PURE module subroutine setUnifRandRNGGLU_D2_LK1(rng, rand, lb, ub)
16412#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16413 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_LK1
16414#endif
16415 use pm_kind, only: LKG => LK1
16416 logical(LKG) , intent(out) :: rand(:,:)
16417 logical(LKG) , intent(in) :: lb, ub
16418 type(xoshiro256ssg_type) , intent(inout) :: rng
16419 end subroutine
16420#endif
16421
16422 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16423
16424#if CK5_ENABLED
16425 PURE module subroutine setUnifRandRNGGLU_D2_CK5(rng, rand, lb, ub)
16426#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16427 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_CK5
16428#endif
16429 use pm_kind, only: CKG => CK5
16430 complex(CKG) , intent(out) :: rand(:,:)
16431 complex(CKG) , intent(in) :: lb, ub
16432 type(xoshiro256ssg_type) , intent(inout) :: rng
16433 end subroutine
16434#endif
16435
16436#if CK4_ENABLED
16437 PURE module subroutine setUnifRandRNGGLU_D2_CK4(rng, rand, lb, ub)
16438#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16439 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_CK4
16440#endif
16441 use pm_kind, only: CKG => CK4
16442 complex(CKG) , intent(out) :: rand(:,:)
16443 complex(CKG) , intent(in) :: lb, ub
16444 type(xoshiro256ssg_type) , intent(inout) :: rng
16445 end subroutine
16446#endif
16447
16448#if CK3_ENABLED
16449 PURE module subroutine setUnifRandRNGGLU_D2_CK3(rng, rand, lb, ub)
16450#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16451 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_CK3
16452#endif
16453 use pm_kind, only: CKG => CK3
16454 complex(CKG) , intent(out) :: rand(:,:)
16455 complex(CKG) , intent(in) :: lb, ub
16456 type(xoshiro256ssg_type) , intent(inout) :: rng
16457 end subroutine
16458#endif
16459
16460#if CK2_ENABLED
16461 PURE module subroutine setUnifRandRNGGLU_D2_CK2(rng, rand, lb, ub)
16462#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16463 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_CK2
16464#endif
16465 use pm_kind, only: CKG => CK2
16466 complex(CKG) , intent(out) :: rand(:,:)
16467 complex(CKG) , intent(in) :: lb, ub
16468 type(xoshiro256ssg_type) , intent(inout) :: rng
16469 end subroutine
16470#endif
16471
16472#if CK1_ENABLED
16473 PURE module subroutine setUnifRandRNGGLU_D2_CK1(rng, rand, lb, ub)
16474#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16475 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_CK1
16476#endif
16477 use pm_kind, only: CKG => CK1
16478 complex(CKG) , intent(out) :: rand(:,:)
16479 complex(CKG) , intent(in) :: lb, ub
16480 type(xoshiro256ssg_type) , intent(inout) :: rng
16481 end subroutine
16482#endif
16483
16484 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16485
16486#if RK5_ENABLED
16487 PURE module subroutine setUnifRandRNGGLU_D2_RK5(rng, rand, lb, ub)
16488#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16489 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_RK5
16490#endif
16491 use pm_kind, only: RKG => RK5
16492 real(RKG) , intent(out) :: rand(:,:)
16493 real(RKG) , intent(in) :: lb, ub
16494 type(xoshiro256ssg_type) , intent(inout) :: rng
16495 end subroutine
16496#endif
16497
16498#if RK4_ENABLED
16499 PURE module subroutine setUnifRandRNGGLU_D2_RK4(rng, rand, lb, ub)
16500#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16501 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_RK4
16502#endif
16503 use pm_kind, only: RKG => RK4
16504 real(RKG) , intent(out) :: rand(:,:)
16505 real(RKG) , intent(in) :: lb, ub
16506 type(xoshiro256ssg_type) , intent(inout) :: rng
16507 end subroutine
16508#endif
16509
16510#if RK3_ENABLED
16511 PURE module subroutine setUnifRandRNGGLU_D2_RK3(rng, rand, lb, ub)
16512#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16513 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_RK3
16514#endif
16515 use pm_kind, only: RKG => RK3
16516 real(RKG) , intent(out) :: rand(:,:)
16517 real(RKG) , intent(in) :: lb, ub
16518 type(xoshiro256ssg_type) , intent(inout) :: rng
16519 end subroutine
16520#endif
16521
16522#if RK2_ENABLED
16523 PURE module subroutine setUnifRandRNGGLU_D2_RK2(rng, rand, lb, ub)
16524#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16525 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_RK2
16526#endif
16527 use pm_kind, only: RKG => RK2
16528 real(RKG) , intent(out) :: rand(:,:)
16529 real(RKG) , intent(in) :: lb, ub
16530 type(xoshiro256ssg_type) , intent(inout) :: rng
16531 end subroutine
16532#endif
16533
16534#if RK1_ENABLED
16535 PURE module subroutine setUnifRandRNGGLU_D2_RK1(rng, rand, lb, ub)
16536#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16537 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_RK1
16538#endif
16539 use pm_kind, only: RKG => RK1
16540 real(RKG) , intent(out) :: rand(:,:)
16541 real(RKG) , intent(in) :: lb, ub
16542 type(xoshiro256ssg_type) , intent(inout) :: rng
16543 end subroutine
16544#endif
16545
16546 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16547
16548 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16549 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16550 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16551
16552 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16553 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16554 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16555
16556 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16557
16558#if SK5_ENABLED
16559 PURE module subroutine setUnifRandRNGGDD_D3_SK5(rng, rand)
16560#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16561 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_SK5
16562#endif
16563 use pm_kind, only: SKG => SK5
16564 character(*,SKG) , intent(out) :: rand(:,:,:)
16565 type(xoshiro256ssg_type) , intent(inout) :: rng
16566 end subroutine
16567#endif
16568
16569#if SK4_ENABLED
16570 PURE module subroutine setUnifRandRNGGDD_D3_SK4(rng, rand)
16571#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16572 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_SK4
16573#endif
16574 use pm_kind, only: SKG => SK4
16575 character(*,SKG) , intent(out) :: rand(:,:,:)
16576 type(xoshiro256ssg_type) , intent(inout) :: rng
16577 end subroutine
16578#endif
16579
16580#if SK3_ENABLED
16581 PURE module subroutine setUnifRandRNGGDD_D3_SK3(rng, rand)
16582#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16583 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_SK3
16584#endif
16585 use pm_kind, only: SKG => SK3
16586 character(*,SKG) , intent(out) :: rand(:,:,:)
16587 type(xoshiro256ssg_type) , intent(inout) :: rng
16588 end subroutine
16589#endif
16590
16591#if SK2_ENABLED
16592 PURE module subroutine setUnifRandRNGGDD_D3_SK2(rng, rand)
16593#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16594 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_SK2
16595#endif
16596 use pm_kind, only: SKG => SK2
16597 character(*,SKG) , intent(out) :: rand(:,:,:)
16598 type(xoshiro256ssg_type) , intent(inout) :: rng
16599 end subroutine
16600#endif
16601
16602#if SK1_ENABLED
16603 PURE module subroutine setUnifRandRNGGDD_D3_SK1(rng, rand)
16604#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16605 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_SK1
16606#endif
16607 use pm_kind, only: SKG => SK1
16608 character(*,SKG) , intent(out) :: rand(:,:,:)
16609 type(xoshiro256ssg_type) , intent(inout) :: rng
16610 end subroutine
16611#endif
16612
16613 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16614
16615#if IK5_ENABLED
16616 PURE module subroutine setUnifRandRNGGDD_D3_IK5(rng, rand)
16617#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16618 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_IK5
16619#endif
16620 use pm_kind, only: IKG => IK5
16621 integer(IKG) , intent(out) :: rand(:,:,:)
16622 type(xoshiro256ssg_type) , intent(inout) :: rng
16623 end subroutine
16624#endif
16625
16626#if IK4_ENABLED
16627 PURE module subroutine setUnifRandRNGGDD_D3_IK4(rng, rand)
16628#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16629 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_IK4
16630#endif
16631 use pm_kind, only: IKG => IK4
16632 integer(IKG) , intent(out) :: rand(:,:,:)
16633 type(xoshiro256ssg_type) , intent(inout) :: rng
16634 end subroutine
16635#endif
16636
16637#if IK3_ENABLED
16638 PURE module subroutine setUnifRandRNGGDD_D3_IK3(rng, rand)
16639#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16640 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_IK3
16641#endif
16642 use pm_kind, only: IKG => IK3
16643 integer(IKG) , intent(out) :: rand(:,:,:)
16644 type(xoshiro256ssg_type) , intent(inout) :: rng
16645 end subroutine
16646#endif
16647
16648#if IK2_ENABLED
16649 PURE module subroutine setUnifRandRNGGDD_D3_IK2(rng, rand)
16650#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16651 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_IK2
16652#endif
16653 use pm_kind, only: IKG => IK2
16654 integer(IKG) , intent(out) :: rand(:,:,:)
16655 type(xoshiro256ssg_type) , intent(inout) :: rng
16656 end subroutine
16657#endif
16658
16659#if IK1_ENABLED
16660 PURE module subroutine setUnifRandRNGGDD_D3_IK1(rng, rand)
16661#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16662 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_IK1
16663#endif
16664 use pm_kind, only: IKG => IK1
16665 integer(IKG) , intent(out) :: rand(:,:,:)
16666 type(xoshiro256ssg_type) , intent(inout) :: rng
16667 end subroutine
16668#endif
16669
16670 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16671
16672#if LK5_ENABLED
16673 PURE module subroutine setUnifRandRNGGDD_D3_LK5(rng, rand)
16674#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16675 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_LK5
16676#endif
16677 use pm_kind, only: LKG => LK5
16678 logical(LKG) , intent(out) :: rand(:,:,:)
16679 type(xoshiro256ssg_type) , intent(inout) :: rng
16680 end subroutine
16681#endif
16682
16683#if LK4_ENABLED
16684 PURE module subroutine setUnifRandRNGGDD_D3_LK4(rng, rand)
16685#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16686 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_LK4
16687#endif
16688 use pm_kind, only: LKG => LK4
16689 logical(LKG) , intent(out) :: rand(:,:,:)
16690 type(xoshiro256ssg_type) , intent(inout) :: rng
16691 end subroutine
16692#endif
16693
16694#if LK3_ENABLED
16695 PURE module subroutine setUnifRandRNGGDD_D3_LK3(rng, rand)
16696#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16697 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_LK3
16698#endif
16699 use pm_kind, only: LKG => LK3
16700 logical(LKG) , intent(out) :: rand(:,:,:)
16701 type(xoshiro256ssg_type) , intent(inout) :: rng
16702 end subroutine
16703#endif
16704
16705#if LK2_ENABLED
16706 PURE module subroutine setUnifRandRNGGDD_D3_LK2(rng, rand)
16707#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16708 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_LK2
16709#endif
16710 use pm_kind, only: LKG => LK2
16711 logical(LKG) , intent(out) :: rand(:,:,:)
16712 type(xoshiro256ssg_type) , intent(inout) :: rng
16713 end subroutine
16714#endif
16715
16716#if LK1_ENABLED
16717 PURE module subroutine setUnifRandRNGGDD_D3_LK1(rng, rand)
16718#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16719 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_LK1
16720#endif
16721 use pm_kind, only: LKG => LK1
16722 logical(LKG) , intent(out) :: rand(:,:,:)
16723 type(xoshiro256ssg_type) , intent(inout) :: rng
16724 end subroutine
16725#endif
16726
16727 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16728
16729#if CK5_ENABLED
16730 PURE module subroutine setUnifRandRNGGDD_D3_CK5(rng, rand)
16731#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16732 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_CK5
16733#endif
16734 use pm_kind, only: CKG => CK5
16735 complex(CKG) , intent(out) :: rand(:,:,:)
16736 type(xoshiro256ssg_type) , intent(inout) :: rng
16737 end subroutine
16738#endif
16739
16740#if CK4_ENABLED
16741 PURE module subroutine setUnifRandRNGGDD_D3_CK4(rng, rand)
16742#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16743 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_CK4
16744#endif
16745 use pm_kind, only: CKG => CK4
16746 complex(CKG) , intent(out) :: rand(:,:,:)
16747 type(xoshiro256ssg_type) , intent(inout) :: rng
16748 end subroutine
16749#endif
16750
16751#if CK3_ENABLED
16752 PURE module subroutine setUnifRandRNGGDD_D3_CK3(rng, rand)
16753#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16754 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_CK3
16755#endif
16756 use pm_kind, only: CKG => CK3
16757 complex(CKG) , intent(out) :: rand(:,:,:)
16758 type(xoshiro256ssg_type) , intent(inout) :: rng
16759 end subroutine
16760#endif
16761
16762#if CK2_ENABLED
16763 PURE module subroutine setUnifRandRNGGDD_D3_CK2(rng, rand)
16764#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16765 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_CK2
16766#endif
16767 use pm_kind, only: CKG => CK2
16768 complex(CKG) , intent(out) :: rand(:,:,:)
16769 type(xoshiro256ssg_type) , intent(inout) :: rng
16770 end subroutine
16771#endif
16772
16773#if CK1_ENABLED
16774 PURE module subroutine setUnifRandRNGGDD_D3_CK1(rng, rand)
16775#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16776 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_CK1
16777#endif
16778 use pm_kind, only: CKG => CK1
16779 complex(CKG) , intent(out) :: rand(:,:,:)
16780 type(xoshiro256ssg_type) , intent(inout) :: rng
16781 end subroutine
16782#endif
16783
16784 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16785
16786#if RK5_ENABLED
16787 PURE module subroutine setUnifRandRNGGDD_D3_RK5(rng, rand)
16788#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16789 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_RK5
16790#endif
16791 use pm_kind, only: RKG => RK5
16792 real(RKG) , intent(out) :: rand(:,:,:)
16793 type(xoshiro256ssg_type) , intent(inout) :: rng
16794 end subroutine
16795#endif
16796
16797#if RK4_ENABLED
16798 PURE module subroutine setUnifRandRNGGDD_D3_RK4(rng, rand)
16799#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16800 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_RK4
16801#endif
16802 use pm_kind, only: RKG => RK4
16803 real(RKG) , intent(out) :: rand(:,:,:)
16804 type(xoshiro256ssg_type) , intent(inout) :: rng
16805 end subroutine
16806#endif
16807
16808#if RK3_ENABLED
16809 PURE module subroutine setUnifRandRNGGDD_D3_RK3(rng, rand)
16810#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16811 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_RK3
16812#endif
16813 use pm_kind, only: RKG => RK3
16814 real(RKG) , intent(out) :: rand(:,:,:)
16815 type(xoshiro256ssg_type) , intent(inout) :: rng
16816 end subroutine
16817#endif
16818
16819#if RK2_ENABLED
16820 PURE module subroutine setUnifRandRNGGDD_D3_RK2(rng, rand)
16821#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16822 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_RK2
16823#endif
16824 use pm_kind, only: RKG => RK2
16825 real(RKG) , intent(out) :: rand(:,:,:)
16826 type(xoshiro256ssg_type) , intent(inout) :: rng
16827 end subroutine
16828#endif
16829
16830#if RK1_ENABLED
16831 PURE module subroutine setUnifRandRNGGDD_D3_RK1(rng, rand)
16832#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16833 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_RK1
16834#endif
16835 use pm_kind, only: RKG => RK1
16836 real(RKG) , intent(out) :: rand(:,:,:)
16837 type(xoshiro256ssg_type) , intent(inout) :: rng
16838 end subroutine
16839#endif
16840
16841 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16842
16843 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16844 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16845 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16846
16847 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16848
16849#if SK5_ENABLED
16850 PURE module subroutine setUnifRandRNGGLU_D3_SK5(rng, rand, lb, ub)
16851#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16852 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_SK5
16853#endif
16854 use pm_kind, only: SKG => SK5
16855 character(*,SKG) , intent(out) :: rand(:,:,:)
16856 character(*,SKG) , intent(in) :: lb, ub
16857 type(xoshiro256ssg_type) , intent(inout) :: rng
16858 end subroutine
16859#endif
16860
16861#if SK4_ENABLED
16862 PURE module subroutine setUnifRandRNGGLU_D3_SK4(rng, rand, lb, ub)
16863#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16864 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_SK4
16865#endif
16866 use pm_kind, only: SKG => SK4
16867 character(*,SKG) , intent(out) :: rand(:,:,:)
16868 character(*,SKG) , intent(in) :: lb, ub
16869 type(xoshiro256ssg_type) , intent(inout) :: rng
16870 end subroutine
16871#endif
16872
16873#if SK3_ENABLED
16874 PURE module subroutine setUnifRandRNGGLU_D3_SK3(rng, rand, lb, ub)
16875#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16876 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_SK3
16877#endif
16878 use pm_kind, only: SKG => SK3
16879 character(*,SKG) , intent(out) :: rand(:,:,:)
16880 character(*,SKG) , intent(in) :: lb, ub
16881 type(xoshiro256ssg_type) , intent(inout) :: rng
16882 end subroutine
16883#endif
16884
16885#if SK2_ENABLED
16886 PURE module subroutine setUnifRandRNGGLU_D3_SK2(rng, rand, lb, ub)
16887#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16888 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_SK2
16889#endif
16890 use pm_kind, only: SKG => SK2
16891 character(*,SKG) , intent(out) :: rand(:,:,:)
16892 character(*,SKG) , intent(in) :: lb, ub
16893 type(xoshiro256ssg_type) , intent(inout) :: rng
16894 end subroutine
16895#endif
16896
16897#if SK1_ENABLED
16898 PURE module subroutine setUnifRandRNGGLU_D3_SK1(rng, rand, lb, ub)
16899#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16900 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_SK1
16901#endif
16902 use pm_kind, only: SKG => SK1
16903 character(*,SKG) , intent(out) :: rand(:,:,:)
16904 character(*,SKG) , intent(in) :: lb, ub
16905 type(xoshiro256ssg_type) , intent(inout) :: rng
16906 end subroutine
16907#endif
16908
16909 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16910
16911#if IK5_ENABLED
16912 PURE module subroutine setUnifRandRNGGLU_D3_IK5(rng, rand, lb, ub)
16913#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16914 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_IK5
16915#endif
16916 use pm_kind, only: IKG => IK5
16917 integer(IKG) , intent(out) :: rand(:,:,:)
16918 integer(IKG) , intent(in) :: lb, ub
16919 type(xoshiro256ssg_type) , intent(inout) :: rng
16920 end subroutine
16921#endif
16922
16923#if IK4_ENABLED
16924 PURE module subroutine setUnifRandRNGGLU_D3_IK4(rng, rand, lb, ub)
16925#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16926 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_IK4
16927#endif
16928 use pm_kind, only: IKG => IK4
16929 integer(IKG) , intent(out) :: rand(:,:,:)
16930 integer(IKG) , intent(in) :: lb, ub
16931 type(xoshiro256ssg_type) , intent(inout) :: rng
16932 end subroutine
16933#endif
16934
16935#if IK3_ENABLED
16936 PURE module subroutine setUnifRandRNGGLU_D3_IK3(rng, rand, lb, ub)
16937#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16938 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_IK3
16939#endif
16940 use pm_kind, only: IKG => IK3
16941 integer(IKG) , intent(out) :: rand(:,:,:)
16942 integer(IKG) , intent(in) :: lb, ub
16943 type(xoshiro256ssg_type) , intent(inout) :: rng
16944 end subroutine
16945#endif
16946
16947#if IK2_ENABLED
16948 PURE module subroutine setUnifRandRNGGLU_D3_IK2(rng, rand, lb, ub)
16949#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16950 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_IK2
16951#endif
16952 use pm_kind, only: IKG => IK2
16953 integer(IKG) , intent(out) :: rand(:,:,:)
16954 integer(IKG) , intent(in) :: lb, ub
16955 type(xoshiro256ssg_type) , intent(inout) :: rng
16956 end subroutine
16957#endif
16958
16959#if IK1_ENABLED
16960 PURE module subroutine setUnifRandRNGGLU_D3_IK1(rng, rand, lb, ub)
16961#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16962 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_IK1
16963#endif
16964 use pm_kind, only: IKG => IK1
16965 integer(IKG) , intent(out) :: rand(:,:,:)
16966 integer(IKG) , intent(in) :: lb, ub
16967 type(xoshiro256ssg_type) , intent(inout) :: rng
16968 end subroutine
16969#endif
16970
16971 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16972
16973#if LK5_ENABLED
16974 PURE module subroutine setUnifRandRNGGLU_D3_LK5(rng, rand, lb, ub)
16975#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16976 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_LK5
16977#endif
16978 use pm_kind, only: LKG => LK5
16979 logical(LKG) , intent(out) :: rand(:,:,:)
16980 logical(LKG) , intent(in) :: lb, ub
16981 type(xoshiro256ssg_type) , intent(inout) :: rng
16982 end subroutine
16983#endif
16984
16985#if LK4_ENABLED
16986 PURE module subroutine setUnifRandRNGGLU_D3_LK4(rng, rand, lb, ub)
16987#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16988 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_LK4
16989#endif
16990 use pm_kind, only: LKG => LK4
16991 logical(LKG) , intent(out) :: rand(:,:,:)
16992 logical(LKG) , intent(in) :: lb, ub
16993 type(xoshiro256ssg_type) , intent(inout) :: rng
16994 end subroutine
16995#endif
16996
16997#if LK3_ENABLED
16998 PURE module subroutine setUnifRandRNGGLU_D3_LK3(rng, rand, lb, ub)
16999#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17000 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_LK3
17001#endif
17002 use pm_kind, only: LKG => LK3
17003 logical(LKG) , intent(out) :: rand(:,:,:)
17004 logical(LKG) , intent(in) :: lb, ub
17005 type(xoshiro256ssg_type) , intent(inout) :: rng
17006 end subroutine
17007#endif
17008
17009#if LK2_ENABLED
17010 PURE module subroutine setUnifRandRNGGLU_D3_LK2(rng, rand, lb, ub)
17011#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17012 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_LK2
17013#endif
17014 use pm_kind, only: LKG => LK2
17015 logical(LKG) , intent(out) :: rand(:,:,:)
17016 logical(LKG) , intent(in) :: lb, ub
17017 type(xoshiro256ssg_type) , intent(inout) :: rng
17018 end subroutine
17019#endif
17020
17021#if LK1_ENABLED
17022 PURE module subroutine setUnifRandRNGGLU_D3_LK1(rng, rand, lb, ub)
17023#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17024 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_LK1
17025#endif
17026 use pm_kind, only: LKG => LK1
17027 logical(LKG) , intent(out) :: rand(:,:,:)
17028 logical(LKG) , intent(in) :: lb, ub
17029 type(xoshiro256ssg_type) , intent(inout) :: rng
17030 end subroutine
17031#endif
17032
17033 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17034
17035#if CK5_ENABLED
17036 PURE module subroutine setUnifRandRNGGLU_D3_CK5(rng, rand, lb, ub)
17037#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17038 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_CK5
17039#endif
17040 use pm_kind, only: CKG => CK5
17041 complex(CKG) , intent(out) :: rand(:,:,:)
17042 complex(CKG) , intent(in) :: lb, ub
17043 type(xoshiro256ssg_type) , intent(inout) :: rng
17044 end subroutine
17045#endif
17046
17047#if CK4_ENABLED
17048 PURE module subroutine setUnifRandRNGGLU_D3_CK4(rng, rand, lb, ub)
17049#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17050 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_CK4
17051#endif
17052 use pm_kind, only: CKG => CK4
17053 complex(CKG) , intent(out) :: rand(:,:,:)
17054 complex(CKG) , intent(in) :: lb, ub
17055 type(xoshiro256ssg_type) , intent(inout) :: rng
17056 end subroutine
17057#endif
17058
17059#if CK3_ENABLED
17060 PURE module subroutine setUnifRandRNGGLU_D3_CK3(rng, rand, lb, ub)
17061#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17062 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_CK3
17063#endif
17064 use pm_kind, only: CKG => CK3
17065 complex(CKG) , intent(out) :: rand(:,:,:)
17066 complex(CKG) , intent(in) :: lb, ub
17067 type(xoshiro256ssg_type) , intent(inout) :: rng
17068 end subroutine
17069#endif
17070
17071#if CK2_ENABLED
17072 PURE module subroutine setUnifRandRNGGLU_D3_CK2(rng, rand, lb, ub)
17073#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17074 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_CK2
17075#endif
17076 use pm_kind, only: CKG => CK2
17077 complex(CKG) , intent(out) :: rand(:,:,:)
17078 complex(CKG) , intent(in) :: lb, ub
17079 type(xoshiro256ssg_type) , intent(inout) :: rng
17080 end subroutine
17081#endif
17082
17083#if CK1_ENABLED
17084 PURE module subroutine setUnifRandRNGGLU_D3_CK1(rng, rand, lb, ub)
17085#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17086 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_CK1
17087#endif
17088 use pm_kind, only: CKG => CK1
17089 complex(CKG) , intent(out) :: rand(:,:,:)
17090 complex(CKG) , intent(in) :: lb, ub
17091 type(xoshiro256ssg_type) , intent(inout) :: rng
17092 end subroutine
17093#endif
17094
17095 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17096
17097#if RK5_ENABLED
17098 PURE module subroutine setUnifRandRNGGLU_D3_RK5(rng, rand, lb, ub)
17099#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17100 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_RK5
17101#endif
17102 use pm_kind, only: RKG => RK5
17103 real(RKG) , intent(out) :: rand(:,:,:)
17104 real(RKG) , intent(in) :: lb, ub
17105 type(xoshiro256ssg_type) , intent(inout) :: rng
17106 end subroutine
17107#endif
17108
17109#if RK4_ENABLED
17110 PURE module subroutine setUnifRandRNGGLU_D3_RK4(rng, rand, lb, ub)
17111#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17112 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_RK4
17113#endif
17114 use pm_kind, only: RKG => RK4
17115 real(RKG) , intent(out) :: rand(:,:,:)
17116 real(RKG) , intent(in) :: lb, ub
17117 type(xoshiro256ssg_type) , intent(inout) :: rng
17118 end subroutine
17119#endif
17120
17121#if RK3_ENABLED
17122 PURE module subroutine setUnifRandRNGGLU_D3_RK3(rng, rand, lb, ub)
17123#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17124 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_RK3
17125#endif
17126 use pm_kind, only: RKG => RK3
17127 real(RKG) , intent(out) :: rand(:,:,:)
17128 real(RKG) , intent(in) :: lb, ub
17129 type(xoshiro256ssg_type) , intent(inout) :: rng
17130 end subroutine
17131#endif
17132
17133#if RK2_ENABLED
17134 PURE module subroutine setUnifRandRNGGLU_D3_RK2(rng, rand, lb, ub)
17135#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17136 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_RK2
17137#endif
17138 use pm_kind, only: RKG => RK2
17139 real(RKG) , intent(out) :: rand(:,:,:)
17140 real(RKG) , intent(in) :: lb, ub
17141 type(xoshiro256ssg_type) , intent(inout) :: rng
17142 end subroutine
17143#endif
17144
17145#if RK1_ENABLED
17146 PURE module subroutine setUnifRandRNGGLU_D3_RK1(rng, rand, lb, ub)
17147#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17148 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_RK1
17149#endif
17150 use pm_kind, only: RKG => RK1
17151 real(RKG) , intent(out) :: rand(:,:,:)
17152 real(RKG) , intent(in) :: lb, ub
17153 type(xoshiro256ssg_type) , intent(inout) :: rng
17154 end subroutine
17155#endif
17156
17157 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17158
17159 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17160 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17161 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17162
17163 end interface
17164
17165 ! RNGS
17166
17167 interface setUnifRand
17168
17169 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17170 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17171 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17172
17173 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17174
17175#if SK5_ENABLED
17176 PURE elemental module subroutine setUnifRandRNGXDD_D0_SK5(rng, rand)
17177#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17178 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_SK5
17179#endif
17180 use pm_kind, only: SKG => SK5
17181 character(*,SKG) , intent(out) :: rand
17182 type(xoshiro256ssw_type) , intent(inout) :: rng
17183 end subroutine
17184#endif
17185
17186#if SK4_ENABLED
17187 PURE elemental module subroutine setUnifRandRNGXDD_D0_SK4(rng, rand)
17188#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17189 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_SK4
17190#endif
17191 use pm_kind, only: SKG => SK4
17192 character(*,SKG) , intent(out) :: rand
17193 type(xoshiro256ssw_type) , intent(inout) :: rng
17194 end subroutine
17195#endif
17196
17197#if SK3_ENABLED
17198 PURE elemental module subroutine setUnifRandRNGXDD_D0_SK3(rng, rand)
17199#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17200 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_SK3
17201#endif
17202 use pm_kind, only: SKG => SK3
17203 character(*,SKG) , intent(out) :: rand
17204 type(xoshiro256ssw_type) , intent(inout) :: rng
17205 end subroutine
17206#endif
17207
17208#if SK2_ENABLED
17209 PURE elemental module subroutine setUnifRandRNGXDD_D0_SK2(rng, rand)
17210#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17211 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_SK2
17212#endif
17213 use pm_kind, only: SKG => SK2
17214 character(*,SKG) , intent(out) :: rand
17215 type(xoshiro256ssw_type) , intent(inout) :: rng
17216 end subroutine
17217#endif
17218
17219#if SK1_ENABLED
17220 PURE elemental module subroutine setUnifRandRNGXDD_D0_SK1(rng, rand)
17221#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17222 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_SK1
17223#endif
17224 use pm_kind, only: SKG => SK1
17225 character(*,SKG) , intent(out) :: rand
17226 type(xoshiro256ssw_type) , intent(inout) :: rng
17227 end subroutine
17228#endif
17229
17230 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17231
17232#if IK5_ENABLED
17233 PURE elemental module subroutine setUnifRandRNGXDD_D0_IK5(rng, rand)
17234#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17235 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_IK5
17236#endif
17237 use pm_kind, only: IKG => IK5
17238 integer(IKG) , intent(out) :: rand
17239 type(xoshiro256ssw_type) , intent(inout) :: rng
17240 end subroutine
17241#endif
17242
17243#if IK4_ENABLED
17244 PURE elemental module subroutine setUnifRandRNGXDD_D0_IK4(rng, rand)
17245#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17246 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_IK4
17247#endif
17248 use pm_kind, only: IKG => IK4
17249 integer(IKG) , intent(out) :: rand
17250 type(xoshiro256ssw_type) , intent(inout) :: rng
17251 end subroutine
17252#endif
17253
17254#if IK3_ENABLED
17255 PURE elemental module subroutine setUnifRandRNGXDD_D0_IK3(rng, rand)
17256#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17257 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_IK3
17258#endif
17259 use pm_kind, only: IKG => IK3
17260 integer(IKG) , intent(out) :: rand
17261 type(xoshiro256ssw_type) , intent(inout) :: rng
17262 end subroutine
17263#endif
17264
17265#if IK2_ENABLED
17266 PURE elemental module subroutine setUnifRandRNGXDD_D0_IK2(rng, rand)
17267#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17268 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_IK2
17269#endif
17270 use pm_kind, only: IKG => IK2
17271 integer(IKG) , intent(out) :: rand
17272 type(xoshiro256ssw_type) , intent(inout) :: rng
17273 end subroutine
17274#endif
17275
17276#if IK1_ENABLED
17277 PURE elemental module subroutine setUnifRandRNGXDD_D0_IK1(rng, rand)
17278#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17279 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_IK1
17280#endif
17281 use pm_kind, only: IKG => IK1
17282 integer(IKG) , intent(out) :: rand
17283 type(xoshiro256ssw_type) , intent(inout) :: rng
17284 end subroutine
17285#endif
17286
17287 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17288
17289#if LK5_ENABLED
17290 PURE elemental module subroutine setUnifRandRNGXDD_D0_LK5(rng, rand)
17291#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17292 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_LK5
17293#endif
17294 use pm_kind, only: LKG => LK5
17295 logical(LKG) , intent(out) :: rand
17296 type(xoshiro256ssw_type) , intent(inout) :: rng
17297 end subroutine
17298#endif
17299
17300#if LK4_ENABLED
17301 PURE elemental module subroutine setUnifRandRNGXDD_D0_LK4(rng, rand)
17302#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17303 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_LK4
17304#endif
17305 use pm_kind, only: LKG => LK4
17306 logical(LKG) , intent(out) :: rand
17307 type(xoshiro256ssw_type) , intent(inout) :: rng
17308 end subroutine
17309#endif
17310
17311#if LK3_ENABLED
17312 PURE elemental module subroutine setUnifRandRNGXDD_D0_LK3(rng, rand)
17313#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17314 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_LK3
17315#endif
17316 use pm_kind, only: LKG => LK3
17317 logical(LKG) , intent(out) :: rand
17318 type(xoshiro256ssw_type) , intent(inout) :: rng
17319 end subroutine
17320#endif
17321
17322#if LK2_ENABLED
17323 PURE elemental module subroutine setUnifRandRNGXDD_D0_LK2(rng, rand)
17324#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17325 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_LK2
17326#endif
17327 use pm_kind, only: LKG => LK2
17328 logical(LKG) , intent(out) :: rand
17329 type(xoshiro256ssw_type) , intent(inout) :: rng
17330 end subroutine
17331#endif
17332
17333#if LK1_ENABLED
17334 PURE elemental module subroutine setUnifRandRNGXDD_D0_LK1(rng, rand)
17335#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17336 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_LK1
17337#endif
17338 use pm_kind, only: LKG => LK1
17339 logical(LKG) , intent(out) :: rand
17340 type(xoshiro256ssw_type) , intent(inout) :: rng
17341 end subroutine
17342#endif
17343
17344 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17345
17346#if CK5_ENABLED
17347 PURE elemental module subroutine setUnifRandRNGXDD_D0_CK5(rng, rand)
17348#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17349 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_CK5
17350#endif
17351 use pm_kind, only: CKG => CK5
17352 complex(CKG) , intent(out) :: rand
17353 type(xoshiro256ssw_type) , intent(inout) :: rng
17354 end subroutine
17355#endif
17356
17357#if CK4_ENABLED
17358 PURE elemental module subroutine setUnifRandRNGXDD_D0_CK4(rng, rand)
17359#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17360 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_CK4
17361#endif
17362 use pm_kind, only: CKG => CK4
17363 complex(CKG) , intent(out) :: rand
17364 type(xoshiro256ssw_type) , intent(inout) :: rng
17365 end subroutine
17366#endif
17367
17368#if CK3_ENABLED
17369 PURE elemental module subroutine setUnifRandRNGXDD_D0_CK3(rng, rand)
17370#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17371 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_CK3
17372#endif
17373 use pm_kind, only: CKG => CK3
17374 complex(CKG) , intent(out) :: rand
17375 type(xoshiro256ssw_type) , intent(inout) :: rng
17376 end subroutine
17377#endif
17378
17379#if CK2_ENABLED
17380 PURE elemental module subroutine setUnifRandRNGXDD_D0_CK2(rng, rand)
17381#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17382 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_CK2
17383#endif
17384 use pm_kind, only: CKG => CK2
17385 complex(CKG) , intent(out) :: rand
17386 type(xoshiro256ssw_type) , intent(inout) :: rng
17387 end subroutine
17388#endif
17389
17390#if CK1_ENABLED
17391 PURE elemental module subroutine setUnifRandRNGXDD_D0_CK1(rng, rand)
17392#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17393 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_CK1
17394#endif
17395 use pm_kind, only: CKG => CK1
17396 complex(CKG) , intent(out) :: rand
17397 type(xoshiro256ssw_type) , intent(inout) :: rng
17398 end subroutine
17399#endif
17400
17401 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17402
17403#if RK5_ENABLED
17404 PURE elemental module subroutine setUnifRandRNGXDD_D0_RK5(rng, rand)
17405#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17406 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_RK5
17407#endif
17408 use pm_kind, only: RKG => RK5
17409 real(RKG) , intent(out) :: rand
17410 type(xoshiro256ssw_type) , intent(inout) :: rng
17411 end subroutine
17412#endif
17413
17414#if RK4_ENABLED
17415 PURE elemental module subroutine setUnifRandRNGXDD_D0_RK4(rng, rand)
17416#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17417 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_RK4
17418#endif
17419 use pm_kind, only: RKG => RK4
17420 real(RKG) , intent(out) :: rand
17421 type(xoshiro256ssw_type) , intent(inout) :: rng
17422 end subroutine
17423#endif
17424
17425#if RK3_ENABLED
17426 PURE elemental module subroutine setUnifRandRNGXDD_D0_RK3(rng, rand)
17427#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17428 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_RK3
17429#endif
17430 use pm_kind, only: RKG => RK3
17431 real(RKG) , intent(out) :: rand
17432 type(xoshiro256ssw_type) , intent(inout) :: rng
17433 end subroutine
17434#endif
17435
17436#if RK2_ENABLED
17437 PURE elemental module subroutine setUnifRandRNGXDD_D0_RK2(rng, rand)
17438#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17439 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_RK2
17440#endif
17441 use pm_kind, only: RKG => RK2
17442 real(RKG) , intent(out) :: rand
17443 type(xoshiro256ssw_type) , intent(inout) :: rng
17444 end subroutine
17445#endif
17446
17447#if RK1_ENABLED
17448 PURE elemental module subroutine setUnifRandRNGXDD_D0_RK1(rng, rand)
17449#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17450 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_RK1
17451#endif
17452 use pm_kind, only: RKG => RK1
17453 real(RKG) , intent(out) :: rand
17454 type(xoshiro256ssw_type) , intent(inout) :: rng
17455 end subroutine
17456#endif
17457
17458 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17459
17460 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17461 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17462 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17463
17464 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17465
17466#if SK5_ENABLED
17467 PURE elemental module subroutine setUnifRandRNGXLU_D0_SK5(rng, rand, lb, ub)
17468#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17469 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_SK5
17470#endif
17471 use pm_kind, only: SKG => SK5
17472 character(*,SKG) , intent(out) :: rand
17473 character(*,SKG) , intent(in) :: lb, ub
17474 type(xoshiro256ssw_type) , intent(inout) :: rng
17475 end subroutine
17476#endif
17477
17478#if SK4_ENABLED
17479 PURE elemental module subroutine setUnifRandRNGXLU_D0_SK4(rng, rand, lb, ub)
17480#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17481 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_SK4
17482#endif
17483 use pm_kind, only: SKG => SK4
17484 character(*,SKG) , intent(out) :: rand
17485 character(*,SKG) , intent(in) :: lb, ub
17486 type(xoshiro256ssw_type) , intent(inout) :: rng
17487 end subroutine
17488#endif
17489
17490#if SK3_ENABLED
17491 PURE elemental module subroutine setUnifRandRNGXLU_D0_SK3(rng, rand, lb, ub)
17492#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17493 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_SK3
17494#endif
17495 use pm_kind, only: SKG => SK3
17496 character(*,SKG) , intent(out) :: rand
17497 character(*,SKG) , intent(in) :: lb, ub
17498 type(xoshiro256ssw_type) , intent(inout) :: rng
17499 end subroutine
17500#endif
17501
17502#if SK2_ENABLED
17503 PURE elemental module subroutine setUnifRandRNGXLU_D0_SK2(rng, rand, lb, ub)
17504#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17505 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_SK2
17506#endif
17507 use pm_kind, only: SKG => SK2
17508 character(*,SKG) , intent(out) :: rand
17509 character(*,SKG) , intent(in) :: lb, ub
17510 type(xoshiro256ssw_type) , intent(inout) :: rng
17511 end subroutine
17512#endif
17513
17514#if SK1_ENABLED
17515 PURE elemental module subroutine setUnifRandRNGXLU_D0_SK1(rng, rand, lb, ub)
17516#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17517 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_SK1
17518#endif
17519 use pm_kind, only: SKG => SK1
17520 character(*,SKG) , intent(out) :: rand
17521 character(*,SKG) , intent(in) :: lb, ub
17522 type(xoshiro256ssw_type) , intent(inout) :: rng
17523 end subroutine
17524#endif
17525
17526 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17527
17528#if IK5_ENABLED
17529 PURE elemental module subroutine setUnifRandRNGXLU_D0_IK5(rng, rand, lb, ub)
17530#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17531 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_IK5
17532#endif
17533 use pm_kind, only: IKG => IK5
17534 integer(IKG) , intent(out) :: rand
17535 integer(IKG) , intent(in) :: lb, ub
17536 type(xoshiro256ssw_type) , intent(inout) :: rng
17537 end subroutine
17538#endif
17539
17540#if IK4_ENABLED
17541 PURE elemental module subroutine setUnifRandRNGXLU_D0_IK4(rng, rand, lb, ub)
17542#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17543 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_IK4
17544#endif
17545 use pm_kind, only: IKG => IK4
17546 integer(IKG) , intent(out) :: rand
17547 integer(IKG) , intent(in) :: lb, ub
17548 type(xoshiro256ssw_type) , intent(inout) :: rng
17549 end subroutine
17550#endif
17551
17552#if IK3_ENABLED
17553 PURE elemental module subroutine setUnifRandRNGXLU_D0_IK3(rng, rand, lb, ub)
17554#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17555 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_IK3
17556#endif
17557 use pm_kind, only: IKG => IK3
17558 integer(IKG) , intent(out) :: rand
17559 integer(IKG) , intent(in) :: lb, ub
17560 type(xoshiro256ssw_type) , intent(inout) :: rng
17561 end subroutine
17562#endif
17563
17564#if IK2_ENABLED
17565 PURE elemental module subroutine setUnifRandRNGXLU_D0_IK2(rng, rand, lb, ub)
17566#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17567 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_IK2
17568#endif
17569 use pm_kind, only: IKG => IK2
17570 integer(IKG) , intent(out) :: rand
17571 integer(IKG) , intent(in) :: lb, ub
17572 type(xoshiro256ssw_type) , intent(inout) :: rng
17573 end subroutine
17574#endif
17575
17576#if IK1_ENABLED
17577 PURE elemental module subroutine setUnifRandRNGXLU_D0_IK1(rng, rand, lb, ub)
17578#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17579 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_IK1
17580#endif
17581 use pm_kind, only: IKG => IK1
17582 integer(IKG) , intent(out) :: rand
17583 integer(IKG) , intent(in) :: lb, ub
17584 type(xoshiro256ssw_type) , intent(inout) :: rng
17585 end subroutine
17586#endif
17587
17588 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17589
17590#if LK5_ENABLED
17591 PURE elemental module subroutine setUnifRandRNGXLU_D0_LK5(rng, rand, lb, ub)
17592#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17593 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_LK5
17594#endif
17595 use pm_kind, only: LKG => LK5
17596 logical(LKG) , intent(out) :: rand
17597 logical(LKG) , intent(in) :: lb, ub
17598 type(xoshiro256ssw_type) , intent(inout) :: rng
17599 end subroutine
17600#endif
17601
17602#if LK4_ENABLED
17603 PURE elemental module subroutine setUnifRandRNGXLU_D0_LK4(rng, rand, lb, ub)
17604#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17605 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_LK4
17606#endif
17607 use pm_kind, only: LKG => LK4
17608 logical(LKG) , intent(out) :: rand
17609 logical(LKG) , intent(in) :: lb, ub
17610 type(xoshiro256ssw_type) , intent(inout) :: rng
17611 end subroutine
17612#endif
17613
17614#if LK3_ENABLED
17615 PURE elemental module subroutine setUnifRandRNGXLU_D0_LK3(rng, rand, lb, ub)
17616#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17617 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_LK3
17618#endif
17619 use pm_kind, only: LKG => LK3
17620 logical(LKG) , intent(out) :: rand
17621 logical(LKG) , intent(in) :: lb, ub
17622 type(xoshiro256ssw_type) , intent(inout) :: rng
17623 end subroutine
17624#endif
17625
17626#if LK2_ENABLED
17627 PURE elemental module subroutine setUnifRandRNGXLU_D0_LK2(rng, rand, lb, ub)
17628#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17629 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_LK2
17630#endif
17631 use pm_kind, only: LKG => LK2
17632 logical(LKG) , intent(out) :: rand
17633 logical(LKG) , intent(in) :: lb, ub
17634 type(xoshiro256ssw_type) , intent(inout) :: rng
17635 end subroutine
17636#endif
17637
17638#if LK1_ENABLED
17639 PURE elemental module subroutine setUnifRandRNGXLU_D0_LK1(rng, rand, lb, ub)
17640#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17641 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_LK1
17642#endif
17643 use pm_kind, only: LKG => LK1
17644 logical(LKG) , intent(out) :: rand
17645 logical(LKG) , intent(in) :: lb, ub
17646 type(xoshiro256ssw_type) , intent(inout) :: rng
17647 end subroutine
17648#endif
17649
17650 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17651
17652#if CK5_ENABLED
17653 PURE elemental module subroutine setUnifRandRNGXLU_D0_CK5(rng, rand, lb, ub)
17654#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17655 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_CK5
17656#endif
17657 use pm_kind, only: CKG => CK5
17658 complex(CKG) , intent(out) :: rand
17659 complex(CKG) , intent(in) :: lb, ub
17660 type(xoshiro256ssw_type) , intent(inout) :: rng
17661 end subroutine
17662#endif
17663
17664#if CK4_ENABLED
17665 PURE elemental module subroutine setUnifRandRNGXLU_D0_CK4(rng, rand, lb, ub)
17666#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17667 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_CK4
17668#endif
17669 use pm_kind, only: CKG => CK4
17670 complex(CKG) , intent(out) :: rand
17671 complex(CKG) , intent(in) :: lb, ub
17672 type(xoshiro256ssw_type) , intent(inout) :: rng
17673 end subroutine
17674#endif
17675
17676#if CK3_ENABLED
17677 PURE elemental module subroutine setUnifRandRNGXLU_D0_CK3(rng, rand, lb, ub)
17678#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17679 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_CK3
17680#endif
17681 use pm_kind, only: CKG => CK3
17682 complex(CKG) , intent(out) :: rand
17683 complex(CKG) , intent(in) :: lb, ub
17684 type(xoshiro256ssw_type) , intent(inout) :: rng
17685 end subroutine
17686#endif
17687
17688#if CK2_ENABLED
17689 PURE elemental module subroutine setUnifRandRNGXLU_D0_CK2(rng, rand, lb, ub)
17690#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17691 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_CK2
17692#endif
17693 use pm_kind, only: CKG => CK2
17694 complex(CKG) , intent(out) :: rand
17695 complex(CKG) , intent(in) :: lb, ub
17696 type(xoshiro256ssw_type) , intent(inout) :: rng
17697 end subroutine
17698#endif
17699
17700#if CK1_ENABLED
17701 PURE elemental module subroutine setUnifRandRNGXLU_D0_CK1(rng, rand, lb, ub)
17702#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17703 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_CK1
17704#endif
17705 use pm_kind, only: CKG => CK1
17706 complex(CKG) , intent(out) :: rand
17707 complex(CKG) , intent(in) :: lb, ub
17708 type(xoshiro256ssw_type) , intent(inout) :: rng
17709 end subroutine
17710#endif
17711
17712 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17713
17714#if RK5_ENABLED
17715 PURE elemental module subroutine setUnifRandRNGXLU_D0_RK5(rng, rand, lb, ub)
17716#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17717 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_RK5
17718#endif
17719 use pm_kind, only: RKG => RK5
17720 real(RKG) , intent(out) :: rand
17721 real(RKG) , intent(in) :: lb, ub
17722 type(xoshiro256ssw_type) , intent(inout) :: rng
17723 end subroutine
17724#endif
17725
17726#if RK4_ENABLED
17727 PURE elemental module subroutine setUnifRandRNGXLU_D0_RK4(rng, rand, lb, ub)
17728#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17729 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_RK4
17730#endif
17731 use pm_kind, only: RKG => RK4
17732 real(RKG) , intent(out) :: rand
17733 real(RKG) , intent(in) :: lb, ub
17734 type(xoshiro256ssw_type) , intent(inout) :: rng
17735 end subroutine
17736#endif
17737
17738#if RK3_ENABLED
17739 PURE elemental module subroutine setUnifRandRNGXLU_D0_RK3(rng, rand, lb, ub)
17740#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17741 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_RK3
17742#endif
17743 use pm_kind, only: RKG => RK3
17744 real(RKG) , intent(out) :: rand
17745 real(RKG) , intent(in) :: lb, ub
17746 type(xoshiro256ssw_type) , intent(inout) :: rng
17747 end subroutine
17748#endif
17749
17750#if RK2_ENABLED
17751 PURE elemental module subroutine setUnifRandRNGXLU_D0_RK2(rng, rand, lb, ub)
17752#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17753 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_RK2
17754#endif
17755 use pm_kind, only: RKG => RK2
17756 real(RKG) , intent(out) :: rand
17757 real(RKG) , intent(in) :: lb, ub
17758 type(xoshiro256ssw_type) , intent(inout) :: rng
17759 end subroutine
17760#endif
17761
17762#if RK1_ENABLED
17763 PURE elemental module subroutine setUnifRandRNGXLU_D0_RK1(rng, rand, lb, ub)
17764#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17765 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_RK1
17766#endif
17767 use pm_kind, only: RKG => RK1
17768 real(RKG) , intent(out) :: rand
17769 real(RKG) , intent(in) :: lb, ub
17770 type(xoshiro256ssw_type) , intent(inout) :: rng
17771 end subroutine
17772#endif
17773
17774 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17775
17776 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17777 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17778 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17779
17780 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17781 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17782 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17783
17784 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17785
17786#if SK5_ENABLED
17787 PURE module subroutine setUnifRandRNGXDD_D1_SK5(rng, rand)
17788#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17789 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_SK5
17790#endif
17791 use pm_kind, only: SKG => SK5
17792 character(*,SKG) , intent(out) :: rand(:)
17793 type(xoshiro256ssw_type) , intent(inout) :: rng
17794 end subroutine
17795#endif
17796
17797#if SK4_ENABLED
17798 PURE module subroutine setUnifRandRNGXDD_D1_SK4(rng, rand)
17799#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17800 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_SK4
17801#endif
17802 use pm_kind, only: SKG => SK4
17803 character(*,SKG) , intent(out) :: rand(:)
17804 type(xoshiro256ssw_type) , intent(inout) :: rng
17805 end subroutine
17806#endif
17807
17808#if SK3_ENABLED
17809 PURE module subroutine setUnifRandRNGXDD_D1_SK3(rng, rand)
17810#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17811 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_SK3
17812#endif
17813 use pm_kind, only: SKG => SK3
17814 character(*,SKG) , intent(out) :: rand(:)
17815 type(xoshiro256ssw_type) , intent(inout) :: rng
17816 end subroutine
17817#endif
17818
17819#if SK2_ENABLED
17820 PURE module subroutine setUnifRandRNGXDD_D1_SK2(rng, rand)
17821#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17822 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_SK2
17823#endif
17824 use pm_kind, only: SKG => SK2
17825 character(*,SKG) , intent(out) :: rand(:)
17826 type(xoshiro256ssw_type) , intent(inout) :: rng
17827 end subroutine
17828#endif
17829
17830#if SK1_ENABLED
17831 PURE module subroutine setUnifRandRNGXDD_D1_SK1(rng, rand)
17832#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17833 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_SK1
17834#endif
17835 use pm_kind, only: SKG => SK1
17836 character(*,SKG) , intent(out) :: rand(:)
17837 type(xoshiro256ssw_type) , intent(inout) :: rng
17838 end subroutine
17839#endif
17840
17841 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17842
17843#if IK5_ENABLED
17844 PURE module subroutine setUnifRandRNGXDD_D1_IK5(rng, rand)
17845#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17846 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_IK5
17847#endif
17848 use pm_kind, only: IKG => IK5
17849 integer(IKG) , intent(out) :: rand(:)
17850 type(xoshiro256ssw_type) , intent(inout) :: rng
17851 end subroutine
17852#endif
17853
17854#if IK4_ENABLED
17855 PURE module subroutine setUnifRandRNGXDD_D1_IK4(rng, rand)
17856#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17857 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_IK4
17858#endif
17859 use pm_kind, only: IKG => IK4
17860 integer(IKG) , intent(out) :: rand(:)
17861 type(xoshiro256ssw_type) , intent(inout) :: rng
17862 end subroutine
17863#endif
17864
17865#if IK3_ENABLED
17866 PURE module subroutine setUnifRandRNGXDD_D1_IK3(rng, rand)
17867#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17868 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_IK3
17869#endif
17870 use pm_kind, only: IKG => IK3
17871 integer(IKG) , intent(out) :: rand(:)
17872 type(xoshiro256ssw_type) , intent(inout) :: rng
17873 end subroutine
17874#endif
17875
17876#if IK2_ENABLED
17877 PURE module subroutine setUnifRandRNGXDD_D1_IK2(rng, rand)
17878#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17879 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_IK2
17880#endif
17881 use pm_kind, only: IKG => IK2
17882 integer(IKG) , intent(out) :: rand(:)
17883 type(xoshiro256ssw_type) , intent(inout) :: rng
17884 end subroutine
17885#endif
17886
17887#if IK1_ENABLED
17888 PURE module subroutine setUnifRandRNGXDD_D1_IK1(rng, rand)
17889#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17890 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_IK1
17891#endif
17892 use pm_kind, only: IKG => IK1
17893 integer(IKG) , intent(out) :: rand(:)
17894 type(xoshiro256ssw_type) , intent(inout) :: rng
17895 end subroutine
17896#endif
17897
17898 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17899
17900#if LK5_ENABLED
17901 PURE module subroutine setUnifRandRNGXDD_D1_LK5(rng, rand)
17902#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17903 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_LK5
17904#endif
17905 use pm_kind, only: LKG => LK5
17906 logical(LKG) , intent(out) :: rand(:)
17907 type(xoshiro256ssw_type) , intent(inout) :: rng
17908 end subroutine
17909#endif
17910
17911#if LK4_ENABLED
17912 PURE module subroutine setUnifRandRNGXDD_D1_LK4(rng, rand)
17913#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17914 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_LK4
17915#endif
17916 use pm_kind, only: LKG => LK4
17917 logical(LKG) , intent(out) :: rand(:)
17918 type(xoshiro256ssw_type) , intent(inout) :: rng
17919 end subroutine
17920#endif
17921
17922#if LK3_ENABLED
17923 PURE module subroutine setUnifRandRNGXDD_D1_LK3(rng, rand)
17924#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17925 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_LK3
17926#endif
17927 use pm_kind, only: LKG => LK3
17928 logical(LKG) , intent(out) :: rand(:)
17929 type(xoshiro256ssw_type) , intent(inout) :: rng
17930 end subroutine
17931#endif
17932
17933#if LK2_ENABLED
17934 PURE module subroutine setUnifRandRNGXDD_D1_LK2(rng, rand)
17935#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17936 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_LK2
17937#endif
17938 use pm_kind, only: LKG => LK2
17939 logical(LKG) , intent(out) :: rand(:)
17940 type(xoshiro256ssw_type) , intent(inout) :: rng
17941 end subroutine
17942#endif
17943
17944#if LK1_ENABLED
17945 PURE module subroutine setUnifRandRNGXDD_D1_LK1(rng, rand)
17946#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17947 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_LK1
17948#endif
17949 use pm_kind, only: LKG => LK1
17950 logical(LKG) , intent(out) :: rand(:)
17951 type(xoshiro256ssw_type) , intent(inout) :: rng
17952 end subroutine
17953#endif
17954
17955 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17956
17957#if CK5_ENABLED
17958 PURE module subroutine setUnifRandRNGXDD_D1_CK5(rng, rand)
17959#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17960 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_CK5
17961#endif
17962 use pm_kind, only: CKG => CK5
17963 complex(CKG) , intent(out) :: rand(:)
17964 type(xoshiro256ssw_type) , intent(inout) :: rng
17965 end subroutine
17966#endif
17967
17968#if CK4_ENABLED
17969 PURE module subroutine setUnifRandRNGXDD_D1_CK4(rng, rand)
17970#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17971 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_CK4
17972#endif
17973 use pm_kind, only: CKG => CK4
17974 complex(CKG) , intent(out) :: rand(:)
17975 type(xoshiro256ssw_type) , intent(inout) :: rng
17976 end subroutine
17977#endif
17978
17979#if CK3_ENABLED
17980 PURE module subroutine setUnifRandRNGXDD_D1_CK3(rng, rand)
17981#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17982 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_CK3
17983#endif
17984 use pm_kind, only: CKG => CK3
17985 complex(CKG) , intent(out) :: rand(:)
17986 type(xoshiro256ssw_type) , intent(inout) :: rng
17987 end subroutine
17988#endif
17989
17990#if CK2_ENABLED
17991 PURE module subroutine setUnifRandRNGXDD_D1_CK2(rng, rand)
17992#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17993 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_CK2
17994#endif
17995 use pm_kind, only: CKG => CK2
17996 complex(CKG) , intent(out) :: rand(:)
17997 type(xoshiro256ssw_type) , intent(inout) :: rng
17998 end subroutine
17999#endif
18000
18001#if CK1_ENABLED
18002 PURE module subroutine setUnifRandRNGXDD_D1_CK1(rng, rand)
18003#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18004 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_CK1
18005#endif
18006 use pm_kind, only: CKG => CK1
18007 complex(CKG) , intent(out) :: rand(:)
18008 type(xoshiro256ssw_type) , intent(inout) :: rng
18009 end subroutine
18010#endif
18011
18012 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18013
18014#if RK5_ENABLED
18015 PURE module subroutine setUnifRandRNGXDD_D1_RK5(rng, rand)
18016#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18017 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_RK5
18018#endif
18019 use pm_kind, only: RKG => RK5
18020 real(RKG) , intent(out) :: rand(:)
18021 type(xoshiro256ssw_type) , intent(inout) :: rng
18022 end subroutine
18023#endif
18024
18025#if RK4_ENABLED
18026 PURE module subroutine setUnifRandRNGXDD_D1_RK4(rng, rand)
18027#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18028 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_RK4
18029#endif
18030 use pm_kind, only: RKG => RK4
18031 real(RKG) , intent(out) :: rand(:)
18032 type(xoshiro256ssw_type) , intent(inout) :: rng
18033 end subroutine
18034#endif
18035
18036#if RK3_ENABLED
18037 PURE module subroutine setUnifRandRNGXDD_D1_RK3(rng, rand)
18038#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18039 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_RK3
18040#endif
18041 use pm_kind, only: RKG => RK3
18042 real(RKG) , intent(out) :: rand(:)
18043 type(xoshiro256ssw_type) , intent(inout) :: rng
18044 end subroutine
18045#endif
18046
18047#if RK2_ENABLED
18048 PURE module subroutine setUnifRandRNGXDD_D1_RK2(rng, rand)
18049#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18050 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_RK2
18051#endif
18052 use pm_kind, only: RKG => RK2
18053 real(RKG) , intent(out) :: rand(:)
18054 type(xoshiro256ssw_type) , intent(inout) :: rng
18055 end subroutine
18056#endif
18057
18058#if RK1_ENABLED
18059 PURE module subroutine setUnifRandRNGXDD_D1_RK1(rng, rand)
18060#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18061 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_RK1
18062#endif
18063 use pm_kind, only: RKG => RK1
18064 real(RKG) , intent(out) :: rand(:)
18065 type(xoshiro256ssw_type) , intent(inout) :: rng
18066 end subroutine
18067#endif
18068
18069 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18070
18071 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18072 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18073 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18074
18075 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18076
18077#if SK5_ENABLED
18078 PURE module subroutine setUnifRandRNGXLU_D1_SK5(rng, rand, lb, ub)
18079#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18080 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_SK5
18081#endif
18082 use pm_kind, only: SKG => SK5
18083 character(*,SKG) , intent(out) :: rand(:)
18084 character(*,SKG) , intent(in) :: lb, ub
18085 type(xoshiro256ssw_type) , intent(inout) :: rng
18086 end subroutine
18087#endif
18088
18089#if SK4_ENABLED
18090 PURE module subroutine setUnifRandRNGXLU_D1_SK4(rng, rand, lb, ub)
18091#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18092 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_SK4
18093#endif
18094 use pm_kind, only: SKG => SK4
18095 character(*,SKG) , intent(out) :: rand(:)
18096 character(*,SKG) , intent(in) :: lb, ub
18097 type(xoshiro256ssw_type) , intent(inout) :: rng
18098 end subroutine
18099#endif
18100
18101#if SK3_ENABLED
18102 PURE module subroutine setUnifRandRNGXLU_D1_SK3(rng, rand, lb, ub)
18103#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18104 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_SK3
18105#endif
18106 use pm_kind, only: SKG => SK3
18107 character(*,SKG) , intent(out) :: rand(:)
18108 character(*,SKG) , intent(in) :: lb, ub
18109 type(xoshiro256ssw_type) , intent(inout) :: rng
18110 end subroutine
18111#endif
18112
18113#if SK2_ENABLED
18114 PURE module subroutine setUnifRandRNGXLU_D1_SK2(rng, rand, lb, ub)
18115#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18116 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_SK2
18117#endif
18118 use pm_kind, only: SKG => SK2
18119 character(*,SKG) , intent(out) :: rand(:)
18120 character(*,SKG) , intent(in) :: lb, ub
18121 type(xoshiro256ssw_type) , intent(inout) :: rng
18122 end subroutine
18123#endif
18124
18125#if SK1_ENABLED
18126 PURE module subroutine setUnifRandRNGXLU_D1_SK1(rng, rand, lb, ub)
18127#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18128 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_SK1
18129#endif
18130 use pm_kind, only: SKG => SK1
18131 character(*,SKG) , intent(out) :: rand(:)
18132 character(*,SKG) , intent(in) :: lb, ub
18133 type(xoshiro256ssw_type) , intent(inout) :: rng
18134 end subroutine
18135#endif
18136
18137 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18138
18139#if IK5_ENABLED
18140 PURE module subroutine setUnifRandRNGXLU_D1_IK5(rng, rand, lb, ub)
18141#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18142 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_IK5
18143#endif
18144 use pm_kind, only: IKG => IK5
18145 integer(IKG) , intent(out) :: rand(:)
18146 integer(IKG) , intent(in) :: lb, ub
18147 type(xoshiro256ssw_type) , intent(inout) :: rng
18148 end subroutine
18149#endif
18150
18151#if IK4_ENABLED
18152 PURE module subroutine setUnifRandRNGXLU_D1_IK4(rng, rand, lb, ub)
18153#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18154 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_IK4
18155#endif
18156 use pm_kind, only: IKG => IK4
18157 integer(IKG) , intent(out) :: rand(:)
18158 integer(IKG) , intent(in) :: lb, ub
18159 type(xoshiro256ssw_type) , intent(inout) :: rng
18160 end subroutine
18161#endif
18162
18163#if IK3_ENABLED
18164 PURE module subroutine setUnifRandRNGXLU_D1_IK3(rng, rand, lb, ub)
18165#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18166 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_IK3
18167#endif
18168 use pm_kind, only: IKG => IK3
18169 integer(IKG) , intent(out) :: rand(:)
18170 integer(IKG) , intent(in) :: lb, ub
18171 type(xoshiro256ssw_type) , intent(inout) :: rng
18172 end subroutine
18173#endif
18174
18175#if IK2_ENABLED
18176 PURE module subroutine setUnifRandRNGXLU_D1_IK2(rng, rand, lb, ub)
18177#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18178 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_IK2
18179#endif
18180 use pm_kind, only: IKG => IK2
18181 integer(IKG) , intent(out) :: rand(:)
18182 integer(IKG) , intent(in) :: lb, ub
18183 type(xoshiro256ssw_type) , intent(inout) :: rng
18184 end subroutine
18185#endif
18186
18187#if IK1_ENABLED
18188 PURE module subroutine setUnifRandRNGXLU_D1_IK1(rng, rand, lb, ub)
18189#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18190 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_IK1
18191#endif
18192 use pm_kind, only: IKG => IK1
18193 integer(IKG) , intent(out) :: rand(:)
18194 integer(IKG) , intent(in) :: lb, ub
18195 type(xoshiro256ssw_type) , intent(inout) :: rng
18196 end subroutine
18197#endif
18198
18199 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18200
18201#if LK5_ENABLED
18202 PURE module subroutine setUnifRandRNGXLU_D1_LK5(rng, rand, lb, ub)
18203#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18204 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_LK5
18205#endif
18206 use pm_kind, only: LKG => LK5
18207 logical(LKG) , intent(out) :: rand(:)
18208 logical(LKG) , intent(in) :: lb, ub
18209 type(xoshiro256ssw_type) , intent(inout) :: rng
18210 end subroutine
18211#endif
18212
18213#if LK4_ENABLED
18214 PURE module subroutine setUnifRandRNGXLU_D1_LK4(rng, rand, lb, ub)
18215#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18216 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_LK4
18217#endif
18218 use pm_kind, only: LKG => LK4
18219 logical(LKG) , intent(out) :: rand(:)
18220 logical(LKG) , intent(in) :: lb, ub
18221 type(xoshiro256ssw_type) , intent(inout) :: rng
18222 end subroutine
18223#endif
18224
18225#if LK3_ENABLED
18226 PURE module subroutine setUnifRandRNGXLU_D1_LK3(rng, rand, lb, ub)
18227#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18228 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_LK3
18229#endif
18230 use pm_kind, only: LKG => LK3
18231 logical(LKG) , intent(out) :: rand(:)
18232 logical(LKG) , intent(in) :: lb, ub
18233 type(xoshiro256ssw_type) , intent(inout) :: rng
18234 end subroutine
18235#endif
18236
18237#if LK2_ENABLED
18238 PURE module subroutine setUnifRandRNGXLU_D1_LK2(rng, rand, lb, ub)
18239#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18240 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_LK2
18241#endif
18242 use pm_kind, only: LKG => LK2
18243 logical(LKG) , intent(out) :: rand(:)
18244 logical(LKG) , intent(in) :: lb, ub
18245 type(xoshiro256ssw_type) , intent(inout) :: rng
18246 end subroutine
18247#endif
18248
18249#if LK1_ENABLED
18250 PURE module subroutine setUnifRandRNGXLU_D1_LK1(rng, rand, lb, ub)
18251#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18252 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_LK1
18253#endif
18254 use pm_kind, only: LKG => LK1
18255 logical(LKG) , intent(out) :: rand(:)
18256 logical(LKG) , intent(in) :: lb, ub
18257 type(xoshiro256ssw_type) , intent(inout) :: rng
18258 end subroutine
18259#endif
18260
18261 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18262
18263#if CK5_ENABLED
18264 PURE module subroutine setUnifRandRNGXLU_D1_CK5(rng, rand, lb, ub)
18265#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18266 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_CK5
18267#endif
18268 use pm_kind, only: CKG => CK5
18269 complex(CKG) , intent(out) :: rand(:)
18270 complex(CKG) , intent(in) :: lb, ub
18271 type(xoshiro256ssw_type) , intent(inout) :: rng
18272 end subroutine
18273#endif
18274
18275#if CK4_ENABLED
18276 PURE module subroutine setUnifRandRNGXLU_D1_CK4(rng, rand, lb, ub)
18277#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18278 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_CK4
18279#endif
18280 use pm_kind, only: CKG => CK4
18281 complex(CKG) , intent(out) :: rand(:)
18282 complex(CKG) , intent(in) :: lb, ub
18283 type(xoshiro256ssw_type) , intent(inout) :: rng
18284 end subroutine
18285#endif
18286
18287#if CK3_ENABLED
18288 PURE module subroutine setUnifRandRNGXLU_D1_CK3(rng, rand, lb, ub)
18289#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18290 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_CK3
18291#endif
18292 use pm_kind, only: CKG => CK3
18293 complex(CKG) , intent(out) :: rand(:)
18294 complex(CKG) , intent(in) :: lb, ub
18295 type(xoshiro256ssw_type) , intent(inout) :: rng
18296 end subroutine
18297#endif
18298
18299#if CK2_ENABLED
18300 PURE module subroutine setUnifRandRNGXLU_D1_CK2(rng, rand, lb, ub)
18301#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18302 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_CK2
18303#endif
18304 use pm_kind, only: CKG => CK2
18305 complex(CKG) , intent(out) :: rand(:)
18306 complex(CKG) , intent(in) :: lb, ub
18307 type(xoshiro256ssw_type) , intent(inout) :: rng
18308 end subroutine
18309#endif
18310
18311#if CK1_ENABLED
18312 PURE module subroutine setUnifRandRNGXLU_D1_CK1(rng, rand, lb, ub)
18313#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18314 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_CK1
18315#endif
18316 use pm_kind, only: CKG => CK1
18317 complex(CKG) , intent(out) :: rand(:)
18318 complex(CKG) , intent(in) :: lb, ub
18319 type(xoshiro256ssw_type) , intent(inout) :: rng
18320 end subroutine
18321#endif
18322
18323 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18324
18325#if RK5_ENABLED
18326 PURE module subroutine setUnifRandRNGXLU_D1_RK5(rng, rand, lb, ub)
18327#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18328 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_RK5
18329#endif
18330 use pm_kind, only: RKG => RK5
18331 real(RKG) , intent(out) :: rand(:)
18332 real(RKG) , intent(in) :: lb, ub
18333 type(xoshiro256ssw_type) , intent(inout) :: rng
18334 end subroutine
18335#endif
18336
18337#if RK4_ENABLED
18338 PURE module subroutine setUnifRandRNGXLU_D1_RK4(rng, rand, lb, ub)
18339#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18340 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_RK4
18341#endif
18342 use pm_kind, only: RKG => RK4
18343 real(RKG) , intent(out) :: rand(:)
18344 real(RKG) , intent(in) :: lb, ub
18345 type(xoshiro256ssw_type) , intent(inout) :: rng
18346 end subroutine
18347#endif
18348
18349#if RK3_ENABLED
18350 PURE module subroutine setUnifRandRNGXLU_D1_RK3(rng, rand, lb, ub)
18351#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18352 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_RK3
18353#endif
18354 use pm_kind, only: RKG => RK3
18355 real(RKG) , intent(out) :: rand(:)
18356 real(RKG) , intent(in) :: lb, ub
18357 type(xoshiro256ssw_type) , intent(inout) :: rng
18358 end subroutine
18359#endif
18360
18361#if RK2_ENABLED
18362 PURE module subroutine setUnifRandRNGXLU_D1_RK2(rng, rand, lb, ub)
18363#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18364 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_RK2
18365#endif
18366 use pm_kind, only: RKG => RK2
18367 real(RKG) , intent(out) :: rand(:)
18368 real(RKG) , intent(in) :: lb, ub
18369 type(xoshiro256ssw_type) , intent(inout) :: rng
18370 end subroutine
18371#endif
18372
18373#if RK1_ENABLED
18374 PURE module subroutine setUnifRandRNGXLU_D1_RK1(rng, rand, lb, ub)
18375#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18376 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_RK1
18377#endif
18378 use pm_kind, only: RKG => RK1
18379 real(RKG) , intent(out) :: rand(:)
18380 real(RKG) , intent(in) :: lb, ub
18381 type(xoshiro256ssw_type) , intent(inout) :: rng
18382 end subroutine
18383#endif
18384
18385 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18386
18387 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18388 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18389 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18390
18391 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18392 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18393 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18394
18395 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18396
18397#if SK5_ENABLED
18398 PURE module subroutine setUnifRandRNGXDD_D2_SK5(rng, rand)
18399#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18400 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_SK5
18401#endif
18402 use pm_kind, only: SKG => SK5
18403 character(*,SKG) , intent(out) :: rand(:,:)
18404 type(xoshiro256ssw_type) , intent(inout) :: rng
18405 end subroutine
18406#endif
18407
18408#if SK4_ENABLED
18409 PURE module subroutine setUnifRandRNGXDD_D2_SK4(rng, rand)
18410#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18411 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_SK4
18412#endif
18413 use pm_kind, only: SKG => SK4
18414 character(*,SKG) , intent(out) :: rand(:,:)
18415 type(xoshiro256ssw_type) , intent(inout) :: rng
18416 end subroutine
18417#endif
18418
18419#if SK3_ENABLED
18420 PURE module subroutine setUnifRandRNGXDD_D2_SK3(rng, rand)
18421#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18422 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_SK3
18423#endif
18424 use pm_kind, only: SKG => SK3
18425 character(*,SKG) , intent(out) :: rand(:,:)
18426 type(xoshiro256ssw_type) , intent(inout) :: rng
18427 end subroutine
18428#endif
18429
18430#if SK2_ENABLED
18431 PURE module subroutine setUnifRandRNGXDD_D2_SK2(rng, rand)
18432#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18433 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_SK2
18434#endif
18435 use pm_kind, only: SKG => SK2
18436 character(*,SKG) , intent(out) :: rand(:,:)
18437 type(xoshiro256ssw_type) , intent(inout) :: rng
18438 end subroutine
18439#endif
18440
18441#if SK1_ENABLED
18442 PURE module subroutine setUnifRandRNGXDD_D2_SK1(rng, rand)
18443#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18444 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_SK1
18445#endif
18446 use pm_kind, only: SKG => SK1
18447 character(*,SKG) , intent(out) :: rand(:,:)
18448 type(xoshiro256ssw_type) , intent(inout) :: rng
18449 end subroutine
18450#endif
18451
18452 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18453
18454#if IK5_ENABLED
18455 PURE module subroutine setUnifRandRNGXDD_D2_IK5(rng, rand)
18456#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18457 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_IK5
18458#endif
18459 use pm_kind, only: IKG => IK5
18460 integer(IKG) , intent(out) :: rand(:,:)
18461 type(xoshiro256ssw_type) , intent(inout) :: rng
18462 end subroutine
18463#endif
18464
18465#if IK4_ENABLED
18466 PURE module subroutine setUnifRandRNGXDD_D2_IK4(rng, rand)
18467#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18468 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_IK4
18469#endif
18470 use pm_kind, only: IKG => IK4
18471 integer(IKG) , intent(out) :: rand(:,:)
18472 type(xoshiro256ssw_type) , intent(inout) :: rng
18473 end subroutine
18474#endif
18475
18476#if IK3_ENABLED
18477 PURE module subroutine setUnifRandRNGXDD_D2_IK3(rng, rand)
18478#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18479 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_IK3
18480#endif
18481 use pm_kind, only: IKG => IK3
18482 integer(IKG) , intent(out) :: rand(:,:)
18483 type(xoshiro256ssw_type) , intent(inout) :: rng
18484 end subroutine
18485#endif
18486
18487#if IK2_ENABLED
18488 PURE module subroutine setUnifRandRNGXDD_D2_IK2(rng, rand)
18489#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18490 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_IK2
18491#endif
18492 use pm_kind, only: IKG => IK2
18493 integer(IKG) , intent(out) :: rand(:,:)
18494 type(xoshiro256ssw_type) , intent(inout) :: rng
18495 end subroutine
18496#endif
18497
18498#if IK1_ENABLED
18499 PURE module subroutine setUnifRandRNGXDD_D2_IK1(rng, rand)
18500#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18501 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_IK1
18502#endif
18503 use pm_kind, only: IKG => IK1
18504 integer(IKG) , intent(out) :: rand(:,:)
18505 type(xoshiro256ssw_type) , intent(inout) :: rng
18506 end subroutine
18507#endif
18508
18509 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18510
18511#if LK5_ENABLED
18512 PURE module subroutine setUnifRandRNGXDD_D2_LK5(rng, rand)
18513#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18514 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_LK5
18515#endif
18516 use pm_kind, only: LKG => LK5
18517 logical(LKG) , intent(out) :: rand(:,:)
18518 type(xoshiro256ssw_type) , intent(inout) :: rng
18519 end subroutine
18520#endif
18521
18522#if LK4_ENABLED
18523 PURE module subroutine setUnifRandRNGXDD_D2_LK4(rng, rand)
18524#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18525 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_LK4
18526#endif
18527 use pm_kind, only: LKG => LK4
18528 logical(LKG) , intent(out) :: rand(:,:)
18529 type(xoshiro256ssw_type) , intent(inout) :: rng
18530 end subroutine
18531#endif
18532
18533#if LK3_ENABLED
18534 PURE module subroutine setUnifRandRNGXDD_D2_LK3(rng, rand)
18535#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18536 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_LK3
18537#endif
18538 use pm_kind, only: LKG => LK3
18539 logical(LKG) , intent(out) :: rand(:,:)
18540 type(xoshiro256ssw_type) , intent(inout) :: rng
18541 end subroutine
18542#endif
18543
18544#if LK2_ENABLED
18545 PURE module subroutine setUnifRandRNGXDD_D2_LK2(rng, rand)
18546#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18547 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_LK2
18548#endif
18549 use pm_kind, only: LKG => LK2
18550 logical(LKG) , intent(out) :: rand(:,:)
18551 type(xoshiro256ssw_type) , intent(inout) :: rng
18552 end subroutine
18553#endif
18554
18555#if LK1_ENABLED
18556 PURE module subroutine setUnifRandRNGXDD_D2_LK1(rng, rand)
18557#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18558 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_LK1
18559#endif
18560 use pm_kind, only: LKG => LK1
18561 logical(LKG) , intent(out) :: rand(:,:)
18562 type(xoshiro256ssw_type) , intent(inout) :: rng
18563 end subroutine
18564#endif
18565
18566 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18567
18568#if CK5_ENABLED
18569 PURE module subroutine setUnifRandRNGXDD_D2_CK5(rng, rand)
18570#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18571 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_CK5
18572#endif
18573 use pm_kind, only: CKG => CK5
18574 complex(CKG) , intent(out) :: rand(:,:)
18575 type(xoshiro256ssw_type) , intent(inout) :: rng
18576 end subroutine
18577#endif
18578
18579#if CK4_ENABLED
18580 PURE module subroutine setUnifRandRNGXDD_D2_CK4(rng, rand)
18581#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18582 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_CK4
18583#endif
18584 use pm_kind, only: CKG => CK4
18585 complex(CKG) , intent(out) :: rand(:,:)
18586 type(xoshiro256ssw_type) , intent(inout) :: rng
18587 end subroutine
18588#endif
18589
18590#if CK3_ENABLED
18591 PURE module subroutine setUnifRandRNGXDD_D2_CK3(rng, rand)
18592#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18593 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_CK3
18594#endif
18595 use pm_kind, only: CKG => CK3
18596 complex(CKG) , intent(out) :: rand(:,:)
18597 type(xoshiro256ssw_type) , intent(inout) :: rng
18598 end subroutine
18599#endif
18600
18601#if CK2_ENABLED
18602 PURE module subroutine setUnifRandRNGXDD_D2_CK2(rng, rand)
18603#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18604 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_CK2
18605#endif
18606 use pm_kind, only: CKG => CK2
18607 complex(CKG) , intent(out) :: rand(:,:)
18608 type(xoshiro256ssw_type) , intent(inout) :: rng
18609 end subroutine
18610#endif
18611
18612#if CK1_ENABLED
18613 PURE module subroutine setUnifRandRNGXDD_D2_CK1(rng, rand)
18614#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18615 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_CK1
18616#endif
18617 use pm_kind, only: CKG => CK1
18618 complex(CKG) , intent(out) :: rand(:,:)
18619 type(xoshiro256ssw_type) , intent(inout) :: rng
18620 end subroutine
18621#endif
18622
18623 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18624
18625#if RK5_ENABLED
18626 PURE module subroutine setUnifRandRNGXDD_D2_RK5(rng, rand)
18627#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18628 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_RK5
18629#endif
18630 use pm_kind, only: RKG => RK5
18631 real(RKG) , intent(out) :: rand(:,:)
18632 type(xoshiro256ssw_type) , intent(inout) :: rng
18633 end subroutine
18634#endif
18635
18636#if RK4_ENABLED
18637 PURE module subroutine setUnifRandRNGXDD_D2_RK4(rng, rand)
18638#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18639 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_RK4
18640#endif
18641 use pm_kind, only: RKG => RK4
18642 real(RKG) , intent(out) :: rand(:,:)
18643 type(xoshiro256ssw_type) , intent(inout) :: rng
18644 end subroutine
18645#endif
18646
18647#if RK3_ENABLED
18648 PURE module subroutine setUnifRandRNGXDD_D2_RK3(rng, rand)
18649#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18650 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_RK3
18651#endif
18652 use pm_kind, only: RKG => RK3
18653 real(RKG) , intent(out) :: rand(:,:)
18654 type(xoshiro256ssw_type) , intent(inout) :: rng
18655 end subroutine
18656#endif
18657
18658#if RK2_ENABLED
18659 PURE module subroutine setUnifRandRNGXDD_D2_RK2(rng, rand)
18660#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18661 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_RK2
18662#endif
18663 use pm_kind, only: RKG => RK2
18664 real(RKG) , intent(out) :: rand(:,:)
18665 type(xoshiro256ssw_type) , intent(inout) :: rng
18666 end subroutine
18667#endif
18668
18669#if RK1_ENABLED
18670 PURE module subroutine setUnifRandRNGXDD_D2_RK1(rng, rand)
18671#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18672 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_RK1
18673#endif
18674 use pm_kind, only: RKG => RK1
18675 real(RKG) , intent(out) :: rand(:,:)
18676 type(xoshiro256ssw_type) , intent(inout) :: rng
18677 end subroutine
18678#endif
18679
18680 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18681
18682 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18683 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18684 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18685
18686 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18687
18688#if SK5_ENABLED
18689 PURE module subroutine setUnifRandRNGXLU_D2_SK5(rng, rand, lb, ub)
18690#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18691 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_SK5
18692#endif
18693 use pm_kind, only: SKG => SK5
18694 character(*,SKG) , intent(out) :: rand(:,:)
18695 character(*,SKG) , intent(in) :: lb, ub
18696 type(xoshiro256ssw_type) , intent(inout) :: rng
18697 end subroutine
18698#endif
18699
18700#if SK4_ENABLED
18701 PURE module subroutine setUnifRandRNGXLU_D2_SK4(rng, rand, lb, ub)
18702#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18703 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_SK4
18704#endif
18705 use pm_kind, only: SKG => SK4
18706 character(*,SKG) , intent(out) :: rand(:,:)
18707 character(*,SKG) , intent(in) :: lb, ub
18708 type(xoshiro256ssw_type) , intent(inout) :: rng
18709 end subroutine
18710#endif
18711
18712#if SK3_ENABLED
18713 PURE module subroutine setUnifRandRNGXLU_D2_SK3(rng, rand, lb, ub)
18714#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18715 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_SK3
18716#endif
18717 use pm_kind, only: SKG => SK3
18718 character(*,SKG) , intent(out) :: rand(:,:)
18719 character(*,SKG) , intent(in) :: lb, ub
18720 type(xoshiro256ssw_type) , intent(inout) :: rng
18721 end subroutine
18722#endif
18723
18724#if SK2_ENABLED
18725 PURE module subroutine setUnifRandRNGXLU_D2_SK2(rng, rand, lb, ub)
18726#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18727 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_SK2
18728#endif
18729 use pm_kind, only: SKG => SK2
18730 character(*,SKG) , intent(out) :: rand(:,:)
18731 character(*,SKG) , intent(in) :: lb, ub
18732 type(xoshiro256ssw_type) , intent(inout) :: rng
18733 end subroutine
18734#endif
18735
18736#if SK1_ENABLED
18737 PURE module subroutine setUnifRandRNGXLU_D2_SK1(rng, rand, lb, ub)
18738#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18739 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_SK1
18740#endif
18741 use pm_kind, only: SKG => SK1
18742 character(*,SKG) , intent(out) :: rand(:,:)
18743 character(*,SKG) , intent(in) :: lb, ub
18744 type(xoshiro256ssw_type) , intent(inout) :: rng
18745 end subroutine
18746#endif
18747
18748 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18749
18750#if IK5_ENABLED
18751 PURE module subroutine setUnifRandRNGXLU_D2_IK5(rng, rand, lb, ub)
18752#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18753 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_IK5
18754#endif
18755 use pm_kind, only: IKG => IK5
18756 integer(IKG) , intent(out) :: rand(:,:)
18757 integer(IKG) , intent(in) :: lb, ub
18758 type(xoshiro256ssw_type) , intent(inout) :: rng
18759 end subroutine
18760#endif
18761
18762#if IK4_ENABLED
18763 PURE module subroutine setUnifRandRNGXLU_D2_IK4(rng, rand, lb, ub)
18764#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18765 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_IK4
18766#endif
18767 use pm_kind, only: IKG => IK4
18768 integer(IKG) , intent(out) :: rand(:,:)
18769 integer(IKG) , intent(in) :: lb, ub
18770 type(xoshiro256ssw_type) , intent(inout) :: rng
18771 end subroutine
18772#endif
18773
18774#if IK3_ENABLED
18775 PURE module subroutine setUnifRandRNGXLU_D2_IK3(rng, rand, lb, ub)
18776#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18777 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_IK3
18778#endif
18779 use pm_kind, only: IKG => IK3
18780 integer(IKG) , intent(out) :: rand(:,:)
18781 integer(IKG) , intent(in) :: lb, ub
18782 type(xoshiro256ssw_type) , intent(inout) :: rng
18783 end subroutine
18784#endif
18785
18786#if IK2_ENABLED
18787 PURE module subroutine setUnifRandRNGXLU_D2_IK2(rng, rand, lb, ub)
18788#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18789 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_IK2
18790#endif
18791 use pm_kind, only: IKG => IK2
18792 integer(IKG) , intent(out) :: rand(:,:)
18793 integer(IKG) , intent(in) :: lb, ub
18794 type(xoshiro256ssw_type) , intent(inout) :: rng
18795 end subroutine
18796#endif
18797
18798#if IK1_ENABLED
18799 PURE module subroutine setUnifRandRNGXLU_D2_IK1(rng, rand, lb, ub)
18800#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18801 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_IK1
18802#endif
18803 use pm_kind, only: IKG => IK1
18804 integer(IKG) , intent(out) :: rand(:,:)
18805 integer(IKG) , intent(in) :: lb, ub
18806 type(xoshiro256ssw_type) , intent(inout) :: rng
18807 end subroutine
18808#endif
18809
18810 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18811
18812#if LK5_ENABLED
18813 PURE module subroutine setUnifRandRNGXLU_D2_LK5(rng, rand, lb, ub)
18814#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18815 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_LK5
18816#endif
18817 use pm_kind, only: LKG => LK5
18818 logical(LKG) , intent(out) :: rand(:,:)
18819 logical(LKG) , intent(in) :: lb, ub
18820 type(xoshiro256ssw_type) , intent(inout) :: rng
18821 end subroutine
18822#endif
18823
18824#if LK4_ENABLED
18825 PURE module subroutine setUnifRandRNGXLU_D2_LK4(rng, rand, lb, ub)
18826#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18827 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_LK4
18828#endif
18829 use pm_kind, only: LKG => LK4
18830 logical(LKG) , intent(out) :: rand(:,:)
18831 logical(LKG) , intent(in) :: lb, ub
18832 type(xoshiro256ssw_type) , intent(inout) :: rng
18833 end subroutine
18834#endif
18835
18836#if LK3_ENABLED
18837 PURE module subroutine setUnifRandRNGXLU_D2_LK3(rng, rand, lb, ub)
18838#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18839 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_LK3
18840#endif
18841 use pm_kind, only: LKG => LK3
18842 logical(LKG) , intent(out) :: rand(:,:)
18843 logical(LKG) , intent(in) :: lb, ub
18844 type(xoshiro256ssw_type) , intent(inout) :: rng
18845 end subroutine
18846#endif
18847
18848#if LK2_ENABLED
18849 PURE module subroutine setUnifRandRNGXLU_D2_LK2(rng, rand, lb, ub)
18850#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18851 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_LK2
18852#endif
18853 use pm_kind, only: LKG => LK2
18854 logical(LKG) , intent(out) :: rand(:,:)
18855 logical(LKG) , intent(in) :: lb, ub
18856 type(xoshiro256ssw_type) , intent(inout) :: rng
18857 end subroutine
18858#endif
18859
18860#if LK1_ENABLED
18861 PURE module subroutine setUnifRandRNGXLU_D2_LK1(rng, rand, lb, ub)
18862#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18863 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_LK1
18864#endif
18865 use pm_kind, only: LKG => LK1
18866 logical(LKG) , intent(out) :: rand(:,:)
18867 logical(LKG) , intent(in) :: lb, ub
18868 type(xoshiro256ssw_type) , intent(inout) :: rng
18869 end subroutine
18870#endif
18871
18872 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18873
18874#if CK5_ENABLED
18875 PURE module subroutine setUnifRandRNGXLU_D2_CK5(rng, rand, lb, ub)
18876#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18877 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_CK5
18878#endif
18879 use pm_kind, only: CKG => CK5
18880 complex(CKG) , intent(out) :: rand(:,:)
18881 complex(CKG) , intent(in) :: lb, ub
18882 type(xoshiro256ssw_type) , intent(inout) :: rng
18883 end subroutine
18884#endif
18885
18886#if CK4_ENABLED
18887 PURE module subroutine setUnifRandRNGXLU_D2_CK4(rng, rand, lb, ub)
18888#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18889 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_CK4
18890#endif
18891 use pm_kind, only: CKG => CK4
18892 complex(CKG) , intent(out) :: rand(:,:)
18893 complex(CKG) , intent(in) :: lb, ub
18894 type(xoshiro256ssw_type) , intent(inout) :: rng
18895 end subroutine
18896#endif
18897
18898#if CK3_ENABLED
18899 PURE module subroutine setUnifRandRNGXLU_D2_CK3(rng, rand, lb, ub)
18900#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18901 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_CK3
18902#endif
18903 use pm_kind, only: CKG => CK3
18904 complex(CKG) , intent(out) :: rand(:,:)
18905 complex(CKG) , intent(in) :: lb, ub
18906 type(xoshiro256ssw_type) , intent(inout) :: rng
18907 end subroutine
18908#endif
18909
18910#if CK2_ENABLED
18911 PURE module subroutine setUnifRandRNGXLU_D2_CK2(rng, rand, lb, ub)
18912#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18913 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_CK2
18914#endif
18915 use pm_kind, only: CKG => CK2
18916 complex(CKG) , intent(out) :: rand(:,:)
18917 complex(CKG) , intent(in) :: lb, ub
18918 type(xoshiro256ssw_type) , intent(inout) :: rng
18919 end subroutine
18920#endif
18921
18922#if CK1_ENABLED
18923 PURE module subroutine setUnifRandRNGXLU_D2_CK1(rng, rand, lb, ub)
18924#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18925 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_CK1
18926#endif
18927 use pm_kind, only: CKG => CK1
18928 complex(CKG) , intent(out) :: rand(:,:)
18929 complex(CKG) , intent(in) :: lb, ub
18930 type(xoshiro256ssw_type) , intent(inout) :: rng
18931 end subroutine
18932#endif
18933
18934 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18935
18936#if RK5_ENABLED
18937 PURE module subroutine setUnifRandRNGXLU_D2_RK5(rng, rand, lb, ub)
18938#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18939 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_RK5
18940#endif
18941 use pm_kind, only: RKG => RK5
18942 real(RKG) , intent(out) :: rand(:,:)
18943 real(RKG) , intent(in) :: lb, ub
18944 type(xoshiro256ssw_type) , intent(inout) :: rng
18945 end subroutine
18946#endif
18947
18948#if RK4_ENABLED
18949 PURE module subroutine setUnifRandRNGXLU_D2_RK4(rng, rand, lb, ub)
18950#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18951 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_RK4
18952#endif
18953 use pm_kind, only: RKG => RK4
18954 real(RKG) , intent(out) :: rand(:,:)
18955 real(RKG) , intent(in) :: lb, ub
18956 type(xoshiro256ssw_type) , intent(inout) :: rng
18957 end subroutine
18958#endif
18959
18960#if RK3_ENABLED
18961 PURE module subroutine setUnifRandRNGXLU_D2_RK3(rng, rand, lb, ub)
18962#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18963 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_RK3
18964#endif
18965 use pm_kind, only: RKG => RK3
18966 real(RKG) , intent(out) :: rand(:,:)
18967 real(RKG) , intent(in) :: lb, ub
18968 type(xoshiro256ssw_type) , intent(inout) :: rng
18969 end subroutine
18970#endif
18971
18972#if RK2_ENABLED
18973 PURE module subroutine setUnifRandRNGXLU_D2_RK2(rng, rand, lb, ub)
18974#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18975 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_RK2
18976#endif
18977 use pm_kind, only: RKG => RK2
18978 real(RKG) , intent(out) :: rand(:,:)
18979 real(RKG) , intent(in) :: lb, ub
18980 type(xoshiro256ssw_type) , intent(inout) :: rng
18981 end subroutine
18982#endif
18983
18984#if RK1_ENABLED
18985 PURE module subroutine setUnifRandRNGXLU_D2_RK1(rng, rand, lb, ub)
18986#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18987 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_RK1
18988#endif
18989 use pm_kind, only: RKG => RK1
18990 real(RKG) , intent(out) :: rand(:,:)
18991 real(RKG) , intent(in) :: lb, ub
18992 type(xoshiro256ssw_type) , intent(inout) :: rng
18993 end subroutine
18994#endif
18995
18996 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18997
18998 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18999 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19000 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19001
19002 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19003 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19004 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19005
19006 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19007
19008#if SK5_ENABLED
19009 PURE module subroutine setUnifRandRNGXDD_D3_SK5(rng, rand)
19010#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19011 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_SK5
19012#endif
19013 use pm_kind, only: SKG => SK5
19014 character(*,SKG) , intent(out) :: rand(:,:,:)
19015 type(xoshiro256ssw_type) , intent(inout) :: rng
19016 end subroutine
19017#endif
19018
19019#if SK4_ENABLED
19020 PURE module subroutine setUnifRandRNGXDD_D3_SK4(rng, rand)
19021#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19022 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_SK4
19023#endif
19024 use pm_kind, only: SKG => SK4
19025 character(*,SKG) , intent(out) :: rand(:,:,:)
19026 type(xoshiro256ssw_type) , intent(inout) :: rng
19027 end subroutine
19028#endif
19029
19030#if SK3_ENABLED
19031 PURE module subroutine setUnifRandRNGXDD_D3_SK3(rng, rand)
19032#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19033 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_SK3
19034#endif
19035 use pm_kind, only: SKG => SK3
19036 character(*,SKG) , intent(out) :: rand(:,:,:)
19037 type(xoshiro256ssw_type) , intent(inout) :: rng
19038 end subroutine
19039#endif
19040
19041#if SK2_ENABLED
19042 PURE module subroutine setUnifRandRNGXDD_D3_SK2(rng, rand)
19043#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19044 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_SK2
19045#endif
19046 use pm_kind, only: SKG => SK2
19047 character(*,SKG) , intent(out) :: rand(:,:,:)
19048 type(xoshiro256ssw_type) , intent(inout) :: rng
19049 end subroutine
19050#endif
19051
19052#if SK1_ENABLED
19053 PURE module subroutine setUnifRandRNGXDD_D3_SK1(rng, rand)
19054#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19055 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_SK1
19056#endif
19057 use pm_kind, only: SKG => SK1
19058 character(*,SKG) , intent(out) :: rand(:,:,:)
19059 type(xoshiro256ssw_type) , intent(inout) :: rng
19060 end subroutine
19061#endif
19062
19063 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19064
19065#if IK5_ENABLED
19066 PURE module subroutine setUnifRandRNGXDD_D3_IK5(rng, rand)
19067#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19068 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_IK5
19069#endif
19070 use pm_kind, only: IKG => IK5
19071 integer(IKG) , intent(out) :: rand(:,:,:)
19072 type(xoshiro256ssw_type) , intent(inout) :: rng
19073 end subroutine
19074#endif
19075
19076#if IK4_ENABLED
19077 PURE module subroutine setUnifRandRNGXDD_D3_IK4(rng, rand)
19078#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19079 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_IK4
19080#endif
19081 use pm_kind, only: IKG => IK4
19082 integer(IKG) , intent(out) :: rand(:,:,:)
19083 type(xoshiro256ssw_type) , intent(inout) :: rng
19084 end subroutine
19085#endif
19086
19087#if IK3_ENABLED
19088 PURE module subroutine setUnifRandRNGXDD_D3_IK3(rng, rand)
19089#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19090 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_IK3
19091#endif
19092 use pm_kind, only: IKG => IK3
19093 integer(IKG) , intent(out) :: rand(:,:,:)
19094 type(xoshiro256ssw_type) , intent(inout) :: rng
19095 end subroutine
19096#endif
19097
19098#if IK2_ENABLED
19099 PURE module subroutine setUnifRandRNGXDD_D3_IK2(rng, rand)
19100#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19101 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_IK2
19102#endif
19103 use pm_kind, only: IKG => IK2
19104 integer(IKG) , intent(out) :: rand(:,:,:)
19105 type(xoshiro256ssw_type) , intent(inout) :: rng
19106 end subroutine
19107#endif
19108
19109#if IK1_ENABLED
19110 PURE module subroutine setUnifRandRNGXDD_D3_IK1(rng, rand)
19111#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19112 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_IK1
19113#endif
19114 use pm_kind, only: IKG => IK1
19115 integer(IKG) , intent(out) :: rand(:,:,:)
19116 type(xoshiro256ssw_type) , intent(inout) :: rng
19117 end subroutine
19118#endif
19119
19120 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19121
19122#if LK5_ENABLED
19123 PURE module subroutine setUnifRandRNGXDD_D3_LK5(rng, rand)
19124#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19125 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_LK5
19126#endif
19127 use pm_kind, only: LKG => LK5
19128 logical(LKG) , intent(out) :: rand(:,:,:)
19129 type(xoshiro256ssw_type) , intent(inout) :: rng
19130 end subroutine
19131#endif
19132
19133#if LK4_ENABLED
19134 PURE module subroutine setUnifRandRNGXDD_D3_LK4(rng, rand)
19135#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19136 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_LK4
19137#endif
19138 use pm_kind, only: LKG => LK4
19139 logical(LKG) , intent(out) :: rand(:,:,:)
19140 type(xoshiro256ssw_type) , intent(inout) :: rng
19141 end subroutine
19142#endif
19143
19144#if LK3_ENABLED
19145 PURE module subroutine setUnifRandRNGXDD_D3_LK3(rng, rand)
19146#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19147 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_LK3
19148#endif
19149 use pm_kind, only: LKG => LK3
19150 logical(LKG) , intent(out) :: rand(:,:,:)
19151 type(xoshiro256ssw_type) , intent(inout) :: rng
19152 end subroutine
19153#endif
19154
19155#if LK2_ENABLED
19156 PURE module subroutine setUnifRandRNGXDD_D3_LK2(rng, rand)
19157#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19158 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_LK2
19159#endif
19160 use pm_kind, only: LKG => LK2
19161 logical(LKG) , intent(out) :: rand(:,:,:)
19162 type(xoshiro256ssw_type) , intent(inout) :: rng
19163 end subroutine
19164#endif
19165
19166#if LK1_ENABLED
19167 PURE module subroutine setUnifRandRNGXDD_D3_LK1(rng, rand)
19168#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19169 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_LK1
19170#endif
19171 use pm_kind, only: LKG => LK1
19172 logical(LKG) , intent(out) :: rand(:,:,:)
19173 type(xoshiro256ssw_type) , intent(inout) :: rng
19174 end subroutine
19175#endif
19176
19177 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19178
19179#if CK5_ENABLED
19180 PURE module subroutine setUnifRandRNGXDD_D3_CK5(rng, rand)
19181#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19182 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_CK5
19183#endif
19184 use pm_kind, only: CKG => CK5
19185 complex(CKG) , intent(out) :: rand(:,:,:)
19186 type(xoshiro256ssw_type) , intent(inout) :: rng
19187 end subroutine
19188#endif
19189
19190#if CK4_ENABLED
19191 PURE module subroutine setUnifRandRNGXDD_D3_CK4(rng, rand)
19192#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19193 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_CK4
19194#endif
19195 use pm_kind, only: CKG => CK4
19196 complex(CKG) , intent(out) :: rand(:,:,:)
19197 type(xoshiro256ssw_type) , intent(inout) :: rng
19198 end subroutine
19199#endif
19200
19201#if CK3_ENABLED
19202 PURE module subroutine setUnifRandRNGXDD_D3_CK3(rng, rand)
19203#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19204 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_CK3
19205#endif
19206 use pm_kind, only: CKG => CK3
19207 complex(CKG) , intent(out) :: rand(:,:,:)
19208 type(xoshiro256ssw_type) , intent(inout) :: rng
19209 end subroutine
19210#endif
19211
19212#if CK2_ENABLED
19213 PURE module subroutine setUnifRandRNGXDD_D3_CK2(rng, rand)
19214#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19215 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_CK2
19216#endif
19217 use pm_kind, only: CKG => CK2
19218 complex(CKG) , intent(out) :: rand(:,:,:)
19219 type(xoshiro256ssw_type) , intent(inout) :: rng
19220 end subroutine
19221#endif
19222
19223#if CK1_ENABLED
19224 PURE module subroutine setUnifRandRNGXDD_D3_CK1(rng, rand)
19225#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19226 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_CK1
19227#endif
19228 use pm_kind, only: CKG => CK1
19229 complex(CKG) , intent(out) :: rand(:,:,:)
19230 type(xoshiro256ssw_type) , intent(inout) :: rng
19231 end subroutine
19232#endif
19233
19234 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19235
19236#if RK5_ENABLED
19237 PURE module subroutine setUnifRandRNGXDD_D3_RK5(rng, rand)
19238#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19239 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_RK5
19240#endif
19241 use pm_kind, only: RKG => RK5
19242 real(RKG) , intent(out) :: rand(:,:,:)
19243 type(xoshiro256ssw_type) , intent(inout) :: rng
19244 end subroutine
19245#endif
19246
19247#if RK4_ENABLED
19248 PURE module subroutine setUnifRandRNGXDD_D3_RK4(rng, rand)
19249#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19250 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_RK4
19251#endif
19252 use pm_kind, only: RKG => RK4
19253 real(RKG) , intent(out) :: rand(:,:,:)
19254 type(xoshiro256ssw_type) , intent(inout) :: rng
19255 end subroutine
19256#endif
19257
19258#if RK3_ENABLED
19259 PURE module subroutine setUnifRandRNGXDD_D3_RK3(rng, rand)
19260#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19261 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_RK3
19262#endif
19263 use pm_kind, only: RKG => RK3
19264 real(RKG) , intent(out) :: rand(:,:,:)
19265 type(xoshiro256ssw_type) , intent(inout) :: rng
19266 end subroutine
19267#endif
19268
19269#if RK2_ENABLED
19270 PURE module subroutine setUnifRandRNGXDD_D3_RK2(rng, rand)
19271#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19272 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_RK2
19273#endif
19274 use pm_kind, only: RKG => RK2
19275 real(RKG) , intent(out) :: rand(:,:,:)
19276 type(xoshiro256ssw_type) , intent(inout) :: rng
19277 end subroutine
19278#endif
19279
19280#if RK1_ENABLED
19281 PURE module subroutine setUnifRandRNGXDD_D3_RK1(rng, rand)
19282#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19283 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_RK1
19284#endif
19285 use pm_kind, only: RKG => RK1
19286 real(RKG) , intent(out) :: rand(:,:,:)
19287 type(xoshiro256ssw_type) , intent(inout) :: rng
19288 end subroutine
19289#endif
19290
19291 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19292
19293 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19294 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19295 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19296
19297 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19298
19299#if SK5_ENABLED
19300 PURE module subroutine setUnifRandRNGXLU_D3_SK5(rng, rand, lb, ub)
19301#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19302 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_SK5
19303#endif
19304 use pm_kind, only: SKG => SK5
19305 character(*,SKG) , intent(out) :: rand(:,:,:)
19306 character(*,SKG) , intent(in) :: lb, ub
19307 type(xoshiro256ssw_type) , intent(inout) :: rng
19308 end subroutine
19309#endif
19310
19311#if SK4_ENABLED
19312 PURE module subroutine setUnifRandRNGXLU_D3_SK4(rng, rand, lb, ub)
19313#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19314 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_SK4
19315#endif
19316 use pm_kind, only: SKG => SK4
19317 character(*,SKG) , intent(out) :: rand(:,:,:)
19318 character(*,SKG) , intent(in) :: lb, ub
19319 type(xoshiro256ssw_type) , intent(inout) :: rng
19320 end subroutine
19321#endif
19322
19323#if SK3_ENABLED
19324 PURE module subroutine setUnifRandRNGXLU_D3_SK3(rng, rand, lb, ub)
19325#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19326 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_SK3
19327#endif
19328 use pm_kind, only: SKG => SK3
19329 character(*,SKG) , intent(out) :: rand(:,:,:)
19330 character(*,SKG) , intent(in) :: lb, ub
19331 type(xoshiro256ssw_type) , intent(inout) :: rng
19332 end subroutine
19333#endif
19334
19335#if SK2_ENABLED
19336 PURE module subroutine setUnifRandRNGXLU_D3_SK2(rng, rand, lb, ub)
19337#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19338 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_SK2
19339#endif
19340 use pm_kind, only: SKG => SK2
19341 character(*,SKG) , intent(out) :: rand(:,:,:)
19342 character(*,SKG) , intent(in) :: lb, ub
19343 type(xoshiro256ssw_type) , intent(inout) :: rng
19344 end subroutine
19345#endif
19346
19347#if SK1_ENABLED
19348 PURE module subroutine setUnifRandRNGXLU_D3_SK1(rng, rand, lb, ub)
19349#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19350 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_SK1
19351#endif
19352 use pm_kind, only: SKG => SK1
19353 character(*,SKG) , intent(out) :: rand(:,:,:)
19354 character(*,SKG) , intent(in) :: lb, ub
19355 type(xoshiro256ssw_type) , intent(inout) :: rng
19356 end subroutine
19357#endif
19358
19359 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19360
19361#if IK5_ENABLED
19362 PURE module subroutine setUnifRandRNGXLU_D3_IK5(rng, rand, lb, ub)
19363#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19364 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_IK5
19365#endif
19366 use pm_kind, only: IKG => IK5
19367 integer(IKG) , intent(out) :: rand(:,:,:)
19368 integer(IKG) , intent(in) :: lb, ub
19369 type(xoshiro256ssw_type) , intent(inout) :: rng
19370 end subroutine
19371#endif
19372
19373#if IK4_ENABLED
19374 PURE module subroutine setUnifRandRNGXLU_D3_IK4(rng, rand, lb, ub)
19375#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19376 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_IK4
19377#endif
19378 use pm_kind, only: IKG => IK4
19379 integer(IKG) , intent(out) :: rand(:,:,:)
19380 integer(IKG) , intent(in) :: lb, ub
19381 type(xoshiro256ssw_type) , intent(inout) :: rng
19382 end subroutine
19383#endif
19384
19385#if IK3_ENABLED
19386 PURE module subroutine setUnifRandRNGXLU_D3_IK3(rng, rand, lb, ub)
19387#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19388 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_IK3
19389#endif
19390 use pm_kind, only: IKG => IK3
19391 integer(IKG) , intent(out) :: rand(:,:,:)
19392 integer(IKG) , intent(in) :: lb, ub
19393 type(xoshiro256ssw_type) , intent(inout) :: rng
19394 end subroutine
19395#endif
19396
19397#if IK2_ENABLED
19398 PURE module subroutine setUnifRandRNGXLU_D3_IK2(rng, rand, lb, ub)
19399#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19400 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_IK2
19401#endif
19402 use pm_kind, only: IKG => IK2
19403 integer(IKG) , intent(out) :: rand(:,:,:)
19404 integer(IKG) , intent(in) :: lb, ub
19405 type(xoshiro256ssw_type) , intent(inout) :: rng
19406 end subroutine
19407#endif
19408
19409#if IK1_ENABLED
19410 PURE module subroutine setUnifRandRNGXLU_D3_IK1(rng, rand, lb, ub)
19411#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19412 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_IK1
19413#endif
19414 use pm_kind, only: IKG => IK1
19415 integer(IKG) , intent(out) :: rand(:,:,:)
19416 integer(IKG) , intent(in) :: lb, ub
19417 type(xoshiro256ssw_type) , intent(inout) :: rng
19418 end subroutine
19419#endif
19420
19421 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19422
19423#if LK5_ENABLED
19424 PURE module subroutine setUnifRandRNGXLU_D3_LK5(rng, rand, lb, ub)
19425#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19426 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_LK5
19427#endif
19428 use pm_kind, only: LKG => LK5
19429 logical(LKG) , intent(out) :: rand(:,:,:)
19430 logical(LKG) , intent(in) :: lb, ub
19431 type(xoshiro256ssw_type) , intent(inout) :: rng
19432 end subroutine
19433#endif
19434
19435#if LK4_ENABLED
19436 PURE module subroutine setUnifRandRNGXLU_D3_LK4(rng, rand, lb, ub)
19437#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19438 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_LK4
19439#endif
19440 use pm_kind, only: LKG => LK4
19441 logical(LKG) , intent(out) :: rand(:,:,:)
19442 logical(LKG) , intent(in) :: lb, ub
19443 type(xoshiro256ssw_type) , intent(inout) :: rng
19444 end subroutine
19445#endif
19446
19447#if LK3_ENABLED
19448 PURE module subroutine setUnifRandRNGXLU_D3_LK3(rng, rand, lb, ub)
19449#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19450 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_LK3
19451#endif
19452 use pm_kind, only: LKG => LK3
19453 logical(LKG) , intent(out) :: rand(:,:,:)
19454 logical(LKG) , intent(in) :: lb, ub
19455 type(xoshiro256ssw_type) , intent(inout) :: rng
19456 end subroutine
19457#endif
19458
19459#if LK2_ENABLED
19460 PURE module subroutine setUnifRandRNGXLU_D3_LK2(rng, rand, lb, ub)
19461#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19462 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_LK2
19463#endif
19464 use pm_kind, only: LKG => LK2
19465 logical(LKG) , intent(out) :: rand(:,:,:)
19466 logical(LKG) , intent(in) :: lb, ub
19467 type(xoshiro256ssw_type) , intent(inout) :: rng
19468 end subroutine
19469#endif
19470
19471#if LK1_ENABLED
19472 PURE module subroutine setUnifRandRNGXLU_D3_LK1(rng, rand, lb, ub)
19473#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19474 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_LK1
19475#endif
19476 use pm_kind, only: LKG => LK1
19477 logical(LKG) , intent(out) :: rand(:,:,:)
19478 logical(LKG) , intent(in) :: lb, ub
19479 type(xoshiro256ssw_type) , intent(inout) :: rng
19480 end subroutine
19481#endif
19482
19483 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19484
19485#if CK5_ENABLED
19486 PURE module subroutine setUnifRandRNGXLU_D3_CK5(rng, rand, lb, ub)
19487#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19488 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_CK5
19489#endif
19490 use pm_kind, only: CKG => CK5
19491 complex(CKG) , intent(out) :: rand(:,:,:)
19492 complex(CKG) , intent(in) :: lb, ub
19493 type(xoshiro256ssw_type) , intent(inout) :: rng
19494 end subroutine
19495#endif
19496
19497#if CK4_ENABLED
19498 PURE module subroutine setUnifRandRNGXLU_D3_CK4(rng, rand, lb, ub)
19499#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19500 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_CK4
19501#endif
19502 use pm_kind, only: CKG => CK4
19503 complex(CKG) , intent(out) :: rand(:,:,:)
19504 complex(CKG) , intent(in) :: lb, ub
19505 type(xoshiro256ssw_type) , intent(inout) :: rng
19506 end subroutine
19507#endif
19508
19509#if CK3_ENABLED
19510 PURE module subroutine setUnifRandRNGXLU_D3_CK3(rng, rand, lb, ub)
19511#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19512 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_CK3
19513#endif
19514 use pm_kind, only: CKG => CK3
19515 complex(CKG) , intent(out) :: rand(:,:,:)
19516 complex(CKG) , intent(in) :: lb, ub
19517 type(xoshiro256ssw_type) , intent(inout) :: rng
19518 end subroutine
19519#endif
19520
19521#if CK2_ENABLED
19522 PURE module subroutine setUnifRandRNGXLU_D3_CK2(rng, rand, lb, ub)
19523#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19524 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_CK2
19525#endif
19526 use pm_kind, only: CKG => CK2
19527 complex(CKG) , intent(out) :: rand(:,:,:)
19528 complex(CKG) , intent(in) :: lb, ub
19529 type(xoshiro256ssw_type) , intent(inout) :: rng
19530 end subroutine
19531#endif
19532
19533#if CK1_ENABLED
19534 PURE module subroutine setUnifRandRNGXLU_D3_CK1(rng, rand, lb, ub)
19535#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19536 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_CK1
19537#endif
19538 use pm_kind, only: CKG => CK1
19539 complex(CKG) , intent(out) :: rand(:,:,:)
19540 complex(CKG) , intent(in) :: lb, ub
19541 type(xoshiro256ssw_type) , intent(inout) :: rng
19542 end subroutine
19543#endif
19544
19545 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19546
19547#if RK5_ENABLED
19548 PURE module subroutine setUnifRandRNGXLU_D3_RK5(rng, rand, lb, ub)
19549#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19550 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_RK5
19551#endif
19552 use pm_kind, only: RKG => RK5
19553 real(RKG) , intent(out) :: rand(:,:,:)
19554 real(RKG) , intent(in) :: lb, ub
19555 type(xoshiro256ssw_type) , intent(inout) :: rng
19556 end subroutine
19557#endif
19558
19559#if RK4_ENABLED
19560 PURE module subroutine setUnifRandRNGXLU_D3_RK4(rng, rand, lb, ub)
19561#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19562 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_RK4
19563#endif
19564 use pm_kind, only: RKG => RK4
19565 real(RKG) , intent(out) :: rand(:,:,:)
19566 real(RKG) , intent(in) :: lb, ub
19567 type(xoshiro256ssw_type) , intent(inout) :: rng
19568 end subroutine
19569#endif
19570
19571#if RK3_ENABLED
19572 PURE module subroutine setUnifRandRNGXLU_D3_RK3(rng, rand, lb, ub)
19573#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19574 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_RK3
19575#endif
19576 use pm_kind, only: RKG => RK3
19577 real(RKG) , intent(out) :: rand(:,:,:)
19578 real(RKG) , intent(in) :: lb, ub
19579 type(xoshiro256ssw_type) , intent(inout) :: rng
19580 end subroutine
19581#endif
19582
19583#if RK2_ENABLED
19584 PURE module subroutine setUnifRandRNGXLU_D3_RK2(rng, rand, lb, ub)
19585#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19586 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_RK2
19587#endif
19588 use pm_kind, only: RKG => RK2
19589 real(RKG) , intent(out) :: rand(:,:,:)
19590 real(RKG) , intent(in) :: lb, ub
19591 type(xoshiro256ssw_type) , intent(inout) :: rng
19592 end subroutine
19593#endif
19594
19595#if RK1_ENABLED
19596 PURE module subroutine setUnifRandRNGXLU_D3_RK1(rng, rand, lb, ub)
19597#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19598 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_RK1
19599#endif
19600 use pm_kind, only: RKG => RK1
19601 real(RKG) , intent(out) :: rand(:,:,:)
19602 real(RKG) , intent(in) :: lb, ub
19603 type(xoshiro256ssw_type) , intent(inout) :: rng
19604 end subroutine
19605#endif
19606
19607 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19608
19609 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19610 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19611 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19612
19613 end interface
19614
19615!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19616
19617end module pm_distUnif
Generate and return the Cumulative Distribution Function (CDF) of a univariate Standard Uniform distr...
Generate and return the size of the seed vector of the Fortran default random number generator (RNG).
Generate and return an allocatable array of rank 1 containing the state vector of the Fortran default...
Generate and return a scalar or a contiguous array of rank 1 of length s1 of randomly uniformly distr...
Generate and return a scalar object of type rngf_type.
Return the Cumulative Distribution Function (CDF) of a univariate Standard Uniform distribution or a ...
Set the state of the Fortran default random number generator (RNG) to a random value or to an optiona...
Return a uniform random scalar or contiguous array of arbitrary rank of randomly uniformly distribute...
Generate, initialize, and return a scalar object of type splitmix64_type.
Generate, initialize, and return a scalar object of type xoshiro256ssg_type.
Generate, initialize, and return a scalar object of type xoshiro256ssw_type.
This module contains classes and procedures for computing various statistical quantities related to t...
type(rngf_type) rngf
The scalar constant object of type rngf_type whose presence signified the use of the Fortran intrinsi...
integer(IK64), dimension(xoshiro256ssStateSize), parameter xoshiro256ssJump128
The constant vector of size xoshiro256ssStateSize of type integer of kind IK64 containing the state j...
character(*, SK), parameter MODULE_NAME
integer(IK), parameter xoshiro256ssStateSize
The constant scalar of type integer of default kind IK containing the size of the state vector of Xos...
integer(IK), parameter xoshiro256ssStreamBitSize
The constant scalar of type integer of default kind containing the number of binary digits of the str...
integer(IK64), dimension(xoshiro256ssStateSize), parameter xoshiro256ssJump192
The constant vector of size xoshiro256ssStateSize of type integer of kind IK64 containing the state j...
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
integer, parameter SK5
Definition: pm_kind.F90:326
integer, parameter LK1
Definition: pm_kind.F90:412
integer, parameter IK3
Definition: pm_kind.F90:368
integer, parameter RK5
Definition: pm_kind.F90:478
integer, parameter RK4
Definition: pm_kind.F90:489
integer, parameter SK1
Definition: pm_kind.F90:346
integer, parameter IK1
Definition: pm_kind.F90:382
integer, parameter LK5
Definition: pm_kind.F90:392
integer, parameter RK2
Definition: pm_kind.F90:511
integer, parameter RK
The default real kind in the ParaMonte library: real64 in Fortran, c_double in C-Fortran Interoperati...
Definition: pm_kind.F90:543
integer, parameter CK1
Definition: pm_kind.F90:464
integer, parameter RK3
Definition: pm_kind.F90:500
integer, parameter LK
The default logical kind in the ParaMonte library: kind(.true.) in Fortran, kind(....
Definition: pm_kind.F90:541
integer, parameter LK2
Definition: pm_kind.F90:407
integer, parameter IK64
The integer kind for a 64-bits container.
Definition: pm_kind.F90:545
integer, parameter LK4
Definition: pm_kind.F90:397
integer, parameter CK5
Definition: pm_kind.F90:420
integer, parameter CK4
Definition: pm_kind.F90:431
integer, parameter SK4
Definition: pm_kind.F90:331
integer, parameter LK3
Definition: pm_kind.F90:402
integer, parameter IK2
Definition: pm_kind.F90:375
integer, parameter CK2
Definition: pm_kind.F90:453
integer, parameter SK2
Definition: pm_kind.F90:341
integer, parameter CK3
Definition: pm_kind.F90:442
integer, parameter IK
The default integer kind in the ParaMonte library: int32 in Fortran, c_int32_t in C-Fortran Interoper...
Definition: pm_kind.F90:540
integer, parameter IK4
Definition: pm_kind.F90:361
integer, parameter IK5
Definition: pm_kind.F90:354
integer, parameter SK
The default character kind in the ParaMonte library: kind("a") in Fortran, c_char in C-Fortran Intero...
Definition: pm_kind.F90:539
integer, parameter RK1
Definition: pm_kind.F90:522
integer, parameter SK3
Definition: pm_kind.F90:336
This is the derived type for signifying distributions that are of type Uniform as defined in the desc...
This is a concrete derived type whose instances can be used to define/request the default uniform ran...
This is the abstract base derived type for defining various Uniform Random Number Generator (URNG) de...
This is the derived type for declaring and generating objects of type splitmix64_type containing a un...
This is the abstract base derived type for defining variants of Xoshiro256** Uniform Random Number Ge...
This is the derived type for declaring and generating objects of type xoshiro256ssg_type containing a...
This is the derived type for declaring and generating objects of type xoshiro256ssw_type containing a...