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
11058
11059 ! RNGD
11060
11061 interface setUnifRand
11062
11063 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11064 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11065 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11066
11067 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11068
11069#if SK5_ENABLED
11070 impure elemental module subroutine setUnifRandRNGDDD_D0_SK5(rand)
11071#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11072 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_SK5
11073#endif
11074 use pm_kind, only: SKG => SK5
11075 character(*,SKG) , intent(out) :: rand
11076 end subroutine
11077#endif
11078
11079#if SK4_ENABLED
11080 impure elemental module subroutine setUnifRandRNGDDD_D0_SK4(rand)
11081#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11082 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_SK4
11083#endif
11084 use pm_kind, only: SKG => SK4
11085 character(*,SKG) , intent(out) :: rand
11086 end subroutine
11087#endif
11088
11089#if SK3_ENABLED
11090 impure elemental module subroutine setUnifRandRNGDDD_D0_SK3(rand)
11091#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11092 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_SK3
11093#endif
11094 use pm_kind, only: SKG => SK3
11095 character(*,SKG) , intent(out) :: rand
11096 end subroutine
11097#endif
11098
11099#if SK2_ENABLED
11100 impure elemental module subroutine setUnifRandRNGDDD_D0_SK2(rand)
11101#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11102 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_SK2
11103#endif
11104 use pm_kind, only: SKG => SK2
11105 character(*,SKG) , intent(out) :: rand
11106 end subroutine
11107#endif
11108
11109#if SK1_ENABLED
11110 impure elemental module subroutine setUnifRandRNGDDD_D0_SK1(rand)
11111#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11112 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_SK1
11113#endif
11114 use pm_kind, only: SKG => SK1
11115 character(*,SKG) , intent(out) :: rand
11116 end subroutine
11117#endif
11118
11119 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11120
11121#if IK5_ENABLED
11122 impure elemental module subroutine setUnifRandRNGDDD_D0_IK5(rand)
11123#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11124 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_IK5
11125#endif
11126 use pm_kind, only: IKG => IK5
11127 integer(IKG) , intent(out) :: rand
11128 end subroutine
11129#endif
11130
11131#if IK4_ENABLED
11132 impure elemental module subroutine setUnifRandRNGDDD_D0_IK4(rand)
11133#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11134 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_IK4
11135#endif
11136 use pm_kind, only: IKG => IK4
11137 integer(IKG) , intent(out) :: rand
11138 end subroutine
11139#endif
11140
11141#if IK3_ENABLED
11142 impure elemental module subroutine setUnifRandRNGDDD_D0_IK3(rand)
11143#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11144 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_IK3
11145#endif
11146 use pm_kind, only: IKG => IK3
11147 integer(IKG) , intent(out) :: rand
11148 end subroutine
11149#endif
11150
11151#if IK2_ENABLED
11152 impure elemental module subroutine setUnifRandRNGDDD_D0_IK2(rand)
11153#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11154 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_IK2
11155#endif
11156 use pm_kind, only: IKG => IK2
11157 integer(IKG) , intent(out) :: rand
11158 end subroutine
11159#endif
11160
11161#if IK1_ENABLED
11162 impure elemental module subroutine setUnifRandRNGDDD_D0_IK1(rand)
11163#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11164 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_IK1
11165#endif
11166 use pm_kind, only: IKG => IK1
11167 integer(IKG) , intent(out) :: rand
11168 end subroutine
11169#endif
11170
11171 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11172
11173#if LK5_ENABLED
11174 impure elemental module subroutine setUnifRandRNGDDD_D0_LK5(rand)
11175#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11176 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_LK5
11177#endif
11178 use pm_kind, only: LKG => LK5
11179 logical(LKG) , intent(out) :: rand
11180 end subroutine
11181#endif
11182
11183#if LK4_ENABLED
11184 impure elemental module subroutine setUnifRandRNGDDD_D0_LK4(rand)
11185#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11186 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_LK4
11187#endif
11188 use pm_kind, only: LKG => LK4
11189 logical(LKG) , intent(out) :: rand
11190 end subroutine
11191#endif
11192
11193#if LK3_ENABLED
11194 impure elemental module subroutine setUnifRandRNGDDD_D0_LK3(rand)
11195#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11196 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_LK3
11197#endif
11198 use pm_kind, only: LKG => LK3
11199 logical(LKG) , intent(out) :: rand
11200 end subroutine
11201#endif
11202
11203#if LK2_ENABLED
11204 impure elemental module subroutine setUnifRandRNGDDD_D0_LK2(rand)
11205#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11206 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_LK2
11207#endif
11208 use pm_kind, only: LKG => LK2
11209 logical(LKG) , intent(out) :: rand
11210 end subroutine
11211#endif
11212
11213#if LK1_ENABLED
11214 impure elemental module subroutine setUnifRandRNGDDD_D0_LK1(rand)
11215#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11216 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_LK1
11217#endif
11218 use pm_kind, only: LKG => LK1
11219 logical(LKG) , intent(out) :: rand
11220 end subroutine
11221#endif
11222
11223 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11224
11225#if CK5_ENABLED
11226 impure elemental module subroutine setUnifRandRNGDDD_D0_CK5(rand)
11227#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11228 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_CK5
11229#endif
11230 use pm_kind, only: CKG => CK5
11231 complex(CKG) , intent(out) :: rand
11232 end subroutine
11233#endif
11234
11235#if CK4_ENABLED
11236 impure elemental module subroutine setUnifRandRNGDDD_D0_CK4(rand)
11237#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11238 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_CK4
11239#endif
11240 use pm_kind, only: CKG => CK4
11241 complex(CKG) , intent(out) :: rand
11242 end subroutine
11243#endif
11244
11245#if CK3_ENABLED
11246 impure elemental module subroutine setUnifRandRNGDDD_D0_CK3(rand)
11247#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11248 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_CK3
11249#endif
11250 use pm_kind, only: CKG => CK3
11251 complex(CKG) , intent(out) :: rand
11252 end subroutine
11253#endif
11254
11255#if CK2_ENABLED
11256 impure elemental module subroutine setUnifRandRNGDDD_D0_CK2(rand)
11257#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11258 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_CK2
11259#endif
11260 use pm_kind, only: CKG => CK2
11261 complex(CKG) , intent(out) :: rand
11262 end subroutine
11263#endif
11264
11265#if CK1_ENABLED
11266 impure elemental module subroutine setUnifRandRNGDDD_D0_CK1(rand)
11267#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11268 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_CK1
11269#endif
11270 use pm_kind, only: CKG => CK1
11271 complex(CKG) , intent(out) :: rand
11272 end subroutine
11273#endif
11274
11275 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11276
11277#if RK5_ENABLED
11278 impure elemental module subroutine setUnifRandRNGDDD_D0_RK5(rand)
11279#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11280 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_RK5
11281#endif
11282 use pm_kind, only: RKG => RK5
11283 real(RKG) , intent(out) :: rand
11284 end subroutine
11285#endif
11286
11287#if RK4_ENABLED
11288 impure elemental module subroutine setUnifRandRNGDDD_D0_RK4(rand)
11289#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11290 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_RK4
11291#endif
11292 use pm_kind, only: RKG => RK4
11293 real(RKG) , intent(out) :: rand
11294 end subroutine
11295#endif
11296
11297#if RK3_ENABLED
11298 impure elemental module subroutine setUnifRandRNGDDD_D0_RK3(rand)
11299#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11300 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_RK3
11301#endif
11302 use pm_kind, only: RKG => RK3
11303 real(RKG) , intent(out) :: rand
11304 end subroutine
11305#endif
11306
11307#if RK2_ENABLED
11308 impure elemental module subroutine setUnifRandRNGDDD_D0_RK2(rand)
11309#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11310 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_RK2
11311#endif
11312 use pm_kind, only: RKG => RK2
11313 real(RKG) , intent(out) :: rand
11314 end subroutine
11315#endif
11316
11317#if RK1_ENABLED
11318 impure elemental module subroutine setUnifRandRNGDDD_D0_RK1(rand)
11319#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11320 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDDD_D0_RK1
11321#endif
11322 use pm_kind, only: RKG => RK1
11323 real(RKG) , intent(out) :: rand
11324 end subroutine
11325#endif
11326
11327 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11328
11329 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11330 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11331 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11332
11333 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11334
11335#if SK5_ENABLED
11336 impure elemental module subroutine setUnifRandRNGDLU_D0_SK5(rand, lb, ub)
11337#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11338 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_SK5
11339#endif
11340 use pm_kind, only: SKG => SK5
11341 character(*,SKG) , intent(out) :: rand
11342 character(*,SKG) , intent(in) :: lb, ub
11343 end subroutine
11344#endif
11345
11346#if SK4_ENABLED
11347 impure elemental module subroutine setUnifRandRNGDLU_D0_SK4(rand, lb, ub)
11348#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11349 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_SK4
11350#endif
11351 use pm_kind, only: SKG => SK4
11352 character(*,SKG) , intent(out) :: rand
11353 character(*,SKG) , intent(in) :: lb, ub
11354 end subroutine
11355#endif
11356
11357#if SK3_ENABLED
11358 impure elemental module subroutine setUnifRandRNGDLU_D0_SK3(rand, lb, ub)
11359#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11360 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_SK3
11361#endif
11362 use pm_kind, only: SKG => SK3
11363 character(*,SKG) , intent(out) :: rand
11364 character(*,SKG) , intent(in) :: lb, ub
11365 end subroutine
11366#endif
11367
11368#if SK2_ENABLED
11369 impure elemental module subroutine setUnifRandRNGDLU_D0_SK2(rand, lb, ub)
11370#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11371 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_SK2
11372#endif
11373 use pm_kind, only: SKG => SK2
11374 character(*,SKG) , intent(out) :: rand
11375 character(*,SKG) , intent(in) :: lb, ub
11376 end subroutine
11377#endif
11378
11379#if SK1_ENABLED
11380 impure elemental module subroutine setUnifRandRNGDLU_D0_SK1(rand, lb, ub)
11381#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11382 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_SK1
11383#endif
11384 use pm_kind, only: SKG => SK1
11385 character(*,SKG) , intent(out) :: rand
11386 character(*,SKG) , intent(in) :: lb, ub
11387 end subroutine
11388#endif
11389
11390 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11391
11392#if IK5_ENABLED
11393 impure elemental module subroutine setUnifRandRNGDLU_D0_IK5(rand, lb, ub)
11394#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11395 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_IK5
11396#endif
11397 use pm_kind, only: IKG => IK5
11398 integer(IKG) , intent(out) :: rand
11399 integer(IKG) , intent(in) :: lb, ub
11400 end subroutine
11401#endif
11402
11403#if IK4_ENABLED
11404 impure elemental module subroutine setUnifRandRNGDLU_D0_IK4(rand, lb, ub)
11405#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11406 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_IK4
11407#endif
11408 use pm_kind, only: IKG => IK4
11409 integer(IKG) , intent(out) :: rand
11410 integer(IKG) , intent(in) :: lb, ub
11411 end subroutine
11412#endif
11413
11414#if IK3_ENABLED
11415 impure elemental module subroutine setUnifRandRNGDLU_D0_IK3(rand, lb, ub)
11416#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11417 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_IK3
11418#endif
11419 use pm_kind, only: IKG => IK3
11420 integer(IKG) , intent(out) :: rand
11421 integer(IKG) , intent(in) :: lb, ub
11422 end subroutine
11423#endif
11424
11425#if IK2_ENABLED
11426 impure elemental module subroutine setUnifRandRNGDLU_D0_IK2(rand, lb, ub)
11427#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11428 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_IK2
11429#endif
11430 use pm_kind, only: IKG => IK2
11431 integer(IKG) , intent(out) :: rand
11432 integer(IKG) , intent(in) :: lb, ub
11433 end subroutine
11434#endif
11435
11436#if IK1_ENABLED
11437 impure elemental module subroutine setUnifRandRNGDLU_D0_IK1(rand, lb, ub)
11438#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11439 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_IK1
11440#endif
11441 use pm_kind, only: IKG => IK1
11442 integer(IKG) , intent(out) :: rand
11443 integer(IKG) , intent(in) :: lb, ub
11444 end subroutine
11445#endif
11446
11447 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11448
11449#if LK5_ENABLED
11450 impure elemental module subroutine setUnifRandRNGDLU_D0_LK5(rand, lb, ub)
11451#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11452 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_LK5
11453#endif
11454 use pm_kind, only: LKG => LK5
11455 logical(LKG) , intent(out) :: rand
11456 logical(LKG) , intent(in) :: lb, ub
11457 end subroutine
11458#endif
11459
11460#if LK4_ENABLED
11461 impure elemental module subroutine setUnifRandRNGDLU_D0_LK4(rand, lb, ub)
11462#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11463 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_LK4
11464#endif
11465 use pm_kind, only: LKG => LK4
11466 logical(LKG) , intent(out) :: rand
11467 logical(LKG) , intent(in) :: lb, ub
11468 end subroutine
11469#endif
11470
11471#if LK3_ENABLED
11472 impure elemental module subroutine setUnifRandRNGDLU_D0_LK3(rand, lb, ub)
11473#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11474 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_LK3
11475#endif
11476 use pm_kind, only: LKG => LK3
11477 logical(LKG) , intent(out) :: rand
11478 logical(LKG) , intent(in) :: lb, ub
11479 end subroutine
11480#endif
11481
11482#if LK2_ENABLED
11483 impure elemental module subroutine setUnifRandRNGDLU_D0_LK2(rand, lb, ub)
11484#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11485 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_LK2
11486#endif
11487 use pm_kind, only: LKG => LK2
11488 logical(LKG) , intent(out) :: rand
11489 logical(LKG) , intent(in) :: lb, ub
11490 end subroutine
11491#endif
11492
11493#if LK1_ENABLED
11494 impure elemental module subroutine setUnifRandRNGDLU_D0_LK1(rand, lb, ub)
11495#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11496 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_LK1
11497#endif
11498 use pm_kind, only: LKG => LK1
11499 logical(LKG) , intent(out) :: rand
11500 logical(LKG) , intent(in) :: lb, ub
11501 end subroutine
11502#endif
11503
11504 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11505
11506#if CK5_ENABLED
11507 impure elemental module subroutine setUnifRandRNGDLU_D0_CK5(rand, lb, ub)
11508#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11509 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_CK5
11510#endif
11511 use pm_kind, only: CKG => CK5
11512 complex(CKG) , intent(out) :: rand
11513 complex(CKG) , intent(in) :: lb, ub
11514 end subroutine
11515#endif
11516
11517#if CK4_ENABLED
11518 impure elemental module subroutine setUnifRandRNGDLU_D0_CK4(rand, lb, ub)
11519#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11520 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_CK4
11521#endif
11522 use pm_kind, only: CKG => CK4
11523 complex(CKG) , intent(out) :: rand
11524 complex(CKG) , intent(in) :: lb, ub
11525 end subroutine
11526#endif
11527
11528#if CK3_ENABLED
11529 impure elemental module subroutine setUnifRandRNGDLU_D0_CK3(rand, lb, ub)
11530#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11531 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_CK3
11532#endif
11533 use pm_kind, only: CKG => CK3
11534 complex(CKG) , intent(out) :: rand
11535 complex(CKG) , intent(in) :: lb, ub
11536 end subroutine
11537#endif
11538
11539#if CK2_ENABLED
11540 impure elemental module subroutine setUnifRandRNGDLU_D0_CK2(rand, lb, ub)
11541#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11542 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_CK2
11543#endif
11544 use pm_kind, only: CKG => CK2
11545 complex(CKG) , intent(out) :: rand
11546 complex(CKG) , intent(in) :: lb, ub
11547 end subroutine
11548#endif
11549
11550#if CK1_ENABLED
11551 impure elemental module subroutine setUnifRandRNGDLU_D0_CK1(rand, lb, ub)
11552#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11553 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_CK1
11554#endif
11555 use pm_kind, only: CKG => CK1
11556 complex(CKG) , intent(out) :: rand
11557 complex(CKG) , intent(in) :: lb, ub
11558 end subroutine
11559#endif
11560
11561 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11562
11563#if RK5_ENABLED
11564 impure elemental module subroutine setUnifRandRNGDLU_D0_RK5(rand, lb, ub)
11565#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11566 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_RK5
11567#endif
11568 use pm_kind, only: RKG => RK5
11569 real(RKG) , intent(out) :: rand
11570 real(RKG) , intent(in) :: lb, ub
11571 end subroutine
11572#endif
11573
11574#if RK4_ENABLED
11575 impure elemental module subroutine setUnifRandRNGDLU_D0_RK4(rand, lb, ub)
11576#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11577 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_RK4
11578#endif
11579 use pm_kind, only: RKG => RK4
11580 real(RKG) , intent(out) :: rand
11581 real(RKG) , intent(in) :: lb, ub
11582 end subroutine
11583#endif
11584
11585#if RK3_ENABLED
11586 impure elemental module subroutine setUnifRandRNGDLU_D0_RK3(rand, lb, ub)
11587#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11588 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_RK3
11589#endif
11590 use pm_kind, only: RKG => RK3
11591 real(RKG) , intent(out) :: rand
11592 real(RKG) , intent(in) :: lb, ub
11593 end subroutine
11594#endif
11595
11596#if RK2_ENABLED
11597 impure elemental module subroutine setUnifRandRNGDLU_D0_RK2(rand, lb, ub)
11598#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11599 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_RK2
11600#endif
11601 use pm_kind, only: RKG => RK2
11602 real(RKG) , intent(out) :: rand
11603 real(RKG) , intent(in) :: lb, ub
11604 end subroutine
11605#endif
11606
11607#if RK1_ENABLED
11608 impure elemental module subroutine setUnifRandRNGDLU_D0_RK1(rand, lb, ub)
11609#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11610 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGDLU_D0_RK1
11611#endif
11612 use pm_kind, only: RKG => RK1
11613 real(RKG) , intent(out) :: rand
11614 real(RKG) , intent(in) :: lb, ub
11615 end subroutine
11616#endif
11617
11618 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11619
11620 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11621 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11622 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11623
11624 end interface
11625
11626 ! RNGF
11627
11628 interface setUnifRand
11629
11630 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11631 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11632 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11633
11634 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11635
11636#if SK5_ENABLED
11637 impure elemental module subroutine setUnifRandRNGFDD_D0_SK5(rng, rand)
11638#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11639 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_SK5
11640#endif
11641 use pm_kind, only: SKG => SK5
11642 character(*,SKG) , intent(out) :: rand
11643 type(rngf_type) , intent(in) :: rng
11644 end subroutine
11645#endif
11646
11647#if SK4_ENABLED
11648 impure elemental module subroutine setUnifRandRNGFDD_D0_SK4(rng, rand)
11649#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11650 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_SK4
11651#endif
11652 use pm_kind, only: SKG => SK4
11653 character(*,SKG) , intent(out) :: rand
11654 type(rngf_type) , intent(in) :: rng
11655 end subroutine
11656#endif
11657
11658#if SK3_ENABLED
11659 impure elemental module subroutine setUnifRandRNGFDD_D0_SK3(rng, rand)
11660#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11661 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_SK3
11662#endif
11663 use pm_kind, only: SKG => SK3
11664 character(*,SKG) , intent(out) :: rand
11665 type(rngf_type) , intent(in) :: rng
11666 end subroutine
11667#endif
11668
11669#if SK2_ENABLED
11670 impure elemental module subroutine setUnifRandRNGFDD_D0_SK2(rng, rand)
11671#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11672 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_SK2
11673#endif
11674 use pm_kind, only: SKG => SK2
11675 character(*,SKG) , intent(out) :: rand
11676 type(rngf_type) , intent(in) :: rng
11677 end subroutine
11678#endif
11679
11680#if SK1_ENABLED
11681 impure elemental module subroutine setUnifRandRNGFDD_D0_SK1(rng, rand)
11682#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11683 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_SK1
11684#endif
11685 use pm_kind, only: SKG => SK1
11686 character(*,SKG) , intent(out) :: rand
11687 type(rngf_type) , intent(in) :: rng
11688 end subroutine
11689#endif
11690
11691 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11692
11693#if IK5_ENABLED
11694 impure elemental module subroutine setUnifRandRNGFDD_D0_IK5(rng, rand)
11695#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11696 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_IK5
11697#endif
11698 use pm_kind, only: IKG => IK5
11699 integer(IKG) , intent(out) :: rand
11700 type(rngf_type) , intent(in) :: rng
11701 end subroutine
11702#endif
11703
11704#if IK4_ENABLED
11705 impure elemental module subroutine setUnifRandRNGFDD_D0_IK4(rng, rand)
11706#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11707 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_IK4
11708#endif
11709 use pm_kind, only: IKG => IK4
11710 integer(IKG) , intent(out) :: rand
11711 type(rngf_type) , intent(in) :: rng
11712 end subroutine
11713#endif
11714
11715#if IK3_ENABLED
11716 impure elemental module subroutine setUnifRandRNGFDD_D0_IK3(rng, rand)
11717#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11718 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_IK3
11719#endif
11720 use pm_kind, only: IKG => IK3
11721 integer(IKG) , intent(out) :: rand
11722 type(rngf_type) , intent(in) :: rng
11723 end subroutine
11724#endif
11725
11726#if IK2_ENABLED
11727 impure elemental module subroutine setUnifRandRNGFDD_D0_IK2(rng, rand)
11728#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11729 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_IK2
11730#endif
11731 use pm_kind, only: IKG => IK2
11732 integer(IKG) , intent(out) :: rand
11733 type(rngf_type) , intent(in) :: rng
11734 end subroutine
11735#endif
11736
11737#if IK1_ENABLED
11738 impure elemental module subroutine setUnifRandRNGFDD_D0_IK1(rng, rand)
11739#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11740 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_IK1
11741#endif
11742 use pm_kind, only: IKG => IK1
11743 integer(IKG) , intent(out) :: rand
11744 type(rngf_type) , intent(in) :: rng
11745 end subroutine
11746#endif
11747
11748 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11749
11750#if LK5_ENABLED
11751 impure elemental module subroutine setUnifRandRNGFDD_D0_LK5(rng, rand)
11752#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11753 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_LK5
11754#endif
11755 use pm_kind, only: LKG => LK5
11756 logical(LKG) , intent(out) :: rand
11757 type(rngf_type) , intent(in) :: rng
11758 end subroutine
11759#endif
11760
11761#if LK4_ENABLED
11762 impure elemental module subroutine setUnifRandRNGFDD_D0_LK4(rng, rand)
11763#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11764 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_LK4
11765#endif
11766 use pm_kind, only: LKG => LK4
11767 logical(LKG) , intent(out) :: rand
11768 type(rngf_type) , intent(in) :: rng
11769 end subroutine
11770#endif
11771
11772#if LK3_ENABLED
11773 impure elemental module subroutine setUnifRandRNGFDD_D0_LK3(rng, rand)
11774#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11775 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_LK3
11776#endif
11777 use pm_kind, only: LKG => LK3
11778 logical(LKG) , intent(out) :: rand
11779 type(rngf_type) , intent(in) :: rng
11780 end subroutine
11781#endif
11782
11783#if LK2_ENABLED
11784 impure elemental module subroutine setUnifRandRNGFDD_D0_LK2(rng, rand)
11785#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11786 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_LK2
11787#endif
11788 use pm_kind, only: LKG => LK2
11789 logical(LKG) , intent(out) :: rand
11790 type(rngf_type) , intent(in) :: rng
11791 end subroutine
11792#endif
11793
11794#if LK1_ENABLED
11795 impure elemental module subroutine setUnifRandRNGFDD_D0_LK1(rng, rand)
11796#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11797 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_LK1
11798#endif
11799 use pm_kind, only: LKG => LK1
11800 logical(LKG) , intent(out) :: rand
11801 type(rngf_type) , intent(in) :: rng
11802 end subroutine
11803#endif
11804
11805 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11806
11807#if CK5_ENABLED
11808 impure elemental module subroutine setUnifRandRNGFDD_D0_CK5(rng, rand)
11809#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11810 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_CK5
11811#endif
11812 use pm_kind, only: CKG => CK5
11813 complex(CKG) , intent(out) :: rand
11814 type(rngf_type) , intent(in) :: rng
11815 end subroutine
11816#endif
11817
11818#if CK4_ENABLED
11819 impure elemental module subroutine setUnifRandRNGFDD_D0_CK4(rng, rand)
11820#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11821 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_CK4
11822#endif
11823 use pm_kind, only: CKG => CK4
11824 complex(CKG) , intent(out) :: rand
11825 type(rngf_type) , intent(in) :: rng
11826 end subroutine
11827#endif
11828
11829#if CK3_ENABLED
11830 impure elemental module subroutine setUnifRandRNGFDD_D0_CK3(rng, rand)
11831#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11832 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_CK3
11833#endif
11834 use pm_kind, only: CKG => CK3
11835 complex(CKG) , intent(out) :: rand
11836 type(rngf_type) , intent(in) :: rng
11837 end subroutine
11838#endif
11839
11840#if CK2_ENABLED
11841 impure elemental module subroutine setUnifRandRNGFDD_D0_CK2(rng, rand)
11842#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11843 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_CK2
11844#endif
11845 use pm_kind, only: CKG => CK2
11846 complex(CKG) , intent(out) :: rand
11847 type(rngf_type) , intent(in) :: rng
11848 end subroutine
11849#endif
11850
11851#if CK1_ENABLED
11852 impure elemental module subroutine setUnifRandRNGFDD_D0_CK1(rng, rand)
11853#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11854 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_CK1
11855#endif
11856 use pm_kind, only: CKG => CK1
11857 complex(CKG) , intent(out) :: rand
11858 type(rngf_type) , intent(in) :: rng
11859 end subroutine
11860#endif
11861
11862 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11863
11864#if RK5_ENABLED
11865 impure elemental module subroutine setUnifRandRNGFDD_D0_RK5(rng, rand)
11866#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11867 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_RK5
11868#endif
11869 use pm_kind, only: RKG => RK5
11870 real(RKG) , intent(out) :: rand
11871 type(rngf_type) , intent(in) :: rng
11872 end subroutine
11873#endif
11874
11875#if RK4_ENABLED
11876 impure elemental module subroutine setUnifRandRNGFDD_D0_RK4(rng, rand)
11877#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11878 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_RK4
11879#endif
11880 use pm_kind, only: RKG => RK4
11881 real(RKG) , intent(out) :: rand
11882 type(rngf_type) , intent(in) :: rng
11883 end subroutine
11884#endif
11885
11886#if RK3_ENABLED
11887 impure elemental module subroutine setUnifRandRNGFDD_D0_RK3(rng, rand)
11888#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11889 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_RK3
11890#endif
11891 use pm_kind, only: RKG => RK3
11892 real(RKG) , intent(out) :: rand
11893 type(rngf_type) , intent(in) :: rng
11894 end subroutine
11895#endif
11896
11897#if RK2_ENABLED
11898 impure elemental module subroutine setUnifRandRNGFDD_D0_RK2(rng, rand)
11899#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11900 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_RK2
11901#endif
11902 use pm_kind, only: RKG => RK2
11903 real(RKG) , intent(out) :: rand
11904 type(rngf_type) , intent(in) :: rng
11905 end subroutine
11906#endif
11907
11908#if RK1_ENABLED
11909 impure elemental module subroutine setUnifRandRNGFDD_D0_RK1(rng, rand)
11910#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11911 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFDD_D0_RK1
11912#endif
11913 use pm_kind, only: RKG => RK1
11914 real(RKG) , intent(out) :: rand
11915 type(rngf_type) , intent(in) :: rng
11916 end subroutine
11917#endif
11918
11919 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11920
11921 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11922 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11923 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11924
11925 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11926
11927#if SK5_ENABLED
11928 impure elemental module subroutine setUnifRandRNGFLU_D0_SK5(rng, rand, lb, ub)
11929#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11930 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_SK5
11931#endif
11932 use pm_kind, only: SKG => SK5
11933 character(*,SKG) , intent(out) :: rand
11934 character(*,SKG) , intent(in) :: lb, ub
11935 type(rngf_type) , intent(in) :: rng
11936 end subroutine
11937#endif
11938
11939#if SK4_ENABLED
11940 impure elemental module subroutine setUnifRandRNGFLU_D0_SK4(rng, rand, lb, ub)
11941#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11942 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_SK4
11943#endif
11944 use pm_kind, only: SKG => SK4
11945 character(*,SKG) , intent(out) :: rand
11946 character(*,SKG) , intent(in) :: lb, ub
11947 type(rngf_type) , intent(in) :: rng
11948 end subroutine
11949#endif
11950
11951#if SK3_ENABLED
11952 impure elemental module subroutine setUnifRandRNGFLU_D0_SK3(rng, rand, lb, ub)
11953#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11954 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_SK3
11955#endif
11956 use pm_kind, only: SKG => SK3
11957 character(*,SKG) , intent(out) :: rand
11958 character(*,SKG) , intent(in) :: lb, ub
11959 type(rngf_type) , intent(in) :: rng
11960 end subroutine
11961#endif
11962
11963#if SK2_ENABLED
11964 impure elemental module subroutine setUnifRandRNGFLU_D0_SK2(rng, rand, lb, ub)
11965#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11966 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_SK2
11967#endif
11968 use pm_kind, only: SKG => SK2
11969 character(*,SKG) , intent(out) :: rand
11970 character(*,SKG) , intent(in) :: lb, ub
11971 type(rngf_type) , intent(in) :: rng
11972 end subroutine
11973#endif
11974
11975#if SK1_ENABLED
11976 impure elemental module subroutine setUnifRandRNGFLU_D0_SK1(rng, rand, lb, ub)
11977#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11978 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_SK1
11979#endif
11980 use pm_kind, only: SKG => SK1
11981 character(*,SKG) , intent(out) :: rand
11982 character(*,SKG) , intent(in) :: lb, ub
11983 type(rngf_type) , intent(in) :: rng
11984 end subroutine
11985#endif
11986
11987 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11988
11989#if IK5_ENABLED
11990 impure elemental module subroutine setUnifRandRNGFLU_D0_IK5(rng, rand, lb, ub)
11991#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11992 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_IK5
11993#endif
11994 use pm_kind, only: IKG => IK5
11995 integer(IKG) , intent(out) :: rand
11996 integer(IKG) , intent(in) :: lb, ub
11997 type(rngf_type) , intent(in) :: rng
11998 end subroutine
11999#endif
12000
12001#if IK4_ENABLED
12002 impure elemental module subroutine setUnifRandRNGFLU_D0_IK4(rng, rand, lb, ub)
12003#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12004 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_IK4
12005#endif
12006 use pm_kind, only: IKG => IK4
12007 integer(IKG) , intent(out) :: rand
12008 integer(IKG) , intent(in) :: lb, ub
12009 type(rngf_type) , intent(in) :: rng
12010 end subroutine
12011#endif
12012
12013#if IK3_ENABLED
12014 impure elemental module subroutine setUnifRandRNGFLU_D0_IK3(rng, rand, lb, ub)
12015#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12016 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_IK3
12017#endif
12018 use pm_kind, only: IKG => IK3
12019 integer(IKG) , intent(out) :: rand
12020 integer(IKG) , intent(in) :: lb, ub
12021 type(rngf_type) , intent(in) :: rng
12022 end subroutine
12023#endif
12024
12025#if IK2_ENABLED
12026 impure elemental module subroutine setUnifRandRNGFLU_D0_IK2(rng, rand, lb, ub)
12027#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12028 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_IK2
12029#endif
12030 use pm_kind, only: IKG => IK2
12031 integer(IKG) , intent(out) :: rand
12032 integer(IKG) , intent(in) :: lb, ub
12033 type(rngf_type) , intent(in) :: rng
12034 end subroutine
12035#endif
12036
12037#if IK1_ENABLED
12038 impure elemental module subroutine setUnifRandRNGFLU_D0_IK1(rng, rand, lb, ub)
12039#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12040 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_IK1
12041#endif
12042 use pm_kind, only: IKG => IK1
12043 integer(IKG) , intent(out) :: rand
12044 integer(IKG) , intent(in) :: lb, ub
12045 type(rngf_type) , intent(in) :: rng
12046 end subroutine
12047#endif
12048
12049 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12050
12051#if LK5_ENABLED
12052 impure elemental module subroutine setUnifRandRNGFLU_D0_LK5(rng, rand, lb, ub)
12053#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12054 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_LK5
12055#endif
12056 use pm_kind, only: LKG => LK5
12057 logical(LKG) , intent(out) :: rand
12058 logical(LKG) , intent(in) :: lb, ub
12059 type(rngf_type) , intent(in) :: rng
12060 end subroutine
12061#endif
12062
12063#if LK4_ENABLED
12064 impure elemental module subroutine setUnifRandRNGFLU_D0_LK4(rng, rand, lb, ub)
12065#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12066 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_LK4
12067#endif
12068 use pm_kind, only: LKG => LK4
12069 logical(LKG) , intent(out) :: rand
12070 logical(LKG) , intent(in) :: lb, ub
12071 type(rngf_type) , intent(in) :: rng
12072 end subroutine
12073#endif
12074
12075#if LK3_ENABLED
12076 impure elemental module subroutine setUnifRandRNGFLU_D0_LK3(rng, rand, lb, ub)
12077#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12078 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_LK3
12079#endif
12080 use pm_kind, only: LKG => LK3
12081 logical(LKG) , intent(out) :: rand
12082 logical(LKG) , intent(in) :: lb, ub
12083 type(rngf_type) , intent(in) :: rng
12084 end subroutine
12085#endif
12086
12087#if LK2_ENABLED
12088 impure elemental module subroutine setUnifRandRNGFLU_D0_LK2(rng, rand, lb, ub)
12089#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12090 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_LK2
12091#endif
12092 use pm_kind, only: LKG => LK2
12093 logical(LKG) , intent(out) :: rand
12094 logical(LKG) , intent(in) :: lb, ub
12095 type(rngf_type) , intent(in) :: rng
12096 end subroutine
12097#endif
12098
12099#if LK1_ENABLED
12100 impure elemental module subroutine setUnifRandRNGFLU_D0_LK1(rng, rand, lb, ub)
12101#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12102 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_LK1
12103#endif
12104 use pm_kind, only: LKG => LK1
12105 logical(LKG) , intent(out) :: rand
12106 logical(LKG) , intent(in) :: lb, ub
12107 type(rngf_type) , intent(in) :: rng
12108 end subroutine
12109#endif
12110
12111 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12112
12113#if CK5_ENABLED
12114 impure elemental module subroutine setUnifRandRNGFLU_D0_CK5(rng, rand, lb, ub)
12115#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12116 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_CK5
12117#endif
12118 use pm_kind, only: CKG => CK5
12119 complex(CKG) , intent(out) :: rand
12120 complex(CKG) , intent(in) :: lb, ub
12121 type(rngf_type) , intent(in) :: rng
12122 end subroutine
12123#endif
12124
12125#if CK4_ENABLED
12126 impure elemental module subroutine setUnifRandRNGFLU_D0_CK4(rng, rand, lb, ub)
12127#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12128 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_CK4
12129#endif
12130 use pm_kind, only: CKG => CK4
12131 complex(CKG) , intent(out) :: rand
12132 complex(CKG) , intent(in) :: lb, ub
12133 type(rngf_type) , intent(in) :: rng
12134 end subroutine
12135#endif
12136
12137#if CK3_ENABLED
12138 impure elemental module subroutine setUnifRandRNGFLU_D0_CK3(rng, rand, lb, ub)
12139#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12140 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_CK3
12141#endif
12142 use pm_kind, only: CKG => CK3
12143 complex(CKG) , intent(out) :: rand
12144 complex(CKG) , intent(in) :: lb, ub
12145 type(rngf_type) , intent(in) :: rng
12146 end subroutine
12147#endif
12148
12149#if CK2_ENABLED
12150 impure elemental module subroutine setUnifRandRNGFLU_D0_CK2(rng, rand, lb, ub)
12151#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12152 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_CK2
12153#endif
12154 use pm_kind, only: CKG => CK2
12155 complex(CKG) , intent(out) :: rand
12156 complex(CKG) , intent(in) :: lb, ub
12157 type(rngf_type) , intent(in) :: rng
12158 end subroutine
12159#endif
12160
12161#if CK1_ENABLED
12162 impure elemental module subroutine setUnifRandRNGFLU_D0_CK1(rng, rand, lb, ub)
12163#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12164 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_CK1
12165#endif
12166 use pm_kind, only: CKG => CK1
12167 complex(CKG) , intent(out) :: rand
12168 complex(CKG) , intent(in) :: lb, ub
12169 type(rngf_type) , intent(in) :: rng
12170 end subroutine
12171#endif
12172
12173 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12174
12175#if RK5_ENABLED
12176 impure elemental module subroutine setUnifRandRNGFLU_D0_RK5(rng, rand, lb, ub)
12177#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12178 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_RK5
12179#endif
12180 use pm_kind, only: RKG => RK5
12181 real(RKG) , intent(out) :: rand
12182 real(RKG) , intent(in) :: lb, ub
12183 type(rngf_type) , intent(in) :: rng
12184 end subroutine
12185#endif
12186
12187#if RK4_ENABLED
12188 impure elemental module subroutine setUnifRandRNGFLU_D0_RK4(rng, rand, lb, ub)
12189#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12190 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_RK4
12191#endif
12192 use pm_kind, only: RKG => RK4
12193 real(RKG) , intent(out) :: rand
12194 real(RKG) , intent(in) :: lb, ub
12195 type(rngf_type) , intent(in) :: rng
12196 end subroutine
12197#endif
12198
12199#if RK3_ENABLED
12200 impure elemental module subroutine setUnifRandRNGFLU_D0_RK3(rng, rand, lb, ub)
12201#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12202 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_RK3
12203#endif
12204 use pm_kind, only: RKG => RK3
12205 real(RKG) , intent(out) :: rand
12206 real(RKG) , intent(in) :: lb, ub
12207 type(rngf_type) , intent(in) :: rng
12208 end subroutine
12209#endif
12210
12211#if RK2_ENABLED
12212 impure elemental module subroutine setUnifRandRNGFLU_D0_RK2(rng, rand, lb, ub)
12213#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12214 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_RK2
12215#endif
12216 use pm_kind, only: RKG => RK2
12217 real(RKG) , intent(out) :: rand
12218 real(RKG) , intent(in) :: lb, ub
12219 type(rngf_type) , intent(in) :: rng
12220 end subroutine
12221#endif
12222
12223#if RK1_ENABLED
12224 impure elemental module subroutine setUnifRandRNGFLU_D0_RK1(rng, rand, lb, ub)
12225#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12226 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGFLU_D0_RK1
12227#endif
12228 use pm_kind, only: RKG => RK1
12229 real(RKG) , intent(out) :: rand
12230 real(RKG) , intent(in) :: lb, ub
12231 type(rngf_type) , intent(in) :: rng
12232 end subroutine
12233#endif
12234
12235 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12236
12237 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12238 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12239 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12240
12241 end interface
12242
12243 ! RNGS
12244
12245 interface setUnifRand
12246
12247 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12248 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12249 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12250
12251 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12252
12253#if SK5_ENABLED
12254 PURE elemental module subroutine setUnifRandRNGSDD_D0_SK5(rng, rand)
12255#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12256 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_SK5
12257#endif
12258 use pm_kind, only: SKG => SK5
12259 character(*,SKG) , intent(out) :: rand
12260 type(splitmix64_type) , intent(inout) :: rng
12261 end subroutine
12262#endif
12263
12264#if SK4_ENABLED
12265 PURE elemental module subroutine setUnifRandRNGSDD_D0_SK4(rng, rand)
12266#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12267 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_SK4
12268#endif
12269 use pm_kind, only: SKG => SK4
12270 character(*,SKG) , intent(out) :: rand
12271 type(splitmix64_type) , intent(inout) :: rng
12272 end subroutine
12273#endif
12274
12275#if SK3_ENABLED
12276 PURE elemental module subroutine setUnifRandRNGSDD_D0_SK3(rng, rand)
12277#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12278 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_SK3
12279#endif
12280 use pm_kind, only: SKG => SK3
12281 character(*,SKG) , intent(out) :: rand
12282 type(splitmix64_type) , intent(inout) :: rng
12283 end subroutine
12284#endif
12285
12286#if SK2_ENABLED
12287 PURE elemental module subroutine setUnifRandRNGSDD_D0_SK2(rng, rand)
12288#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12289 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_SK2
12290#endif
12291 use pm_kind, only: SKG => SK2
12292 character(*,SKG) , intent(out) :: rand
12293 type(splitmix64_type) , intent(inout) :: rng
12294 end subroutine
12295#endif
12296
12297#if SK1_ENABLED
12298 PURE elemental module subroutine setUnifRandRNGSDD_D0_SK1(rng, rand)
12299#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12300 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_SK1
12301#endif
12302 use pm_kind, only: SKG => SK1
12303 character(*,SKG) , intent(out) :: rand
12304 type(splitmix64_type) , intent(inout) :: rng
12305 end subroutine
12306#endif
12307
12308 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12309
12310#if IK5_ENABLED
12311 PURE elemental module subroutine setUnifRandRNGSDD_D0_IK5(rng, rand)
12312#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12313 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_IK5
12314#endif
12315 use pm_kind, only: IKG => IK5
12316 integer(IKG) , intent(out) :: rand
12317 type(splitmix64_type) , intent(inout) :: rng
12318 end subroutine
12319#endif
12320
12321#if IK4_ENABLED
12322 PURE elemental module subroutine setUnifRandRNGSDD_D0_IK4(rng, rand)
12323#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12324 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_IK4
12325#endif
12326 use pm_kind, only: IKG => IK4
12327 integer(IKG) , intent(out) :: rand
12328 type(splitmix64_type) , intent(inout) :: rng
12329 end subroutine
12330#endif
12331
12332#if IK3_ENABLED
12333 PURE elemental module subroutine setUnifRandRNGSDD_D0_IK3(rng, rand)
12334#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12335 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_IK3
12336#endif
12337 use pm_kind, only: IKG => IK3
12338 integer(IKG) , intent(out) :: rand
12339 type(splitmix64_type) , intent(inout) :: rng
12340 end subroutine
12341#endif
12342
12343#if IK2_ENABLED
12344 PURE elemental module subroutine setUnifRandRNGSDD_D0_IK2(rng, rand)
12345#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12346 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_IK2
12347#endif
12348 use pm_kind, only: IKG => IK2
12349 integer(IKG) , intent(out) :: rand
12350 type(splitmix64_type) , intent(inout) :: rng
12351 end subroutine
12352#endif
12353
12354#if IK1_ENABLED
12355 PURE elemental module subroutine setUnifRandRNGSDD_D0_IK1(rng, rand)
12356#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12357 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_IK1
12358#endif
12359 use pm_kind, only: IKG => IK1
12360 integer(IKG) , intent(out) :: rand
12361 type(splitmix64_type) , intent(inout) :: rng
12362 end subroutine
12363#endif
12364
12365 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12366
12367#if LK5_ENABLED
12368 PURE elemental module subroutine setUnifRandRNGSDD_D0_LK5(rng, rand)
12369#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12370 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_LK5
12371#endif
12372 use pm_kind, only: LKG => LK5
12373 logical(LKG) , intent(out) :: rand
12374 type(splitmix64_type) , intent(inout) :: rng
12375 end subroutine
12376#endif
12377
12378#if LK4_ENABLED
12379 PURE elemental module subroutine setUnifRandRNGSDD_D0_LK4(rng, rand)
12380#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12381 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_LK4
12382#endif
12383 use pm_kind, only: LKG => LK4
12384 logical(LKG) , intent(out) :: rand
12385 type(splitmix64_type) , intent(inout) :: rng
12386 end subroutine
12387#endif
12388
12389#if LK3_ENABLED
12390 PURE elemental module subroutine setUnifRandRNGSDD_D0_LK3(rng, rand)
12391#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12392 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_LK3
12393#endif
12394 use pm_kind, only: LKG => LK3
12395 logical(LKG) , intent(out) :: rand
12396 type(splitmix64_type) , intent(inout) :: rng
12397 end subroutine
12398#endif
12399
12400#if LK2_ENABLED
12401 PURE elemental module subroutine setUnifRandRNGSDD_D0_LK2(rng, rand)
12402#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12403 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_LK2
12404#endif
12405 use pm_kind, only: LKG => LK2
12406 logical(LKG) , intent(out) :: rand
12407 type(splitmix64_type) , intent(inout) :: rng
12408 end subroutine
12409#endif
12410
12411#if LK1_ENABLED
12412 PURE elemental module subroutine setUnifRandRNGSDD_D0_LK1(rng, rand)
12413#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12414 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_LK1
12415#endif
12416 use pm_kind, only: LKG => LK1
12417 logical(LKG) , intent(out) :: rand
12418 type(splitmix64_type) , intent(inout) :: rng
12419 end subroutine
12420#endif
12421
12422 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12423
12424#if CK5_ENABLED
12425 PURE elemental module subroutine setUnifRandRNGSDD_D0_CK5(rng, rand)
12426#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12427 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_CK5
12428#endif
12429 use pm_kind, only: CKG => CK5
12430 complex(CKG) , intent(out) :: rand
12431 type(splitmix64_type) , intent(inout) :: rng
12432 end subroutine
12433#endif
12434
12435#if CK4_ENABLED
12436 PURE elemental module subroutine setUnifRandRNGSDD_D0_CK4(rng, rand)
12437#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12438 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_CK4
12439#endif
12440 use pm_kind, only: CKG => CK4
12441 complex(CKG) , intent(out) :: rand
12442 type(splitmix64_type) , intent(inout) :: rng
12443 end subroutine
12444#endif
12445
12446#if CK3_ENABLED
12447 PURE elemental module subroutine setUnifRandRNGSDD_D0_CK3(rng, rand)
12448#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12449 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_CK3
12450#endif
12451 use pm_kind, only: CKG => CK3
12452 complex(CKG) , intent(out) :: rand
12453 type(splitmix64_type) , intent(inout) :: rng
12454 end subroutine
12455#endif
12456
12457#if CK2_ENABLED
12458 PURE elemental module subroutine setUnifRandRNGSDD_D0_CK2(rng, rand)
12459#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12460 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_CK2
12461#endif
12462 use pm_kind, only: CKG => CK2
12463 complex(CKG) , intent(out) :: rand
12464 type(splitmix64_type) , intent(inout) :: rng
12465 end subroutine
12466#endif
12467
12468#if CK1_ENABLED
12469 PURE elemental module subroutine setUnifRandRNGSDD_D0_CK1(rng, rand)
12470#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12471 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_CK1
12472#endif
12473 use pm_kind, only: CKG => CK1
12474 complex(CKG) , intent(out) :: rand
12475 type(splitmix64_type) , intent(inout) :: rng
12476 end subroutine
12477#endif
12478
12479 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12480
12481#if RK5_ENABLED
12482 PURE elemental module subroutine setUnifRandRNGSDD_D0_RK5(rng, rand)
12483#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12484 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_RK5
12485#endif
12486 use pm_kind, only: RKG => RK5
12487 real(RKG) , intent(out) :: rand
12488 type(splitmix64_type) , intent(inout) :: rng
12489 end subroutine
12490#endif
12491
12492#if RK4_ENABLED
12493 PURE elemental module subroutine setUnifRandRNGSDD_D0_RK4(rng, rand)
12494#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12495 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_RK4
12496#endif
12497 use pm_kind, only: RKG => RK4
12498 real(RKG) , intent(out) :: rand
12499 type(splitmix64_type) , intent(inout) :: rng
12500 end subroutine
12501#endif
12502
12503#if RK3_ENABLED
12504 PURE elemental module subroutine setUnifRandRNGSDD_D0_RK3(rng, rand)
12505#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12506 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_RK3
12507#endif
12508 use pm_kind, only: RKG => RK3
12509 real(RKG) , intent(out) :: rand
12510 type(splitmix64_type) , intent(inout) :: rng
12511 end subroutine
12512#endif
12513
12514#if RK2_ENABLED
12515 PURE elemental module subroutine setUnifRandRNGSDD_D0_RK2(rng, rand)
12516#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12517 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_RK2
12518#endif
12519 use pm_kind, only: RKG => RK2
12520 real(RKG) , intent(out) :: rand
12521 type(splitmix64_type) , intent(inout) :: rng
12522 end subroutine
12523#endif
12524
12525#if RK1_ENABLED
12526 PURE elemental module subroutine setUnifRandRNGSDD_D0_RK1(rng, rand)
12527#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12528 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D0_RK1
12529#endif
12530 use pm_kind, only: RKG => RK1
12531 real(RKG) , intent(out) :: rand
12532 type(splitmix64_type) , intent(inout) :: rng
12533 end subroutine
12534#endif
12535
12536 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12537
12538 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12539 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12540 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12541
12542 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12543
12544#if SK5_ENABLED
12545 PURE elemental module subroutine setUnifRandRNGSLU_D0_SK5(rng, rand, lb, ub)
12546#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12547 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_SK5
12548#endif
12549 use pm_kind, only: SKG => SK5
12550 character(*,SKG) , intent(out) :: rand
12551 character(*,SKG) , intent(in) :: lb, ub
12552 type(splitmix64_type) , intent(inout) :: rng
12553 end subroutine
12554#endif
12555
12556#if SK4_ENABLED
12557 PURE elemental module subroutine setUnifRandRNGSLU_D0_SK4(rng, rand, lb, ub)
12558#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12559 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_SK4
12560#endif
12561 use pm_kind, only: SKG => SK4
12562 character(*,SKG) , intent(out) :: rand
12563 character(*,SKG) , intent(in) :: lb, ub
12564 type(splitmix64_type) , intent(inout) :: rng
12565 end subroutine
12566#endif
12567
12568#if SK3_ENABLED
12569 PURE elemental module subroutine setUnifRandRNGSLU_D0_SK3(rng, rand, lb, ub)
12570#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12571 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_SK3
12572#endif
12573 use pm_kind, only: SKG => SK3
12574 character(*,SKG) , intent(out) :: rand
12575 character(*,SKG) , intent(in) :: lb, ub
12576 type(splitmix64_type) , intent(inout) :: rng
12577 end subroutine
12578#endif
12579
12580#if SK2_ENABLED
12581 PURE elemental module subroutine setUnifRandRNGSLU_D0_SK2(rng, rand, lb, ub)
12582#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12583 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_SK2
12584#endif
12585 use pm_kind, only: SKG => SK2
12586 character(*,SKG) , intent(out) :: rand
12587 character(*,SKG) , intent(in) :: lb, ub
12588 type(splitmix64_type) , intent(inout) :: rng
12589 end subroutine
12590#endif
12591
12592#if SK1_ENABLED
12593 PURE elemental module subroutine setUnifRandRNGSLU_D0_SK1(rng, rand, lb, ub)
12594#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12595 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_SK1
12596#endif
12597 use pm_kind, only: SKG => SK1
12598 character(*,SKG) , intent(out) :: rand
12599 character(*,SKG) , intent(in) :: lb, ub
12600 type(splitmix64_type) , intent(inout) :: rng
12601 end subroutine
12602#endif
12603
12604 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12605
12606#if IK5_ENABLED
12607 PURE elemental module subroutine setUnifRandRNGSLU_D0_IK5(rng, rand, lb, ub)
12608#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12609 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_IK5
12610#endif
12611 use pm_kind, only: IKG => IK5
12612 integer(IKG) , intent(out) :: rand
12613 integer(IKG) , intent(in) :: lb, ub
12614 type(splitmix64_type) , intent(inout) :: rng
12615 end subroutine
12616#endif
12617
12618#if IK4_ENABLED
12619 PURE elemental module subroutine setUnifRandRNGSLU_D0_IK4(rng, rand, lb, ub)
12620#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12621 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_IK4
12622#endif
12623 use pm_kind, only: IKG => IK4
12624 integer(IKG) , intent(out) :: rand
12625 integer(IKG) , intent(in) :: lb, ub
12626 type(splitmix64_type) , intent(inout) :: rng
12627 end subroutine
12628#endif
12629
12630#if IK3_ENABLED
12631 PURE elemental module subroutine setUnifRandRNGSLU_D0_IK3(rng, rand, lb, ub)
12632#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12633 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_IK3
12634#endif
12635 use pm_kind, only: IKG => IK3
12636 integer(IKG) , intent(out) :: rand
12637 integer(IKG) , intent(in) :: lb, ub
12638 type(splitmix64_type) , intent(inout) :: rng
12639 end subroutine
12640#endif
12641
12642#if IK2_ENABLED
12643 PURE elemental module subroutine setUnifRandRNGSLU_D0_IK2(rng, rand, lb, ub)
12644#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12645 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_IK2
12646#endif
12647 use pm_kind, only: IKG => IK2
12648 integer(IKG) , intent(out) :: rand
12649 integer(IKG) , intent(in) :: lb, ub
12650 type(splitmix64_type) , intent(inout) :: rng
12651 end subroutine
12652#endif
12653
12654#if IK1_ENABLED
12655 PURE elemental module subroutine setUnifRandRNGSLU_D0_IK1(rng, rand, lb, ub)
12656#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12657 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_IK1
12658#endif
12659 use pm_kind, only: IKG => IK1
12660 integer(IKG) , intent(out) :: rand
12661 integer(IKG) , intent(in) :: lb, ub
12662 type(splitmix64_type) , intent(inout) :: rng
12663 end subroutine
12664#endif
12665
12666 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12667
12668#if LK5_ENABLED
12669 PURE elemental module subroutine setUnifRandRNGSLU_D0_LK5(rng, rand, lb, ub)
12670#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12671 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_LK5
12672#endif
12673 use pm_kind, only: LKG => LK5
12674 logical(LKG) , intent(out) :: rand
12675 logical(LKG) , intent(in) :: lb, ub
12676 type(splitmix64_type) , intent(inout) :: rng
12677 end subroutine
12678#endif
12679
12680#if LK4_ENABLED
12681 PURE elemental module subroutine setUnifRandRNGSLU_D0_LK4(rng, rand, lb, ub)
12682#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12683 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_LK4
12684#endif
12685 use pm_kind, only: LKG => LK4
12686 logical(LKG) , intent(out) :: rand
12687 logical(LKG) , intent(in) :: lb, ub
12688 type(splitmix64_type) , intent(inout) :: rng
12689 end subroutine
12690#endif
12691
12692#if LK3_ENABLED
12693 PURE elemental module subroutine setUnifRandRNGSLU_D0_LK3(rng, rand, lb, ub)
12694#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12695 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_LK3
12696#endif
12697 use pm_kind, only: LKG => LK3
12698 logical(LKG) , intent(out) :: rand
12699 logical(LKG) , intent(in) :: lb, ub
12700 type(splitmix64_type) , intent(inout) :: rng
12701 end subroutine
12702#endif
12703
12704#if LK2_ENABLED
12705 PURE elemental module subroutine setUnifRandRNGSLU_D0_LK2(rng, rand, lb, ub)
12706#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12707 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_LK2
12708#endif
12709 use pm_kind, only: LKG => LK2
12710 logical(LKG) , intent(out) :: rand
12711 logical(LKG) , intent(in) :: lb, ub
12712 type(splitmix64_type) , intent(inout) :: rng
12713 end subroutine
12714#endif
12715
12716#if LK1_ENABLED
12717 PURE elemental module subroutine setUnifRandRNGSLU_D0_LK1(rng, rand, lb, ub)
12718#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12719 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_LK1
12720#endif
12721 use pm_kind, only: LKG => LK1
12722 logical(LKG) , intent(out) :: rand
12723 logical(LKG) , intent(in) :: lb, ub
12724 type(splitmix64_type) , intent(inout) :: rng
12725 end subroutine
12726#endif
12727
12728 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12729
12730#if CK5_ENABLED
12731 PURE elemental module subroutine setUnifRandRNGSLU_D0_CK5(rng, rand, lb, ub)
12732#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12733 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_CK5
12734#endif
12735 use pm_kind, only: CKG => CK5
12736 complex(CKG) , intent(out) :: rand
12737 complex(CKG) , intent(in) :: lb, ub
12738 type(splitmix64_type) , intent(inout) :: rng
12739 end subroutine
12740#endif
12741
12742#if CK4_ENABLED
12743 PURE elemental module subroutine setUnifRandRNGSLU_D0_CK4(rng, rand, lb, ub)
12744#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12745 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_CK4
12746#endif
12747 use pm_kind, only: CKG => CK4
12748 complex(CKG) , intent(out) :: rand
12749 complex(CKG) , intent(in) :: lb, ub
12750 type(splitmix64_type) , intent(inout) :: rng
12751 end subroutine
12752#endif
12753
12754#if CK3_ENABLED
12755 PURE elemental module subroutine setUnifRandRNGSLU_D0_CK3(rng, rand, lb, ub)
12756#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12757 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_CK3
12758#endif
12759 use pm_kind, only: CKG => CK3
12760 complex(CKG) , intent(out) :: rand
12761 complex(CKG) , intent(in) :: lb, ub
12762 type(splitmix64_type) , intent(inout) :: rng
12763 end subroutine
12764#endif
12765
12766#if CK2_ENABLED
12767 PURE elemental module subroutine setUnifRandRNGSLU_D0_CK2(rng, rand, lb, ub)
12768#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12769 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_CK2
12770#endif
12771 use pm_kind, only: CKG => CK2
12772 complex(CKG) , intent(out) :: rand
12773 complex(CKG) , intent(in) :: lb, ub
12774 type(splitmix64_type) , intent(inout) :: rng
12775 end subroutine
12776#endif
12777
12778#if CK1_ENABLED
12779 PURE elemental module subroutine setUnifRandRNGSLU_D0_CK1(rng, rand, lb, ub)
12780#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12781 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_CK1
12782#endif
12783 use pm_kind, only: CKG => CK1
12784 complex(CKG) , intent(out) :: rand
12785 complex(CKG) , intent(in) :: lb, ub
12786 type(splitmix64_type) , intent(inout) :: rng
12787 end subroutine
12788#endif
12789
12790 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12791
12792#if RK5_ENABLED
12793 PURE elemental module subroutine setUnifRandRNGSLU_D0_RK5(rng, rand, lb, ub)
12794#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12795 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_RK5
12796#endif
12797 use pm_kind, only: RKG => RK5
12798 real(RKG) , intent(out) :: rand
12799 real(RKG) , intent(in) :: lb, ub
12800 type(splitmix64_type) , intent(inout) :: rng
12801 end subroutine
12802#endif
12803
12804#if RK4_ENABLED
12805 PURE elemental module subroutine setUnifRandRNGSLU_D0_RK4(rng, rand, lb, ub)
12806#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12807 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_RK4
12808#endif
12809 use pm_kind, only: RKG => RK4
12810 real(RKG) , intent(out) :: rand
12811 real(RKG) , intent(in) :: lb, ub
12812 type(splitmix64_type) , intent(inout) :: rng
12813 end subroutine
12814#endif
12815
12816#if RK3_ENABLED
12817 PURE elemental module subroutine setUnifRandRNGSLU_D0_RK3(rng, rand, lb, ub)
12818#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12819 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_RK3
12820#endif
12821 use pm_kind, only: RKG => RK3
12822 real(RKG) , intent(out) :: rand
12823 real(RKG) , intent(in) :: lb, ub
12824 type(splitmix64_type) , intent(inout) :: rng
12825 end subroutine
12826#endif
12827
12828#if RK2_ENABLED
12829 PURE elemental module subroutine setUnifRandRNGSLU_D0_RK2(rng, rand, lb, ub)
12830#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12831 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_RK2
12832#endif
12833 use pm_kind, only: RKG => RK2
12834 real(RKG) , intent(out) :: rand
12835 real(RKG) , intent(in) :: lb, ub
12836 type(splitmix64_type) , intent(inout) :: rng
12837 end subroutine
12838#endif
12839
12840#if RK1_ENABLED
12841 PURE elemental module subroutine setUnifRandRNGSLU_D0_RK1(rng, rand, lb, ub)
12842#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12843 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D0_RK1
12844#endif
12845 use pm_kind, only: RKG => RK1
12846 real(RKG) , intent(out) :: rand
12847 real(RKG) , intent(in) :: lb, ub
12848 type(splitmix64_type) , intent(inout) :: rng
12849 end subroutine
12850#endif
12851
12852 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12853
12854 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12855 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12856 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12857
12858 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12859 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12860 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12861
12862 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12863
12864#if SK5_ENABLED
12865 PURE module subroutine setUnifRandRNGSDD_D1_SK5(rng, rand)
12866#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12867 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_SK5
12868#endif
12869 use pm_kind, only: SKG => SK5
12870 character(*,SKG) , intent(out) :: rand(:)
12871 type(splitmix64_type) , intent(inout) :: rng
12872 end subroutine
12873#endif
12874
12875#if SK4_ENABLED
12876 PURE module subroutine setUnifRandRNGSDD_D1_SK4(rng, rand)
12877#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12878 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_SK4
12879#endif
12880 use pm_kind, only: SKG => SK4
12881 character(*,SKG) , intent(out) :: rand(:)
12882 type(splitmix64_type) , intent(inout) :: rng
12883 end subroutine
12884#endif
12885
12886#if SK3_ENABLED
12887 PURE module subroutine setUnifRandRNGSDD_D1_SK3(rng, rand)
12888#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12889 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_SK3
12890#endif
12891 use pm_kind, only: SKG => SK3
12892 character(*,SKG) , intent(out) :: rand(:)
12893 type(splitmix64_type) , intent(inout) :: rng
12894 end subroutine
12895#endif
12896
12897#if SK2_ENABLED
12898 PURE module subroutine setUnifRandRNGSDD_D1_SK2(rng, rand)
12899#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12900 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_SK2
12901#endif
12902 use pm_kind, only: SKG => SK2
12903 character(*,SKG) , intent(out) :: rand(:)
12904 type(splitmix64_type) , intent(inout) :: rng
12905 end subroutine
12906#endif
12907
12908#if SK1_ENABLED
12909 PURE module subroutine setUnifRandRNGSDD_D1_SK1(rng, rand)
12910#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12911 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_SK1
12912#endif
12913 use pm_kind, only: SKG => SK1
12914 character(*,SKG) , intent(out) :: rand(:)
12915 type(splitmix64_type) , intent(inout) :: rng
12916 end subroutine
12917#endif
12918
12919 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12920
12921#if IK5_ENABLED
12922 PURE module subroutine setUnifRandRNGSDD_D1_IK5(rng, rand)
12923#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12924 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_IK5
12925#endif
12926 use pm_kind, only: IKG => IK5
12927 integer(IKG) , intent(out) :: rand(:)
12928 type(splitmix64_type) , intent(inout) :: rng
12929 end subroutine
12930#endif
12931
12932#if IK4_ENABLED
12933 PURE module subroutine setUnifRandRNGSDD_D1_IK4(rng, rand)
12934#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12935 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_IK4
12936#endif
12937 use pm_kind, only: IKG => IK4
12938 integer(IKG) , intent(out) :: rand(:)
12939 type(splitmix64_type) , intent(inout) :: rng
12940 end subroutine
12941#endif
12942
12943#if IK3_ENABLED
12944 PURE module subroutine setUnifRandRNGSDD_D1_IK3(rng, rand)
12945#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12946 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_IK3
12947#endif
12948 use pm_kind, only: IKG => IK3
12949 integer(IKG) , intent(out) :: rand(:)
12950 type(splitmix64_type) , intent(inout) :: rng
12951 end subroutine
12952#endif
12953
12954#if IK2_ENABLED
12955 PURE module subroutine setUnifRandRNGSDD_D1_IK2(rng, rand)
12956#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12957 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_IK2
12958#endif
12959 use pm_kind, only: IKG => IK2
12960 integer(IKG) , intent(out) :: rand(:)
12961 type(splitmix64_type) , intent(inout) :: rng
12962 end subroutine
12963#endif
12964
12965#if IK1_ENABLED
12966 PURE module subroutine setUnifRandRNGSDD_D1_IK1(rng, rand)
12967#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12968 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_IK1
12969#endif
12970 use pm_kind, only: IKG => IK1
12971 integer(IKG) , intent(out) :: rand(:)
12972 type(splitmix64_type) , intent(inout) :: rng
12973 end subroutine
12974#endif
12975
12976 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12977
12978#if LK5_ENABLED
12979 PURE module subroutine setUnifRandRNGSDD_D1_LK5(rng, rand)
12980#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12981 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_LK5
12982#endif
12983 use pm_kind, only: LKG => LK5
12984 logical(LKG) , intent(out) :: rand(:)
12985 type(splitmix64_type) , intent(inout) :: rng
12986 end subroutine
12987#endif
12988
12989#if LK4_ENABLED
12990 PURE module subroutine setUnifRandRNGSDD_D1_LK4(rng, rand)
12991#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12992 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_LK4
12993#endif
12994 use pm_kind, only: LKG => LK4
12995 logical(LKG) , intent(out) :: rand(:)
12996 type(splitmix64_type) , intent(inout) :: rng
12997 end subroutine
12998#endif
12999
13000#if LK3_ENABLED
13001 PURE module subroutine setUnifRandRNGSDD_D1_LK3(rng, rand)
13002#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13003 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_LK3
13004#endif
13005 use pm_kind, only: LKG => LK3
13006 logical(LKG) , intent(out) :: rand(:)
13007 type(splitmix64_type) , intent(inout) :: rng
13008 end subroutine
13009#endif
13010
13011#if LK2_ENABLED
13012 PURE module subroutine setUnifRandRNGSDD_D1_LK2(rng, rand)
13013#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13014 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_LK2
13015#endif
13016 use pm_kind, only: LKG => LK2
13017 logical(LKG) , intent(out) :: rand(:)
13018 type(splitmix64_type) , intent(inout) :: rng
13019 end subroutine
13020#endif
13021
13022#if LK1_ENABLED
13023 PURE module subroutine setUnifRandRNGSDD_D1_LK1(rng, rand)
13024#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13025 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_LK1
13026#endif
13027 use pm_kind, only: LKG => LK1
13028 logical(LKG) , intent(out) :: rand(:)
13029 type(splitmix64_type) , intent(inout) :: rng
13030 end subroutine
13031#endif
13032
13033 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13034
13035#if CK5_ENABLED
13036 PURE module subroutine setUnifRandRNGSDD_D1_CK5(rng, rand)
13037#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13038 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_CK5
13039#endif
13040 use pm_kind, only: CKG => CK5
13041 complex(CKG) , intent(out) :: rand(:)
13042 type(splitmix64_type) , intent(inout) :: rng
13043 end subroutine
13044#endif
13045
13046#if CK4_ENABLED
13047 PURE module subroutine setUnifRandRNGSDD_D1_CK4(rng, rand)
13048#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13049 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_CK4
13050#endif
13051 use pm_kind, only: CKG => CK4
13052 complex(CKG) , intent(out) :: rand(:)
13053 type(splitmix64_type) , intent(inout) :: rng
13054 end subroutine
13055#endif
13056
13057#if CK3_ENABLED
13058 PURE module subroutine setUnifRandRNGSDD_D1_CK3(rng, rand)
13059#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13060 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_CK3
13061#endif
13062 use pm_kind, only: CKG => CK3
13063 complex(CKG) , intent(out) :: rand(:)
13064 type(splitmix64_type) , intent(inout) :: rng
13065 end subroutine
13066#endif
13067
13068#if CK2_ENABLED
13069 PURE module subroutine setUnifRandRNGSDD_D1_CK2(rng, rand)
13070#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13071 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_CK2
13072#endif
13073 use pm_kind, only: CKG => CK2
13074 complex(CKG) , intent(out) :: rand(:)
13075 type(splitmix64_type) , intent(inout) :: rng
13076 end subroutine
13077#endif
13078
13079#if CK1_ENABLED
13080 PURE module subroutine setUnifRandRNGSDD_D1_CK1(rng, rand)
13081#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13082 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_CK1
13083#endif
13084 use pm_kind, only: CKG => CK1
13085 complex(CKG) , intent(out) :: rand(:)
13086 type(splitmix64_type) , intent(inout) :: rng
13087 end subroutine
13088#endif
13089
13090 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13091
13092#if RK5_ENABLED
13093 PURE module subroutine setUnifRandRNGSDD_D1_RK5(rng, rand)
13094#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13095 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_RK5
13096#endif
13097 use pm_kind, only: RKG => RK5
13098 real(RKG) , intent(out) :: rand(:)
13099 type(splitmix64_type) , intent(inout) :: rng
13100 end subroutine
13101#endif
13102
13103#if RK4_ENABLED
13104 PURE module subroutine setUnifRandRNGSDD_D1_RK4(rng, rand)
13105#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13106 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_RK4
13107#endif
13108 use pm_kind, only: RKG => RK4
13109 real(RKG) , intent(out) :: rand(:)
13110 type(splitmix64_type) , intent(inout) :: rng
13111 end subroutine
13112#endif
13113
13114#if RK3_ENABLED
13115 PURE module subroutine setUnifRandRNGSDD_D1_RK3(rng, rand)
13116#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13117 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_RK3
13118#endif
13119 use pm_kind, only: RKG => RK3
13120 real(RKG) , intent(out) :: rand(:)
13121 type(splitmix64_type) , intent(inout) :: rng
13122 end subroutine
13123#endif
13124
13125#if RK2_ENABLED
13126 PURE module subroutine setUnifRandRNGSDD_D1_RK2(rng, rand)
13127#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13128 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_RK2
13129#endif
13130 use pm_kind, only: RKG => RK2
13131 real(RKG) , intent(out) :: rand(:)
13132 type(splitmix64_type) , intent(inout) :: rng
13133 end subroutine
13134#endif
13135
13136#if RK1_ENABLED
13137 PURE module subroutine setUnifRandRNGSDD_D1_RK1(rng, rand)
13138#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13139 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D1_RK1
13140#endif
13141 use pm_kind, only: RKG => RK1
13142 real(RKG) , intent(out) :: rand(:)
13143 type(splitmix64_type) , intent(inout) :: rng
13144 end subroutine
13145#endif
13146
13147 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13148
13149 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13150 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13151 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13152
13153 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13154
13155#if SK5_ENABLED
13156 PURE module subroutine setUnifRandRNGSLU_D1_SK5(rng, rand, lb, ub)
13157#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13158 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_SK5
13159#endif
13160 use pm_kind, only: SKG => SK5
13161 character(*,SKG) , intent(out) :: rand(:)
13162 character(*,SKG) , intent(in) :: lb, ub
13163 type(splitmix64_type) , intent(inout) :: rng
13164 end subroutine
13165#endif
13166
13167#if SK4_ENABLED
13168 PURE module subroutine setUnifRandRNGSLU_D1_SK4(rng, rand, lb, ub)
13169#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13170 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_SK4
13171#endif
13172 use pm_kind, only: SKG => SK4
13173 character(*,SKG) , intent(out) :: rand(:)
13174 character(*,SKG) , intent(in) :: lb, ub
13175 type(splitmix64_type) , intent(inout) :: rng
13176 end subroutine
13177#endif
13178
13179#if SK3_ENABLED
13180 PURE module subroutine setUnifRandRNGSLU_D1_SK3(rng, rand, lb, ub)
13181#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13182 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_SK3
13183#endif
13184 use pm_kind, only: SKG => SK3
13185 character(*,SKG) , intent(out) :: rand(:)
13186 character(*,SKG) , intent(in) :: lb, ub
13187 type(splitmix64_type) , intent(inout) :: rng
13188 end subroutine
13189#endif
13190
13191#if SK2_ENABLED
13192 PURE module subroutine setUnifRandRNGSLU_D1_SK2(rng, rand, lb, ub)
13193#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13194 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_SK2
13195#endif
13196 use pm_kind, only: SKG => SK2
13197 character(*,SKG) , intent(out) :: rand(:)
13198 character(*,SKG) , intent(in) :: lb, ub
13199 type(splitmix64_type) , intent(inout) :: rng
13200 end subroutine
13201#endif
13202
13203#if SK1_ENABLED
13204 PURE module subroutine setUnifRandRNGSLU_D1_SK1(rng, rand, lb, ub)
13205#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13206 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_SK1
13207#endif
13208 use pm_kind, only: SKG => SK1
13209 character(*,SKG) , intent(out) :: rand(:)
13210 character(*,SKG) , intent(in) :: lb, ub
13211 type(splitmix64_type) , intent(inout) :: rng
13212 end subroutine
13213#endif
13214
13215 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13216
13217#if IK5_ENABLED
13218 PURE module subroutine setUnifRandRNGSLU_D1_IK5(rng, rand, lb, ub)
13219#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13220 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_IK5
13221#endif
13222 use pm_kind, only: IKG => IK5
13223 integer(IKG) , intent(out) :: rand(:)
13224 integer(IKG) , intent(in) :: lb, ub
13225 type(splitmix64_type) , intent(inout) :: rng
13226 end subroutine
13227#endif
13228
13229#if IK4_ENABLED
13230 PURE module subroutine setUnifRandRNGSLU_D1_IK4(rng, rand, lb, ub)
13231#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13232 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_IK4
13233#endif
13234 use pm_kind, only: IKG => IK4
13235 integer(IKG) , intent(out) :: rand(:)
13236 integer(IKG) , intent(in) :: lb, ub
13237 type(splitmix64_type) , intent(inout) :: rng
13238 end subroutine
13239#endif
13240
13241#if IK3_ENABLED
13242 PURE module subroutine setUnifRandRNGSLU_D1_IK3(rng, rand, lb, ub)
13243#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13244 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_IK3
13245#endif
13246 use pm_kind, only: IKG => IK3
13247 integer(IKG) , intent(out) :: rand(:)
13248 integer(IKG) , intent(in) :: lb, ub
13249 type(splitmix64_type) , intent(inout) :: rng
13250 end subroutine
13251#endif
13252
13253#if IK2_ENABLED
13254 PURE module subroutine setUnifRandRNGSLU_D1_IK2(rng, rand, lb, ub)
13255#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13256 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_IK2
13257#endif
13258 use pm_kind, only: IKG => IK2
13259 integer(IKG) , intent(out) :: rand(:)
13260 integer(IKG) , intent(in) :: lb, ub
13261 type(splitmix64_type) , intent(inout) :: rng
13262 end subroutine
13263#endif
13264
13265#if IK1_ENABLED
13266 PURE module subroutine setUnifRandRNGSLU_D1_IK1(rng, rand, lb, ub)
13267#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13268 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_IK1
13269#endif
13270 use pm_kind, only: IKG => IK1
13271 integer(IKG) , intent(out) :: rand(:)
13272 integer(IKG) , intent(in) :: lb, ub
13273 type(splitmix64_type) , intent(inout) :: rng
13274 end subroutine
13275#endif
13276
13277 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13278
13279#if LK5_ENABLED
13280 PURE module subroutine setUnifRandRNGSLU_D1_LK5(rng, rand, lb, ub)
13281#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13282 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_LK5
13283#endif
13284 use pm_kind, only: LKG => LK5
13285 logical(LKG) , intent(out) :: rand(:)
13286 logical(LKG) , intent(in) :: lb, ub
13287 type(splitmix64_type) , intent(inout) :: rng
13288 end subroutine
13289#endif
13290
13291#if LK4_ENABLED
13292 PURE module subroutine setUnifRandRNGSLU_D1_LK4(rng, rand, lb, ub)
13293#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13294 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_LK4
13295#endif
13296 use pm_kind, only: LKG => LK4
13297 logical(LKG) , intent(out) :: rand(:)
13298 logical(LKG) , intent(in) :: lb, ub
13299 type(splitmix64_type) , intent(inout) :: rng
13300 end subroutine
13301#endif
13302
13303#if LK3_ENABLED
13304 PURE module subroutine setUnifRandRNGSLU_D1_LK3(rng, rand, lb, ub)
13305#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13306 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_LK3
13307#endif
13308 use pm_kind, only: LKG => LK3
13309 logical(LKG) , intent(out) :: rand(:)
13310 logical(LKG) , intent(in) :: lb, ub
13311 type(splitmix64_type) , intent(inout) :: rng
13312 end subroutine
13313#endif
13314
13315#if LK2_ENABLED
13316 PURE module subroutine setUnifRandRNGSLU_D1_LK2(rng, rand, lb, ub)
13317#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13318 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_LK2
13319#endif
13320 use pm_kind, only: LKG => LK2
13321 logical(LKG) , intent(out) :: rand(:)
13322 logical(LKG) , intent(in) :: lb, ub
13323 type(splitmix64_type) , intent(inout) :: rng
13324 end subroutine
13325#endif
13326
13327#if LK1_ENABLED
13328 PURE module subroutine setUnifRandRNGSLU_D1_LK1(rng, rand, lb, ub)
13329#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13330 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_LK1
13331#endif
13332 use pm_kind, only: LKG => LK1
13333 logical(LKG) , intent(out) :: rand(:)
13334 logical(LKG) , intent(in) :: lb, ub
13335 type(splitmix64_type) , intent(inout) :: rng
13336 end subroutine
13337#endif
13338
13339 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13340
13341#if CK5_ENABLED
13342 PURE module subroutine setUnifRandRNGSLU_D1_CK5(rng, rand, lb, ub)
13343#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13344 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_CK5
13345#endif
13346 use pm_kind, only: CKG => CK5
13347 complex(CKG) , intent(out) :: rand(:)
13348 complex(CKG) , intent(in) :: lb, ub
13349 type(splitmix64_type) , intent(inout) :: rng
13350 end subroutine
13351#endif
13352
13353#if CK4_ENABLED
13354 PURE module subroutine setUnifRandRNGSLU_D1_CK4(rng, rand, lb, ub)
13355#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13356 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_CK4
13357#endif
13358 use pm_kind, only: CKG => CK4
13359 complex(CKG) , intent(out) :: rand(:)
13360 complex(CKG) , intent(in) :: lb, ub
13361 type(splitmix64_type) , intent(inout) :: rng
13362 end subroutine
13363#endif
13364
13365#if CK3_ENABLED
13366 PURE module subroutine setUnifRandRNGSLU_D1_CK3(rng, rand, lb, ub)
13367#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13368 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_CK3
13369#endif
13370 use pm_kind, only: CKG => CK3
13371 complex(CKG) , intent(out) :: rand(:)
13372 complex(CKG) , intent(in) :: lb, ub
13373 type(splitmix64_type) , intent(inout) :: rng
13374 end subroutine
13375#endif
13376
13377#if CK2_ENABLED
13378 PURE module subroutine setUnifRandRNGSLU_D1_CK2(rng, rand, lb, ub)
13379#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13380 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_CK2
13381#endif
13382 use pm_kind, only: CKG => CK2
13383 complex(CKG) , intent(out) :: rand(:)
13384 complex(CKG) , intent(in) :: lb, ub
13385 type(splitmix64_type) , intent(inout) :: rng
13386 end subroutine
13387#endif
13388
13389#if CK1_ENABLED
13390 PURE module subroutine setUnifRandRNGSLU_D1_CK1(rng, rand, lb, ub)
13391#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13392 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_CK1
13393#endif
13394 use pm_kind, only: CKG => CK1
13395 complex(CKG) , intent(out) :: rand(:)
13396 complex(CKG) , intent(in) :: lb, ub
13397 type(splitmix64_type) , intent(inout) :: rng
13398 end subroutine
13399#endif
13400
13401 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13402
13403#if RK5_ENABLED
13404 PURE module subroutine setUnifRandRNGSLU_D1_RK5(rng, rand, lb, ub)
13405#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13406 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_RK5
13407#endif
13408 use pm_kind, only: RKG => RK5
13409 real(RKG) , intent(out) :: rand(:)
13410 real(RKG) , intent(in) :: lb, ub
13411 type(splitmix64_type) , intent(inout) :: rng
13412 end subroutine
13413#endif
13414
13415#if RK4_ENABLED
13416 PURE module subroutine setUnifRandRNGSLU_D1_RK4(rng, rand, lb, ub)
13417#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13418 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_RK4
13419#endif
13420 use pm_kind, only: RKG => RK4
13421 real(RKG) , intent(out) :: rand(:)
13422 real(RKG) , intent(in) :: lb, ub
13423 type(splitmix64_type) , intent(inout) :: rng
13424 end subroutine
13425#endif
13426
13427#if RK3_ENABLED
13428 PURE module subroutine setUnifRandRNGSLU_D1_RK3(rng, rand, lb, ub)
13429#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13430 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_RK3
13431#endif
13432 use pm_kind, only: RKG => RK3
13433 real(RKG) , intent(out) :: rand(:)
13434 real(RKG) , intent(in) :: lb, ub
13435 type(splitmix64_type) , intent(inout) :: rng
13436 end subroutine
13437#endif
13438
13439#if RK2_ENABLED
13440 PURE module subroutine setUnifRandRNGSLU_D1_RK2(rng, rand, lb, ub)
13441#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13442 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_RK2
13443#endif
13444 use pm_kind, only: RKG => RK2
13445 real(RKG) , intent(out) :: rand(:)
13446 real(RKG) , intent(in) :: lb, ub
13447 type(splitmix64_type) , intent(inout) :: rng
13448 end subroutine
13449#endif
13450
13451#if RK1_ENABLED
13452 PURE module subroutine setUnifRandRNGSLU_D1_RK1(rng, rand, lb, ub)
13453#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13454 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D1_RK1
13455#endif
13456 use pm_kind, only: RKG => RK1
13457 real(RKG) , intent(out) :: rand(:)
13458 real(RKG) , intent(in) :: lb, ub
13459 type(splitmix64_type) , intent(inout) :: rng
13460 end subroutine
13461#endif
13462
13463 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13464
13465 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13466 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13467 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13468
13469 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13470 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13471 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13472
13473 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13474
13475#if SK5_ENABLED
13476 PURE module subroutine setUnifRandRNGSDD_D2_SK5(rng, rand)
13477#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13478 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_SK5
13479#endif
13480 use pm_kind, only: SKG => SK5
13481 character(*,SKG) , intent(out) :: rand(:,:)
13482 type(splitmix64_type) , intent(inout) :: rng
13483 end subroutine
13484#endif
13485
13486#if SK4_ENABLED
13487 PURE module subroutine setUnifRandRNGSDD_D2_SK4(rng, rand)
13488#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13489 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_SK4
13490#endif
13491 use pm_kind, only: SKG => SK4
13492 character(*,SKG) , intent(out) :: rand(:,:)
13493 type(splitmix64_type) , intent(inout) :: rng
13494 end subroutine
13495#endif
13496
13497#if SK3_ENABLED
13498 PURE module subroutine setUnifRandRNGSDD_D2_SK3(rng, rand)
13499#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13500 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_SK3
13501#endif
13502 use pm_kind, only: SKG => SK3
13503 character(*,SKG) , intent(out) :: rand(:,:)
13504 type(splitmix64_type) , intent(inout) :: rng
13505 end subroutine
13506#endif
13507
13508#if SK2_ENABLED
13509 PURE module subroutine setUnifRandRNGSDD_D2_SK2(rng, rand)
13510#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13511 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_SK2
13512#endif
13513 use pm_kind, only: SKG => SK2
13514 character(*,SKG) , intent(out) :: rand(:,:)
13515 type(splitmix64_type) , intent(inout) :: rng
13516 end subroutine
13517#endif
13518
13519#if SK1_ENABLED
13520 PURE module subroutine setUnifRandRNGSDD_D2_SK1(rng, rand)
13521#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13522 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_SK1
13523#endif
13524 use pm_kind, only: SKG => SK1
13525 character(*,SKG) , intent(out) :: rand(:,:)
13526 type(splitmix64_type) , intent(inout) :: rng
13527 end subroutine
13528#endif
13529
13530 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13531
13532#if IK5_ENABLED
13533 PURE module subroutine setUnifRandRNGSDD_D2_IK5(rng, rand)
13534#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13535 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_IK5
13536#endif
13537 use pm_kind, only: IKG => IK5
13538 integer(IKG) , intent(out) :: rand(:,:)
13539 type(splitmix64_type) , intent(inout) :: rng
13540 end subroutine
13541#endif
13542
13543#if IK4_ENABLED
13544 PURE module subroutine setUnifRandRNGSDD_D2_IK4(rng, rand)
13545#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13546 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_IK4
13547#endif
13548 use pm_kind, only: IKG => IK4
13549 integer(IKG) , intent(out) :: rand(:,:)
13550 type(splitmix64_type) , intent(inout) :: rng
13551 end subroutine
13552#endif
13553
13554#if IK3_ENABLED
13555 PURE module subroutine setUnifRandRNGSDD_D2_IK3(rng, rand)
13556#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13557 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_IK3
13558#endif
13559 use pm_kind, only: IKG => IK3
13560 integer(IKG) , intent(out) :: rand(:,:)
13561 type(splitmix64_type) , intent(inout) :: rng
13562 end subroutine
13563#endif
13564
13565#if IK2_ENABLED
13566 PURE module subroutine setUnifRandRNGSDD_D2_IK2(rng, rand)
13567#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13568 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_IK2
13569#endif
13570 use pm_kind, only: IKG => IK2
13571 integer(IKG) , intent(out) :: rand(:,:)
13572 type(splitmix64_type) , intent(inout) :: rng
13573 end subroutine
13574#endif
13575
13576#if IK1_ENABLED
13577 PURE module subroutine setUnifRandRNGSDD_D2_IK1(rng, rand)
13578#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13579 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_IK1
13580#endif
13581 use pm_kind, only: IKG => IK1
13582 integer(IKG) , intent(out) :: rand(:,:)
13583 type(splitmix64_type) , intent(inout) :: rng
13584 end subroutine
13585#endif
13586
13587 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13588
13589#if LK5_ENABLED
13590 PURE module subroutine setUnifRandRNGSDD_D2_LK5(rng, rand)
13591#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13592 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_LK5
13593#endif
13594 use pm_kind, only: LKG => LK5
13595 logical(LKG) , intent(out) :: rand(:,:)
13596 type(splitmix64_type) , intent(inout) :: rng
13597 end subroutine
13598#endif
13599
13600#if LK4_ENABLED
13601 PURE module subroutine setUnifRandRNGSDD_D2_LK4(rng, rand)
13602#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13603 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_LK4
13604#endif
13605 use pm_kind, only: LKG => LK4
13606 logical(LKG) , intent(out) :: rand(:,:)
13607 type(splitmix64_type) , intent(inout) :: rng
13608 end subroutine
13609#endif
13610
13611#if LK3_ENABLED
13612 PURE module subroutine setUnifRandRNGSDD_D2_LK3(rng, rand)
13613#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13614 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_LK3
13615#endif
13616 use pm_kind, only: LKG => LK3
13617 logical(LKG) , intent(out) :: rand(:,:)
13618 type(splitmix64_type) , intent(inout) :: rng
13619 end subroutine
13620#endif
13621
13622#if LK2_ENABLED
13623 PURE module subroutine setUnifRandRNGSDD_D2_LK2(rng, rand)
13624#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13625 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_LK2
13626#endif
13627 use pm_kind, only: LKG => LK2
13628 logical(LKG) , intent(out) :: rand(:,:)
13629 type(splitmix64_type) , intent(inout) :: rng
13630 end subroutine
13631#endif
13632
13633#if LK1_ENABLED
13634 PURE module subroutine setUnifRandRNGSDD_D2_LK1(rng, rand)
13635#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13636 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_LK1
13637#endif
13638 use pm_kind, only: LKG => LK1
13639 logical(LKG) , intent(out) :: rand(:,:)
13640 type(splitmix64_type) , intent(inout) :: rng
13641 end subroutine
13642#endif
13643
13644 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13645
13646#if CK5_ENABLED
13647 PURE module subroutine setUnifRandRNGSDD_D2_CK5(rng, rand)
13648#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13649 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_CK5
13650#endif
13651 use pm_kind, only: CKG => CK5
13652 complex(CKG) , intent(out) :: rand(:,:)
13653 type(splitmix64_type) , intent(inout) :: rng
13654 end subroutine
13655#endif
13656
13657#if CK4_ENABLED
13658 PURE module subroutine setUnifRandRNGSDD_D2_CK4(rng, rand)
13659#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13660 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_CK4
13661#endif
13662 use pm_kind, only: CKG => CK4
13663 complex(CKG) , intent(out) :: rand(:,:)
13664 type(splitmix64_type) , intent(inout) :: rng
13665 end subroutine
13666#endif
13667
13668#if CK3_ENABLED
13669 PURE module subroutine setUnifRandRNGSDD_D2_CK3(rng, rand)
13670#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13671 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_CK3
13672#endif
13673 use pm_kind, only: CKG => CK3
13674 complex(CKG) , intent(out) :: rand(:,:)
13675 type(splitmix64_type) , intent(inout) :: rng
13676 end subroutine
13677#endif
13678
13679#if CK2_ENABLED
13680 PURE module subroutine setUnifRandRNGSDD_D2_CK2(rng, rand)
13681#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13682 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_CK2
13683#endif
13684 use pm_kind, only: CKG => CK2
13685 complex(CKG) , intent(out) :: rand(:,:)
13686 type(splitmix64_type) , intent(inout) :: rng
13687 end subroutine
13688#endif
13689
13690#if CK1_ENABLED
13691 PURE module subroutine setUnifRandRNGSDD_D2_CK1(rng, rand)
13692#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13693 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_CK1
13694#endif
13695 use pm_kind, only: CKG => CK1
13696 complex(CKG) , intent(out) :: rand(:,:)
13697 type(splitmix64_type) , intent(inout) :: rng
13698 end subroutine
13699#endif
13700
13701 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13702
13703#if RK5_ENABLED
13704 PURE module subroutine setUnifRandRNGSDD_D2_RK5(rng, rand)
13705#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13706 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_RK5
13707#endif
13708 use pm_kind, only: RKG => RK5
13709 real(RKG) , intent(out) :: rand(:,:)
13710 type(splitmix64_type) , intent(inout) :: rng
13711 end subroutine
13712#endif
13713
13714#if RK4_ENABLED
13715 PURE module subroutine setUnifRandRNGSDD_D2_RK4(rng, rand)
13716#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13717 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_RK4
13718#endif
13719 use pm_kind, only: RKG => RK4
13720 real(RKG) , intent(out) :: rand(:,:)
13721 type(splitmix64_type) , intent(inout) :: rng
13722 end subroutine
13723#endif
13724
13725#if RK3_ENABLED
13726 PURE module subroutine setUnifRandRNGSDD_D2_RK3(rng, rand)
13727#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13728 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_RK3
13729#endif
13730 use pm_kind, only: RKG => RK3
13731 real(RKG) , intent(out) :: rand(:,:)
13732 type(splitmix64_type) , intent(inout) :: rng
13733 end subroutine
13734#endif
13735
13736#if RK2_ENABLED
13737 PURE module subroutine setUnifRandRNGSDD_D2_RK2(rng, rand)
13738#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13739 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_RK2
13740#endif
13741 use pm_kind, only: RKG => RK2
13742 real(RKG) , intent(out) :: rand(:,:)
13743 type(splitmix64_type) , intent(inout) :: rng
13744 end subroutine
13745#endif
13746
13747#if RK1_ENABLED
13748 PURE module subroutine setUnifRandRNGSDD_D2_RK1(rng, rand)
13749#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13750 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D2_RK1
13751#endif
13752 use pm_kind, only: RKG => RK1
13753 real(RKG) , intent(out) :: rand(:,:)
13754 type(splitmix64_type) , intent(inout) :: rng
13755 end subroutine
13756#endif
13757
13758 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13759
13760 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13761 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13762 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13763
13764 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13765
13766#if SK5_ENABLED
13767 PURE module subroutine setUnifRandRNGSLU_D2_SK5(rng, rand, lb, ub)
13768#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13769 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_SK5
13770#endif
13771 use pm_kind, only: SKG => SK5
13772 character(*,SKG) , intent(out) :: rand(:,:)
13773 character(*,SKG) , intent(in) :: lb, ub
13774 type(splitmix64_type) , intent(inout) :: rng
13775 end subroutine
13776#endif
13777
13778#if SK4_ENABLED
13779 PURE module subroutine setUnifRandRNGSLU_D2_SK4(rng, rand, lb, ub)
13780#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13781 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_SK4
13782#endif
13783 use pm_kind, only: SKG => SK4
13784 character(*,SKG) , intent(out) :: rand(:,:)
13785 character(*,SKG) , intent(in) :: lb, ub
13786 type(splitmix64_type) , intent(inout) :: rng
13787 end subroutine
13788#endif
13789
13790#if SK3_ENABLED
13791 PURE module subroutine setUnifRandRNGSLU_D2_SK3(rng, rand, lb, ub)
13792#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13793 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_SK3
13794#endif
13795 use pm_kind, only: SKG => SK3
13796 character(*,SKG) , intent(out) :: rand(:,:)
13797 character(*,SKG) , intent(in) :: lb, ub
13798 type(splitmix64_type) , intent(inout) :: rng
13799 end subroutine
13800#endif
13801
13802#if SK2_ENABLED
13803 PURE module subroutine setUnifRandRNGSLU_D2_SK2(rng, rand, lb, ub)
13804#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13805 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_SK2
13806#endif
13807 use pm_kind, only: SKG => SK2
13808 character(*,SKG) , intent(out) :: rand(:,:)
13809 character(*,SKG) , intent(in) :: lb, ub
13810 type(splitmix64_type) , intent(inout) :: rng
13811 end subroutine
13812#endif
13813
13814#if SK1_ENABLED
13815 PURE module subroutine setUnifRandRNGSLU_D2_SK1(rng, rand, lb, ub)
13816#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13817 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_SK1
13818#endif
13819 use pm_kind, only: SKG => SK1
13820 character(*,SKG) , intent(out) :: rand(:,:)
13821 character(*,SKG) , intent(in) :: lb, ub
13822 type(splitmix64_type) , intent(inout) :: rng
13823 end subroutine
13824#endif
13825
13826 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13827
13828#if IK5_ENABLED
13829 PURE module subroutine setUnifRandRNGSLU_D2_IK5(rng, rand, lb, ub)
13830#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13831 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_IK5
13832#endif
13833 use pm_kind, only: IKG => IK5
13834 integer(IKG) , intent(out) :: rand(:,:)
13835 integer(IKG) , intent(in) :: lb, ub
13836 type(splitmix64_type) , intent(inout) :: rng
13837 end subroutine
13838#endif
13839
13840#if IK4_ENABLED
13841 PURE module subroutine setUnifRandRNGSLU_D2_IK4(rng, rand, lb, ub)
13842#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13843 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_IK4
13844#endif
13845 use pm_kind, only: IKG => IK4
13846 integer(IKG) , intent(out) :: rand(:,:)
13847 integer(IKG) , intent(in) :: lb, ub
13848 type(splitmix64_type) , intent(inout) :: rng
13849 end subroutine
13850#endif
13851
13852#if IK3_ENABLED
13853 PURE module subroutine setUnifRandRNGSLU_D2_IK3(rng, rand, lb, ub)
13854#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13855 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_IK3
13856#endif
13857 use pm_kind, only: IKG => IK3
13858 integer(IKG) , intent(out) :: rand(:,:)
13859 integer(IKG) , intent(in) :: lb, ub
13860 type(splitmix64_type) , intent(inout) :: rng
13861 end subroutine
13862#endif
13863
13864#if IK2_ENABLED
13865 PURE module subroutine setUnifRandRNGSLU_D2_IK2(rng, rand, lb, ub)
13866#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13867 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_IK2
13868#endif
13869 use pm_kind, only: IKG => IK2
13870 integer(IKG) , intent(out) :: rand(:,:)
13871 integer(IKG) , intent(in) :: lb, ub
13872 type(splitmix64_type) , intent(inout) :: rng
13873 end subroutine
13874#endif
13875
13876#if IK1_ENABLED
13877 PURE module subroutine setUnifRandRNGSLU_D2_IK1(rng, rand, lb, ub)
13878#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13879 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_IK1
13880#endif
13881 use pm_kind, only: IKG => IK1
13882 integer(IKG) , intent(out) :: rand(:,:)
13883 integer(IKG) , intent(in) :: lb, ub
13884 type(splitmix64_type) , intent(inout) :: rng
13885 end subroutine
13886#endif
13887
13888 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13889
13890#if LK5_ENABLED
13891 PURE module subroutine setUnifRandRNGSLU_D2_LK5(rng, rand, lb, ub)
13892#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13893 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_LK5
13894#endif
13895 use pm_kind, only: LKG => LK5
13896 logical(LKG) , intent(out) :: rand(:,:)
13897 logical(LKG) , intent(in) :: lb, ub
13898 type(splitmix64_type) , intent(inout) :: rng
13899 end subroutine
13900#endif
13901
13902#if LK4_ENABLED
13903 PURE module subroutine setUnifRandRNGSLU_D2_LK4(rng, rand, lb, ub)
13904#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13905 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_LK4
13906#endif
13907 use pm_kind, only: LKG => LK4
13908 logical(LKG) , intent(out) :: rand(:,:)
13909 logical(LKG) , intent(in) :: lb, ub
13910 type(splitmix64_type) , intent(inout) :: rng
13911 end subroutine
13912#endif
13913
13914#if LK3_ENABLED
13915 PURE module subroutine setUnifRandRNGSLU_D2_LK3(rng, rand, lb, ub)
13916#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13917 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_LK3
13918#endif
13919 use pm_kind, only: LKG => LK3
13920 logical(LKG) , intent(out) :: rand(:,:)
13921 logical(LKG) , intent(in) :: lb, ub
13922 type(splitmix64_type) , intent(inout) :: rng
13923 end subroutine
13924#endif
13925
13926#if LK2_ENABLED
13927 PURE module subroutine setUnifRandRNGSLU_D2_LK2(rng, rand, lb, ub)
13928#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13929 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_LK2
13930#endif
13931 use pm_kind, only: LKG => LK2
13932 logical(LKG) , intent(out) :: rand(:,:)
13933 logical(LKG) , intent(in) :: lb, ub
13934 type(splitmix64_type) , intent(inout) :: rng
13935 end subroutine
13936#endif
13937
13938#if LK1_ENABLED
13939 PURE module subroutine setUnifRandRNGSLU_D2_LK1(rng, rand, lb, ub)
13940#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13941 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_LK1
13942#endif
13943 use pm_kind, only: LKG => LK1
13944 logical(LKG) , intent(out) :: rand(:,:)
13945 logical(LKG) , intent(in) :: lb, ub
13946 type(splitmix64_type) , intent(inout) :: rng
13947 end subroutine
13948#endif
13949
13950 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13951
13952#if CK5_ENABLED
13953 PURE module subroutine setUnifRandRNGSLU_D2_CK5(rng, rand, lb, ub)
13954#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13955 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_CK5
13956#endif
13957 use pm_kind, only: CKG => CK5
13958 complex(CKG) , intent(out) :: rand(:,:)
13959 complex(CKG) , intent(in) :: lb, ub
13960 type(splitmix64_type) , intent(inout) :: rng
13961 end subroutine
13962#endif
13963
13964#if CK4_ENABLED
13965 PURE module subroutine setUnifRandRNGSLU_D2_CK4(rng, rand, lb, ub)
13966#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13967 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_CK4
13968#endif
13969 use pm_kind, only: CKG => CK4
13970 complex(CKG) , intent(out) :: rand(:,:)
13971 complex(CKG) , intent(in) :: lb, ub
13972 type(splitmix64_type) , intent(inout) :: rng
13973 end subroutine
13974#endif
13975
13976#if CK3_ENABLED
13977 PURE module subroutine setUnifRandRNGSLU_D2_CK3(rng, rand, lb, ub)
13978#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13979 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_CK3
13980#endif
13981 use pm_kind, only: CKG => CK3
13982 complex(CKG) , intent(out) :: rand(:,:)
13983 complex(CKG) , intent(in) :: lb, ub
13984 type(splitmix64_type) , intent(inout) :: rng
13985 end subroutine
13986#endif
13987
13988#if CK2_ENABLED
13989 PURE module subroutine setUnifRandRNGSLU_D2_CK2(rng, rand, lb, ub)
13990#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13991 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_CK2
13992#endif
13993 use pm_kind, only: CKG => CK2
13994 complex(CKG) , intent(out) :: rand(:,:)
13995 complex(CKG) , intent(in) :: lb, ub
13996 type(splitmix64_type) , intent(inout) :: rng
13997 end subroutine
13998#endif
13999
14000#if CK1_ENABLED
14001 PURE module subroutine setUnifRandRNGSLU_D2_CK1(rng, rand, lb, ub)
14002#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14003 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_CK1
14004#endif
14005 use pm_kind, only: CKG => CK1
14006 complex(CKG) , intent(out) :: rand(:,:)
14007 complex(CKG) , intent(in) :: lb, ub
14008 type(splitmix64_type) , intent(inout) :: rng
14009 end subroutine
14010#endif
14011
14012 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14013
14014#if RK5_ENABLED
14015 PURE module subroutine setUnifRandRNGSLU_D2_RK5(rng, rand, lb, ub)
14016#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14017 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_RK5
14018#endif
14019 use pm_kind, only: RKG => RK5
14020 real(RKG) , intent(out) :: rand(:,:)
14021 real(RKG) , intent(in) :: lb, ub
14022 type(splitmix64_type) , intent(inout) :: rng
14023 end subroutine
14024#endif
14025
14026#if RK4_ENABLED
14027 PURE module subroutine setUnifRandRNGSLU_D2_RK4(rng, rand, lb, ub)
14028#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14029 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_RK4
14030#endif
14031 use pm_kind, only: RKG => RK4
14032 real(RKG) , intent(out) :: rand(:,:)
14033 real(RKG) , intent(in) :: lb, ub
14034 type(splitmix64_type) , intent(inout) :: rng
14035 end subroutine
14036#endif
14037
14038#if RK3_ENABLED
14039 PURE module subroutine setUnifRandRNGSLU_D2_RK3(rng, rand, lb, ub)
14040#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14041 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_RK3
14042#endif
14043 use pm_kind, only: RKG => RK3
14044 real(RKG) , intent(out) :: rand(:,:)
14045 real(RKG) , intent(in) :: lb, ub
14046 type(splitmix64_type) , intent(inout) :: rng
14047 end subroutine
14048#endif
14049
14050#if RK2_ENABLED
14051 PURE module subroutine setUnifRandRNGSLU_D2_RK2(rng, rand, lb, ub)
14052#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14053 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_RK2
14054#endif
14055 use pm_kind, only: RKG => RK2
14056 real(RKG) , intent(out) :: rand(:,:)
14057 real(RKG) , intent(in) :: lb, ub
14058 type(splitmix64_type) , intent(inout) :: rng
14059 end subroutine
14060#endif
14061
14062#if RK1_ENABLED
14063 PURE module subroutine setUnifRandRNGSLU_D2_RK1(rng, rand, lb, ub)
14064#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14065 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D2_RK1
14066#endif
14067 use pm_kind, only: RKG => RK1
14068 real(RKG) , intent(out) :: rand(:,:)
14069 real(RKG) , intent(in) :: lb, ub
14070 type(splitmix64_type) , intent(inout) :: rng
14071 end subroutine
14072#endif
14073
14074 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14075
14076 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14077 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14078 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14079
14080 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14081 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14082 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14083
14084 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14085
14086#if SK5_ENABLED
14087 PURE module subroutine setUnifRandRNGSDD_D3_SK5(rng, rand)
14088#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14089 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_SK5
14090#endif
14091 use pm_kind, only: SKG => SK5
14092 character(*,SKG) , intent(out) :: rand(:,:,:)
14093 type(splitmix64_type) , intent(inout) :: rng
14094 end subroutine
14095#endif
14096
14097#if SK4_ENABLED
14098 PURE module subroutine setUnifRandRNGSDD_D3_SK4(rng, rand)
14099#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14100 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_SK4
14101#endif
14102 use pm_kind, only: SKG => SK4
14103 character(*,SKG) , intent(out) :: rand(:,:,:)
14104 type(splitmix64_type) , intent(inout) :: rng
14105 end subroutine
14106#endif
14107
14108#if SK3_ENABLED
14109 PURE module subroutine setUnifRandRNGSDD_D3_SK3(rng, rand)
14110#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14111 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_SK3
14112#endif
14113 use pm_kind, only: SKG => SK3
14114 character(*,SKG) , intent(out) :: rand(:,:,:)
14115 type(splitmix64_type) , intent(inout) :: rng
14116 end subroutine
14117#endif
14118
14119#if SK2_ENABLED
14120 PURE module subroutine setUnifRandRNGSDD_D3_SK2(rng, rand)
14121#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14122 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_SK2
14123#endif
14124 use pm_kind, only: SKG => SK2
14125 character(*,SKG) , intent(out) :: rand(:,:,:)
14126 type(splitmix64_type) , intent(inout) :: rng
14127 end subroutine
14128#endif
14129
14130#if SK1_ENABLED
14131 PURE module subroutine setUnifRandRNGSDD_D3_SK1(rng, rand)
14132#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14133 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_SK1
14134#endif
14135 use pm_kind, only: SKG => SK1
14136 character(*,SKG) , intent(out) :: rand(:,:,:)
14137 type(splitmix64_type) , intent(inout) :: rng
14138 end subroutine
14139#endif
14140
14141 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14142
14143#if IK5_ENABLED
14144 PURE module subroutine setUnifRandRNGSDD_D3_IK5(rng, rand)
14145#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14146 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_IK5
14147#endif
14148 use pm_kind, only: IKG => IK5
14149 integer(IKG) , intent(out) :: rand(:,:,:)
14150 type(splitmix64_type) , intent(inout) :: rng
14151 end subroutine
14152#endif
14153
14154#if IK4_ENABLED
14155 PURE module subroutine setUnifRandRNGSDD_D3_IK4(rng, rand)
14156#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14157 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_IK4
14158#endif
14159 use pm_kind, only: IKG => IK4
14160 integer(IKG) , intent(out) :: rand(:,:,:)
14161 type(splitmix64_type) , intent(inout) :: rng
14162 end subroutine
14163#endif
14164
14165#if IK3_ENABLED
14166 PURE module subroutine setUnifRandRNGSDD_D3_IK3(rng, rand)
14167#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14168 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_IK3
14169#endif
14170 use pm_kind, only: IKG => IK3
14171 integer(IKG) , intent(out) :: rand(:,:,:)
14172 type(splitmix64_type) , intent(inout) :: rng
14173 end subroutine
14174#endif
14175
14176#if IK2_ENABLED
14177 PURE module subroutine setUnifRandRNGSDD_D3_IK2(rng, rand)
14178#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14179 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_IK2
14180#endif
14181 use pm_kind, only: IKG => IK2
14182 integer(IKG) , intent(out) :: rand(:,:,:)
14183 type(splitmix64_type) , intent(inout) :: rng
14184 end subroutine
14185#endif
14186
14187#if IK1_ENABLED
14188 PURE module subroutine setUnifRandRNGSDD_D3_IK1(rng, rand)
14189#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14190 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_IK1
14191#endif
14192 use pm_kind, only: IKG => IK1
14193 integer(IKG) , intent(out) :: rand(:,:,:)
14194 type(splitmix64_type) , intent(inout) :: rng
14195 end subroutine
14196#endif
14197
14198 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14199
14200#if LK5_ENABLED
14201 PURE module subroutine setUnifRandRNGSDD_D3_LK5(rng, rand)
14202#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14203 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_LK5
14204#endif
14205 use pm_kind, only: LKG => LK5
14206 logical(LKG) , intent(out) :: rand(:,:,:)
14207 type(splitmix64_type) , intent(inout) :: rng
14208 end subroutine
14209#endif
14210
14211#if LK4_ENABLED
14212 PURE module subroutine setUnifRandRNGSDD_D3_LK4(rng, rand)
14213#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14214 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_LK4
14215#endif
14216 use pm_kind, only: LKG => LK4
14217 logical(LKG) , intent(out) :: rand(:,:,:)
14218 type(splitmix64_type) , intent(inout) :: rng
14219 end subroutine
14220#endif
14221
14222#if LK3_ENABLED
14223 PURE module subroutine setUnifRandRNGSDD_D3_LK3(rng, rand)
14224#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14225 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_LK3
14226#endif
14227 use pm_kind, only: LKG => LK3
14228 logical(LKG) , intent(out) :: rand(:,:,:)
14229 type(splitmix64_type) , intent(inout) :: rng
14230 end subroutine
14231#endif
14232
14233#if LK2_ENABLED
14234 PURE module subroutine setUnifRandRNGSDD_D3_LK2(rng, rand)
14235#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14236 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_LK2
14237#endif
14238 use pm_kind, only: LKG => LK2
14239 logical(LKG) , intent(out) :: rand(:,:,:)
14240 type(splitmix64_type) , intent(inout) :: rng
14241 end subroutine
14242#endif
14243
14244#if LK1_ENABLED
14245 PURE module subroutine setUnifRandRNGSDD_D3_LK1(rng, rand)
14246#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14247 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_LK1
14248#endif
14249 use pm_kind, only: LKG => LK1
14250 logical(LKG) , intent(out) :: rand(:,:,:)
14251 type(splitmix64_type) , intent(inout) :: rng
14252 end subroutine
14253#endif
14254
14255 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14256
14257#if CK5_ENABLED
14258 PURE module subroutine setUnifRandRNGSDD_D3_CK5(rng, rand)
14259#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14260 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_CK5
14261#endif
14262 use pm_kind, only: CKG => CK5
14263 complex(CKG) , intent(out) :: rand(:,:,:)
14264 type(splitmix64_type) , intent(inout) :: rng
14265 end subroutine
14266#endif
14267
14268#if CK4_ENABLED
14269 PURE module subroutine setUnifRandRNGSDD_D3_CK4(rng, rand)
14270#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14271 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_CK4
14272#endif
14273 use pm_kind, only: CKG => CK4
14274 complex(CKG) , intent(out) :: rand(:,:,:)
14275 type(splitmix64_type) , intent(inout) :: rng
14276 end subroutine
14277#endif
14278
14279#if CK3_ENABLED
14280 PURE module subroutine setUnifRandRNGSDD_D3_CK3(rng, rand)
14281#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14282 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_CK3
14283#endif
14284 use pm_kind, only: CKG => CK3
14285 complex(CKG) , intent(out) :: rand(:,:,:)
14286 type(splitmix64_type) , intent(inout) :: rng
14287 end subroutine
14288#endif
14289
14290#if CK2_ENABLED
14291 PURE module subroutine setUnifRandRNGSDD_D3_CK2(rng, rand)
14292#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14293 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_CK2
14294#endif
14295 use pm_kind, only: CKG => CK2
14296 complex(CKG) , intent(out) :: rand(:,:,:)
14297 type(splitmix64_type) , intent(inout) :: rng
14298 end subroutine
14299#endif
14300
14301#if CK1_ENABLED
14302 PURE module subroutine setUnifRandRNGSDD_D3_CK1(rng, rand)
14303#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14304 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_CK1
14305#endif
14306 use pm_kind, only: CKG => CK1
14307 complex(CKG) , intent(out) :: rand(:,:,:)
14308 type(splitmix64_type) , intent(inout) :: rng
14309 end subroutine
14310#endif
14311
14312 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14313
14314#if RK5_ENABLED
14315 PURE module subroutine setUnifRandRNGSDD_D3_RK5(rng, rand)
14316#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14317 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_RK5
14318#endif
14319 use pm_kind, only: RKG => RK5
14320 real(RKG) , intent(out) :: rand(:,:,:)
14321 type(splitmix64_type) , intent(inout) :: rng
14322 end subroutine
14323#endif
14324
14325#if RK4_ENABLED
14326 PURE module subroutine setUnifRandRNGSDD_D3_RK4(rng, rand)
14327#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14328 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_RK4
14329#endif
14330 use pm_kind, only: RKG => RK4
14331 real(RKG) , intent(out) :: rand(:,:,:)
14332 type(splitmix64_type) , intent(inout) :: rng
14333 end subroutine
14334#endif
14335
14336#if RK3_ENABLED
14337 PURE module subroutine setUnifRandRNGSDD_D3_RK3(rng, rand)
14338#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14339 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_RK3
14340#endif
14341 use pm_kind, only: RKG => RK3
14342 real(RKG) , intent(out) :: rand(:,:,:)
14343 type(splitmix64_type) , intent(inout) :: rng
14344 end subroutine
14345#endif
14346
14347#if RK2_ENABLED
14348 PURE module subroutine setUnifRandRNGSDD_D3_RK2(rng, rand)
14349#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14350 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_RK2
14351#endif
14352 use pm_kind, only: RKG => RK2
14353 real(RKG) , intent(out) :: rand(:,:,:)
14354 type(splitmix64_type) , intent(inout) :: rng
14355 end subroutine
14356#endif
14357
14358#if RK1_ENABLED
14359 PURE module subroutine setUnifRandRNGSDD_D3_RK1(rng, rand)
14360#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14361 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSDD_D3_RK1
14362#endif
14363 use pm_kind, only: RKG => RK1
14364 real(RKG) , intent(out) :: rand(:,:,:)
14365 type(splitmix64_type) , intent(inout) :: rng
14366 end subroutine
14367#endif
14368
14369 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14370
14371 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14372 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14373 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14374
14375 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14376
14377#if SK5_ENABLED
14378 PURE module subroutine setUnifRandRNGSLU_D3_SK5(rng, rand, lb, ub)
14379#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14380 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_SK5
14381#endif
14382 use pm_kind, only: SKG => SK5
14383 character(*,SKG) , intent(out) :: rand(:,:,:)
14384 character(*,SKG) , intent(in) :: lb, ub
14385 type(splitmix64_type) , intent(inout) :: rng
14386 end subroutine
14387#endif
14388
14389#if SK4_ENABLED
14390 PURE module subroutine setUnifRandRNGSLU_D3_SK4(rng, rand, lb, ub)
14391#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14392 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_SK4
14393#endif
14394 use pm_kind, only: SKG => SK4
14395 character(*,SKG) , intent(out) :: rand(:,:,:)
14396 character(*,SKG) , intent(in) :: lb, ub
14397 type(splitmix64_type) , intent(inout) :: rng
14398 end subroutine
14399#endif
14400
14401#if SK3_ENABLED
14402 PURE module subroutine setUnifRandRNGSLU_D3_SK3(rng, rand, lb, ub)
14403#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14404 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_SK3
14405#endif
14406 use pm_kind, only: SKG => SK3
14407 character(*,SKG) , intent(out) :: rand(:,:,:)
14408 character(*,SKG) , intent(in) :: lb, ub
14409 type(splitmix64_type) , intent(inout) :: rng
14410 end subroutine
14411#endif
14412
14413#if SK2_ENABLED
14414 PURE module subroutine setUnifRandRNGSLU_D3_SK2(rng, rand, lb, ub)
14415#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14416 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_SK2
14417#endif
14418 use pm_kind, only: SKG => SK2
14419 character(*,SKG) , intent(out) :: rand(:,:,:)
14420 character(*,SKG) , intent(in) :: lb, ub
14421 type(splitmix64_type) , intent(inout) :: rng
14422 end subroutine
14423#endif
14424
14425#if SK1_ENABLED
14426 PURE module subroutine setUnifRandRNGSLU_D3_SK1(rng, rand, lb, ub)
14427#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14428 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_SK1
14429#endif
14430 use pm_kind, only: SKG => SK1
14431 character(*,SKG) , intent(out) :: rand(:,:,:)
14432 character(*,SKG) , intent(in) :: lb, ub
14433 type(splitmix64_type) , intent(inout) :: rng
14434 end subroutine
14435#endif
14436
14437 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14438
14439#if IK5_ENABLED
14440 PURE module subroutine setUnifRandRNGSLU_D3_IK5(rng, rand, lb, ub)
14441#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14442 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_IK5
14443#endif
14444 use pm_kind, only: IKG => IK5
14445 integer(IKG) , intent(out) :: rand(:,:,:)
14446 integer(IKG) , intent(in) :: lb, ub
14447 type(splitmix64_type) , intent(inout) :: rng
14448 end subroutine
14449#endif
14450
14451#if IK4_ENABLED
14452 PURE module subroutine setUnifRandRNGSLU_D3_IK4(rng, rand, lb, ub)
14453#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14454 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_IK4
14455#endif
14456 use pm_kind, only: IKG => IK4
14457 integer(IKG) , intent(out) :: rand(:,:,:)
14458 integer(IKG) , intent(in) :: lb, ub
14459 type(splitmix64_type) , intent(inout) :: rng
14460 end subroutine
14461#endif
14462
14463#if IK3_ENABLED
14464 PURE module subroutine setUnifRandRNGSLU_D3_IK3(rng, rand, lb, ub)
14465#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14466 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_IK3
14467#endif
14468 use pm_kind, only: IKG => IK3
14469 integer(IKG) , intent(out) :: rand(:,:,:)
14470 integer(IKG) , intent(in) :: lb, ub
14471 type(splitmix64_type) , intent(inout) :: rng
14472 end subroutine
14473#endif
14474
14475#if IK2_ENABLED
14476 PURE module subroutine setUnifRandRNGSLU_D3_IK2(rng, rand, lb, ub)
14477#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14478 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_IK2
14479#endif
14480 use pm_kind, only: IKG => IK2
14481 integer(IKG) , intent(out) :: rand(:,:,:)
14482 integer(IKG) , intent(in) :: lb, ub
14483 type(splitmix64_type) , intent(inout) :: rng
14484 end subroutine
14485#endif
14486
14487#if IK1_ENABLED
14488 PURE module subroutine setUnifRandRNGSLU_D3_IK1(rng, rand, lb, ub)
14489#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14490 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_IK1
14491#endif
14492 use pm_kind, only: IKG => IK1
14493 integer(IKG) , intent(out) :: rand(:,:,:)
14494 integer(IKG) , intent(in) :: lb, ub
14495 type(splitmix64_type) , intent(inout) :: rng
14496 end subroutine
14497#endif
14498
14499 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14500
14501#if LK5_ENABLED
14502 PURE module subroutine setUnifRandRNGSLU_D3_LK5(rng, rand, lb, ub)
14503#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14504 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_LK5
14505#endif
14506 use pm_kind, only: LKG => LK5
14507 logical(LKG) , intent(out) :: rand(:,:,:)
14508 logical(LKG) , intent(in) :: lb, ub
14509 type(splitmix64_type) , intent(inout) :: rng
14510 end subroutine
14511#endif
14512
14513#if LK4_ENABLED
14514 PURE module subroutine setUnifRandRNGSLU_D3_LK4(rng, rand, lb, ub)
14515#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14516 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_LK4
14517#endif
14518 use pm_kind, only: LKG => LK4
14519 logical(LKG) , intent(out) :: rand(:,:,:)
14520 logical(LKG) , intent(in) :: lb, ub
14521 type(splitmix64_type) , intent(inout) :: rng
14522 end subroutine
14523#endif
14524
14525#if LK3_ENABLED
14526 PURE module subroutine setUnifRandRNGSLU_D3_LK3(rng, rand, lb, ub)
14527#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14528 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_LK3
14529#endif
14530 use pm_kind, only: LKG => LK3
14531 logical(LKG) , intent(out) :: rand(:,:,:)
14532 logical(LKG) , intent(in) :: lb, ub
14533 type(splitmix64_type) , intent(inout) :: rng
14534 end subroutine
14535#endif
14536
14537#if LK2_ENABLED
14538 PURE module subroutine setUnifRandRNGSLU_D3_LK2(rng, rand, lb, ub)
14539#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14540 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_LK2
14541#endif
14542 use pm_kind, only: LKG => LK2
14543 logical(LKG) , intent(out) :: rand(:,:,:)
14544 logical(LKG) , intent(in) :: lb, ub
14545 type(splitmix64_type) , intent(inout) :: rng
14546 end subroutine
14547#endif
14548
14549#if LK1_ENABLED
14550 PURE module subroutine setUnifRandRNGSLU_D3_LK1(rng, rand, lb, ub)
14551#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14552 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_LK1
14553#endif
14554 use pm_kind, only: LKG => LK1
14555 logical(LKG) , intent(out) :: rand(:,:,:)
14556 logical(LKG) , intent(in) :: lb, ub
14557 type(splitmix64_type) , intent(inout) :: rng
14558 end subroutine
14559#endif
14560
14561 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14562
14563#if CK5_ENABLED
14564 PURE module subroutine setUnifRandRNGSLU_D3_CK5(rng, rand, lb, ub)
14565#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14566 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_CK5
14567#endif
14568 use pm_kind, only: CKG => CK5
14569 complex(CKG) , intent(out) :: rand(:,:,:)
14570 complex(CKG) , intent(in) :: lb, ub
14571 type(splitmix64_type) , intent(inout) :: rng
14572 end subroutine
14573#endif
14574
14575#if CK4_ENABLED
14576 PURE module subroutine setUnifRandRNGSLU_D3_CK4(rng, rand, lb, ub)
14577#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14578 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_CK4
14579#endif
14580 use pm_kind, only: CKG => CK4
14581 complex(CKG) , intent(out) :: rand(:,:,:)
14582 complex(CKG) , intent(in) :: lb, ub
14583 type(splitmix64_type) , intent(inout) :: rng
14584 end subroutine
14585#endif
14586
14587#if CK3_ENABLED
14588 PURE module subroutine setUnifRandRNGSLU_D3_CK3(rng, rand, lb, ub)
14589#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14590 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_CK3
14591#endif
14592 use pm_kind, only: CKG => CK3
14593 complex(CKG) , intent(out) :: rand(:,:,:)
14594 complex(CKG) , intent(in) :: lb, ub
14595 type(splitmix64_type) , intent(inout) :: rng
14596 end subroutine
14597#endif
14598
14599#if CK2_ENABLED
14600 PURE module subroutine setUnifRandRNGSLU_D3_CK2(rng, rand, lb, ub)
14601#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14602 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_CK2
14603#endif
14604 use pm_kind, only: CKG => CK2
14605 complex(CKG) , intent(out) :: rand(:,:,:)
14606 complex(CKG) , intent(in) :: lb, ub
14607 type(splitmix64_type) , intent(inout) :: rng
14608 end subroutine
14609#endif
14610
14611#if CK1_ENABLED
14612 PURE module subroutine setUnifRandRNGSLU_D3_CK1(rng, rand, lb, ub)
14613#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14614 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_CK1
14615#endif
14616 use pm_kind, only: CKG => CK1
14617 complex(CKG) , intent(out) :: rand(:,:,:)
14618 complex(CKG) , intent(in) :: lb, ub
14619 type(splitmix64_type) , intent(inout) :: rng
14620 end subroutine
14621#endif
14622
14623 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14624
14625#if RK5_ENABLED
14626 PURE module subroutine setUnifRandRNGSLU_D3_RK5(rng, rand, lb, ub)
14627#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14628 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_RK5
14629#endif
14630 use pm_kind, only: RKG => RK5
14631 real(RKG) , intent(out) :: rand(:,:,:)
14632 real(RKG) , intent(in) :: lb, ub
14633 type(splitmix64_type) , intent(inout) :: rng
14634 end subroutine
14635#endif
14636
14637#if RK4_ENABLED
14638 PURE module subroutine setUnifRandRNGSLU_D3_RK4(rng, rand, lb, ub)
14639#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14640 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_RK4
14641#endif
14642 use pm_kind, only: RKG => RK4
14643 real(RKG) , intent(out) :: rand(:,:,:)
14644 real(RKG) , intent(in) :: lb, ub
14645 type(splitmix64_type) , intent(inout) :: rng
14646 end subroutine
14647#endif
14648
14649#if RK3_ENABLED
14650 PURE module subroutine setUnifRandRNGSLU_D3_RK3(rng, rand, lb, ub)
14651#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14652 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_RK3
14653#endif
14654 use pm_kind, only: RKG => RK3
14655 real(RKG) , intent(out) :: rand(:,:,:)
14656 real(RKG) , intent(in) :: lb, ub
14657 type(splitmix64_type) , intent(inout) :: rng
14658 end subroutine
14659#endif
14660
14661#if RK2_ENABLED
14662 PURE module subroutine setUnifRandRNGSLU_D3_RK2(rng, rand, lb, ub)
14663#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14664 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_RK2
14665#endif
14666 use pm_kind, only: RKG => RK2
14667 real(RKG) , intent(out) :: rand(:,:,:)
14668 real(RKG) , intent(in) :: lb, ub
14669 type(splitmix64_type) , intent(inout) :: rng
14670 end subroutine
14671#endif
14672
14673#if RK1_ENABLED
14674 PURE module subroutine setUnifRandRNGSLU_D3_RK1(rng, rand, lb, ub)
14675#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14676 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGSLU_D3_RK1
14677#endif
14678 use pm_kind, only: RKG => RK1
14679 real(RKG) , intent(out) :: rand(:,:,:)
14680 real(RKG) , intent(in) :: lb, ub
14681 type(splitmix64_type) , intent(inout) :: rng
14682 end subroutine
14683#endif
14684
14685 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14686
14687 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14688 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14689 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14690
14691 end interface
14692
14693 ! RNGX
14694
14695 interface setUnifRand
14696
14697 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14698 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14699 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14700
14701 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14702
14703#if SK5_ENABLED
14704 PURE elemental module subroutine setUnifRandRNGGDD_D0_SK5(rng, rand)
14705#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14706 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_SK5
14707#endif
14708 use pm_kind, only: SKG => SK5
14709 character(*,SKG) , intent(out) :: rand
14710 type(xoshiro256ssg_type) , intent(inout) :: rng
14711 end subroutine
14712#endif
14713
14714#if SK4_ENABLED
14715 PURE elemental module subroutine setUnifRandRNGGDD_D0_SK4(rng, rand)
14716#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14717 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_SK4
14718#endif
14719 use pm_kind, only: SKG => SK4
14720 character(*,SKG) , intent(out) :: rand
14721 type(xoshiro256ssg_type) , intent(inout) :: rng
14722 end subroutine
14723#endif
14724
14725#if SK3_ENABLED
14726 PURE elemental module subroutine setUnifRandRNGGDD_D0_SK3(rng, rand)
14727#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14728 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_SK3
14729#endif
14730 use pm_kind, only: SKG => SK3
14731 character(*,SKG) , intent(out) :: rand
14732 type(xoshiro256ssg_type) , intent(inout) :: rng
14733 end subroutine
14734#endif
14735
14736#if SK2_ENABLED
14737 PURE elemental module subroutine setUnifRandRNGGDD_D0_SK2(rng, rand)
14738#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14739 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_SK2
14740#endif
14741 use pm_kind, only: SKG => SK2
14742 character(*,SKG) , intent(out) :: rand
14743 type(xoshiro256ssg_type) , intent(inout) :: rng
14744 end subroutine
14745#endif
14746
14747#if SK1_ENABLED
14748 PURE elemental module subroutine setUnifRandRNGGDD_D0_SK1(rng, rand)
14749#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14750 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_SK1
14751#endif
14752 use pm_kind, only: SKG => SK1
14753 character(*,SKG) , intent(out) :: rand
14754 type(xoshiro256ssg_type) , intent(inout) :: rng
14755 end subroutine
14756#endif
14757
14758 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14759
14760#if IK5_ENABLED
14761 PURE elemental module subroutine setUnifRandRNGGDD_D0_IK5(rng, rand)
14762#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14763 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_IK5
14764#endif
14765 use pm_kind, only: IKG => IK5
14766 integer(IKG) , intent(out) :: rand
14767 type(xoshiro256ssg_type) , intent(inout) :: rng
14768 end subroutine
14769#endif
14770
14771#if IK4_ENABLED
14772 PURE elemental module subroutine setUnifRandRNGGDD_D0_IK4(rng, rand)
14773#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14774 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_IK4
14775#endif
14776 use pm_kind, only: IKG => IK4
14777 integer(IKG) , intent(out) :: rand
14778 type(xoshiro256ssg_type) , intent(inout) :: rng
14779 end subroutine
14780#endif
14781
14782#if IK3_ENABLED
14783 PURE elemental module subroutine setUnifRandRNGGDD_D0_IK3(rng, rand)
14784#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14785 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_IK3
14786#endif
14787 use pm_kind, only: IKG => IK3
14788 integer(IKG) , intent(out) :: rand
14789 type(xoshiro256ssg_type) , intent(inout) :: rng
14790 end subroutine
14791#endif
14792
14793#if IK2_ENABLED
14794 PURE elemental module subroutine setUnifRandRNGGDD_D0_IK2(rng, rand)
14795#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14796 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_IK2
14797#endif
14798 use pm_kind, only: IKG => IK2
14799 integer(IKG) , intent(out) :: rand
14800 type(xoshiro256ssg_type) , intent(inout) :: rng
14801 end subroutine
14802#endif
14803
14804#if IK1_ENABLED
14805 PURE elemental module subroutine setUnifRandRNGGDD_D0_IK1(rng, rand)
14806#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14807 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_IK1
14808#endif
14809 use pm_kind, only: IKG => IK1
14810 integer(IKG) , intent(out) :: rand
14811 type(xoshiro256ssg_type) , intent(inout) :: rng
14812 end subroutine
14813#endif
14814
14815 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14816
14817#if LK5_ENABLED
14818 PURE elemental module subroutine setUnifRandRNGGDD_D0_LK5(rng, rand)
14819#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14820 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_LK5
14821#endif
14822 use pm_kind, only: LKG => LK5
14823 logical(LKG) , intent(out) :: rand
14824 type(xoshiro256ssg_type) , intent(inout) :: rng
14825 end subroutine
14826#endif
14827
14828#if LK4_ENABLED
14829 PURE elemental module subroutine setUnifRandRNGGDD_D0_LK4(rng, rand)
14830#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14831 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_LK4
14832#endif
14833 use pm_kind, only: LKG => LK4
14834 logical(LKG) , intent(out) :: rand
14835 type(xoshiro256ssg_type) , intent(inout) :: rng
14836 end subroutine
14837#endif
14838
14839#if LK3_ENABLED
14840 PURE elemental module subroutine setUnifRandRNGGDD_D0_LK3(rng, rand)
14841#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14842 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_LK3
14843#endif
14844 use pm_kind, only: LKG => LK3
14845 logical(LKG) , intent(out) :: rand
14846 type(xoshiro256ssg_type) , intent(inout) :: rng
14847 end subroutine
14848#endif
14849
14850#if LK2_ENABLED
14851 PURE elemental module subroutine setUnifRandRNGGDD_D0_LK2(rng, rand)
14852#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14853 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_LK2
14854#endif
14855 use pm_kind, only: LKG => LK2
14856 logical(LKG) , intent(out) :: rand
14857 type(xoshiro256ssg_type) , intent(inout) :: rng
14858 end subroutine
14859#endif
14860
14861#if LK1_ENABLED
14862 PURE elemental module subroutine setUnifRandRNGGDD_D0_LK1(rng, rand)
14863#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14864 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_LK1
14865#endif
14866 use pm_kind, only: LKG => LK1
14867 logical(LKG) , intent(out) :: rand
14868 type(xoshiro256ssg_type) , intent(inout) :: rng
14869 end subroutine
14870#endif
14871
14872 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14873
14874#if CK5_ENABLED
14875 PURE elemental module subroutine setUnifRandRNGGDD_D0_CK5(rng, rand)
14876#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14877 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_CK5
14878#endif
14879 use pm_kind, only: CKG => CK5
14880 complex(CKG) , intent(out) :: rand
14881 type(xoshiro256ssg_type) , intent(inout) :: rng
14882 end subroutine
14883#endif
14884
14885#if CK4_ENABLED
14886 PURE elemental module subroutine setUnifRandRNGGDD_D0_CK4(rng, rand)
14887#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14888 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_CK4
14889#endif
14890 use pm_kind, only: CKG => CK4
14891 complex(CKG) , intent(out) :: rand
14892 type(xoshiro256ssg_type) , intent(inout) :: rng
14893 end subroutine
14894#endif
14895
14896#if CK3_ENABLED
14897 PURE elemental module subroutine setUnifRandRNGGDD_D0_CK3(rng, rand)
14898#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14899 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_CK3
14900#endif
14901 use pm_kind, only: CKG => CK3
14902 complex(CKG) , intent(out) :: rand
14903 type(xoshiro256ssg_type) , intent(inout) :: rng
14904 end subroutine
14905#endif
14906
14907#if CK2_ENABLED
14908 PURE elemental module subroutine setUnifRandRNGGDD_D0_CK2(rng, rand)
14909#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14910 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_CK2
14911#endif
14912 use pm_kind, only: CKG => CK2
14913 complex(CKG) , intent(out) :: rand
14914 type(xoshiro256ssg_type) , intent(inout) :: rng
14915 end subroutine
14916#endif
14917
14918#if CK1_ENABLED
14919 PURE elemental module subroutine setUnifRandRNGGDD_D0_CK1(rng, rand)
14920#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14921 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_CK1
14922#endif
14923 use pm_kind, only: CKG => CK1
14924 complex(CKG) , intent(out) :: rand
14925 type(xoshiro256ssg_type) , intent(inout) :: rng
14926 end subroutine
14927#endif
14928
14929 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14930
14931#if RK5_ENABLED
14932 PURE elemental module subroutine setUnifRandRNGGDD_D0_RK5(rng, rand)
14933#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14934 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_RK5
14935#endif
14936 use pm_kind, only: RKG => RK5
14937 real(RKG) , intent(out) :: rand
14938 type(xoshiro256ssg_type) , intent(inout) :: rng
14939 end subroutine
14940#endif
14941
14942#if RK4_ENABLED
14943 PURE elemental module subroutine setUnifRandRNGGDD_D0_RK4(rng, rand)
14944#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14945 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_RK4
14946#endif
14947 use pm_kind, only: RKG => RK4
14948 real(RKG) , intent(out) :: rand
14949 type(xoshiro256ssg_type) , intent(inout) :: rng
14950 end subroutine
14951#endif
14952
14953#if RK3_ENABLED
14954 PURE elemental module subroutine setUnifRandRNGGDD_D0_RK3(rng, rand)
14955#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14956 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_RK3
14957#endif
14958 use pm_kind, only: RKG => RK3
14959 real(RKG) , intent(out) :: rand
14960 type(xoshiro256ssg_type) , intent(inout) :: rng
14961 end subroutine
14962#endif
14963
14964#if RK2_ENABLED
14965 PURE elemental module subroutine setUnifRandRNGGDD_D0_RK2(rng, rand)
14966#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14967 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_RK2
14968#endif
14969 use pm_kind, only: RKG => RK2
14970 real(RKG) , intent(out) :: rand
14971 type(xoshiro256ssg_type) , intent(inout) :: rng
14972 end subroutine
14973#endif
14974
14975#if RK1_ENABLED
14976 PURE elemental module subroutine setUnifRandRNGGDD_D0_RK1(rng, rand)
14977#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14978 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D0_RK1
14979#endif
14980 use pm_kind, only: RKG => RK1
14981 real(RKG) , intent(out) :: rand
14982 type(xoshiro256ssg_type) , intent(inout) :: rng
14983 end subroutine
14984#endif
14985
14986 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14987
14988 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14989 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14990 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14991
14992 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14993
14994#if SK5_ENABLED
14995 PURE elemental module subroutine setUnifRandRNGGLU_D0_SK5(rng, rand, lb, ub)
14996#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14997 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_SK5
14998#endif
14999 use pm_kind, only: SKG => SK5
15000 character(*,SKG) , intent(out) :: rand
15001 character(*,SKG) , intent(in) :: lb, ub
15002 type(xoshiro256ssg_type) , intent(inout) :: rng
15003 end subroutine
15004#endif
15005
15006#if SK4_ENABLED
15007 PURE elemental module subroutine setUnifRandRNGGLU_D0_SK4(rng, rand, lb, ub)
15008#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15009 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_SK4
15010#endif
15011 use pm_kind, only: SKG => SK4
15012 character(*,SKG) , intent(out) :: rand
15013 character(*,SKG) , intent(in) :: lb, ub
15014 type(xoshiro256ssg_type) , intent(inout) :: rng
15015 end subroutine
15016#endif
15017
15018#if SK3_ENABLED
15019 PURE elemental module subroutine setUnifRandRNGGLU_D0_SK3(rng, rand, lb, ub)
15020#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15021 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_SK3
15022#endif
15023 use pm_kind, only: SKG => SK3
15024 character(*,SKG) , intent(out) :: rand
15025 character(*,SKG) , intent(in) :: lb, ub
15026 type(xoshiro256ssg_type) , intent(inout) :: rng
15027 end subroutine
15028#endif
15029
15030#if SK2_ENABLED
15031 PURE elemental module subroutine setUnifRandRNGGLU_D0_SK2(rng, rand, lb, ub)
15032#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15033 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_SK2
15034#endif
15035 use pm_kind, only: SKG => SK2
15036 character(*,SKG) , intent(out) :: rand
15037 character(*,SKG) , intent(in) :: lb, ub
15038 type(xoshiro256ssg_type) , intent(inout) :: rng
15039 end subroutine
15040#endif
15041
15042#if SK1_ENABLED
15043 PURE elemental module subroutine setUnifRandRNGGLU_D0_SK1(rng, rand, lb, ub)
15044#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15045 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_SK1
15046#endif
15047 use pm_kind, only: SKG => SK1
15048 character(*,SKG) , intent(out) :: rand
15049 character(*,SKG) , intent(in) :: lb, ub
15050 type(xoshiro256ssg_type) , intent(inout) :: rng
15051 end subroutine
15052#endif
15053
15054 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15055
15056#if IK5_ENABLED
15057 PURE elemental module subroutine setUnifRandRNGGLU_D0_IK5(rng, rand, lb, ub)
15058#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15059 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_IK5
15060#endif
15061 use pm_kind, only: IKG => IK5
15062 integer(IKG) , intent(out) :: rand
15063 integer(IKG) , intent(in) :: lb, ub
15064 type(xoshiro256ssg_type) , intent(inout) :: rng
15065 end subroutine
15066#endif
15067
15068#if IK4_ENABLED
15069 PURE elemental module subroutine setUnifRandRNGGLU_D0_IK4(rng, rand, lb, ub)
15070#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15071 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_IK4
15072#endif
15073 use pm_kind, only: IKG => IK4
15074 integer(IKG) , intent(out) :: rand
15075 integer(IKG) , intent(in) :: lb, ub
15076 type(xoshiro256ssg_type) , intent(inout) :: rng
15077 end subroutine
15078#endif
15079
15080#if IK3_ENABLED
15081 PURE elemental module subroutine setUnifRandRNGGLU_D0_IK3(rng, rand, lb, ub)
15082#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15083 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_IK3
15084#endif
15085 use pm_kind, only: IKG => IK3
15086 integer(IKG) , intent(out) :: rand
15087 integer(IKG) , intent(in) :: lb, ub
15088 type(xoshiro256ssg_type) , intent(inout) :: rng
15089 end subroutine
15090#endif
15091
15092#if IK2_ENABLED
15093 PURE elemental module subroutine setUnifRandRNGGLU_D0_IK2(rng, rand, lb, ub)
15094#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15095 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_IK2
15096#endif
15097 use pm_kind, only: IKG => IK2
15098 integer(IKG) , intent(out) :: rand
15099 integer(IKG) , intent(in) :: lb, ub
15100 type(xoshiro256ssg_type) , intent(inout) :: rng
15101 end subroutine
15102#endif
15103
15104#if IK1_ENABLED
15105 PURE elemental module subroutine setUnifRandRNGGLU_D0_IK1(rng, rand, lb, ub)
15106#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15107 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_IK1
15108#endif
15109 use pm_kind, only: IKG => IK1
15110 integer(IKG) , intent(out) :: rand
15111 integer(IKG) , intent(in) :: lb, ub
15112 type(xoshiro256ssg_type) , intent(inout) :: rng
15113 end subroutine
15114#endif
15115
15116 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15117
15118#if LK5_ENABLED
15119 PURE elemental module subroutine setUnifRandRNGGLU_D0_LK5(rng, rand, lb, ub)
15120#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15121 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_LK5
15122#endif
15123 use pm_kind, only: LKG => LK5
15124 logical(LKG) , intent(out) :: rand
15125 logical(LKG) , intent(in) :: lb, ub
15126 type(xoshiro256ssg_type) , intent(inout) :: rng
15127 end subroutine
15128#endif
15129
15130#if LK4_ENABLED
15131 PURE elemental module subroutine setUnifRandRNGGLU_D0_LK4(rng, rand, lb, ub)
15132#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15133 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_LK4
15134#endif
15135 use pm_kind, only: LKG => LK4
15136 logical(LKG) , intent(out) :: rand
15137 logical(LKG) , intent(in) :: lb, ub
15138 type(xoshiro256ssg_type) , intent(inout) :: rng
15139 end subroutine
15140#endif
15141
15142#if LK3_ENABLED
15143 PURE elemental module subroutine setUnifRandRNGGLU_D0_LK3(rng, rand, lb, ub)
15144#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15145 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_LK3
15146#endif
15147 use pm_kind, only: LKG => LK3
15148 logical(LKG) , intent(out) :: rand
15149 logical(LKG) , intent(in) :: lb, ub
15150 type(xoshiro256ssg_type) , intent(inout) :: rng
15151 end subroutine
15152#endif
15153
15154#if LK2_ENABLED
15155 PURE elemental module subroutine setUnifRandRNGGLU_D0_LK2(rng, rand, lb, ub)
15156#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15157 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_LK2
15158#endif
15159 use pm_kind, only: LKG => LK2
15160 logical(LKG) , intent(out) :: rand
15161 logical(LKG) , intent(in) :: lb, ub
15162 type(xoshiro256ssg_type) , intent(inout) :: rng
15163 end subroutine
15164#endif
15165
15166#if LK1_ENABLED
15167 PURE elemental module subroutine setUnifRandRNGGLU_D0_LK1(rng, rand, lb, ub)
15168#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15169 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_LK1
15170#endif
15171 use pm_kind, only: LKG => LK1
15172 logical(LKG) , intent(out) :: rand
15173 logical(LKG) , intent(in) :: lb, ub
15174 type(xoshiro256ssg_type) , intent(inout) :: rng
15175 end subroutine
15176#endif
15177
15178 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15179
15180#if CK5_ENABLED
15181 PURE elemental module subroutine setUnifRandRNGGLU_D0_CK5(rng, rand, lb, ub)
15182#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15183 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_CK5
15184#endif
15185 use pm_kind, only: CKG => CK5
15186 complex(CKG) , intent(out) :: rand
15187 complex(CKG) , intent(in) :: lb, ub
15188 type(xoshiro256ssg_type) , intent(inout) :: rng
15189 end subroutine
15190#endif
15191
15192#if CK4_ENABLED
15193 PURE elemental module subroutine setUnifRandRNGGLU_D0_CK4(rng, rand, lb, ub)
15194#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15195 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_CK4
15196#endif
15197 use pm_kind, only: CKG => CK4
15198 complex(CKG) , intent(out) :: rand
15199 complex(CKG) , intent(in) :: lb, ub
15200 type(xoshiro256ssg_type) , intent(inout) :: rng
15201 end subroutine
15202#endif
15203
15204#if CK3_ENABLED
15205 PURE elemental module subroutine setUnifRandRNGGLU_D0_CK3(rng, rand, lb, ub)
15206#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15207 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_CK3
15208#endif
15209 use pm_kind, only: CKG => CK3
15210 complex(CKG) , intent(out) :: rand
15211 complex(CKG) , intent(in) :: lb, ub
15212 type(xoshiro256ssg_type) , intent(inout) :: rng
15213 end subroutine
15214#endif
15215
15216#if CK2_ENABLED
15217 PURE elemental module subroutine setUnifRandRNGGLU_D0_CK2(rng, rand, lb, ub)
15218#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15219 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_CK2
15220#endif
15221 use pm_kind, only: CKG => CK2
15222 complex(CKG) , intent(out) :: rand
15223 complex(CKG) , intent(in) :: lb, ub
15224 type(xoshiro256ssg_type) , intent(inout) :: rng
15225 end subroutine
15226#endif
15227
15228#if CK1_ENABLED
15229 PURE elemental module subroutine setUnifRandRNGGLU_D0_CK1(rng, rand, lb, ub)
15230#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15231 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_CK1
15232#endif
15233 use pm_kind, only: CKG => CK1
15234 complex(CKG) , intent(out) :: rand
15235 complex(CKG) , intent(in) :: lb, ub
15236 type(xoshiro256ssg_type) , intent(inout) :: rng
15237 end subroutine
15238#endif
15239
15240 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15241
15242#if RK5_ENABLED
15243 PURE elemental module subroutine setUnifRandRNGGLU_D0_RK5(rng, rand, lb, ub)
15244#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15245 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_RK5
15246#endif
15247 use pm_kind, only: RKG => RK5
15248 real(RKG) , intent(out) :: rand
15249 real(RKG) , intent(in) :: lb, ub
15250 type(xoshiro256ssg_type) , intent(inout) :: rng
15251 end subroutine
15252#endif
15253
15254#if RK4_ENABLED
15255 PURE elemental module subroutine setUnifRandRNGGLU_D0_RK4(rng, rand, lb, ub)
15256#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15257 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_RK4
15258#endif
15259 use pm_kind, only: RKG => RK4
15260 real(RKG) , intent(out) :: rand
15261 real(RKG) , intent(in) :: lb, ub
15262 type(xoshiro256ssg_type) , intent(inout) :: rng
15263 end subroutine
15264#endif
15265
15266#if RK3_ENABLED
15267 PURE elemental module subroutine setUnifRandRNGGLU_D0_RK3(rng, rand, lb, ub)
15268#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15269 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_RK3
15270#endif
15271 use pm_kind, only: RKG => RK3
15272 real(RKG) , intent(out) :: rand
15273 real(RKG) , intent(in) :: lb, ub
15274 type(xoshiro256ssg_type) , intent(inout) :: rng
15275 end subroutine
15276#endif
15277
15278#if RK2_ENABLED
15279 PURE elemental module subroutine setUnifRandRNGGLU_D0_RK2(rng, rand, lb, ub)
15280#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15281 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_RK2
15282#endif
15283 use pm_kind, only: RKG => RK2
15284 real(RKG) , intent(out) :: rand
15285 real(RKG) , intent(in) :: lb, ub
15286 type(xoshiro256ssg_type) , intent(inout) :: rng
15287 end subroutine
15288#endif
15289
15290#if RK1_ENABLED
15291 PURE elemental module subroutine setUnifRandRNGGLU_D0_RK1(rng, rand, lb, ub)
15292#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15293 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D0_RK1
15294#endif
15295 use pm_kind, only: RKG => RK1
15296 real(RKG) , intent(out) :: rand
15297 real(RKG) , intent(in) :: lb, ub
15298 type(xoshiro256ssg_type) , intent(inout) :: rng
15299 end subroutine
15300#endif
15301
15302 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15303
15304 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15305 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15306 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15307
15308 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15309 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15310 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15311
15312 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15313
15314#if SK5_ENABLED
15315 PURE module subroutine setUnifRandRNGGDD_D1_SK5(rng, rand)
15316#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15317 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_SK5
15318#endif
15319 use pm_kind, only: SKG => SK5
15320 character(*,SKG) , intent(out) :: rand(:)
15321 type(xoshiro256ssg_type) , intent(inout) :: rng
15322 end subroutine
15323#endif
15324
15325#if SK4_ENABLED
15326 PURE module subroutine setUnifRandRNGGDD_D1_SK4(rng, rand)
15327#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15328 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_SK4
15329#endif
15330 use pm_kind, only: SKG => SK4
15331 character(*,SKG) , intent(out) :: rand(:)
15332 type(xoshiro256ssg_type) , intent(inout) :: rng
15333 end subroutine
15334#endif
15335
15336#if SK3_ENABLED
15337 PURE module subroutine setUnifRandRNGGDD_D1_SK3(rng, rand)
15338#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15339 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_SK3
15340#endif
15341 use pm_kind, only: SKG => SK3
15342 character(*,SKG) , intent(out) :: rand(:)
15343 type(xoshiro256ssg_type) , intent(inout) :: rng
15344 end subroutine
15345#endif
15346
15347#if SK2_ENABLED
15348 PURE module subroutine setUnifRandRNGGDD_D1_SK2(rng, rand)
15349#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15350 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_SK2
15351#endif
15352 use pm_kind, only: SKG => SK2
15353 character(*,SKG) , intent(out) :: rand(:)
15354 type(xoshiro256ssg_type) , intent(inout) :: rng
15355 end subroutine
15356#endif
15357
15358#if SK1_ENABLED
15359 PURE module subroutine setUnifRandRNGGDD_D1_SK1(rng, rand)
15360#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15361 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_SK1
15362#endif
15363 use pm_kind, only: SKG => SK1
15364 character(*,SKG) , intent(out) :: rand(:)
15365 type(xoshiro256ssg_type) , intent(inout) :: rng
15366 end subroutine
15367#endif
15368
15369 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15370
15371#if IK5_ENABLED
15372 PURE module subroutine setUnifRandRNGGDD_D1_IK5(rng, rand)
15373#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15374 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_IK5
15375#endif
15376 use pm_kind, only: IKG => IK5
15377 integer(IKG) , intent(out) :: rand(:)
15378 type(xoshiro256ssg_type) , intent(inout) :: rng
15379 end subroutine
15380#endif
15381
15382#if IK4_ENABLED
15383 PURE module subroutine setUnifRandRNGGDD_D1_IK4(rng, rand)
15384#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15385 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_IK4
15386#endif
15387 use pm_kind, only: IKG => IK4
15388 integer(IKG) , intent(out) :: rand(:)
15389 type(xoshiro256ssg_type) , intent(inout) :: rng
15390 end subroutine
15391#endif
15392
15393#if IK3_ENABLED
15394 PURE module subroutine setUnifRandRNGGDD_D1_IK3(rng, rand)
15395#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15396 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_IK3
15397#endif
15398 use pm_kind, only: IKG => IK3
15399 integer(IKG) , intent(out) :: rand(:)
15400 type(xoshiro256ssg_type) , intent(inout) :: rng
15401 end subroutine
15402#endif
15403
15404#if IK2_ENABLED
15405 PURE module subroutine setUnifRandRNGGDD_D1_IK2(rng, rand)
15406#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15407 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_IK2
15408#endif
15409 use pm_kind, only: IKG => IK2
15410 integer(IKG) , intent(out) :: rand(:)
15411 type(xoshiro256ssg_type) , intent(inout) :: rng
15412 end subroutine
15413#endif
15414
15415#if IK1_ENABLED
15416 PURE module subroutine setUnifRandRNGGDD_D1_IK1(rng, rand)
15417#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15418 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_IK1
15419#endif
15420 use pm_kind, only: IKG => IK1
15421 integer(IKG) , intent(out) :: rand(:)
15422 type(xoshiro256ssg_type) , intent(inout) :: rng
15423 end subroutine
15424#endif
15425
15426 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15427
15428#if LK5_ENABLED
15429 PURE module subroutine setUnifRandRNGGDD_D1_LK5(rng, rand)
15430#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15431 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_LK5
15432#endif
15433 use pm_kind, only: LKG => LK5
15434 logical(LKG) , intent(out) :: rand(:)
15435 type(xoshiro256ssg_type) , intent(inout) :: rng
15436 end subroutine
15437#endif
15438
15439#if LK4_ENABLED
15440 PURE module subroutine setUnifRandRNGGDD_D1_LK4(rng, rand)
15441#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15442 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_LK4
15443#endif
15444 use pm_kind, only: LKG => LK4
15445 logical(LKG) , intent(out) :: rand(:)
15446 type(xoshiro256ssg_type) , intent(inout) :: rng
15447 end subroutine
15448#endif
15449
15450#if LK3_ENABLED
15451 PURE module subroutine setUnifRandRNGGDD_D1_LK3(rng, rand)
15452#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15453 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_LK3
15454#endif
15455 use pm_kind, only: LKG => LK3
15456 logical(LKG) , intent(out) :: rand(:)
15457 type(xoshiro256ssg_type) , intent(inout) :: rng
15458 end subroutine
15459#endif
15460
15461#if LK2_ENABLED
15462 PURE module subroutine setUnifRandRNGGDD_D1_LK2(rng, rand)
15463#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15464 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_LK2
15465#endif
15466 use pm_kind, only: LKG => LK2
15467 logical(LKG) , intent(out) :: rand(:)
15468 type(xoshiro256ssg_type) , intent(inout) :: rng
15469 end subroutine
15470#endif
15471
15472#if LK1_ENABLED
15473 PURE module subroutine setUnifRandRNGGDD_D1_LK1(rng, rand)
15474#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15475 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_LK1
15476#endif
15477 use pm_kind, only: LKG => LK1
15478 logical(LKG) , intent(out) :: rand(:)
15479 type(xoshiro256ssg_type) , intent(inout) :: rng
15480 end subroutine
15481#endif
15482
15483 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15484
15485#if CK5_ENABLED
15486 PURE module subroutine setUnifRandRNGGDD_D1_CK5(rng, rand)
15487#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15488 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_CK5
15489#endif
15490 use pm_kind, only: CKG => CK5
15491 complex(CKG) , intent(out) :: rand(:)
15492 type(xoshiro256ssg_type) , intent(inout) :: rng
15493 end subroutine
15494#endif
15495
15496#if CK4_ENABLED
15497 PURE module subroutine setUnifRandRNGGDD_D1_CK4(rng, rand)
15498#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15499 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_CK4
15500#endif
15501 use pm_kind, only: CKG => CK4
15502 complex(CKG) , intent(out) :: rand(:)
15503 type(xoshiro256ssg_type) , intent(inout) :: rng
15504 end subroutine
15505#endif
15506
15507#if CK3_ENABLED
15508 PURE module subroutine setUnifRandRNGGDD_D1_CK3(rng, rand)
15509#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15510 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_CK3
15511#endif
15512 use pm_kind, only: CKG => CK3
15513 complex(CKG) , intent(out) :: rand(:)
15514 type(xoshiro256ssg_type) , intent(inout) :: rng
15515 end subroutine
15516#endif
15517
15518#if CK2_ENABLED
15519 PURE module subroutine setUnifRandRNGGDD_D1_CK2(rng, rand)
15520#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15521 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_CK2
15522#endif
15523 use pm_kind, only: CKG => CK2
15524 complex(CKG) , intent(out) :: rand(:)
15525 type(xoshiro256ssg_type) , intent(inout) :: rng
15526 end subroutine
15527#endif
15528
15529#if CK1_ENABLED
15530 PURE module subroutine setUnifRandRNGGDD_D1_CK1(rng, rand)
15531#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15532 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_CK1
15533#endif
15534 use pm_kind, only: CKG => CK1
15535 complex(CKG) , intent(out) :: rand(:)
15536 type(xoshiro256ssg_type) , intent(inout) :: rng
15537 end subroutine
15538#endif
15539
15540 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15541
15542#if RK5_ENABLED
15543 PURE module subroutine setUnifRandRNGGDD_D1_RK5(rng, rand)
15544#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15545 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_RK5
15546#endif
15547 use pm_kind, only: RKG => RK5
15548 real(RKG) , intent(out) :: rand(:)
15549 type(xoshiro256ssg_type) , intent(inout) :: rng
15550 end subroutine
15551#endif
15552
15553#if RK4_ENABLED
15554 PURE module subroutine setUnifRandRNGGDD_D1_RK4(rng, rand)
15555#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15556 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_RK4
15557#endif
15558 use pm_kind, only: RKG => RK4
15559 real(RKG) , intent(out) :: rand(:)
15560 type(xoshiro256ssg_type) , intent(inout) :: rng
15561 end subroutine
15562#endif
15563
15564#if RK3_ENABLED
15565 PURE module subroutine setUnifRandRNGGDD_D1_RK3(rng, rand)
15566#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15567 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_RK3
15568#endif
15569 use pm_kind, only: RKG => RK3
15570 real(RKG) , intent(out) :: rand(:)
15571 type(xoshiro256ssg_type) , intent(inout) :: rng
15572 end subroutine
15573#endif
15574
15575#if RK2_ENABLED
15576 PURE module subroutine setUnifRandRNGGDD_D1_RK2(rng, rand)
15577#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15578 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_RK2
15579#endif
15580 use pm_kind, only: RKG => RK2
15581 real(RKG) , intent(out) :: rand(:)
15582 type(xoshiro256ssg_type) , intent(inout) :: rng
15583 end subroutine
15584#endif
15585
15586#if RK1_ENABLED
15587 PURE module subroutine setUnifRandRNGGDD_D1_RK1(rng, rand)
15588#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15589 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D1_RK1
15590#endif
15591 use pm_kind, only: RKG => RK1
15592 real(RKG) , intent(out) :: rand(:)
15593 type(xoshiro256ssg_type) , intent(inout) :: rng
15594 end subroutine
15595#endif
15596
15597 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15598
15599 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15600 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15601 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15602
15603 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15604
15605#if SK5_ENABLED
15606 PURE module subroutine setUnifRandRNGGLU_D1_SK5(rng, rand, lb, ub)
15607#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15608 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_SK5
15609#endif
15610 use pm_kind, only: SKG => SK5
15611 character(*,SKG) , intent(out) :: rand(:)
15612 character(*,SKG) , intent(in) :: lb, ub
15613 type(xoshiro256ssg_type) , intent(inout) :: rng
15614 end subroutine
15615#endif
15616
15617#if SK4_ENABLED
15618 PURE module subroutine setUnifRandRNGGLU_D1_SK4(rng, rand, lb, ub)
15619#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15620 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_SK4
15621#endif
15622 use pm_kind, only: SKG => SK4
15623 character(*,SKG) , intent(out) :: rand(:)
15624 character(*,SKG) , intent(in) :: lb, ub
15625 type(xoshiro256ssg_type) , intent(inout) :: rng
15626 end subroutine
15627#endif
15628
15629#if SK3_ENABLED
15630 PURE module subroutine setUnifRandRNGGLU_D1_SK3(rng, rand, lb, ub)
15631#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15632 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_SK3
15633#endif
15634 use pm_kind, only: SKG => SK3
15635 character(*,SKG) , intent(out) :: rand(:)
15636 character(*,SKG) , intent(in) :: lb, ub
15637 type(xoshiro256ssg_type) , intent(inout) :: rng
15638 end subroutine
15639#endif
15640
15641#if SK2_ENABLED
15642 PURE module subroutine setUnifRandRNGGLU_D1_SK2(rng, rand, lb, ub)
15643#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15644 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_SK2
15645#endif
15646 use pm_kind, only: SKG => SK2
15647 character(*,SKG) , intent(out) :: rand(:)
15648 character(*,SKG) , intent(in) :: lb, ub
15649 type(xoshiro256ssg_type) , intent(inout) :: rng
15650 end subroutine
15651#endif
15652
15653#if SK1_ENABLED
15654 PURE module subroutine setUnifRandRNGGLU_D1_SK1(rng, rand, lb, ub)
15655#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15656 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_SK1
15657#endif
15658 use pm_kind, only: SKG => SK1
15659 character(*,SKG) , intent(out) :: rand(:)
15660 character(*,SKG) , intent(in) :: lb, ub
15661 type(xoshiro256ssg_type) , intent(inout) :: rng
15662 end subroutine
15663#endif
15664
15665 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15666
15667#if IK5_ENABLED
15668 PURE module subroutine setUnifRandRNGGLU_D1_IK5(rng, rand, lb, ub)
15669#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15670 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_IK5
15671#endif
15672 use pm_kind, only: IKG => IK5
15673 integer(IKG) , intent(out) :: rand(:)
15674 integer(IKG) , intent(in) :: lb, ub
15675 type(xoshiro256ssg_type) , intent(inout) :: rng
15676 end subroutine
15677#endif
15678
15679#if IK4_ENABLED
15680 PURE module subroutine setUnifRandRNGGLU_D1_IK4(rng, rand, lb, ub)
15681#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15682 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_IK4
15683#endif
15684 use pm_kind, only: IKG => IK4
15685 integer(IKG) , intent(out) :: rand(:)
15686 integer(IKG) , intent(in) :: lb, ub
15687 type(xoshiro256ssg_type) , intent(inout) :: rng
15688 end subroutine
15689#endif
15690
15691#if IK3_ENABLED
15692 PURE module subroutine setUnifRandRNGGLU_D1_IK3(rng, rand, lb, ub)
15693#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15694 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_IK3
15695#endif
15696 use pm_kind, only: IKG => IK3
15697 integer(IKG) , intent(out) :: rand(:)
15698 integer(IKG) , intent(in) :: lb, ub
15699 type(xoshiro256ssg_type) , intent(inout) :: rng
15700 end subroutine
15701#endif
15702
15703#if IK2_ENABLED
15704 PURE module subroutine setUnifRandRNGGLU_D1_IK2(rng, rand, lb, ub)
15705#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15706 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_IK2
15707#endif
15708 use pm_kind, only: IKG => IK2
15709 integer(IKG) , intent(out) :: rand(:)
15710 integer(IKG) , intent(in) :: lb, ub
15711 type(xoshiro256ssg_type) , intent(inout) :: rng
15712 end subroutine
15713#endif
15714
15715#if IK1_ENABLED
15716 PURE module subroutine setUnifRandRNGGLU_D1_IK1(rng, rand, lb, ub)
15717#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15718 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_IK1
15719#endif
15720 use pm_kind, only: IKG => IK1
15721 integer(IKG) , intent(out) :: rand(:)
15722 integer(IKG) , intent(in) :: lb, ub
15723 type(xoshiro256ssg_type) , intent(inout) :: rng
15724 end subroutine
15725#endif
15726
15727 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15728
15729#if LK5_ENABLED
15730 PURE module subroutine setUnifRandRNGGLU_D1_LK5(rng, rand, lb, ub)
15731#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15732 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_LK5
15733#endif
15734 use pm_kind, only: LKG => LK5
15735 logical(LKG) , intent(out) :: rand(:)
15736 logical(LKG) , intent(in) :: lb, ub
15737 type(xoshiro256ssg_type) , intent(inout) :: rng
15738 end subroutine
15739#endif
15740
15741#if LK4_ENABLED
15742 PURE module subroutine setUnifRandRNGGLU_D1_LK4(rng, rand, lb, ub)
15743#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15744 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_LK4
15745#endif
15746 use pm_kind, only: LKG => LK4
15747 logical(LKG) , intent(out) :: rand(:)
15748 logical(LKG) , intent(in) :: lb, ub
15749 type(xoshiro256ssg_type) , intent(inout) :: rng
15750 end subroutine
15751#endif
15752
15753#if LK3_ENABLED
15754 PURE module subroutine setUnifRandRNGGLU_D1_LK3(rng, rand, lb, ub)
15755#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15756 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_LK3
15757#endif
15758 use pm_kind, only: LKG => LK3
15759 logical(LKG) , intent(out) :: rand(:)
15760 logical(LKG) , intent(in) :: lb, ub
15761 type(xoshiro256ssg_type) , intent(inout) :: rng
15762 end subroutine
15763#endif
15764
15765#if LK2_ENABLED
15766 PURE module subroutine setUnifRandRNGGLU_D1_LK2(rng, rand, lb, ub)
15767#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15768 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_LK2
15769#endif
15770 use pm_kind, only: LKG => LK2
15771 logical(LKG) , intent(out) :: rand(:)
15772 logical(LKG) , intent(in) :: lb, ub
15773 type(xoshiro256ssg_type) , intent(inout) :: rng
15774 end subroutine
15775#endif
15776
15777#if LK1_ENABLED
15778 PURE module subroutine setUnifRandRNGGLU_D1_LK1(rng, rand, lb, ub)
15779#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15780 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_LK1
15781#endif
15782 use pm_kind, only: LKG => LK1
15783 logical(LKG) , intent(out) :: rand(:)
15784 logical(LKG) , intent(in) :: lb, ub
15785 type(xoshiro256ssg_type) , intent(inout) :: rng
15786 end subroutine
15787#endif
15788
15789 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15790
15791#if CK5_ENABLED
15792 PURE module subroutine setUnifRandRNGGLU_D1_CK5(rng, rand, lb, ub)
15793#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15794 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_CK5
15795#endif
15796 use pm_kind, only: CKG => CK5
15797 complex(CKG) , intent(out) :: rand(:)
15798 complex(CKG) , intent(in) :: lb, ub
15799 type(xoshiro256ssg_type) , intent(inout) :: rng
15800 end subroutine
15801#endif
15802
15803#if CK4_ENABLED
15804 PURE module subroutine setUnifRandRNGGLU_D1_CK4(rng, rand, lb, ub)
15805#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15806 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_CK4
15807#endif
15808 use pm_kind, only: CKG => CK4
15809 complex(CKG) , intent(out) :: rand(:)
15810 complex(CKG) , intent(in) :: lb, ub
15811 type(xoshiro256ssg_type) , intent(inout) :: rng
15812 end subroutine
15813#endif
15814
15815#if CK3_ENABLED
15816 PURE module subroutine setUnifRandRNGGLU_D1_CK3(rng, rand, lb, ub)
15817#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15818 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_CK3
15819#endif
15820 use pm_kind, only: CKG => CK3
15821 complex(CKG) , intent(out) :: rand(:)
15822 complex(CKG) , intent(in) :: lb, ub
15823 type(xoshiro256ssg_type) , intent(inout) :: rng
15824 end subroutine
15825#endif
15826
15827#if CK2_ENABLED
15828 PURE module subroutine setUnifRandRNGGLU_D1_CK2(rng, rand, lb, ub)
15829#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15830 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_CK2
15831#endif
15832 use pm_kind, only: CKG => CK2
15833 complex(CKG) , intent(out) :: rand(:)
15834 complex(CKG) , intent(in) :: lb, ub
15835 type(xoshiro256ssg_type) , intent(inout) :: rng
15836 end subroutine
15837#endif
15838
15839#if CK1_ENABLED
15840 PURE module subroutine setUnifRandRNGGLU_D1_CK1(rng, rand, lb, ub)
15841#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15842 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_CK1
15843#endif
15844 use pm_kind, only: CKG => CK1
15845 complex(CKG) , intent(out) :: rand(:)
15846 complex(CKG) , intent(in) :: lb, ub
15847 type(xoshiro256ssg_type) , intent(inout) :: rng
15848 end subroutine
15849#endif
15850
15851 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15852
15853#if RK5_ENABLED
15854 PURE module subroutine setUnifRandRNGGLU_D1_RK5(rng, rand, lb, ub)
15855#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15856 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_RK5
15857#endif
15858 use pm_kind, only: RKG => RK5
15859 real(RKG) , intent(out) :: rand(:)
15860 real(RKG) , intent(in) :: lb, ub
15861 type(xoshiro256ssg_type) , intent(inout) :: rng
15862 end subroutine
15863#endif
15864
15865#if RK4_ENABLED
15866 PURE module subroutine setUnifRandRNGGLU_D1_RK4(rng, rand, lb, ub)
15867#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15868 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_RK4
15869#endif
15870 use pm_kind, only: RKG => RK4
15871 real(RKG) , intent(out) :: rand(:)
15872 real(RKG) , intent(in) :: lb, ub
15873 type(xoshiro256ssg_type) , intent(inout) :: rng
15874 end subroutine
15875#endif
15876
15877#if RK3_ENABLED
15878 PURE module subroutine setUnifRandRNGGLU_D1_RK3(rng, rand, lb, ub)
15879#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15880 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_RK3
15881#endif
15882 use pm_kind, only: RKG => RK3
15883 real(RKG) , intent(out) :: rand(:)
15884 real(RKG) , intent(in) :: lb, ub
15885 type(xoshiro256ssg_type) , intent(inout) :: rng
15886 end subroutine
15887#endif
15888
15889#if RK2_ENABLED
15890 PURE module subroutine setUnifRandRNGGLU_D1_RK2(rng, rand, lb, ub)
15891#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15892 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_RK2
15893#endif
15894 use pm_kind, only: RKG => RK2
15895 real(RKG) , intent(out) :: rand(:)
15896 real(RKG) , intent(in) :: lb, ub
15897 type(xoshiro256ssg_type) , intent(inout) :: rng
15898 end subroutine
15899#endif
15900
15901#if RK1_ENABLED
15902 PURE module subroutine setUnifRandRNGGLU_D1_RK1(rng, rand, lb, ub)
15903#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15904 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D1_RK1
15905#endif
15906 use pm_kind, only: RKG => RK1
15907 real(RKG) , intent(out) :: rand(:)
15908 real(RKG) , intent(in) :: lb, ub
15909 type(xoshiro256ssg_type) , intent(inout) :: rng
15910 end subroutine
15911#endif
15912
15913 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15914
15915 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15916 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15917 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15918
15919 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15920 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15921 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15922
15923 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15924
15925#if SK5_ENABLED
15926 PURE module subroutine setUnifRandRNGGDD_D2_SK5(rng, rand)
15927#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15928 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_SK5
15929#endif
15930 use pm_kind, only: SKG => SK5
15931 character(*,SKG) , intent(out) :: rand(:,:)
15932 type(xoshiro256ssg_type) , intent(inout) :: rng
15933 end subroutine
15934#endif
15935
15936#if SK4_ENABLED
15937 PURE module subroutine setUnifRandRNGGDD_D2_SK4(rng, rand)
15938#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15939 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_SK4
15940#endif
15941 use pm_kind, only: SKG => SK4
15942 character(*,SKG) , intent(out) :: rand(:,:)
15943 type(xoshiro256ssg_type) , intent(inout) :: rng
15944 end subroutine
15945#endif
15946
15947#if SK3_ENABLED
15948 PURE module subroutine setUnifRandRNGGDD_D2_SK3(rng, rand)
15949#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15950 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_SK3
15951#endif
15952 use pm_kind, only: SKG => SK3
15953 character(*,SKG) , intent(out) :: rand(:,:)
15954 type(xoshiro256ssg_type) , intent(inout) :: rng
15955 end subroutine
15956#endif
15957
15958#if SK2_ENABLED
15959 PURE module subroutine setUnifRandRNGGDD_D2_SK2(rng, rand)
15960#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15961 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_SK2
15962#endif
15963 use pm_kind, only: SKG => SK2
15964 character(*,SKG) , intent(out) :: rand(:,:)
15965 type(xoshiro256ssg_type) , intent(inout) :: rng
15966 end subroutine
15967#endif
15968
15969#if SK1_ENABLED
15970 PURE module subroutine setUnifRandRNGGDD_D2_SK1(rng, rand)
15971#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15972 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_SK1
15973#endif
15974 use pm_kind, only: SKG => SK1
15975 character(*,SKG) , intent(out) :: rand(:,:)
15976 type(xoshiro256ssg_type) , intent(inout) :: rng
15977 end subroutine
15978#endif
15979
15980 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15981
15982#if IK5_ENABLED
15983 PURE module subroutine setUnifRandRNGGDD_D2_IK5(rng, rand)
15984#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15985 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_IK5
15986#endif
15987 use pm_kind, only: IKG => IK5
15988 integer(IKG) , intent(out) :: rand(:,:)
15989 type(xoshiro256ssg_type) , intent(inout) :: rng
15990 end subroutine
15991#endif
15992
15993#if IK4_ENABLED
15994 PURE module subroutine setUnifRandRNGGDD_D2_IK4(rng, rand)
15995#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
15996 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_IK4
15997#endif
15998 use pm_kind, only: IKG => IK4
15999 integer(IKG) , intent(out) :: rand(:,:)
16000 type(xoshiro256ssg_type) , intent(inout) :: rng
16001 end subroutine
16002#endif
16003
16004#if IK3_ENABLED
16005 PURE module subroutine setUnifRandRNGGDD_D2_IK3(rng, rand)
16006#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16007 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_IK3
16008#endif
16009 use pm_kind, only: IKG => IK3
16010 integer(IKG) , intent(out) :: rand(:,:)
16011 type(xoshiro256ssg_type) , intent(inout) :: rng
16012 end subroutine
16013#endif
16014
16015#if IK2_ENABLED
16016 PURE module subroutine setUnifRandRNGGDD_D2_IK2(rng, rand)
16017#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16018 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_IK2
16019#endif
16020 use pm_kind, only: IKG => IK2
16021 integer(IKG) , intent(out) :: rand(:,:)
16022 type(xoshiro256ssg_type) , intent(inout) :: rng
16023 end subroutine
16024#endif
16025
16026#if IK1_ENABLED
16027 PURE module subroutine setUnifRandRNGGDD_D2_IK1(rng, rand)
16028#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16029 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_IK1
16030#endif
16031 use pm_kind, only: IKG => IK1
16032 integer(IKG) , intent(out) :: rand(:,:)
16033 type(xoshiro256ssg_type) , intent(inout) :: rng
16034 end subroutine
16035#endif
16036
16037 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16038
16039#if LK5_ENABLED
16040 PURE module subroutine setUnifRandRNGGDD_D2_LK5(rng, rand)
16041#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16042 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_LK5
16043#endif
16044 use pm_kind, only: LKG => LK5
16045 logical(LKG) , intent(out) :: rand(:,:)
16046 type(xoshiro256ssg_type) , intent(inout) :: rng
16047 end subroutine
16048#endif
16049
16050#if LK4_ENABLED
16051 PURE module subroutine setUnifRandRNGGDD_D2_LK4(rng, rand)
16052#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16053 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_LK4
16054#endif
16055 use pm_kind, only: LKG => LK4
16056 logical(LKG) , intent(out) :: rand(:,:)
16057 type(xoshiro256ssg_type) , intent(inout) :: rng
16058 end subroutine
16059#endif
16060
16061#if LK3_ENABLED
16062 PURE module subroutine setUnifRandRNGGDD_D2_LK3(rng, rand)
16063#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16064 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_LK3
16065#endif
16066 use pm_kind, only: LKG => LK3
16067 logical(LKG) , intent(out) :: rand(:,:)
16068 type(xoshiro256ssg_type) , intent(inout) :: rng
16069 end subroutine
16070#endif
16071
16072#if LK2_ENABLED
16073 PURE module subroutine setUnifRandRNGGDD_D2_LK2(rng, rand)
16074#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16075 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_LK2
16076#endif
16077 use pm_kind, only: LKG => LK2
16078 logical(LKG) , intent(out) :: rand(:,:)
16079 type(xoshiro256ssg_type) , intent(inout) :: rng
16080 end subroutine
16081#endif
16082
16083#if LK1_ENABLED
16084 PURE module subroutine setUnifRandRNGGDD_D2_LK1(rng, rand)
16085#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16086 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_LK1
16087#endif
16088 use pm_kind, only: LKG => LK1
16089 logical(LKG) , intent(out) :: rand(:,:)
16090 type(xoshiro256ssg_type) , intent(inout) :: rng
16091 end subroutine
16092#endif
16093
16094 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16095
16096#if CK5_ENABLED
16097 PURE module subroutine setUnifRandRNGGDD_D2_CK5(rng, rand)
16098#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16099 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_CK5
16100#endif
16101 use pm_kind, only: CKG => CK5
16102 complex(CKG) , intent(out) :: rand(:,:)
16103 type(xoshiro256ssg_type) , intent(inout) :: rng
16104 end subroutine
16105#endif
16106
16107#if CK4_ENABLED
16108 PURE module subroutine setUnifRandRNGGDD_D2_CK4(rng, rand)
16109#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16110 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_CK4
16111#endif
16112 use pm_kind, only: CKG => CK4
16113 complex(CKG) , intent(out) :: rand(:,:)
16114 type(xoshiro256ssg_type) , intent(inout) :: rng
16115 end subroutine
16116#endif
16117
16118#if CK3_ENABLED
16119 PURE module subroutine setUnifRandRNGGDD_D2_CK3(rng, rand)
16120#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16121 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_CK3
16122#endif
16123 use pm_kind, only: CKG => CK3
16124 complex(CKG) , intent(out) :: rand(:,:)
16125 type(xoshiro256ssg_type) , intent(inout) :: rng
16126 end subroutine
16127#endif
16128
16129#if CK2_ENABLED
16130 PURE module subroutine setUnifRandRNGGDD_D2_CK2(rng, rand)
16131#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16132 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_CK2
16133#endif
16134 use pm_kind, only: CKG => CK2
16135 complex(CKG) , intent(out) :: rand(:,:)
16136 type(xoshiro256ssg_type) , intent(inout) :: rng
16137 end subroutine
16138#endif
16139
16140#if CK1_ENABLED
16141 PURE module subroutine setUnifRandRNGGDD_D2_CK1(rng, rand)
16142#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16143 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_CK1
16144#endif
16145 use pm_kind, only: CKG => CK1
16146 complex(CKG) , intent(out) :: rand(:,:)
16147 type(xoshiro256ssg_type) , intent(inout) :: rng
16148 end subroutine
16149#endif
16150
16151 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16152
16153#if RK5_ENABLED
16154 PURE module subroutine setUnifRandRNGGDD_D2_RK5(rng, rand)
16155#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16156 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_RK5
16157#endif
16158 use pm_kind, only: RKG => RK5
16159 real(RKG) , intent(out) :: rand(:,:)
16160 type(xoshiro256ssg_type) , intent(inout) :: rng
16161 end subroutine
16162#endif
16163
16164#if RK4_ENABLED
16165 PURE module subroutine setUnifRandRNGGDD_D2_RK4(rng, rand)
16166#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16167 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_RK4
16168#endif
16169 use pm_kind, only: RKG => RK4
16170 real(RKG) , intent(out) :: rand(:,:)
16171 type(xoshiro256ssg_type) , intent(inout) :: rng
16172 end subroutine
16173#endif
16174
16175#if RK3_ENABLED
16176 PURE module subroutine setUnifRandRNGGDD_D2_RK3(rng, rand)
16177#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16178 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_RK3
16179#endif
16180 use pm_kind, only: RKG => RK3
16181 real(RKG) , intent(out) :: rand(:,:)
16182 type(xoshiro256ssg_type) , intent(inout) :: rng
16183 end subroutine
16184#endif
16185
16186#if RK2_ENABLED
16187 PURE module subroutine setUnifRandRNGGDD_D2_RK2(rng, rand)
16188#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16189 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_RK2
16190#endif
16191 use pm_kind, only: RKG => RK2
16192 real(RKG) , intent(out) :: rand(:,:)
16193 type(xoshiro256ssg_type) , intent(inout) :: rng
16194 end subroutine
16195#endif
16196
16197#if RK1_ENABLED
16198 PURE module subroutine setUnifRandRNGGDD_D2_RK1(rng, rand)
16199#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16200 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D2_RK1
16201#endif
16202 use pm_kind, only: RKG => RK1
16203 real(RKG) , intent(out) :: rand(:,:)
16204 type(xoshiro256ssg_type) , intent(inout) :: rng
16205 end subroutine
16206#endif
16207
16208 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16209
16210 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16211 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16212 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16213
16214 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16215
16216#if SK5_ENABLED
16217 PURE module subroutine setUnifRandRNGGLU_D2_SK5(rng, rand, lb, ub)
16218#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16219 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_SK5
16220#endif
16221 use pm_kind, only: SKG => SK5
16222 character(*,SKG) , intent(out) :: rand(:,:)
16223 character(*,SKG) , intent(in) :: lb, ub
16224 type(xoshiro256ssg_type) , intent(inout) :: rng
16225 end subroutine
16226#endif
16227
16228#if SK4_ENABLED
16229 PURE module subroutine setUnifRandRNGGLU_D2_SK4(rng, rand, lb, ub)
16230#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16231 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_SK4
16232#endif
16233 use pm_kind, only: SKG => SK4
16234 character(*,SKG) , intent(out) :: rand(:,:)
16235 character(*,SKG) , intent(in) :: lb, ub
16236 type(xoshiro256ssg_type) , intent(inout) :: rng
16237 end subroutine
16238#endif
16239
16240#if SK3_ENABLED
16241 PURE module subroutine setUnifRandRNGGLU_D2_SK3(rng, rand, lb, ub)
16242#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16243 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_SK3
16244#endif
16245 use pm_kind, only: SKG => SK3
16246 character(*,SKG) , intent(out) :: rand(:,:)
16247 character(*,SKG) , intent(in) :: lb, ub
16248 type(xoshiro256ssg_type) , intent(inout) :: rng
16249 end subroutine
16250#endif
16251
16252#if SK2_ENABLED
16253 PURE module subroutine setUnifRandRNGGLU_D2_SK2(rng, rand, lb, ub)
16254#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16255 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_SK2
16256#endif
16257 use pm_kind, only: SKG => SK2
16258 character(*,SKG) , intent(out) :: rand(:,:)
16259 character(*,SKG) , intent(in) :: lb, ub
16260 type(xoshiro256ssg_type) , intent(inout) :: rng
16261 end subroutine
16262#endif
16263
16264#if SK1_ENABLED
16265 PURE module subroutine setUnifRandRNGGLU_D2_SK1(rng, rand, lb, ub)
16266#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16267 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_SK1
16268#endif
16269 use pm_kind, only: SKG => SK1
16270 character(*,SKG) , intent(out) :: rand(:,:)
16271 character(*,SKG) , intent(in) :: lb, ub
16272 type(xoshiro256ssg_type) , intent(inout) :: rng
16273 end subroutine
16274#endif
16275
16276 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16277
16278#if IK5_ENABLED
16279 PURE module subroutine setUnifRandRNGGLU_D2_IK5(rng, rand, lb, ub)
16280#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16281 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_IK5
16282#endif
16283 use pm_kind, only: IKG => IK5
16284 integer(IKG) , intent(out) :: rand(:,:)
16285 integer(IKG) , intent(in) :: lb, ub
16286 type(xoshiro256ssg_type) , intent(inout) :: rng
16287 end subroutine
16288#endif
16289
16290#if IK4_ENABLED
16291 PURE module subroutine setUnifRandRNGGLU_D2_IK4(rng, rand, lb, ub)
16292#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16293 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_IK4
16294#endif
16295 use pm_kind, only: IKG => IK4
16296 integer(IKG) , intent(out) :: rand(:,:)
16297 integer(IKG) , intent(in) :: lb, ub
16298 type(xoshiro256ssg_type) , intent(inout) :: rng
16299 end subroutine
16300#endif
16301
16302#if IK3_ENABLED
16303 PURE module subroutine setUnifRandRNGGLU_D2_IK3(rng, rand, lb, ub)
16304#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16305 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_IK3
16306#endif
16307 use pm_kind, only: IKG => IK3
16308 integer(IKG) , intent(out) :: rand(:,:)
16309 integer(IKG) , intent(in) :: lb, ub
16310 type(xoshiro256ssg_type) , intent(inout) :: rng
16311 end subroutine
16312#endif
16313
16314#if IK2_ENABLED
16315 PURE module subroutine setUnifRandRNGGLU_D2_IK2(rng, rand, lb, ub)
16316#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16317 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_IK2
16318#endif
16319 use pm_kind, only: IKG => IK2
16320 integer(IKG) , intent(out) :: rand(:,:)
16321 integer(IKG) , intent(in) :: lb, ub
16322 type(xoshiro256ssg_type) , intent(inout) :: rng
16323 end subroutine
16324#endif
16325
16326#if IK1_ENABLED
16327 PURE module subroutine setUnifRandRNGGLU_D2_IK1(rng, rand, lb, ub)
16328#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16329 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_IK1
16330#endif
16331 use pm_kind, only: IKG => IK1
16332 integer(IKG) , intent(out) :: rand(:,:)
16333 integer(IKG) , intent(in) :: lb, ub
16334 type(xoshiro256ssg_type) , intent(inout) :: rng
16335 end subroutine
16336#endif
16337
16338 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16339
16340#if LK5_ENABLED
16341 PURE module subroutine setUnifRandRNGGLU_D2_LK5(rng, rand, lb, ub)
16342#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16343 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_LK5
16344#endif
16345 use pm_kind, only: LKG => LK5
16346 logical(LKG) , intent(out) :: rand(:,:)
16347 logical(LKG) , intent(in) :: lb, ub
16348 type(xoshiro256ssg_type) , intent(inout) :: rng
16349 end subroutine
16350#endif
16351
16352#if LK4_ENABLED
16353 PURE module subroutine setUnifRandRNGGLU_D2_LK4(rng, rand, lb, ub)
16354#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16355 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_LK4
16356#endif
16357 use pm_kind, only: LKG => LK4
16358 logical(LKG) , intent(out) :: rand(:,:)
16359 logical(LKG) , intent(in) :: lb, ub
16360 type(xoshiro256ssg_type) , intent(inout) :: rng
16361 end subroutine
16362#endif
16363
16364#if LK3_ENABLED
16365 PURE module subroutine setUnifRandRNGGLU_D2_LK3(rng, rand, lb, ub)
16366#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16367 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_LK3
16368#endif
16369 use pm_kind, only: LKG => LK3
16370 logical(LKG) , intent(out) :: rand(:,:)
16371 logical(LKG) , intent(in) :: lb, ub
16372 type(xoshiro256ssg_type) , intent(inout) :: rng
16373 end subroutine
16374#endif
16375
16376#if LK2_ENABLED
16377 PURE module subroutine setUnifRandRNGGLU_D2_LK2(rng, rand, lb, ub)
16378#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16379 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_LK2
16380#endif
16381 use pm_kind, only: LKG => LK2
16382 logical(LKG) , intent(out) :: rand(:,:)
16383 logical(LKG) , intent(in) :: lb, ub
16384 type(xoshiro256ssg_type) , intent(inout) :: rng
16385 end subroutine
16386#endif
16387
16388#if LK1_ENABLED
16389 PURE module subroutine setUnifRandRNGGLU_D2_LK1(rng, rand, lb, ub)
16390#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16391 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_LK1
16392#endif
16393 use pm_kind, only: LKG => LK1
16394 logical(LKG) , intent(out) :: rand(:,:)
16395 logical(LKG) , intent(in) :: lb, ub
16396 type(xoshiro256ssg_type) , intent(inout) :: rng
16397 end subroutine
16398#endif
16399
16400 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16401
16402#if CK5_ENABLED
16403 PURE module subroutine setUnifRandRNGGLU_D2_CK5(rng, rand, lb, ub)
16404#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16405 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_CK5
16406#endif
16407 use pm_kind, only: CKG => CK5
16408 complex(CKG) , intent(out) :: rand(:,:)
16409 complex(CKG) , intent(in) :: lb, ub
16410 type(xoshiro256ssg_type) , intent(inout) :: rng
16411 end subroutine
16412#endif
16413
16414#if CK4_ENABLED
16415 PURE module subroutine setUnifRandRNGGLU_D2_CK4(rng, rand, lb, ub)
16416#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16417 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_CK4
16418#endif
16419 use pm_kind, only: CKG => CK4
16420 complex(CKG) , intent(out) :: rand(:,:)
16421 complex(CKG) , intent(in) :: lb, ub
16422 type(xoshiro256ssg_type) , intent(inout) :: rng
16423 end subroutine
16424#endif
16425
16426#if CK3_ENABLED
16427 PURE module subroutine setUnifRandRNGGLU_D2_CK3(rng, rand, lb, ub)
16428#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16429 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_CK3
16430#endif
16431 use pm_kind, only: CKG => CK3
16432 complex(CKG) , intent(out) :: rand(:,:)
16433 complex(CKG) , intent(in) :: lb, ub
16434 type(xoshiro256ssg_type) , intent(inout) :: rng
16435 end subroutine
16436#endif
16437
16438#if CK2_ENABLED
16439 PURE module subroutine setUnifRandRNGGLU_D2_CK2(rng, rand, lb, ub)
16440#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16441 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_CK2
16442#endif
16443 use pm_kind, only: CKG => CK2
16444 complex(CKG) , intent(out) :: rand(:,:)
16445 complex(CKG) , intent(in) :: lb, ub
16446 type(xoshiro256ssg_type) , intent(inout) :: rng
16447 end subroutine
16448#endif
16449
16450#if CK1_ENABLED
16451 PURE module subroutine setUnifRandRNGGLU_D2_CK1(rng, rand, lb, ub)
16452#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16453 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_CK1
16454#endif
16455 use pm_kind, only: CKG => CK1
16456 complex(CKG) , intent(out) :: rand(:,:)
16457 complex(CKG) , intent(in) :: lb, ub
16458 type(xoshiro256ssg_type) , intent(inout) :: rng
16459 end subroutine
16460#endif
16461
16462 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16463
16464#if RK5_ENABLED
16465 PURE module subroutine setUnifRandRNGGLU_D2_RK5(rng, rand, lb, ub)
16466#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16467 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_RK5
16468#endif
16469 use pm_kind, only: RKG => RK5
16470 real(RKG) , intent(out) :: rand(:,:)
16471 real(RKG) , intent(in) :: lb, ub
16472 type(xoshiro256ssg_type) , intent(inout) :: rng
16473 end subroutine
16474#endif
16475
16476#if RK4_ENABLED
16477 PURE module subroutine setUnifRandRNGGLU_D2_RK4(rng, rand, lb, ub)
16478#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16479 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_RK4
16480#endif
16481 use pm_kind, only: RKG => RK4
16482 real(RKG) , intent(out) :: rand(:,:)
16483 real(RKG) , intent(in) :: lb, ub
16484 type(xoshiro256ssg_type) , intent(inout) :: rng
16485 end subroutine
16486#endif
16487
16488#if RK3_ENABLED
16489 PURE module subroutine setUnifRandRNGGLU_D2_RK3(rng, rand, lb, ub)
16490#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16491 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_RK3
16492#endif
16493 use pm_kind, only: RKG => RK3
16494 real(RKG) , intent(out) :: rand(:,:)
16495 real(RKG) , intent(in) :: lb, ub
16496 type(xoshiro256ssg_type) , intent(inout) :: rng
16497 end subroutine
16498#endif
16499
16500#if RK2_ENABLED
16501 PURE module subroutine setUnifRandRNGGLU_D2_RK2(rng, rand, lb, ub)
16502#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16503 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_RK2
16504#endif
16505 use pm_kind, only: RKG => RK2
16506 real(RKG) , intent(out) :: rand(:,:)
16507 real(RKG) , intent(in) :: lb, ub
16508 type(xoshiro256ssg_type) , intent(inout) :: rng
16509 end subroutine
16510#endif
16511
16512#if RK1_ENABLED
16513 PURE module subroutine setUnifRandRNGGLU_D2_RK1(rng, rand, lb, ub)
16514#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16515 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D2_RK1
16516#endif
16517 use pm_kind, only: RKG => RK1
16518 real(RKG) , intent(out) :: rand(:,:)
16519 real(RKG) , intent(in) :: lb, ub
16520 type(xoshiro256ssg_type) , intent(inout) :: rng
16521 end subroutine
16522#endif
16523
16524 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16525
16526 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16527 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16528 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16529
16530 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16531 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16532 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16533
16534 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16535
16536#if SK5_ENABLED
16537 PURE module subroutine setUnifRandRNGGDD_D3_SK5(rng, rand)
16538#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16539 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_SK5
16540#endif
16541 use pm_kind, only: SKG => SK5
16542 character(*,SKG) , intent(out) :: rand(:,:,:)
16543 type(xoshiro256ssg_type) , intent(inout) :: rng
16544 end subroutine
16545#endif
16546
16547#if SK4_ENABLED
16548 PURE module subroutine setUnifRandRNGGDD_D3_SK4(rng, rand)
16549#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16550 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_SK4
16551#endif
16552 use pm_kind, only: SKG => SK4
16553 character(*,SKG) , intent(out) :: rand(:,:,:)
16554 type(xoshiro256ssg_type) , intent(inout) :: rng
16555 end subroutine
16556#endif
16557
16558#if SK3_ENABLED
16559 PURE module subroutine setUnifRandRNGGDD_D3_SK3(rng, rand)
16560#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16561 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_SK3
16562#endif
16563 use pm_kind, only: SKG => SK3
16564 character(*,SKG) , intent(out) :: rand(:,:,:)
16565 type(xoshiro256ssg_type) , intent(inout) :: rng
16566 end subroutine
16567#endif
16568
16569#if SK2_ENABLED
16570 PURE module subroutine setUnifRandRNGGDD_D3_SK2(rng, rand)
16571#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16572 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_SK2
16573#endif
16574 use pm_kind, only: SKG => SK2
16575 character(*,SKG) , intent(out) :: rand(:,:,:)
16576 type(xoshiro256ssg_type) , intent(inout) :: rng
16577 end subroutine
16578#endif
16579
16580#if SK1_ENABLED
16581 PURE module subroutine setUnifRandRNGGDD_D3_SK1(rng, rand)
16582#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16583 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_SK1
16584#endif
16585 use pm_kind, only: SKG => SK1
16586 character(*,SKG) , intent(out) :: rand(:,:,:)
16587 type(xoshiro256ssg_type) , intent(inout) :: rng
16588 end subroutine
16589#endif
16590
16591 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16592
16593#if IK5_ENABLED
16594 PURE module subroutine setUnifRandRNGGDD_D3_IK5(rng, rand)
16595#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16596 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_IK5
16597#endif
16598 use pm_kind, only: IKG => IK5
16599 integer(IKG) , intent(out) :: rand(:,:,:)
16600 type(xoshiro256ssg_type) , intent(inout) :: rng
16601 end subroutine
16602#endif
16603
16604#if IK4_ENABLED
16605 PURE module subroutine setUnifRandRNGGDD_D3_IK4(rng, rand)
16606#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16607 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_IK4
16608#endif
16609 use pm_kind, only: IKG => IK4
16610 integer(IKG) , intent(out) :: rand(:,:,:)
16611 type(xoshiro256ssg_type) , intent(inout) :: rng
16612 end subroutine
16613#endif
16614
16615#if IK3_ENABLED
16616 PURE module subroutine setUnifRandRNGGDD_D3_IK3(rng, rand)
16617#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16618 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_IK3
16619#endif
16620 use pm_kind, only: IKG => IK3
16621 integer(IKG) , intent(out) :: rand(:,:,:)
16622 type(xoshiro256ssg_type) , intent(inout) :: rng
16623 end subroutine
16624#endif
16625
16626#if IK2_ENABLED
16627 PURE module subroutine setUnifRandRNGGDD_D3_IK2(rng, rand)
16628#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16629 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_IK2
16630#endif
16631 use pm_kind, only: IKG => IK2
16632 integer(IKG) , intent(out) :: rand(:,:,:)
16633 type(xoshiro256ssg_type) , intent(inout) :: rng
16634 end subroutine
16635#endif
16636
16637#if IK1_ENABLED
16638 PURE module subroutine setUnifRandRNGGDD_D3_IK1(rng, rand)
16639#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16640 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_IK1
16641#endif
16642 use pm_kind, only: IKG => IK1
16643 integer(IKG) , intent(out) :: rand(:,:,:)
16644 type(xoshiro256ssg_type) , intent(inout) :: rng
16645 end subroutine
16646#endif
16647
16648 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16649
16650#if LK5_ENABLED
16651 PURE module subroutine setUnifRandRNGGDD_D3_LK5(rng, rand)
16652#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16653 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_LK5
16654#endif
16655 use pm_kind, only: LKG => LK5
16656 logical(LKG) , intent(out) :: rand(:,:,:)
16657 type(xoshiro256ssg_type) , intent(inout) :: rng
16658 end subroutine
16659#endif
16660
16661#if LK4_ENABLED
16662 PURE module subroutine setUnifRandRNGGDD_D3_LK4(rng, rand)
16663#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16664 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_LK4
16665#endif
16666 use pm_kind, only: LKG => LK4
16667 logical(LKG) , intent(out) :: rand(:,:,:)
16668 type(xoshiro256ssg_type) , intent(inout) :: rng
16669 end subroutine
16670#endif
16671
16672#if LK3_ENABLED
16673 PURE module subroutine setUnifRandRNGGDD_D3_LK3(rng, rand)
16674#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16675 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_LK3
16676#endif
16677 use pm_kind, only: LKG => LK3
16678 logical(LKG) , intent(out) :: rand(:,:,:)
16679 type(xoshiro256ssg_type) , intent(inout) :: rng
16680 end subroutine
16681#endif
16682
16683#if LK2_ENABLED
16684 PURE module subroutine setUnifRandRNGGDD_D3_LK2(rng, rand)
16685#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16686 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_LK2
16687#endif
16688 use pm_kind, only: LKG => LK2
16689 logical(LKG) , intent(out) :: rand(:,:,:)
16690 type(xoshiro256ssg_type) , intent(inout) :: rng
16691 end subroutine
16692#endif
16693
16694#if LK1_ENABLED
16695 PURE module subroutine setUnifRandRNGGDD_D3_LK1(rng, rand)
16696#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16697 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_LK1
16698#endif
16699 use pm_kind, only: LKG => LK1
16700 logical(LKG) , intent(out) :: rand(:,:,:)
16701 type(xoshiro256ssg_type) , intent(inout) :: rng
16702 end subroutine
16703#endif
16704
16705 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16706
16707#if CK5_ENABLED
16708 PURE module subroutine setUnifRandRNGGDD_D3_CK5(rng, rand)
16709#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16710 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_CK5
16711#endif
16712 use pm_kind, only: CKG => CK5
16713 complex(CKG) , intent(out) :: rand(:,:,:)
16714 type(xoshiro256ssg_type) , intent(inout) :: rng
16715 end subroutine
16716#endif
16717
16718#if CK4_ENABLED
16719 PURE module subroutine setUnifRandRNGGDD_D3_CK4(rng, rand)
16720#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16721 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_CK4
16722#endif
16723 use pm_kind, only: CKG => CK4
16724 complex(CKG) , intent(out) :: rand(:,:,:)
16725 type(xoshiro256ssg_type) , intent(inout) :: rng
16726 end subroutine
16727#endif
16728
16729#if CK3_ENABLED
16730 PURE module subroutine setUnifRandRNGGDD_D3_CK3(rng, rand)
16731#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16732 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_CK3
16733#endif
16734 use pm_kind, only: CKG => CK3
16735 complex(CKG) , intent(out) :: rand(:,:,:)
16736 type(xoshiro256ssg_type) , intent(inout) :: rng
16737 end subroutine
16738#endif
16739
16740#if CK2_ENABLED
16741 PURE module subroutine setUnifRandRNGGDD_D3_CK2(rng, rand)
16742#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16743 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_CK2
16744#endif
16745 use pm_kind, only: CKG => CK2
16746 complex(CKG) , intent(out) :: rand(:,:,:)
16747 type(xoshiro256ssg_type) , intent(inout) :: rng
16748 end subroutine
16749#endif
16750
16751#if CK1_ENABLED
16752 PURE module subroutine setUnifRandRNGGDD_D3_CK1(rng, rand)
16753#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16754 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_CK1
16755#endif
16756 use pm_kind, only: CKG => CK1
16757 complex(CKG) , intent(out) :: rand(:,:,:)
16758 type(xoshiro256ssg_type) , intent(inout) :: rng
16759 end subroutine
16760#endif
16761
16762 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16763
16764#if RK5_ENABLED
16765 PURE module subroutine setUnifRandRNGGDD_D3_RK5(rng, rand)
16766#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16767 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_RK5
16768#endif
16769 use pm_kind, only: RKG => RK5
16770 real(RKG) , intent(out) :: rand(:,:,:)
16771 type(xoshiro256ssg_type) , intent(inout) :: rng
16772 end subroutine
16773#endif
16774
16775#if RK4_ENABLED
16776 PURE module subroutine setUnifRandRNGGDD_D3_RK4(rng, rand)
16777#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16778 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_RK4
16779#endif
16780 use pm_kind, only: RKG => RK4
16781 real(RKG) , intent(out) :: rand(:,:,:)
16782 type(xoshiro256ssg_type) , intent(inout) :: rng
16783 end subroutine
16784#endif
16785
16786#if RK3_ENABLED
16787 PURE module subroutine setUnifRandRNGGDD_D3_RK3(rng, rand)
16788#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16789 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_RK3
16790#endif
16791 use pm_kind, only: RKG => RK3
16792 real(RKG) , intent(out) :: rand(:,:,:)
16793 type(xoshiro256ssg_type) , intent(inout) :: rng
16794 end subroutine
16795#endif
16796
16797#if RK2_ENABLED
16798 PURE module subroutine setUnifRandRNGGDD_D3_RK2(rng, rand)
16799#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16800 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_RK2
16801#endif
16802 use pm_kind, only: RKG => RK2
16803 real(RKG) , intent(out) :: rand(:,:,:)
16804 type(xoshiro256ssg_type) , intent(inout) :: rng
16805 end subroutine
16806#endif
16807
16808#if RK1_ENABLED
16809 PURE module subroutine setUnifRandRNGGDD_D3_RK1(rng, rand)
16810#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16811 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGDD_D3_RK1
16812#endif
16813 use pm_kind, only: RKG => RK1
16814 real(RKG) , intent(out) :: rand(:,:,:)
16815 type(xoshiro256ssg_type) , intent(inout) :: rng
16816 end subroutine
16817#endif
16818
16819 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16820
16821 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16822 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16823 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16824
16825 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16826
16827#if SK5_ENABLED
16828 PURE module subroutine setUnifRandRNGGLU_D3_SK5(rng, rand, lb, ub)
16829#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16830 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_SK5
16831#endif
16832 use pm_kind, only: SKG => SK5
16833 character(*,SKG) , intent(out) :: rand(:,:,:)
16834 character(*,SKG) , intent(in) :: lb, ub
16835 type(xoshiro256ssg_type) , intent(inout) :: rng
16836 end subroutine
16837#endif
16838
16839#if SK4_ENABLED
16840 PURE module subroutine setUnifRandRNGGLU_D3_SK4(rng, rand, lb, ub)
16841#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16842 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_SK4
16843#endif
16844 use pm_kind, only: SKG => SK4
16845 character(*,SKG) , intent(out) :: rand(:,:,:)
16846 character(*,SKG) , intent(in) :: lb, ub
16847 type(xoshiro256ssg_type) , intent(inout) :: rng
16848 end subroutine
16849#endif
16850
16851#if SK3_ENABLED
16852 PURE module subroutine setUnifRandRNGGLU_D3_SK3(rng, rand, lb, ub)
16853#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16854 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_SK3
16855#endif
16856 use pm_kind, only: SKG => SK3
16857 character(*,SKG) , intent(out) :: rand(:,:,:)
16858 character(*,SKG) , intent(in) :: lb, ub
16859 type(xoshiro256ssg_type) , intent(inout) :: rng
16860 end subroutine
16861#endif
16862
16863#if SK2_ENABLED
16864 PURE module subroutine setUnifRandRNGGLU_D3_SK2(rng, rand, lb, ub)
16865#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16866 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_SK2
16867#endif
16868 use pm_kind, only: SKG => SK2
16869 character(*,SKG) , intent(out) :: rand(:,:,:)
16870 character(*,SKG) , intent(in) :: lb, ub
16871 type(xoshiro256ssg_type) , intent(inout) :: rng
16872 end subroutine
16873#endif
16874
16875#if SK1_ENABLED
16876 PURE module subroutine setUnifRandRNGGLU_D3_SK1(rng, rand, lb, ub)
16877#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16878 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_SK1
16879#endif
16880 use pm_kind, only: SKG => SK1
16881 character(*,SKG) , intent(out) :: rand(:,:,:)
16882 character(*,SKG) , intent(in) :: lb, ub
16883 type(xoshiro256ssg_type) , intent(inout) :: rng
16884 end subroutine
16885#endif
16886
16887 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16888
16889#if IK5_ENABLED
16890 PURE module subroutine setUnifRandRNGGLU_D3_IK5(rng, rand, lb, ub)
16891#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16892 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_IK5
16893#endif
16894 use pm_kind, only: IKG => IK5
16895 integer(IKG) , intent(out) :: rand(:,:,:)
16896 integer(IKG) , intent(in) :: lb, ub
16897 type(xoshiro256ssg_type) , intent(inout) :: rng
16898 end subroutine
16899#endif
16900
16901#if IK4_ENABLED
16902 PURE module subroutine setUnifRandRNGGLU_D3_IK4(rng, rand, lb, ub)
16903#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16904 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_IK4
16905#endif
16906 use pm_kind, only: IKG => IK4
16907 integer(IKG) , intent(out) :: rand(:,:,:)
16908 integer(IKG) , intent(in) :: lb, ub
16909 type(xoshiro256ssg_type) , intent(inout) :: rng
16910 end subroutine
16911#endif
16912
16913#if IK3_ENABLED
16914 PURE module subroutine setUnifRandRNGGLU_D3_IK3(rng, rand, lb, ub)
16915#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16916 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_IK3
16917#endif
16918 use pm_kind, only: IKG => IK3
16919 integer(IKG) , intent(out) :: rand(:,:,:)
16920 integer(IKG) , intent(in) :: lb, ub
16921 type(xoshiro256ssg_type) , intent(inout) :: rng
16922 end subroutine
16923#endif
16924
16925#if IK2_ENABLED
16926 PURE module subroutine setUnifRandRNGGLU_D3_IK2(rng, rand, lb, ub)
16927#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16928 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_IK2
16929#endif
16930 use pm_kind, only: IKG => IK2
16931 integer(IKG) , intent(out) :: rand(:,:,:)
16932 integer(IKG) , intent(in) :: lb, ub
16933 type(xoshiro256ssg_type) , intent(inout) :: rng
16934 end subroutine
16935#endif
16936
16937#if IK1_ENABLED
16938 PURE module subroutine setUnifRandRNGGLU_D3_IK1(rng, rand, lb, ub)
16939#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16940 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_IK1
16941#endif
16942 use pm_kind, only: IKG => IK1
16943 integer(IKG) , intent(out) :: rand(:,:,:)
16944 integer(IKG) , intent(in) :: lb, ub
16945 type(xoshiro256ssg_type) , intent(inout) :: rng
16946 end subroutine
16947#endif
16948
16949 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16950
16951#if LK5_ENABLED
16952 PURE module subroutine setUnifRandRNGGLU_D3_LK5(rng, rand, lb, ub)
16953#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16954 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_LK5
16955#endif
16956 use pm_kind, only: LKG => LK5
16957 logical(LKG) , intent(out) :: rand(:,:,:)
16958 logical(LKG) , intent(in) :: lb, ub
16959 type(xoshiro256ssg_type) , intent(inout) :: rng
16960 end subroutine
16961#endif
16962
16963#if LK4_ENABLED
16964 PURE module subroutine setUnifRandRNGGLU_D3_LK4(rng, rand, lb, ub)
16965#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16966 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_LK4
16967#endif
16968 use pm_kind, only: LKG => LK4
16969 logical(LKG) , intent(out) :: rand(:,:,:)
16970 logical(LKG) , intent(in) :: lb, ub
16971 type(xoshiro256ssg_type) , intent(inout) :: rng
16972 end subroutine
16973#endif
16974
16975#if LK3_ENABLED
16976 PURE module subroutine setUnifRandRNGGLU_D3_LK3(rng, rand, lb, ub)
16977#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16978 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_LK3
16979#endif
16980 use pm_kind, only: LKG => LK3
16981 logical(LKG) , intent(out) :: rand(:,:,:)
16982 logical(LKG) , intent(in) :: lb, ub
16983 type(xoshiro256ssg_type) , intent(inout) :: rng
16984 end subroutine
16985#endif
16986
16987#if LK2_ENABLED
16988 PURE module subroutine setUnifRandRNGGLU_D3_LK2(rng, rand, lb, ub)
16989#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
16990 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_LK2
16991#endif
16992 use pm_kind, only: LKG => LK2
16993 logical(LKG) , intent(out) :: rand(:,:,:)
16994 logical(LKG) , intent(in) :: lb, ub
16995 type(xoshiro256ssg_type) , intent(inout) :: rng
16996 end subroutine
16997#endif
16998
16999#if LK1_ENABLED
17000 PURE module subroutine setUnifRandRNGGLU_D3_LK1(rng, rand, lb, ub)
17001#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17002 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_LK1
17003#endif
17004 use pm_kind, only: LKG => LK1
17005 logical(LKG) , intent(out) :: rand(:,:,:)
17006 logical(LKG) , intent(in) :: lb, ub
17007 type(xoshiro256ssg_type) , intent(inout) :: rng
17008 end subroutine
17009#endif
17010
17011 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17012
17013#if CK5_ENABLED
17014 PURE module subroutine setUnifRandRNGGLU_D3_CK5(rng, rand, lb, ub)
17015#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17016 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_CK5
17017#endif
17018 use pm_kind, only: CKG => CK5
17019 complex(CKG) , intent(out) :: rand(:,:,:)
17020 complex(CKG) , intent(in) :: lb, ub
17021 type(xoshiro256ssg_type) , intent(inout) :: rng
17022 end subroutine
17023#endif
17024
17025#if CK4_ENABLED
17026 PURE module subroutine setUnifRandRNGGLU_D3_CK4(rng, rand, lb, ub)
17027#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17028 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_CK4
17029#endif
17030 use pm_kind, only: CKG => CK4
17031 complex(CKG) , intent(out) :: rand(:,:,:)
17032 complex(CKG) , intent(in) :: lb, ub
17033 type(xoshiro256ssg_type) , intent(inout) :: rng
17034 end subroutine
17035#endif
17036
17037#if CK3_ENABLED
17038 PURE module subroutine setUnifRandRNGGLU_D3_CK3(rng, rand, lb, ub)
17039#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17040 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_CK3
17041#endif
17042 use pm_kind, only: CKG => CK3
17043 complex(CKG) , intent(out) :: rand(:,:,:)
17044 complex(CKG) , intent(in) :: lb, ub
17045 type(xoshiro256ssg_type) , intent(inout) :: rng
17046 end subroutine
17047#endif
17048
17049#if CK2_ENABLED
17050 PURE module subroutine setUnifRandRNGGLU_D3_CK2(rng, rand, lb, ub)
17051#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17052 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_CK2
17053#endif
17054 use pm_kind, only: CKG => CK2
17055 complex(CKG) , intent(out) :: rand(:,:,:)
17056 complex(CKG) , intent(in) :: lb, ub
17057 type(xoshiro256ssg_type) , intent(inout) :: rng
17058 end subroutine
17059#endif
17060
17061#if CK1_ENABLED
17062 PURE module subroutine setUnifRandRNGGLU_D3_CK1(rng, rand, lb, ub)
17063#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17064 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_CK1
17065#endif
17066 use pm_kind, only: CKG => CK1
17067 complex(CKG) , intent(out) :: rand(:,:,:)
17068 complex(CKG) , intent(in) :: lb, ub
17069 type(xoshiro256ssg_type) , intent(inout) :: rng
17070 end subroutine
17071#endif
17072
17073 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17074
17075#if RK5_ENABLED
17076 PURE module subroutine setUnifRandRNGGLU_D3_RK5(rng, rand, lb, ub)
17077#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17078 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_RK5
17079#endif
17080 use pm_kind, only: RKG => RK5
17081 real(RKG) , intent(out) :: rand(:,:,:)
17082 real(RKG) , intent(in) :: lb, ub
17083 type(xoshiro256ssg_type) , intent(inout) :: rng
17084 end subroutine
17085#endif
17086
17087#if RK4_ENABLED
17088 PURE module subroutine setUnifRandRNGGLU_D3_RK4(rng, rand, lb, ub)
17089#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17090 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_RK4
17091#endif
17092 use pm_kind, only: RKG => RK4
17093 real(RKG) , intent(out) :: rand(:,:,:)
17094 real(RKG) , intent(in) :: lb, ub
17095 type(xoshiro256ssg_type) , intent(inout) :: rng
17096 end subroutine
17097#endif
17098
17099#if RK3_ENABLED
17100 PURE module subroutine setUnifRandRNGGLU_D3_RK3(rng, rand, lb, ub)
17101#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17102 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_RK3
17103#endif
17104 use pm_kind, only: RKG => RK3
17105 real(RKG) , intent(out) :: rand(:,:,:)
17106 real(RKG) , intent(in) :: lb, ub
17107 type(xoshiro256ssg_type) , intent(inout) :: rng
17108 end subroutine
17109#endif
17110
17111#if RK2_ENABLED
17112 PURE module subroutine setUnifRandRNGGLU_D3_RK2(rng, rand, lb, ub)
17113#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17114 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_RK2
17115#endif
17116 use pm_kind, only: RKG => RK2
17117 real(RKG) , intent(out) :: rand(:,:,:)
17118 real(RKG) , intent(in) :: lb, ub
17119 type(xoshiro256ssg_type) , intent(inout) :: rng
17120 end subroutine
17121#endif
17122
17123#if RK1_ENABLED
17124 PURE module subroutine setUnifRandRNGGLU_D3_RK1(rng, rand, lb, ub)
17125#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17126 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGGLU_D3_RK1
17127#endif
17128 use pm_kind, only: RKG => RK1
17129 real(RKG) , intent(out) :: rand(:,:,:)
17130 real(RKG) , intent(in) :: lb, ub
17131 type(xoshiro256ssg_type) , intent(inout) :: rng
17132 end subroutine
17133#endif
17134
17135 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17136
17137 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17138 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17139 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17140
17141 end interface
17142
17143 ! RNGS
17144
17145 interface setUnifRand
17146
17147 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17148 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17149 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17150
17151 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17152
17153#if SK5_ENABLED
17154 PURE elemental module subroutine setUnifRandRNGXDD_D0_SK5(rng, rand)
17155#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17156 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_SK5
17157#endif
17158 use pm_kind, only: SKG => SK5
17159 character(*,SKG) , intent(out) :: rand
17160 type(xoshiro256ssw_type) , intent(inout) :: rng
17161 end subroutine
17162#endif
17163
17164#if SK4_ENABLED
17165 PURE elemental module subroutine setUnifRandRNGXDD_D0_SK4(rng, rand)
17166#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17167 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_SK4
17168#endif
17169 use pm_kind, only: SKG => SK4
17170 character(*,SKG) , intent(out) :: rand
17171 type(xoshiro256ssw_type) , intent(inout) :: rng
17172 end subroutine
17173#endif
17174
17175#if SK3_ENABLED
17176 PURE elemental module subroutine setUnifRandRNGXDD_D0_SK3(rng, rand)
17177#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17178 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_SK3
17179#endif
17180 use pm_kind, only: SKG => SK3
17181 character(*,SKG) , intent(out) :: rand
17182 type(xoshiro256ssw_type) , intent(inout) :: rng
17183 end subroutine
17184#endif
17185
17186#if SK2_ENABLED
17187 PURE elemental module subroutine setUnifRandRNGXDD_D0_SK2(rng, rand)
17188#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17189 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_SK2
17190#endif
17191 use pm_kind, only: SKG => SK2
17192 character(*,SKG) , intent(out) :: rand
17193 type(xoshiro256ssw_type) , intent(inout) :: rng
17194 end subroutine
17195#endif
17196
17197#if SK1_ENABLED
17198 PURE elemental module subroutine setUnifRandRNGXDD_D0_SK1(rng, rand)
17199#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17200 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_SK1
17201#endif
17202 use pm_kind, only: SKG => SK1
17203 character(*,SKG) , intent(out) :: rand
17204 type(xoshiro256ssw_type) , intent(inout) :: rng
17205 end subroutine
17206#endif
17207
17208 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17209
17210#if IK5_ENABLED
17211 PURE elemental module subroutine setUnifRandRNGXDD_D0_IK5(rng, rand)
17212#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17213 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_IK5
17214#endif
17215 use pm_kind, only: IKG => IK5
17216 integer(IKG) , intent(out) :: rand
17217 type(xoshiro256ssw_type) , intent(inout) :: rng
17218 end subroutine
17219#endif
17220
17221#if IK4_ENABLED
17222 PURE elemental module subroutine setUnifRandRNGXDD_D0_IK4(rng, rand)
17223#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17224 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_IK4
17225#endif
17226 use pm_kind, only: IKG => IK4
17227 integer(IKG) , intent(out) :: rand
17228 type(xoshiro256ssw_type) , intent(inout) :: rng
17229 end subroutine
17230#endif
17231
17232#if IK3_ENABLED
17233 PURE elemental module subroutine setUnifRandRNGXDD_D0_IK3(rng, rand)
17234#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17235 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_IK3
17236#endif
17237 use pm_kind, only: IKG => IK3
17238 integer(IKG) , intent(out) :: rand
17239 type(xoshiro256ssw_type) , intent(inout) :: rng
17240 end subroutine
17241#endif
17242
17243#if IK2_ENABLED
17244 PURE elemental module subroutine setUnifRandRNGXDD_D0_IK2(rng, rand)
17245#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17246 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_IK2
17247#endif
17248 use pm_kind, only: IKG => IK2
17249 integer(IKG) , intent(out) :: rand
17250 type(xoshiro256ssw_type) , intent(inout) :: rng
17251 end subroutine
17252#endif
17253
17254#if IK1_ENABLED
17255 PURE elemental module subroutine setUnifRandRNGXDD_D0_IK1(rng, rand)
17256#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17257 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_IK1
17258#endif
17259 use pm_kind, only: IKG => IK1
17260 integer(IKG) , intent(out) :: rand
17261 type(xoshiro256ssw_type) , intent(inout) :: rng
17262 end subroutine
17263#endif
17264
17265 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17266
17267#if LK5_ENABLED
17268 PURE elemental module subroutine setUnifRandRNGXDD_D0_LK5(rng, rand)
17269#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17270 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_LK5
17271#endif
17272 use pm_kind, only: LKG => LK5
17273 logical(LKG) , intent(out) :: rand
17274 type(xoshiro256ssw_type) , intent(inout) :: rng
17275 end subroutine
17276#endif
17277
17278#if LK4_ENABLED
17279 PURE elemental module subroutine setUnifRandRNGXDD_D0_LK4(rng, rand)
17280#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17281 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_LK4
17282#endif
17283 use pm_kind, only: LKG => LK4
17284 logical(LKG) , intent(out) :: rand
17285 type(xoshiro256ssw_type) , intent(inout) :: rng
17286 end subroutine
17287#endif
17288
17289#if LK3_ENABLED
17290 PURE elemental module subroutine setUnifRandRNGXDD_D0_LK3(rng, rand)
17291#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17292 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_LK3
17293#endif
17294 use pm_kind, only: LKG => LK3
17295 logical(LKG) , intent(out) :: rand
17296 type(xoshiro256ssw_type) , intent(inout) :: rng
17297 end subroutine
17298#endif
17299
17300#if LK2_ENABLED
17301 PURE elemental module subroutine setUnifRandRNGXDD_D0_LK2(rng, rand)
17302#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17303 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_LK2
17304#endif
17305 use pm_kind, only: LKG => LK2
17306 logical(LKG) , intent(out) :: rand
17307 type(xoshiro256ssw_type) , intent(inout) :: rng
17308 end subroutine
17309#endif
17310
17311#if LK1_ENABLED
17312 PURE elemental module subroutine setUnifRandRNGXDD_D0_LK1(rng, rand)
17313#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17314 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_LK1
17315#endif
17316 use pm_kind, only: LKG => LK1
17317 logical(LKG) , intent(out) :: rand
17318 type(xoshiro256ssw_type) , intent(inout) :: rng
17319 end subroutine
17320#endif
17321
17322 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17323
17324#if CK5_ENABLED
17325 PURE elemental module subroutine setUnifRandRNGXDD_D0_CK5(rng, rand)
17326#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17327 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_CK5
17328#endif
17329 use pm_kind, only: CKG => CK5
17330 complex(CKG) , intent(out) :: rand
17331 type(xoshiro256ssw_type) , intent(inout) :: rng
17332 end subroutine
17333#endif
17334
17335#if CK4_ENABLED
17336 PURE elemental module subroutine setUnifRandRNGXDD_D0_CK4(rng, rand)
17337#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17338 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_CK4
17339#endif
17340 use pm_kind, only: CKG => CK4
17341 complex(CKG) , intent(out) :: rand
17342 type(xoshiro256ssw_type) , intent(inout) :: rng
17343 end subroutine
17344#endif
17345
17346#if CK3_ENABLED
17347 PURE elemental module subroutine setUnifRandRNGXDD_D0_CK3(rng, rand)
17348#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17349 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_CK3
17350#endif
17351 use pm_kind, only: CKG => CK3
17352 complex(CKG) , intent(out) :: rand
17353 type(xoshiro256ssw_type) , intent(inout) :: rng
17354 end subroutine
17355#endif
17356
17357#if CK2_ENABLED
17358 PURE elemental module subroutine setUnifRandRNGXDD_D0_CK2(rng, rand)
17359#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17360 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_CK2
17361#endif
17362 use pm_kind, only: CKG => CK2
17363 complex(CKG) , intent(out) :: rand
17364 type(xoshiro256ssw_type) , intent(inout) :: rng
17365 end subroutine
17366#endif
17367
17368#if CK1_ENABLED
17369 PURE elemental module subroutine setUnifRandRNGXDD_D0_CK1(rng, rand)
17370#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17371 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_CK1
17372#endif
17373 use pm_kind, only: CKG => CK1
17374 complex(CKG) , intent(out) :: rand
17375 type(xoshiro256ssw_type) , intent(inout) :: rng
17376 end subroutine
17377#endif
17378
17379 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17380
17381#if RK5_ENABLED
17382 PURE elemental module subroutine setUnifRandRNGXDD_D0_RK5(rng, rand)
17383#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17384 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_RK5
17385#endif
17386 use pm_kind, only: RKG => RK5
17387 real(RKG) , intent(out) :: rand
17388 type(xoshiro256ssw_type) , intent(inout) :: rng
17389 end subroutine
17390#endif
17391
17392#if RK4_ENABLED
17393 PURE elemental module subroutine setUnifRandRNGXDD_D0_RK4(rng, rand)
17394#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17395 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_RK4
17396#endif
17397 use pm_kind, only: RKG => RK4
17398 real(RKG) , intent(out) :: rand
17399 type(xoshiro256ssw_type) , intent(inout) :: rng
17400 end subroutine
17401#endif
17402
17403#if RK3_ENABLED
17404 PURE elemental module subroutine setUnifRandRNGXDD_D0_RK3(rng, rand)
17405#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17406 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_RK3
17407#endif
17408 use pm_kind, only: RKG => RK3
17409 real(RKG) , intent(out) :: rand
17410 type(xoshiro256ssw_type) , intent(inout) :: rng
17411 end subroutine
17412#endif
17413
17414#if RK2_ENABLED
17415 PURE elemental module subroutine setUnifRandRNGXDD_D0_RK2(rng, rand)
17416#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17417 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_RK2
17418#endif
17419 use pm_kind, only: RKG => RK2
17420 real(RKG) , intent(out) :: rand
17421 type(xoshiro256ssw_type) , intent(inout) :: rng
17422 end subroutine
17423#endif
17424
17425#if RK1_ENABLED
17426 PURE elemental module subroutine setUnifRandRNGXDD_D0_RK1(rng, rand)
17427#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17428 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D0_RK1
17429#endif
17430 use pm_kind, only: RKG => RK1
17431 real(RKG) , intent(out) :: rand
17432 type(xoshiro256ssw_type) , intent(inout) :: rng
17433 end subroutine
17434#endif
17435
17436 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17437
17438 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17439 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17440 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17441
17442 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17443
17444#if SK5_ENABLED
17445 PURE elemental module subroutine setUnifRandRNGXLU_D0_SK5(rng, rand, lb, ub)
17446#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17447 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_SK5
17448#endif
17449 use pm_kind, only: SKG => SK5
17450 character(*,SKG) , intent(out) :: rand
17451 character(*,SKG) , intent(in) :: lb, ub
17452 type(xoshiro256ssw_type) , intent(inout) :: rng
17453 end subroutine
17454#endif
17455
17456#if SK4_ENABLED
17457 PURE elemental module subroutine setUnifRandRNGXLU_D0_SK4(rng, rand, lb, ub)
17458#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17459 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_SK4
17460#endif
17461 use pm_kind, only: SKG => SK4
17462 character(*,SKG) , intent(out) :: rand
17463 character(*,SKG) , intent(in) :: lb, ub
17464 type(xoshiro256ssw_type) , intent(inout) :: rng
17465 end subroutine
17466#endif
17467
17468#if SK3_ENABLED
17469 PURE elemental module subroutine setUnifRandRNGXLU_D0_SK3(rng, rand, lb, ub)
17470#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17471 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_SK3
17472#endif
17473 use pm_kind, only: SKG => SK3
17474 character(*,SKG) , intent(out) :: rand
17475 character(*,SKG) , intent(in) :: lb, ub
17476 type(xoshiro256ssw_type) , intent(inout) :: rng
17477 end subroutine
17478#endif
17479
17480#if SK2_ENABLED
17481 PURE elemental module subroutine setUnifRandRNGXLU_D0_SK2(rng, rand, lb, ub)
17482#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17483 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_SK2
17484#endif
17485 use pm_kind, only: SKG => SK2
17486 character(*,SKG) , intent(out) :: rand
17487 character(*,SKG) , intent(in) :: lb, ub
17488 type(xoshiro256ssw_type) , intent(inout) :: rng
17489 end subroutine
17490#endif
17491
17492#if SK1_ENABLED
17493 PURE elemental module subroutine setUnifRandRNGXLU_D0_SK1(rng, rand, lb, ub)
17494#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17495 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_SK1
17496#endif
17497 use pm_kind, only: SKG => SK1
17498 character(*,SKG) , intent(out) :: rand
17499 character(*,SKG) , intent(in) :: lb, ub
17500 type(xoshiro256ssw_type) , intent(inout) :: rng
17501 end subroutine
17502#endif
17503
17504 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17505
17506#if IK5_ENABLED
17507 PURE elemental module subroutine setUnifRandRNGXLU_D0_IK5(rng, rand, lb, ub)
17508#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17509 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_IK5
17510#endif
17511 use pm_kind, only: IKG => IK5
17512 integer(IKG) , intent(out) :: rand
17513 integer(IKG) , intent(in) :: lb, ub
17514 type(xoshiro256ssw_type) , intent(inout) :: rng
17515 end subroutine
17516#endif
17517
17518#if IK4_ENABLED
17519 PURE elemental module subroutine setUnifRandRNGXLU_D0_IK4(rng, rand, lb, ub)
17520#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17521 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_IK4
17522#endif
17523 use pm_kind, only: IKG => IK4
17524 integer(IKG) , intent(out) :: rand
17525 integer(IKG) , intent(in) :: lb, ub
17526 type(xoshiro256ssw_type) , intent(inout) :: rng
17527 end subroutine
17528#endif
17529
17530#if IK3_ENABLED
17531 PURE elemental module subroutine setUnifRandRNGXLU_D0_IK3(rng, rand, lb, ub)
17532#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17533 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_IK3
17534#endif
17535 use pm_kind, only: IKG => IK3
17536 integer(IKG) , intent(out) :: rand
17537 integer(IKG) , intent(in) :: lb, ub
17538 type(xoshiro256ssw_type) , intent(inout) :: rng
17539 end subroutine
17540#endif
17541
17542#if IK2_ENABLED
17543 PURE elemental module subroutine setUnifRandRNGXLU_D0_IK2(rng, rand, lb, ub)
17544#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17545 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_IK2
17546#endif
17547 use pm_kind, only: IKG => IK2
17548 integer(IKG) , intent(out) :: rand
17549 integer(IKG) , intent(in) :: lb, ub
17550 type(xoshiro256ssw_type) , intent(inout) :: rng
17551 end subroutine
17552#endif
17553
17554#if IK1_ENABLED
17555 PURE elemental module subroutine setUnifRandRNGXLU_D0_IK1(rng, rand, lb, ub)
17556#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17557 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_IK1
17558#endif
17559 use pm_kind, only: IKG => IK1
17560 integer(IKG) , intent(out) :: rand
17561 integer(IKG) , intent(in) :: lb, ub
17562 type(xoshiro256ssw_type) , intent(inout) :: rng
17563 end subroutine
17564#endif
17565
17566 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17567
17568#if LK5_ENABLED
17569 PURE elemental module subroutine setUnifRandRNGXLU_D0_LK5(rng, rand, lb, ub)
17570#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17571 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_LK5
17572#endif
17573 use pm_kind, only: LKG => LK5
17574 logical(LKG) , intent(out) :: rand
17575 logical(LKG) , intent(in) :: lb, ub
17576 type(xoshiro256ssw_type) , intent(inout) :: rng
17577 end subroutine
17578#endif
17579
17580#if LK4_ENABLED
17581 PURE elemental module subroutine setUnifRandRNGXLU_D0_LK4(rng, rand, lb, ub)
17582#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17583 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_LK4
17584#endif
17585 use pm_kind, only: LKG => LK4
17586 logical(LKG) , intent(out) :: rand
17587 logical(LKG) , intent(in) :: lb, ub
17588 type(xoshiro256ssw_type) , intent(inout) :: rng
17589 end subroutine
17590#endif
17591
17592#if LK3_ENABLED
17593 PURE elemental module subroutine setUnifRandRNGXLU_D0_LK3(rng, rand, lb, ub)
17594#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17595 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_LK3
17596#endif
17597 use pm_kind, only: LKG => LK3
17598 logical(LKG) , intent(out) :: rand
17599 logical(LKG) , intent(in) :: lb, ub
17600 type(xoshiro256ssw_type) , intent(inout) :: rng
17601 end subroutine
17602#endif
17603
17604#if LK2_ENABLED
17605 PURE elemental module subroutine setUnifRandRNGXLU_D0_LK2(rng, rand, lb, ub)
17606#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17607 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_LK2
17608#endif
17609 use pm_kind, only: LKG => LK2
17610 logical(LKG) , intent(out) :: rand
17611 logical(LKG) , intent(in) :: lb, ub
17612 type(xoshiro256ssw_type) , intent(inout) :: rng
17613 end subroutine
17614#endif
17615
17616#if LK1_ENABLED
17617 PURE elemental module subroutine setUnifRandRNGXLU_D0_LK1(rng, rand, lb, ub)
17618#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17619 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_LK1
17620#endif
17621 use pm_kind, only: LKG => LK1
17622 logical(LKG) , intent(out) :: rand
17623 logical(LKG) , intent(in) :: lb, ub
17624 type(xoshiro256ssw_type) , intent(inout) :: rng
17625 end subroutine
17626#endif
17627
17628 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17629
17630#if CK5_ENABLED
17631 PURE elemental module subroutine setUnifRandRNGXLU_D0_CK5(rng, rand, lb, ub)
17632#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17633 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_CK5
17634#endif
17635 use pm_kind, only: CKG => CK5
17636 complex(CKG) , intent(out) :: rand
17637 complex(CKG) , intent(in) :: lb, ub
17638 type(xoshiro256ssw_type) , intent(inout) :: rng
17639 end subroutine
17640#endif
17641
17642#if CK4_ENABLED
17643 PURE elemental module subroutine setUnifRandRNGXLU_D0_CK4(rng, rand, lb, ub)
17644#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17645 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_CK4
17646#endif
17647 use pm_kind, only: CKG => CK4
17648 complex(CKG) , intent(out) :: rand
17649 complex(CKG) , intent(in) :: lb, ub
17650 type(xoshiro256ssw_type) , intent(inout) :: rng
17651 end subroutine
17652#endif
17653
17654#if CK3_ENABLED
17655 PURE elemental module subroutine setUnifRandRNGXLU_D0_CK3(rng, rand, lb, ub)
17656#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17657 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_CK3
17658#endif
17659 use pm_kind, only: CKG => CK3
17660 complex(CKG) , intent(out) :: rand
17661 complex(CKG) , intent(in) :: lb, ub
17662 type(xoshiro256ssw_type) , intent(inout) :: rng
17663 end subroutine
17664#endif
17665
17666#if CK2_ENABLED
17667 PURE elemental module subroutine setUnifRandRNGXLU_D0_CK2(rng, rand, lb, ub)
17668#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17669 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_CK2
17670#endif
17671 use pm_kind, only: CKG => CK2
17672 complex(CKG) , intent(out) :: rand
17673 complex(CKG) , intent(in) :: lb, ub
17674 type(xoshiro256ssw_type) , intent(inout) :: rng
17675 end subroutine
17676#endif
17677
17678#if CK1_ENABLED
17679 PURE elemental module subroutine setUnifRandRNGXLU_D0_CK1(rng, rand, lb, ub)
17680#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17681 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_CK1
17682#endif
17683 use pm_kind, only: CKG => CK1
17684 complex(CKG) , intent(out) :: rand
17685 complex(CKG) , intent(in) :: lb, ub
17686 type(xoshiro256ssw_type) , intent(inout) :: rng
17687 end subroutine
17688#endif
17689
17690 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17691
17692#if RK5_ENABLED
17693 PURE elemental module subroutine setUnifRandRNGXLU_D0_RK5(rng, rand, lb, ub)
17694#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17695 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_RK5
17696#endif
17697 use pm_kind, only: RKG => RK5
17698 real(RKG) , intent(out) :: rand
17699 real(RKG) , intent(in) :: lb, ub
17700 type(xoshiro256ssw_type) , intent(inout) :: rng
17701 end subroutine
17702#endif
17703
17704#if RK4_ENABLED
17705 PURE elemental module subroutine setUnifRandRNGXLU_D0_RK4(rng, rand, lb, ub)
17706#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17707 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_RK4
17708#endif
17709 use pm_kind, only: RKG => RK4
17710 real(RKG) , intent(out) :: rand
17711 real(RKG) , intent(in) :: lb, ub
17712 type(xoshiro256ssw_type) , intent(inout) :: rng
17713 end subroutine
17714#endif
17715
17716#if RK3_ENABLED
17717 PURE elemental module subroutine setUnifRandRNGXLU_D0_RK3(rng, rand, lb, ub)
17718#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17719 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_RK3
17720#endif
17721 use pm_kind, only: RKG => RK3
17722 real(RKG) , intent(out) :: rand
17723 real(RKG) , intent(in) :: lb, ub
17724 type(xoshiro256ssw_type) , intent(inout) :: rng
17725 end subroutine
17726#endif
17727
17728#if RK2_ENABLED
17729 PURE elemental module subroutine setUnifRandRNGXLU_D0_RK2(rng, rand, lb, ub)
17730#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17731 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_RK2
17732#endif
17733 use pm_kind, only: RKG => RK2
17734 real(RKG) , intent(out) :: rand
17735 real(RKG) , intent(in) :: lb, ub
17736 type(xoshiro256ssw_type) , intent(inout) :: rng
17737 end subroutine
17738#endif
17739
17740#if RK1_ENABLED
17741 PURE elemental module subroutine setUnifRandRNGXLU_D0_RK1(rng, rand, lb, ub)
17742#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17743 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D0_RK1
17744#endif
17745 use pm_kind, only: RKG => RK1
17746 real(RKG) , intent(out) :: rand
17747 real(RKG) , intent(in) :: lb, ub
17748 type(xoshiro256ssw_type) , intent(inout) :: rng
17749 end subroutine
17750#endif
17751
17752 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17753
17754 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17755 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17756 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17757
17758 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17759 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17760 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17761
17762 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17763
17764#if SK5_ENABLED
17765 PURE module subroutine setUnifRandRNGXDD_D1_SK5(rng, rand)
17766#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17767 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_SK5
17768#endif
17769 use pm_kind, only: SKG => SK5
17770 character(*,SKG) , intent(out) :: rand(:)
17771 type(xoshiro256ssw_type) , intent(inout) :: rng
17772 end subroutine
17773#endif
17774
17775#if SK4_ENABLED
17776 PURE module subroutine setUnifRandRNGXDD_D1_SK4(rng, rand)
17777#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17778 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_SK4
17779#endif
17780 use pm_kind, only: SKG => SK4
17781 character(*,SKG) , intent(out) :: rand(:)
17782 type(xoshiro256ssw_type) , intent(inout) :: rng
17783 end subroutine
17784#endif
17785
17786#if SK3_ENABLED
17787 PURE module subroutine setUnifRandRNGXDD_D1_SK3(rng, rand)
17788#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17789 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_SK3
17790#endif
17791 use pm_kind, only: SKG => SK3
17792 character(*,SKG) , intent(out) :: rand(:)
17793 type(xoshiro256ssw_type) , intent(inout) :: rng
17794 end subroutine
17795#endif
17796
17797#if SK2_ENABLED
17798 PURE module subroutine setUnifRandRNGXDD_D1_SK2(rng, rand)
17799#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17800 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_SK2
17801#endif
17802 use pm_kind, only: SKG => SK2
17803 character(*,SKG) , intent(out) :: rand(:)
17804 type(xoshiro256ssw_type) , intent(inout) :: rng
17805 end subroutine
17806#endif
17807
17808#if SK1_ENABLED
17809 PURE module subroutine setUnifRandRNGXDD_D1_SK1(rng, rand)
17810#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17811 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_SK1
17812#endif
17813 use pm_kind, only: SKG => SK1
17814 character(*,SKG) , intent(out) :: rand(:)
17815 type(xoshiro256ssw_type) , intent(inout) :: rng
17816 end subroutine
17817#endif
17818
17819 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17820
17821#if IK5_ENABLED
17822 PURE module subroutine setUnifRandRNGXDD_D1_IK5(rng, rand)
17823#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17824 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_IK5
17825#endif
17826 use pm_kind, only: IKG => IK5
17827 integer(IKG) , intent(out) :: rand(:)
17828 type(xoshiro256ssw_type) , intent(inout) :: rng
17829 end subroutine
17830#endif
17831
17832#if IK4_ENABLED
17833 PURE module subroutine setUnifRandRNGXDD_D1_IK4(rng, rand)
17834#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17835 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_IK4
17836#endif
17837 use pm_kind, only: IKG => IK4
17838 integer(IKG) , intent(out) :: rand(:)
17839 type(xoshiro256ssw_type) , intent(inout) :: rng
17840 end subroutine
17841#endif
17842
17843#if IK3_ENABLED
17844 PURE module subroutine setUnifRandRNGXDD_D1_IK3(rng, rand)
17845#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17846 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_IK3
17847#endif
17848 use pm_kind, only: IKG => IK3
17849 integer(IKG) , intent(out) :: rand(:)
17850 type(xoshiro256ssw_type) , intent(inout) :: rng
17851 end subroutine
17852#endif
17853
17854#if IK2_ENABLED
17855 PURE module subroutine setUnifRandRNGXDD_D1_IK2(rng, rand)
17856#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17857 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_IK2
17858#endif
17859 use pm_kind, only: IKG => IK2
17860 integer(IKG) , intent(out) :: rand(:)
17861 type(xoshiro256ssw_type) , intent(inout) :: rng
17862 end subroutine
17863#endif
17864
17865#if IK1_ENABLED
17866 PURE module subroutine setUnifRandRNGXDD_D1_IK1(rng, rand)
17867#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17868 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_IK1
17869#endif
17870 use pm_kind, only: IKG => IK1
17871 integer(IKG) , intent(out) :: rand(:)
17872 type(xoshiro256ssw_type) , intent(inout) :: rng
17873 end subroutine
17874#endif
17875
17876 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17877
17878#if LK5_ENABLED
17879 PURE module subroutine setUnifRandRNGXDD_D1_LK5(rng, rand)
17880#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17881 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_LK5
17882#endif
17883 use pm_kind, only: LKG => LK5
17884 logical(LKG) , intent(out) :: rand(:)
17885 type(xoshiro256ssw_type) , intent(inout) :: rng
17886 end subroutine
17887#endif
17888
17889#if LK4_ENABLED
17890 PURE module subroutine setUnifRandRNGXDD_D1_LK4(rng, rand)
17891#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17892 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_LK4
17893#endif
17894 use pm_kind, only: LKG => LK4
17895 logical(LKG) , intent(out) :: rand(:)
17896 type(xoshiro256ssw_type) , intent(inout) :: rng
17897 end subroutine
17898#endif
17899
17900#if LK3_ENABLED
17901 PURE module subroutine setUnifRandRNGXDD_D1_LK3(rng, rand)
17902#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17903 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_LK3
17904#endif
17905 use pm_kind, only: LKG => LK3
17906 logical(LKG) , intent(out) :: rand(:)
17907 type(xoshiro256ssw_type) , intent(inout) :: rng
17908 end subroutine
17909#endif
17910
17911#if LK2_ENABLED
17912 PURE module subroutine setUnifRandRNGXDD_D1_LK2(rng, rand)
17913#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17914 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_LK2
17915#endif
17916 use pm_kind, only: LKG => LK2
17917 logical(LKG) , intent(out) :: rand(:)
17918 type(xoshiro256ssw_type) , intent(inout) :: rng
17919 end subroutine
17920#endif
17921
17922#if LK1_ENABLED
17923 PURE module subroutine setUnifRandRNGXDD_D1_LK1(rng, rand)
17924#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17925 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_LK1
17926#endif
17927 use pm_kind, only: LKG => LK1
17928 logical(LKG) , intent(out) :: rand(:)
17929 type(xoshiro256ssw_type) , intent(inout) :: rng
17930 end subroutine
17931#endif
17932
17933 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17934
17935#if CK5_ENABLED
17936 PURE module subroutine setUnifRandRNGXDD_D1_CK5(rng, rand)
17937#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17938 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_CK5
17939#endif
17940 use pm_kind, only: CKG => CK5
17941 complex(CKG) , intent(out) :: rand(:)
17942 type(xoshiro256ssw_type) , intent(inout) :: rng
17943 end subroutine
17944#endif
17945
17946#if CK4_ENABLED
17947 PURE module subroutine setUnifRandRNGXDD_D1_CK4(rng, rand)
17948#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17949 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_CK4
17950#endif
17951 use pm_kind, only: CKG => CK4
17952 complex(CKG) , intent(out) :: rand(:)
17953 type(xoshiro256ssw_type) , intent(inout) :: rng
17954 end subroutine
17955#endif
17956
17957#if CK3_ENABLED
17958 PURE module subroutine setUnifRandRNGXDD_D1_CK3(rng, rand)
17959#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17960 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_CK3
17961#endif
17962 use pm_kind, only: CKG => CK3
17963 complex(CKG) , intent(out) :: rand(:)
17964 type(xoshiro256ssw_type) , intent(inout) :: rng
17965 end subroutine
17966#endif
17967
17968#if CK2_ENABLED
17969 PURE module subroutine setUnifRandRNGXDD_D1_CK2(rng, rand)
17970#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17971 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_CK2
17972#endif
17973 use pm_kind, only: CKG => CK2
17974 complex(CKG) , intent(out) :: rand(:)
17975 type(xoshiro256ssw_type) , intent(inout) :: rng
17976 end subroutine
17977#endif
17978
17979#if CK1_ENABLED
17980 PURE module subroutine setUnifRandRNGXDD_D1_CK1(rng, rand)
17981#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17982 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_CK1
17983#endif
17984 use pm_kind, only: CKG => CK1
17985 complex(CKG) , intent(out) :: rand(:)
17986 type(xoshiro256ssw_type) , intent(inout) :: rng
17987 end subroutine
17988#endif
17989
17990 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17991
17992#if RK5_ENABLED
17993 PURE module subroutine setUnifRandRNGXDD_D1_RK5(rng, rand)
17994#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
17995 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_RK5
17996#endif
17997 use pm_kind, only: RKG => RK5
17998 real(RKG) , intent(out) :: rand(:)
17999 type(xoshiro256ssw_type) , intent(inout) :: rng
18000 end subroutine
18001#endif
18002
18003#if RK4_ENABLED
18004 PURE module subroutine setUnifRandRNGXDD_D1_RK4(rng, rand)
18005#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18006 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_RK4
18007#endif
18008 use pm_kind, only: RKG => RK4
18009 real(RKG) , intent(out) :: rand(:)
18010 type(xoshiro256ssw_type) , intent(inout) :: rng
18011 end subroutine
18012#endif
18013
18014#if RK3_ENABLED
18015 PURE module subroutine setUnifRandRNGXDD_D1_RK3(rng, rand)
18016#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18017 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_RK3
18018#endif
18019 use pm_kind, only: RKG => RK3
18020 real(RKG) , intent(out) :: rand(:)
18021 type(xoshiro256ssw_type) , intent(inout) :: rng
18022 end subroutine
18023#endif
18024
18025#if RK2_ENABLED
18026 PURE module subroutine setUnifRandRNGXDD_D1_RK2(rng, rand)
18027#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18028 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_RK2
18029#endif
18030 use pm_kind, only: RKG => RK2
18031 real(RKG) , intent(out) :: rand(:)
18032 type(xoshiro256ssw_type) , intent(inout) :: rng
18033 end subroutine
18034#endif
18035
18036#if RK1_ENABLED
18037 PURE module subroutine setUnifRandRNGXDD_D1_RK1(rng, rand)
18038#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18039 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D1_RK1
18040#endif
18041 use pm_kind, only: RKG => RK1
18042 real(RKG) , intent(out) :: rand(:)
18043 type(xoshiro256ssw_type) , intent(inout) :: rng
18044 end subroutine
18045#endif
18046
18047 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18048
18049 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18050 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18051 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18052
18053 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18054
18055#if SK5_ENABLED
18056 PURE module subroutine setUnifRandRNGXLU_D1_SK5(rng, rand, lb, ub)
18057#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18058 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_SK5
18059#endif
18060 use pm_kind, only: SKG => SK5
18061 character(*,SKG) , intent(out) :: rand(:)
18062 character(*,SKG) , intent(in) :: lb, ub
18063 type(xoshiro256ssw_type) , intent(inout) :: rng
18064 end subroutine
18065#endif
18066
18067#if SK4_ENABLED
18068 PURE module subroutine setUnifRandRNGXLU_D1_SK4(rng, rand, lb, ub)
18069#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18070 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_SK4
18071#endif
18072 use pm_kind, only: SKG => SK4
18073 character(*,SKG) , intent(out) :: rand(:)
18074 character(*,SKG) , intent(in) :: lb, ub
18075 type(xoshiro256ssw_type) , intent(inout) :: rng
18076 end subroutine
18077#endif
18078
18079#if SK3_ENABLED
18080 PURE module subroutine setUnifRandRNGXLU_D1_SK3(rng, rand, lb, ub)
18081#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18082 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_SK3
18083#endif
18084 use pm_kind, only: SKG => SK3
18085 character(*,SKG) , intent(out) :: rand(:)
18086 character(*,SKG) , intent(in) :: lb, ub
18087 type(xoshiro256ssw_type) , intent(inout) :: rng
18088 end subroutine
18089#endif
18090
18091#if SK2_ENABLED
18092 PURE module subroutine setUnifRandRNGXLU_D1_SK2(rng, rand, lb, ub)
18093#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18094 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_SK2
18095#endif
18096 use pm_kind, only: SKG => SK2
18097 character(*,SKG) , intent(out) :: rand(:)
18098 character(*,SKG) , intent(in) :: lb, ub
18099 type(xoshiro256ssw_type) , intent(inout) :: rng
18100 end subroutine
18101#endif
18102
18103#if SK1_ENABLED
18104 PURE module subroutine setUnifRandRNGXLU_D1_SK1(rng, rand, lb, ub)
18105#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18106 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_SK1
18107#endif
18108 use pm_kind, only: SKG => SK1
18109 character(*,SKG) , intent(out) :: rand(:)
18110 character(*,SKG) , intent(in) :: lb, ub
18111 type(xoshiro256ssw_type) , intent(inout) :: rng
18112 end subroutine
18113#endif
18114
18115 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18116
18117#if IK5_ENABLED
18118 PURE module subroutine setUnifRandRNGXLU_D1_IK5(rng, rand, lb, ub)
18119#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18120 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_IK5
18121#endif
18122 use pm_kind, only: IKG => IK5
18123 integer(IKG) , intent(out) :: rand(:)
18124 integer(IKG) , intent(in) :: lb, ub
18125 type(xoshiro256ssw_type) , intent(inout) :: rng
18126 end subroutine
18127#endif
18128
18129#if IK4_ENABLED
18130 PURE module subroutine setUnifRandRNGXLU_D1_IK4(rng, rand, lb, ub)
18131#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18132 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_IK4
18133#endif
18134 use pm_kind, only: IKG => IK4
18135 integer(IKG) , intent(out) :: rand(:)
18136 integer(IKG) , intent(in) :: lb, ub
18137 type(xoshiro256ssw_type) , intent(inout) :: rng
18138 end subroutine
18139#endif
18140
18141#if IK3_ENABLED
18142 PURE module subroutine setUnifRandRNGXLU_D1_IK3(rng, rand, lb, ub)
18143#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18144 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_IK3
18145#endif
18146 use pm_kind, only: IKG => IK3
18147 integer(IKG) , intent(out) :: rand(:)
18148 integer(IKG) , intent(in) :: lb, ub
18149 type(xoshiro256ssw_type) , intent(inout) :: rng
18150 end subroutine
18151#endif
18152
18153#if IK2_ENABLED
18154 PURE module subroutine setUnifRandRNGXLU_D1_IK2(rng, rand, lb, ub)
18155#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18156 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_IK2
18157#endif
18158 use pm_kind, only: IKG => IK2
18159 integer(IKG) , intent(out) :: rand(:)
18160 integer(IKG) , intent(in) :: lb, ub
18161 type(xoshiro256ssw_type) , intent(inout) :: rng
18162 end subroutine
18163#endif
18164
18165#if IK1_ENABLED
18166 PURE module subroutine setUnifRandRNGXLU_D1_IK1(rng, rand, lb, ub)
18167#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18168 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_IK1
18169#endif
18170 use pm_kind, only: IKG => IK1
18171 integer(IKG) , intent(out) :: rand(:)
18172 integer(IKG) , intent(in) :: lb, ub
18173 type(xoshiro256ssw_type) , intent(inout) :: rng
18174 end subroutine
18175#endif
18176
18177 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18178
18179#if LK5_ENABLED
18180 PURE module subroutine setUnifRandRNGXLU_D1_LK5(rng, rand, lb, ub)
18181#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18182 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_LK5
18183#endif
18184 use pm_kind, only: LKG => LK5
18185 logical(LKG) , intent(out) :: rand(:)
18186 logical(LKG) , intent(in) :: lb, ub
18187 type(xoshiro256ssw_type) , intent(inout) :: rng
18188 end subroutine
18189#endif
18190
18191#if LK4_ENABLED
18192 PURE module subroutine setUnifRandRNGXLU_D1_LK4(rng, rand, lb, ub)
18193#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18194 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_LK4
18195#endif
18196 use pm_kind, only: LKG => LK4
18197 logical(LKG) , intent(out) :: rand(:)
18198 logical(LKG) , intent(in) :: lb, ub
18199 type(xoshiro256ssw_type) , intent(inout) :: rng
18200 end subroutine
18201#endif
18202
18203#if LK3_ENABLED
18204 PURE module subroutine setUnifRandRNGXLU_D1_LK3(rng, rand, lb, ub)
18205#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18206 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_LK3
18207#endif
18208 use pm_kind, only: LKG => LK3
18209 logical(LKG) , intent(out) :: rand(:)
18210 logical(LKG) , intent(in) :: lb, ub
18211 type(xoshiro256ssw_type) , intent(inout) :: rng
18212 end subroutine
18213#endif
18214
18215#if LK2_ENABLED
18216 PURE module subroutine setUnifRandRNGXLU_D1_LK2(rng, rand, lb, ub)
18217#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18218 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_LK2
18219#endif
18220 use pm_kind, only: LKG => LK2
18221 logical(LKG) , intent(out) :: rand(:)
18222 logical(LKG) , intent(in) :: lb, ub
18223 type(xoshiro256ssw_type) , intent(inout) :: rng
18224 end subroutine
18225#endif
18226
18227#if LK1_ENABLED
18228 PURE module subroutine setUnifRandRNGXLU_D1_LK1(rng, rand, lb, ub)
18229#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18230 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_LK1
18231#endif
18232 use pm_kind, only: LKG => LK1
18233 logical(LKG) , intent(out) :: rand(:)
18234 logical(LKG) , intent(in) :: lb, ub
18235 type(xoshiro256ssw_type) , intent(inout) :: rng
18236 end subroutine
18237#endif
18238
18239 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18240
18241#if CK5_ENABLED
18242 PURE module subroutine setUnifRandRNGXLU_D1_CK5(rng, rand, lb, ub)
18243#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18244 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_CK5
18245#endif
18246 use pm_kind, only: CKG => CK5
18247 complex(CKG) , intent(out) :: rand(:)
18248 complex(CKG) , intent(in) :: lb, ub
18249 type(xoshiro256ssw_type) , intent(inout) :: rng
18250 end subroutine
18251#endif
18252
18253#if CK4_ENABLED
18254 PURE module subroutine setUnifRandRNGXLU_D1_CK4(rng, rand, lb, ub)
18255#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18256 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_CK4
18257#endif
18258 use pm_kind, only: CKG => CK4
18259 complex(CKG) , intent(out) :: rand(:)
18260 complex(CKG) , intent(in) :: lb, ub
18261 type(xoshiro256ssw_type) , intent(inout) :: rng
18262 end subroutine
18263#endif
18264
18265#if CK3_ENABLED
18266 PURE module subroutine setUnifRandRNGXLU_D1_CK3(rng, rand, lb, ub)
18267#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18268 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_CK3
18269#endif
18270 use pm_kind, only: CKG => CK3
18271 complex(CKG) , intent(out) :: rand(:)
18272 complex(CKG) , intent(in) :: lb, ub
18273 type(xoshiro256ssw_type) , intent(inout) :: rng
18274 end subroutine
18275#endif
18276
18277#if CK2_ENABLED
18278 PURE module subroutine setUnifRandRNGXLU_D1_CK2(rng, rand, lb, ub)
18279#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18280 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_CK2
18281#endif
18282 use pm_kind, only: CKG => CK2
18283 complex(CKG) , intent(out) :: rand(:)
18284 complex(CKG) , intent(in) :: lb, ub
18285 type(xoshiro256ssw_type) , intent(inout) :: rng
18286 end subroutine
18287#endif
18288
18289#if CK1_ENABLED
18290 PURE module subroutine setUnifRandRNGXLU_D1_CK1(rng, rand, lb, ub)
18291#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18292 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_CK1
18293#endif
18294 use pm_kind, only: CKG => CK1
18295 complex(CKG) , intent(out) :: rand(:)
18296 complex(CKG) , intent(in) :: lb, ub
18297 type(xoshiro256ssw_type) , intent(inout) :: rng
18298 end subroutine
18299#endif
18300
18301 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18302
18303#if RK5_ENABLED
18304 PURE module subroutine setUnifRandRNGXLU_D1_RK5(rng, rand, lb, ub)
18305#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18306 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_RK5
18307#endif
18308 use pm_kind, only: RKG => RK5
18309 real(RKG) , intent(out) :: rand(:)
18310 real(RKG) , intent(in) :: lb, ub
18311 type(xoshiro256ssw_type) , intent(inout) :: rng
18312 end subroutine
18313#endif
18314
18315#if RK4_ENABLED
18316 PURE module subroutine setUnifRandRNGXLU_D1_RK4(rng, rand, lb, ub)
18317#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18318 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_RK4
18319#endif
18320 use pm_kind, only: RKG => RK4
18321 real(RKG) , intent(out) :: rand(:)
18322 real(RKG) , intent(in) :: lb, ub
18323 type(xoshiro256ssw_type) , intent(inout) :: rng
18324 end subroutine
18325#endif
18326
18327#if RK3_ENABLED
18328 PURE module subroutine setUnifRandRNGXLU_D1_RK3(rng, rand, lb, ub)
18329#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18330 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_RK3
18331#endif
18332 use pm_kind, only: RKG => RK3
18333 real(RKG) , intent(out) :: rand(:)
18334 real(RKG) , intent(in) :: lb, ub
18335 type(xoshiro256ssw_type) , intent(inout) :: rng
18336 end subroutine
18337#endif
18338
18339#if RK2_ENABLED
18340 PURE module subroutine setUnifRandRNGXLU_D1_RK2(rng, rand, lb, ub)
18341#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18342 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_RK2
18343#endif
18344 use pm_kind, only: RKG => RK2
18345 real(RKG) , intent(out) :: rand(:)
18346 real(RKG) , intent(in) :: lb, ub
18347 type(xoshiro256ssw_type) , intent(inout) :: rng
18348 end subroutine
18349#endif
18350
18351#if RK1_ENABLED
18352 PURE module subroutine setUnifRandRNGXLU_D1_RK1(rng, rand, lb, ub)
18353#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18354 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D1_RK1
18355#endif
18356 use pm_kind, only: RKG => RK1
18357 real(RKG) , intent(out) :: rand(:)
18358 real(RKG) , intent(in) :: lb, ub
18359 type(xoshiro256ssw_type) , intent(inout) :: rng
18360 end subroutine
18361#endif
18362
18363 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18364
18365 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18366 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18367 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18368
18369 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18370 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18371 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18372
18373 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18374
18375#if SK5_ENABLED
18376 PURE module subroutine setUnifRandRNGXDD_D2_SK5(rng, rand)
18377#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18378 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_SK5
18379#endif
18380 use pm_kind, only: SKG => SK5
18381 character(*,SKG) , intent(out) :: rand(:,:)
18382 type(xoshiro256ssw_type) , intent(inout) :: rng
18383 end subroutine
18384#endif
18385
18386#if SK4_ENABLED
18387 PURE module subroutine setUnifRandRNGXDD_D2_SK4(rng, rand)
18388#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18389 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_SK4
18390#endif
18391 use pm_kind, only: SKG => SK4
18392 character(*,SKG) , intent(out) :: rand(:,:)
18393 type(xoshiro256ssw_type) , intent(inout) :: rng
18394 end subroutine
18395#endif
18396
18397#if SK3_ENABLED
18398 PURE module subroutine setUnifRandRNGXDD_D2_SK3(rng, rand)
18399#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18400 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_SK3
18401#endif
18402 use pm_kind, only: SKG => SK3
18403 character(*,SKG) , intent(out) :: rand(:,:)
18404 type(xoshiro256ssw_type) , intent(inout) :: rng
18405 end subroutine
18406#endif
18407
18408#if SK2_ENABLED
18409 PURE module subroutine setUnifRandRNGXDD_D2_SK2(rng, rand)
18410#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18411 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_SK2
18412#endif
18413 use pm_kind, only: SKG => SK2
18414 character(*,SKG) , intent(out) :: rand(:,:)
18415 type(xoshiro256ssw_type) , intent(inout) :: rng
18416 end subroutine
18417#endif
18418
18419#if SK1_ENABLED
18420 PURE module subroutine setUnifRandRNGXDD_D2_SK1(rng, rand)
18421#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18422 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_SK1
18423#endif
18424 use pm_kind, only: SKG => SK1
18425 character(*,SKG) , intent(out) :: rand(:,:)
18426 type(xoshiro256ssw_type) , intent(inout) :: rng
18427 end subroutine
18428#endif
18429
18430 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18431
18432#if IK5_ENABLED
18433 PURE module subroutine setUnifRandRNGXDD_D2_IK5(rng, rand)
18434#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18435 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_IK5
18436#endif
18437 use pm_kind, only: IKG => IK5
18438 integer(IKG) , intent(out) :: rand(:,:)
18439 type(xoshiro256ssw_type) , intent(inout) :: rng
18440 end subroutine
18441#endif
18442
18443#if IK4_ENABLED
18444 PURE module subroutine setUnifRandRNGXDD_D2_IK4(rng, rand)
18445#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18446 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_IK4
18447#endif
18448 use pm_kind, only: IKG => IK4
18449 integer(IKG) , intent(out) :: rand(:,:)
18450 type(xoshiro256ssw_type) , intent(inout) :: rng
18451 end subroutine
18452#endif
18453
18454#if IK3_ENABLED
18455 PURE module subroutine setUnifRandRNGXDD_D2_IK3(rng, rand)
18456#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18457 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_IK3
18458#endif
18459 use pm_kind, only: IKG => IK3
18460 integer(IKG) , intent(out) :: rand(:,:)
18461 type(xoshiro256ssw_type) , intent(inout) :: rng
18462 end subroutine
18463#endif
18464
18465#if IK2_ENABLED
18466 PURE module subroutine setUnifRandRNGXDD_D2_IK2(rng, rand)
18467#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18468 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_IK2
18469#endif
18470 use pm_kind, only: IKG => IK2
18471 integer(IKG) , intent(out) :: rand(:,:)
18472 type(xoshiro256ssw_type) , intent(inout) :: rng
18473 end subroutine
18474#endif
18475
18476#if IK1_ENABLED
18477 PURE module subroutine setUnifRandRNGXDD_D2_IK1(rng, rand)
18478#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18479 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_IK1
18480#endif
18481 use pm_kind, only: IKG => IK1
18482 integer(IKG) , intent(out) :: rand(:,:)
18483 type(xoshiro256ssw_type) , intent(inout) :: rng
18484 end subroutine
18485#endif
18486
18487 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18488
18489#if LK5_ENABLED
18490 PURE module subroutine setUnifRandRNGXDD_D2_LK5(rng, rand)
18491#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18492 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_LK5
18493#endif
18494 use pm_kind, only: LKG => LK5
18495 logical(LKG) , intent(out) :: rand(:,:)
18496 type(xoshiro256ssw_type) , intent(inout) :: rng
18497 end subroutine
18498#endif
18499
18500#if LK4_ENABLED
18501 PURE module subroutine setUnifRandRNGXDD_D2_LK4(rng, rand)
18502#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18503 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_LK4
18504#endif
18505 use pm_kind, only: LKG => LK4
18506 logical(LKG) , intent(out) :: rand(:,:)
18507 type(xoshiro256ssw_type) , intent(inout) :: rng
18508 end subroutine
18509#endif
18510
18511#if LK3_ENABLED
18512 PURE module subroutine setUnifRandRNGXDD_D2_LK3(rng, rand)
18513#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18514 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_LK3
18515#endif
18516 use pm_kind, only: LKG => LK3
18517 logical(LKG) , intent(out) :: rand(:,:)
18518 type(xoshiro256ssw_type) , intent(inout) :: rng
18519 end subroutine
18520#endif
18521
18522#if LK2_ENABLED
18523 PURE module subroutine setUnifRandRNGXDD_D2_LK2(rng, rand)
18524#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18525 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_LK2
18526#endif
18527 use pm_kind, only: LKG => LK2
18528 logical(LKG) , intent(out) :: rand(:,:)
18529 type(xoshiro256ssw_type) , intent(inout) :: rng
18530 end subroutine
18531#endif
18532
18533#if LK1_ENABLED
18534 PURE module subroutine setUnifRandRNGXDD_D2_LK1(rng, rand)
18535#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18536 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_LK1
18537#endif
18538 use pm_kind, only: LKG => LK1
18539 logical(LKG) , intent(out) :: rand(:,:)
18540 type(xoshiro256ssw_type) , intent(inout) :: rng
18541 end subroutine
18542#endif
18543
18544 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18545
18546#if CK5_ENABLED
18547 PURE module subroutine setUnifRandRNGXDD_D2_CK5(rng, rand)
18548#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18549 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_CK5
18550#endif
18551 use pm_kind, only: CKG => CK5
18552 complex(CKG) , intent(out) :: rand(:,:)
18553 type(xoshiro256ssw_type) , intent(inout) :: rng
18554 end subroutine
18555#endif
18556
18557#if CK4_ENABLED
18558 PURE module subroutine setUnifRandRNGXDD_D2_CK4(rng, rand)
18559#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18560 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_CK4
18561#endif
18562 use pm_kind, only: CKG => CK4
18563 complex(CKG) , intent(out) :: rand(:,:)
18564 type(xoshiro256ssw_type) , intent(inout) :: rng
18565 end subroutine
18566#endif
18567
18568#if CK3_ENABLED
18569 PURE module subroutine setUnifRandRNGXDD_D2_CK3(rng, rand)
18570#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18571 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_CK3
18572#endif
18573 use pm_kind, only: CKG => CK3
18574 complex(CKG) , intent(out) :: rand(:,:)
18575 type(xoshiro256ssw_type) , intent(inout) :: rng
18576 end subroutine
18577#endif
18578
18579#if CK2_ENABLED
18580 PURE module subroutine setUnifRandRNGXDD_D2_CK2(rng, rand)
18581#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18582 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_CK2
18583#endif
18584 use pm_kind, only: CKG => CK2
18585 complex(CKG) , intent(out) :: rand(:,:)
18586 type(xoshiro256ssw_type) , intent(inout) :: rng
18587 end subroutine
18588#endif
18589
18590#if CK1_ENABLED
18591 PURE module subroutine setUnifRandRNGXDD_D2_CK1(rng, rand)
18592#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18593 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_CK1
18594#endif
18595 use pm_kind, only: CKG => CK1
18596 complex(CKG) , intent(out) :: rand(:,:)
18597 type(xoshiro256ssw_type) , intent(inout) :: rng
18598 end subroutine
18599#endif
18600
18601 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18602
18603#if RK5_ENABLED
18604 PURE module subroutine setUnifRandRNGXDD_D2_RK5(rng, rand)
18605#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18606 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_RK5
18607#endif
18608 use pm_kind, only: RKG => RK5
18609 real(RKG) , intent(out) :: rand(:,:)
18610 type(xoshiro256ssw_type) , intent(inout) :: rng
18611 end subroutine
18612#endif
18613
18614#if RK4_ENABLED
18615 PURE module subroutine setUnifRandRNGXDD_D2_RK4(rng, rand)
18616#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18617 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_RK4
18618#endif
18619 use pm_kind, only: RKG => RK4
18620 real(RKG) , intent(out) :: rand(:,:)
18621 type(xoshiro256ssw_type) , intent(inout) :: rng
18622 end subroutine
18623#endif
18624
18625#if RK3_ENABLED
18626 PURE module subroutine setUnifRandRNGXDD_D2_RK3(rng, rand)
18627#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18628 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_RK3
18629#endif
18630 use pm_kind, only: RKG => RK3
18631 real(RKG) , intent(out) :: rand(:,:)
18632 type(xoshiro256ssw_type) , intent(inout) :: rng
18633 end subroutine
18634#endif
18635
18636#if RK2_ENABLED
18637 PURE module subroutine setUnifRandRNGXDD_D2_RK2(rng, rand)
18638#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18639 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_RK2
18640#endif
18641 use pm_kind, only: RKG => RK2
18642 real(RKG) , intent(out) :: rand(:,:)
18643 type(xoshiro256ssw_type) , intent(inout) :: rng
18644 end subroutine
18645#endif
18646
18647#if RK1_ENABLED
18648 PURE module subroutine setUnifRandRNGXDD_D2_RK1(rng, rand)
18649#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18650 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D2_RK1
18651#endif
18652 use pm_kind, only: RKG => RK1
18653 real(RKG) , intent(out) :: rand(:,:)
18654 type(xoshiro256ssw_type) , intent(inout) :: rng
18655 end subroutine
18656#endif
18657
18658 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18659
18660 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18661 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18662 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18663
18664 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18665
18666#if SK5_ENABLED
18667 PURE module subroutine setUnifRandRNGXLU_D2_SK5(rng, rand, lb, ub)
18668#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18669 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_SK5
18670#endif
18671 use pm_kind, only: SKG => SK5
18672 character(*,SKG) , intent(out) :: rand(:,:)
18673 character(*,SKG) , intent(in) :: lb, ub
18674 type(xoshiro256ssw_type) , intent(inout) :: rng
18675 end subroutine
18676#endif
18677
18678#if SK4_ENABLED
18679 PURE module subroutine setUnifRandRNGXLU_D2_SK4(rng, rand, lb, ub)
18680#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18681 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_SK4
18682#endif
18683 use pm_kind, only: SKG => SK4
18684 character(*,SKG) , intent(out) :: rand(:,:)
18685 character(*,SKG) , intent(in) :: lb, ub
18686 type(xoshiro256ssw_type) , intent(inout) :: rng
18687 end subroutine
18688#endif
18689
18690#if SK3_ENABLED
18691 PURE module subroutine setUnifRandRNGXLU_D2_SK3(rng, rand, lb, ub)
18692#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18693 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_SK3
18694#endif
18695 use pm_kind, only: SKG => SK3
18696 character(*,SKG) , intent(out) :: rand(:,:)
18697 character(*,SKG) , intent(in) :: lb, ub
18698 type(xoshiro256ssw_type) , intent(inout) :: rng
18699 end subroutine
18700#endif
18701
18702#if SK2_ENABLED
18703 PURE module subroutine setUnifRandRNGXLU_D2_SK2(rng, rand, lb, ub)
18704#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18705 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_SK2
18706#endif
18707 use pm_kind, only: SKG => SK2
18708 character(*,SKG) , intent(out) :: rand(:,:)
18709 character(*,SKG) , intent(in) :: lb, ub
18710 type(xoshiro256ssw_type) , intent(inout) :: rng
18711 end subroutine
18712#endif
18713
18714#if SK1_ENABLED
18715 PURE module subroutine setUnifRandRNGXLU_D2_SK1(rng, rand, lb, ub)
18716#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18717 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_SK1
18718#endif
18719 use pm_kind, only: SKG => SK1
18720 character(*,SKG) , intent(out) :: rand(:,:)
18721 character(*,SKG) , intent(in) :: lb, ub
18722 type(xoshiro256ssw_type) , intent(inout) :: rng
18723 end subroutine
18724#endif
18725
18726 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18727
18728#if IK5_ENABLED
18729 PURE module subroutine setUnifRandRNGXLU_D2_IK5(rng, rand, lb, ub)
18730#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18731 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_IK5
18732#endif
18733 use pm_kind, only: IKG => IK5
18734 integer(IKG) , intent(out) :: rand(:,:)
18735 integer(IKG) , intent(in) :: lb, ub
18736 type(xoshiro256ssw_type) , intent(inout) :: rng
18737 end subroutine
18738#endif
18739
18740#if IK4_ENABLED
18741 PURE module subroutine setUnifRandRNGXLU_D2_IK4(rng, rand, lb, ub)
18742#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18743 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_IK4
18744#endif
18745 use pm_kind, only: IKG => IK4
18746 integer(IKG) , intent(out) :: rand(:,:)
18747 integer(IKG) , intent(in) :: lb, ub
18748 type(xoshiro256ssw_type) , intent(inout) :: rng
18749 end subroutine
18750#endif
18751
18752#if IK3_ENABLED
18753 PURE module subroutine setUnifRandRNGXLU_D2_IK3(rng, rand, lb, ub)
18754#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18755 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_IK3
18756#endif
18757 use pm_kind, only: IKG => IK3
18758 integer(IKG) , intent(out) :: rand(:,:)
18759 integer(IKG) , intent(in) :: lb, ub
18760 type(xoshiro256ssw_type) , intent(inout) :: rng
18761 end subroutine
18762#endif
18763
18764#if IK2_ENABLED
18765 PURE module subroutine setUnifRandRNGXLU_D2_IK2(rng, rand, lb, ub)
18766#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18767 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_IK2
18768#endif
18769 use pm_kind, only: IKG => IK2
18770 integer(IKG) , intent(out) :: rand(:,:)
18771 integer(IKG) , intent(in) :: lb, ub
18772 type(xoshiro256ssw_type) , intent(inout) :: rng
18773 end subroutine
18774#endif
18775
18776#if IK1_ENABLED
18777 PURE module subroutine setUnifRandRNGXLU_D2_IK1(rng, rand, lb, ub)
18778#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18779 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_IK1
18780#endif
18781 use pm_kind, only: IKG => IK1
18782 integer(IKG) , intent(out) :: rand(:,:)
18783 integer(IKG) , intent(in) :: lb, ub
18784 type(xoshiro256ssw_type) , intent(inout) :: rng
18785 end subroutine
18786#endif
18787
18788 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18789
18790#if LK5_ENABLED
18791 PURE module subroutine setUnifRandRNGXLU_D2_LK5(rng, rand, lb, ub)
18792#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18793 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_LK5
18794#endif
18795 use pm_kind, only: LKG => LK5
18796 logical(LKG) , intent(out) :: rand(:,:)
18797 logical(LKG) , intent(in) :: lb, ub
18798 type(xoshiro256ssw_type) , intent(inout) :: rng
18799 end subroutine
18800#endif
18801
18802#if LK4_ENABLED
18803 PURE module subroutine setUnifRandRNGXLU_D2_LK4(rng, rand, lb, ub)
18804#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18805 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_LK4
18806#endif
18807 use pm_kind, only: LKG => LK4
18808 logical(LKG) , intent(out) :: rand(:,:)
18809 logical(LKG) , intent(in) :: lb, ub
18810 type(xoshiro256ssw_type) , intent(inout) :: rng
18811 end subroutine
18812#endif
18813
18814#if LK3_ENABLED
18815 PURE module subroutine setUnifRandRNGXLU_D2_LK3(rng, rand, lb, ub)
18816#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18817 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_LK3
18818#endif
18819 use pm_kind, only: LKG => LK3
18820 logical(LKG) , intent(out) :: rand(:,:)
18821 logical(LKG) , intent(in) :: lb, ub
18822 type(xoshiro256ssw_type) , intent(inout) :: rng
18823 end subroutine
18824#endif
18825
18826#if LK2_ENABLED
18827 PURE module subroutine setUnifRandRNGXLU_D2_LK2(rng, rand, lb, ub)
18828#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18829 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_LK2
18830#endif
18831 use pm_kind, only: LKG => LK2
18832 logical(LKG) , intent(out) :: rand(:,:)
18833 logical(LKG) , intent(in) :: lb, ub
18834 type(xoshiro256ssw_type) , intent(inout) :: rng
18835 end subroutine
18836#endif
18837
18838#if LK1_ENABLED
18839 PURE module subroutine setUnifRandRNGXLU_D2_LK1(rng, rand, lb, ub)
18840#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18841 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_LK1
18842#endif
18843 use pm_kind, only: LKG => LK1
18844 logical(LKG) , intent(out) :: rand(:,:)
18845 logical(LKG) , intent(in) :: lb, ub
18846 type(xoshiro256ssw_type) , intent(inout) :: rng
18847 end subroutine
18848#endif
18849
18850 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18851
18852#if CK5_ENABLED
18853 PURE module subroutine setUnifRandRNGXLU_D2_CK5(rng, rand, lb, ub)
18854#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18855 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_CK5
18856#endif
18857 use pm_kind, only: CKG => CK5
18858 complex(CKG) , intent(out) :: rand(:,:)
18859 complex(CKG) , intent(in) :: lb, ub
18860 type(xoshiro256ssw_type) , intent(inout) :: rng
18861 end subroutine
18862#endif
18863
18864#if CK4_ENABLED
18865 PURE module subroutine setUnifRandRNGXLU_D2_CK4(rng, rand, lb, ub)
18866#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18867 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_CK4
18868#endif
18869 use pm_kind, only: CKG => CK4
18870 complex(CKG) , intent(out) :: rand(:,:)
18871 complex(CKG) , intent(in) :: lb, ub
18872 type(xoshiro256ssw_type) , intent(inout) :: rng
18873 end subroutine
18874#endif
18875
18876#if CK3_ENABLED
18877 PURE module subroutine setUnifRandRNGXLU_D2_CK3(rng, rand, lb, ub)
18878#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18879 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_CK3
18880#endif
18881 use pm_kind, only: CKG => CK3
18882 complex(CKG) , intent(out) :: rand(:,:)
18883 complex(CKG) , intent(in) :: lb, ub
18884 type(xoshiro256ssw_type) , intent(inout) :: rng
18885 end subroutine
18886#endif
18887
18888#if CK2_ENABLED
18889 PURE module subroutine setUnifRandRNGXLU_D2_CK2(rng, rand, lb, ub)
18890#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18891 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_CK2
18892#endif
18893 use pm_kind, only: CKG => CK2
18894 complex(CKG) , intent(out) :: rand(:,:)
18895 complex(CKG) , intent(in) :: lb, ub
18896 type(xoshiro256ssw_type) , intent(inout) :: rng
18897 end subroutine
18898#endif
18899
18900#if CK1_ENABLED
18901 PURE module subroutine setUnifRandRNGXLU_D2_CK1(rng, rand, lb, ub)
18902#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18903 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_CK1
18904#endif
18905 use pm_kind, only: CKG => CK1
18906 complex(CKG) , intent(out) :: rand(:,:)
18907 complex(CKG) , intent(in) :: lb, ub
18908 type(xoshiro256ssw_type) , intent(inout) :: rng
18909 end subroutine
18910#endif
18911
18912 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18913
18914#if RK5_ENABLED
18915 PURE module subroutine setUnifRandRNGXLU_D2_RK5(rng, rand, lb, ub)
18916#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18917 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_RK5
18918#endif
18919 use pm_kind, only: RKG => RK5
18920 real(RKG) , intent(out) :: rand(:,:)
18921 real(RKG) , intent(in) :: lb, ub
18922 type(xoshiro256ssw_type) , intent(inout) :: rng
18923 end subroutine
18924#endif
18925
18926#if RK4_ENABLED
18927 PURE module subroutine setUnifRandRNGXLU_D2_RK4(rng, rand, lb, ub)
18928#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18929 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_RK4
18930#endif
18931 use pm_kind, only: RKG => RK4
18932 real(RKG) , intent(out) :: rand(:,:)
18933 real(RKG) , intent(in) :: lb, ub
18934 type(xoshiro256ssw_type) , intent(inout) :: rng
18935 end subroutine
18936#endif
18937
18938#if RK3_ENABLED
18939 PURE module subroutine setUnifRandRNGXLU_D2_RK3(rng, rand, lb, ub)
18940#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18941 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_RK3
18942#endif
18943 use pm_kind, only: RKG => RK3
18944 real(RKG) , intent(out) :: rand(:,:)
18945 real(RKG) , intent(in) :: lb, ub
18946 type(xoshiro256ssw_type) , intent(inout) :: rng
18947 end subroutine
18948#endif
18949
18950#if RK2_ENABLED
18951 PURE module subroutine setUnifRandRNGXLU_D2_RK2(rng, rand, lb, ub)
18952#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18953 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_RK2
18954#endif
18955 use pm_kind, only: RKG => RK2
18956 real(RKG) , intent(out) :: rand(:,:)
18957 real(RKG) , intent(in) :: lb, ub
18958 type(xoshiro256ssw_type) , intent(inout) :: rng
18959 end subroutine
18960#endif
18961
18962#if RK1_ENABLED
18963 PURE module subroutine setUnifRandRNGXLU_D2_RK1(rng, rand, lb, ub)
18964#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18965 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D2_RK1
18966#endif
18967 use pm_kind, only: RKG => RK1
18968 real(RKG) , intent(out) :: rand(:,:)
18969 real(RKG) , intent(in) :: lb, ub
18970 type(xoshiro256ssw_type) , intent(inout) :: rng
18971 end subroutine
18972#endif
18973
18974 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18975
18976 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18977 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18978 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18979
18980 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18981 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18982 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18983
18984 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18985
18986#if SK5_ENABLED
18987 PURE module subroutine setUnifRandRNGXDD_D3_SK5(rng, rand)
18988#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
18989 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_SK5
18990#endif
18991 use pm_kind, only: SKG => SK5
18992 character(*,SKG) , intent(out) :: rand(:,:,:)
18993 type(xoshiro256ssw_type) , intent(inout) :: rng
18994 end subroutine
18995#endif
18996
18997#if SK4_ENABLED
18998 PURE module subroutine setUnifRandRNGXDD_D3_SK4(rng, rand)
18999#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19000 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_SK4
19001#endif
19002 use pm_kind, only: SKG => SK4
19003 character(*,SKG) , intent(out) :: rand(:,:,:)
19004 type(xoshiro256ssw_type) , intent(inout) :: rng
19005 end subroutine
19006#endif
19007
19008#if SK3_ENABLED
19009 PURE module subroutine setUnifRandRNGXDD_D3_SK3(rng, rand)
19010#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19011 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_SK3
19012#endif
19013 use pm_kind, only: SKG => SK3
19014 character(*,SKG) , intent(out) :: rand(:,:,:)
19015 type(xoshiro256ssw_type) , intent(inout) :: rng
19016 end subroutine
19017#endif
19018
19019#if SK2_ENABLED
19020 PURE module subroutine setUnifRandRNGXDD_D3_SK2(rng, rand)
19021#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19022 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_SK2
19023#endif
19024 use pm_kind, only: SKG => SK2
19025 character(*,SKG) , intent(out) :: rand(:,:,:)
19026 type(xoshiro256ssw_type) , intent(inout) :: rng
19027 end subroutine
19028#endif
19029
19030#if SK1_ENABLED
19031 PURE module subroutine setUnifRandRNGXDD_D3_SK1(rng, rand)
19032#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19033 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_SK1
19034#endif
19035 use pm_kind, only: SKG => SK1
19036 character(*,SKG) , intent(out) :: rand(:,:,:)
19037 type(xoshiro256ssw_type) , intent(inout) :: rng
19038 end subroutine
19039#endif
19040
19041 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19042
19043#if IK5_ENABLED
19044 PURE module subroutine setUnifRandRNGXDD_D3_IK5(rng, rand)
19045#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19046 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_IK5
19047#endif
19048 use pm_kind, only: IKG => IK5
19049 integer(IKG) , intent(out) :: rand(:,:,:)
19050 type(xoshiro256ssw_type) , intent(inout) :: rng
19051 end subroutine
19052#endif
19053
19054#if IK4_ENABLED
19055 PURE module subroutine setUnifRandRNGXDD_D3_IK4(rng, rand)
19056#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19057 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_IK4
19058#endif
19059 use pm_kind, only: IKG => IK4
19060 integer(IKG) , intent(out) :: rand(:,:,:)
19061 type(xoshiro256ssw_type) , intent(inout) :: rng
19062 end subroutine
19063#endif
19064
19065#if IK3_ENABLED
19066 PURE module subroutine setUnifRandRNGXDD_D3_IK3(rng, rand)
19067#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19068 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_IK3
19069#endif
19070 use pm_kind, only: IKG => IK3
19071 integer(IKG) , intent(out) :: rand(:,:,:)
19072 type(xoshiro256ssw_type) , intent(inout) :: rng
19073 end subroutine
19074#endif
19075
19076#if IK2_ENABLED
19077 PURE module subroutine setUnifRandRNGXDD_D3_IK2(rng, rand)
19078#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19079 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_IK2
19080#endif
19081 use pm_kind, only: IKG => IK2
19082 integer(IKG) , intent(out) :: rand(:,:,:)
19083 type(xoshiro256ssw_type) , intent(inout) :: rng
19084 end subroutine
19085#endif
19086
19087#if IK1_ENABLED
19088 PURE module subroutine setUnifRandRNGXDD_D3_IK1(rng, rand)
19089#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19090 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_IK1
19091#endif
19092 use pm_kind, only: IKG => IK1
19093 integer(IKG) , intent(out) :: rand(:,:,:)
19094 type(xoshiro256ssw_type) , intent(inout) :: rng
19095 end subroutine
19096#endif
19097
19098 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19099
19100#if LK5_ENABLED
19101 PURE module subroutine setUnifRandRNGXDD_D3_LK5(rng, rand)
19102#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19103 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_LK5
19104#endif
19105 use pm_kind, only: LKG => LK5
19106 logical(LKG) , intent(out) :: rand(:,:,:)
19107 type(xoshiro256ssw_type) , intent(inout) :: rng
19108 end subroutine
19109#endif
19110
19111#if LK4_ENABLED
19112 PURE module subroutine setUnifRandRNGXDD_D3_LK4(rng, rand)
19113#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19114 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_LK4
19115#endif
19116 use pm_kind, only: LKG => LK4
19117 logical(LKG) , intent(out) :: rand(:,:,:)
19118 type(xoshiro256ssw_type) , intent(inout) :: rng
19119 end subroutine
19120#endif
19121
19122#if LK3_ENABLED
19123 PURE module subroutine setUnifRandRNGXDD_D3_LK3(rng, rand)
19124#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19125 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_LK3
19126#endif
19127 use pm_kind, only: LKG => LK3
19128 logical(LKG) , intent(out) :: rand(:,:,:)
19129 type(xoshiro256ssw_type) , intent(inout) :: rng
19130 end subroutine
19131#endif
19132
19133#if LK2_ENABLED
19134 PURE module subroutine setUnifRandRNGXDD_D3_LK2(rng, rand)
19135#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19136 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_LK2
19137#endif
19138 use pm_kind, only: LKG => LK2
19139 logical(LKG) , intent(out) :: rand(:,:,:)
19140 type(xoshiro256ssw_type) , intent(inout) :: rng
19141 end subroutine
19142#endif
19143
19144#if LK1_ENABLED
19145 PURE module subroutine setUnifRandRNGXDD_D3_LK1(rng, rand)
19146#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19147 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_LK1
19148#endif
19149 use pm_kind, only: LKG => LK1
19150 logical(LKG) , intent(out) :: rand(:,:,:)
19151 type(xoshiro256ssw_type) , intent(inout) :: rng
19152 end subroutine
19153#endif
19154
19155 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19156
19157#if CK5_ENABLED
19158 PURE module subroutine setUnifRandRNGXDD_D3_CK5(rng, rand)
19159#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19160 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_CK5
19161#endif
19162 use pm_kind, only: CKG => CK5
19163 complex(CKG) , intent(out) :: rand(:,:,:)
19164 type(xoshiro256ssw_type) , intent(inout) :: rng
19165 end subroutine
19166#endif
19167
19168#if CK4_ENABLED
19169 PURE module subroutine setUnifRandRNGXDD_D3_CK4(rng, rand)
19170#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19171 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_CK4
19172#endif
19173 use pm_kind, only: CKG => CK4
19174 complex(CKG) , intent(out) :: rand(:,:,:)
19175 type(xoshiro256ssw_type) , intent(inout) :: rng
19176 end subroutine
19177#endif
19178
19179#if CK3_ENABLED
19180 PURE module subroutine setUnifRandRNGXDD_D3_CK3(rng, rand)
19181#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19182 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_CK3
19183#endif
19184 use pm_kind, only: CKG => CK3
19185 complex(CKG) , intent(out) :: rand(:,:,:)
19186 type(xoshiro256ssw_type) , intent(inout) :: rng
19187 end subroutine
19188#endif
19189
19190#if CK2_ENABLED
19191 PURE module subroutine setUnifRandRNGXDD_D3_CK2(rng, rand)
19192#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19193 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_CK2
19194#endif
19195 use pm_kind, only: CKG => CK2
19196 complex(CKG) , intent(out) :: rand(:,:,:)
19197 type(xoshiro256ssw_type) , intent(inout) :: rng
19198 end subroutine
19199#endif
19200
19201#if CK1_ENABLED
19202 PURE module subroutine setUnifRandRNGXDD_D3_CK1(rng, rand)
19203#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19204 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_CK1
19205#endif
19206 use pm_kind, only: CKG => CK1
19207 complex(CKG) , intent(out) :: rand(:,:,:)
19208 type(xoshiro256ssw_type) , intent(inout) :: rng
19209 end subroutine
19210#endif
19211
19212 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19213
19214#if RK5_ENABLED
19215 PURE module subroutine setUnifRandRNGXDD_D3_RK5(rng, rand)
19216#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19217 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_RK5
19218#endif
19219 use pm_kind, only: RKG => RK5
19220 real(RKG) , intent(out) :: rand(:,:,:)
19221 type(xoshiro256ssw_type) , intent(inout) :: rng
19222 end subroutine
19223#endif
19224
19225#if RK4_ENABLED
19226 PURE module subroutine setUnifRandRNGXDD_D3_RK4(rng, rand)
19227#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19228 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_RK4
19229#endif
19230 use pm_kind, only: RKG => RK4
19231 real(RKG) , intent(out) :: rand(:,:,:)
19232 type(xoshiro256ssw_type) , intent(inout) :: rng
19233 end subroutine
19234#endif
19235
19236#if RK3_ENABLED
19237 PURE module subroutine setUnifRandRNGXDD_D3_RK3(rng, rand)
19238#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19239 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_RK3
19240#endif
19241 use pm_kind, only: RKG => RK3
19242 real(RKG) , intent(out) :: rand(:,:,:)
19243 type(xoshiro256ssw_type) , intent(inout) :: rng
19244 end subroutine
19245#endif
19246
19247#if RK2_ENABLED
19248 PURE module subroutine setUnifRandRNGXDD_D3_RK2(rng, rand)
19249#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19250 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_RK2
19251#endif
19252 use pm_kind, only: RKG => RK2
19253 real(RKG) , intent(out) :: rand(:,:,:)
19254 type(xoshiro256ssw_type) , intent(inout) :: rng
19255 end subroutine
19256#endif
19257
19258#if RK1_ENABLED
19259 PURE module subroutine setUnifRandRNGXDD_D3_RK1(rng, rand)
19260#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19261 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXDD_D3_RK1
19262#endif
19263 use pm_kind, only: RKG => RK1
19264 real(RKG) , intent(out) :: rand(:,:,:)
19265 type(xoshiro256ssw_type) , intent(inout) :: rng
19266 end subroutine
19267#endif
19268
19269 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19270
19271 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19272 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19273 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19274
19275 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19276
19277#if SK5_ENABLED
19278 PURE module subroutine setUnifRandRNGXLU_D3_SK5(rng, rand, lb, ub)
19279#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19280 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_SK5
19281#endif
19282 use pm_kind, only: SKG => SK5
19283 character(*,SKG) , intent(out) :: rand(:,:,:)
19284 character(*,SKG) , intent(in) :: lb, ub
19285 type(xoshiro256ssw_type) , intent(inout) :: rng
19286 end subroutine
19287#endif
19288
19289#if SK4_ENABLED
19290 PURE module subroutine setUnifRandRNGXLU_D3_SK4(rng, rand, lb, ub)
19291#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19292 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_SK4
19293#endif
19294 use pm_kind, only: SKG => SK4
19295 character(*,SKG) , intent(out) :: rand(:,:,:)
19296 character(*,SKG) , intent(in) :: lb, ub
19297 type(xoshiro256ssw_type) , intent(inout) :: rng
19298 end subroutine
19299#endif
19300
19301#if SK3_ENABLED
19302 PURE module subroutine setUnifRandRNGXLU_D3_SK3(rng, rand, lb, ub)
19303#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19304 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_SK3
19305#endif
19306 use pm_kind, only: SKG => SK3
19307 character(*,SKG) , intent(out) :: rand(:,:,:)
19308 character(*,SKG) , intent(in) :: lb, ub
19309 type(xoshiro256ssw_type) , intent(inout) :: rng
19310 end subroutine
19311#endif
19312
19313#if SK2_ENABLED
19314 PURE module subroutine setUnifRandRNGXLU_D3_SK2(rng, rand, lb, ub)
19315#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19316 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_SK2
19317#endif
19318 use pm_kind, only: SKG => SK2
19319 character(*,SKG) , intent(out) :: rand(:,:,:)
19320 character(*,SKG) , intent(in) :: lb, ub
19321 type(xoshiro256ssw_type) , intent(inout) :: rng
19322 end subroutine
19323#endif
19324
19325#if SK1_ENABLED
19326 PURE module subroutine setUnifRandRNGXLU_D3_SK1(rng, rand, lb, ub)
19327#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19328 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_SK1
19329#endif
19330 use pm_kind, only: SKG => SK1
19331 character(*,SKG) , intent(out) :: rand(:,:,:)
19332 character(*,SKG) , intent(in) :: lb, ub
19333 type(xoshiro256ssw_type) , intent(inout) :: rng
19334 end subroutine
19335#endif
19336
19337 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19338
19339#if IK5_ENABLED
19340 PURE module subroutine setUnifRandRNGXLU_D3_IK5(rng, rand, lb, ub)
19341#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19342 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_IK5
19343#endif
19344 use pm_kind, only: IKG => IK5
19345 integer(IKG) , intent(out) :: rand(:,:,:)
19346 integer(IKG) , intent(in) :: lb, ub
19347 type(xoshiro256ssw_type) , intent(inout) :: rng
19348 end subroutine
19349#endif
19350
19351#if IK4_ENABLED
19352 PURE module subroutine setUnifRandRNGXLU_D3_IK4(rng, rand, lb, ub)
19353#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19354 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_IK4
19355#endif
19356 use pm_kind, only: IKG => IK4
19357 integer(IKG) , intent(out) :: rand(:,:,:)
19358 integer(IKG) , intent(in) :: lb, ub
19359 type(xoshiro256ssw_type) , intent(inout) :: rng
19360 end subroutine
19361#endif
19362
19363#if IK3_ENABLED
19364 PURE module subroutine setUnifRandRNGXLU_D3_IK3(rng, rand, lb, ub)
19365#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19366 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_IK3
19367#endif
19368 use pm_kind, only: IKG => IK3
19369 integer(IKG) , intent(out) :: rand(:,:,:)
19370 integer(IKG) , intent(in) :: lb, ub
19371 type(xoshiro256ssw_type) , intent(inout) :: rng
19372 end subroutine
19373#endif
19374
19375#if IK2_ENABLED
19376 PURE module subroutine setUnifRandRNGXLU_D3_IK2(rng, rand, lb, ub)
19377#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19378 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_IK2
19379#endif
19380 use pm_kind, only: IKG => IK2
19381 integer(IKG) , intent(out) :: rand(:,:,:)
19382 integer(IKG) , intent(in) :: lb, ub
19383 type(xoshiro256ssw_type) , intent(inout) :: rng
19384 end subroutine
19385#endif
19386
19387#if IK1_ENABLED
19388 PURE module subroutine setUnifRandRNGXLU_D3_IK1(rng, rand, lb, ub)
19389#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19390 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_IK1
19391#endif
19392 use pm_kind, only: IKG => IK1
19393 integer(IKG) , intent(out) :: rand(:,:,:)
19394 integer(IKG) , intent(in) :: lb, ub
19395 type(xoshiro256ssw_type) , intent(inout) :: rng
19396 end subroutine
19397#endif
19398
19399 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19400
19401#if LK5_ENABLED
19402 PURE module subroutine setUnifRandRNGXLU_D3_LK5(rng, rand, lb, ub)
19403#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19404 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_LK5
19405#endif
19406 use pm_kind, only: LKG => LK5
19407 logical(LKG) , intent(out) :: rand(:,:,:)
19408 logical(LKG) , intent(in) :: lb, ub
19409 type(xoshiro256ssw_type) , intent(inout) :: rng
19410 end subroutine
19411#endif
19412
19413#if LK4_ENABLED
19414 PURE module subroutine setUnifRandRNGXLU_D3_LK4(rng, rand, lb, ub)
19415#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19416 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_LK4
19417#endif
19418 use pm_kind, only: LKG => LK4
19419 logical(LKG) , intent(out) :: rand(:,:,:)
19420 logical(LKG) , intent(in) :: lb, ub
19421 type(xoshiro256ssw_type) , intent(inout) :: rng
19422 end subroutine
19423#endif
19424
19425#if LK3_ENABLED
19426 PURE module subroutine setUnifRandRNGXLU_D3_LK3(rng, rand, lb, ub)
19427#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19428 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_LK3
19429#endif
19430 use pm_kind, only: LKG => LK3
19431 logical(LKG) , intent(out) :: rand(:,:,:)
19432 logical(LKG) , intent(in) :: lb, ub
19433 type(xoshiro256ssw_type) , intent(inout) :: rng
19434 end subroutine
19435#endif
19436
19437#if LK2_ENABLED
19438 PURE module subroutine setUnifRandRNGXLU_D3_LK2(rng, rand, lb, ub)
19439#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19440 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_LK2
19441#endif
19442 use pm_kind, only: LKG => LK2
19443 logical(LKG) , intent(out) :: rand(:,:,:)
19444 logical(LKG) , intent(in) :: lb, ub
19445 type(xoshiro256ssw_type) , intent(inout) :: rng
19446 end subroutine
19447#endif
19448
19449#if LK1_ENABLED
19450 PURE module subroutine setUnifRandRNGXLU_D3_LK1(rng, rand, lb, ub)
19451#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19452 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_LK1
19453#endif
19454 use pm_kind, only: LKG => LK1
19455 logical(LKG) , intent(out) :: rand(:,:,:)
19456 logical(LKG) , intent(in) :: lb, ub
19457 type(xoshiro256ssw_type) , intent(inout) :: rng
19458 end subroutine
19459#endif
19460
19461 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19462
19463#if CK5_ENABLED
19464 PURE module subroutine setUnifRandRNGXLU_D3_CK5(rng, rand, lb, ub)
19465#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19466 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_CK5
19467#endif
19468 use pm_kind, only: CKG => CK5
19469 complex(CKG) , intent(out) :: rand(:,:,:)
19470 complex(CKG) , intent(in) :: lb, ub
19471 type(xoshiro256ssw_type) , intent(inout) :: rng
19472 end subroutine
19473#endif
19474
19475#if CK4_ENABLED
19476 PURE module subroutine setUnifRandRNGXLU_D3_CK4(rng, rand, lb, ub)
19477#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19478 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_CK4
19479#endif
19480 use pm_kind, only: CKG => CK4
19481 complex(CKG) , intent(out) :: rand(:,:,:)
19482 complex(CKG) , intent(in) :: lb, ub
19483 type(xoshiro256ssw_type) , intent(inout) :: rng
19484 end subroutine
19485#endif
19486
19487#if CK3_ENABLED
19488 PURE module subroutine setUnifRandRNGXLU_D3_CK3(rng, rand, lb, ub)
19489#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19490 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_CK3
19491#endif
19492 use pm_kind, only: CKG => CK3
19493 complex(CKG) , intent(out) :: rand(:,:,:)
19494 complex(CKG) , intent(in) :: lb, ub
19495 type(xoshiro256ssw_type) , intent(inout) :: rng
19496 end subroutine
19497#endif
19498
19499#if CK2_ENABLED
19500 PURE module subroutine setUnifRandRNGXLU_D3_CK2(rng, rand, lb, ub)
19501#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19502 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_CK2
19503#endif
19504 use pm_kind, only: CKG => CK2
19505 complex(CKG) , intent(out) :: rand(:,:,:)
19506 complex(CKG) , intent(in) :: lb, ub
19507 type(xoshiro256ssw_type) , intent(inout) :: rng
19508 end subroutine
19509#endif
19510
19511#if CK1_ENABLED
19512 PURE module subroutine setUnifRandRNGXLU_D3_CK1(rng, rand, lb, ub)
19513#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19514 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_CK1
19515#endif
19516 use pm_kind, only: CKG => CK1
19517 complex(CKG) , intent(out) :: rand(:,:,:)
19518 complex(CKG) , intent(in) :: lb, ub
19519 type(xoshiro256ssw_type) , intent(inout) :: rng
19520 end subroutine
19521#endif
19522
19523 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19524
19525#if RK5_ENABLED
19526 PURE module subroutine setUnifRandRNGXLU_D3_RK5(rng, rand, lb, ub)
19527#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19528 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_RK5
19529#endif
19530 use pm_kind, only: RKG => RK5
19531 real(RKG) , intent(out) :: rand(:,:,:)
19532 real(RKG) , intent(in) :: lb, ub
19533 type(xoshiro256ssw_type) , intent(inout) :: rng
19534 end subroutine
19535#endif
19536
19537#if RK4_ENABLED
19538 PURE module subroutine setUnifRandRNGXLU_D3_RK4(rng, rand, lb, ub)
19539#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19540 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_RK4
19541#endif
19542 use pm_kind, only: RKG => RK4
19543 real(RKG) , intent(out) :: rand(:,:,:)
19544 real(RKG) , intent(in) :: lb, ub
19545 type(xoshiro256ssw_type) , intent(inout) :: rng
19546 end subroutine
19547#endif
19548
19549#if RK3_ENABLED
19550 PURE module subroutine setUnifRandRNGXLU_D3_RK3(rng, rand, lb, ub)
19551#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19552 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_RK3
19553#endif
19554 use pm_kind, only: RKG => RK3
19555 real(RKG) , intent(out) :: rand(:,:,:)
19556 real(RKG) , intent(in) :: lb, ub
19557 type(xoshiro256ssw_type) , intent(inout) :: rng
19558 end subroutine
19559#endif
19560
19561#if RK2_ENABLED
19562 PURE module subroutine setUnifRandRNGXLU_D3_RK2(rng, rand, lb, ub)
19563#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19564 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_RK2
19565#endif
19566 use pm_kind, only: RKG => RK2
19567 real(RKG) , intent(out) :: rand(:,:,:)
19568 real(RKG) , intent(in) :: lb, ub
19569 type(xoshiro256ssw_type) , intent(inout) :: rng
19570 end subroutine
19571#endif
19572
19573#if RK1_ENABLED
19574 PURE module subroutine setUnifRandRNGXLU_D3_RK1(rng, rand, lb, ub)
19575#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
19576 !DEC$ ATTRIBUTES DLLEXPORT :: setUnifRandRNGXLU_D3_RK1
19577#endif
19578 use pm_kind, only: RKG => RK1
19579 real(RKG) , intent(out) :: rand(:,:,:)
19580 real(RKG) , intent(in) :: lb, ub
19581 type(xoshiro256ssw_type) , intent(inout) :: rng
19582 end subroutine
19583#endif
19584
19585 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19586
19587 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19588 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19589 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19590
19591 end interface
19592
19593!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19594
19595end 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...