ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_distCov.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
69
70!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
71
73
75 use pm_kind, only: SK, IK, LK
76
77 implicit none
78
79 character(*, SK), parameter :: MODULE_NAME = "@pm_distCov"
80
81!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
82
120 type gram_type
121 end type gram_type
122
157 type(gram_type), parameter :: gram = gram_type()
158#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
159 !DIR$ ATTRIBUTES DLLEXPORT :: gram
160#endif
161
162!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
163
201 type dvine_type
202 end type dvine_type
203
238 type(dvine_type), parameter :: dvine = dvine_type()
239#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
240 !DIR$ ATTRIBUTES DLLEXPORT :: dvine
241#endif
242
243!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
244
283 type onion_type
284 integer(IK) :: info = 0_IK
285 end type onion_type
286
332#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
333 !DIR$ ATTRIBUTES DLLEXPORT :: onion
334#endif
335
336!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
337
394 interface getCovRand
395
396 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
397 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
398 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
399
400 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
401
402#if CK5_ENABLED
403 impure module function getCovRandGRNGDS0_CK5(mold, ndim, scale) result(rand)
404#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
405 !DEC$ ATTRIBUTES DLLEXPORT :: getCovRandGRNGDS0_CK5
406#endif
407 use pm_kind, only: CKG => CK5
408 integer(IK) , intent(in) :: ndim
409 complex(CKG) , intent(in) :: mold
410 real(CKG) , intent(in) , optional :: scale
411 complex(CKG) :: rand(ndim, ndim)
412 end function
413#endif
414
415#if CK4_ENABLED
416 impure module function getCovRandGRNGDS0_CK4(mold, ndim, scale) result(rand)
417#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
418 !DEC$ ATTRIBUTES DLLEXPORT :: getCovRandGRNGDS0_CK4
419#endif
420 use pm_kind, only: CKG => CK4
421 integer(IK) , intent(in) :: ndim
422 complex(CKG) , intent(in) :: mold
423 real(CKG) , intent(in) , optional :: scale
424 complex(CKG) :: rand(ndim, ndim)
425 end function
426#endif
427
428#if CK3_ENABLED
429 impure module function getCovRandGRNGDS0_CK3(mold, ndim, scale) result(rand)
430#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
431 !DEC$ ATTRIBUTES DLLEXPORT :: getCovRandGRNGDS0_CK3
432#endif
433 use pm_kind, only: CKG => CK3
434 integer(IK) , intent(in) :: ndim
435 complex(CKG) , intent(in) :: mold
436 real(CKG) , intent(in) , optional :: scale
437 complex(CKG) :: rand(ndim, ndim)
438 end function
439#endif
440
441#if CK2_ENABLED
442 impure module function getCovRandGRNGDS0_CK2(mold, ndim, scale) result(rand)
443#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
444 !DEC$ ATTRIBUTES DLLEXPORT :: getCovRandGRNGDS0_CK2
445#endif
446 use pm_kind, only: CKG => CK2
447 integer(IK) , intent(in) :: ndim
448 complex(CKG) , intent(in) :: mold
449 real(CKG) , intent(in) , optional :: scale
450 complex(CKG) :: rand(ndim, ndim)
451 end function
452#endif
453
454#if CK1_ENABLED
455 impure module function getCovRandGRNGDS0_CK1(mold, ndim, scale) result(rand)
456#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
457 !DEC$ ATTRIBUTES DLLEXPORT :: getCovRandGRNGDS0_CK1
458#endif
459 use pm_kind, only: CKG => CK1
460 integer(IK) , intent(in) :: ndim
461 complex(CKG) , intent(in) :: mold
462 real(CKG) , intent(in) , optional :: scale
463 complex(CKG) :: rand(ndim, ndim)
464 end function
465#endif
466
467 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
468
469#if RK5_ENABLED
470 impure module function getCovRandGRNGDS0_RK5(mold, ndim, scale) result(rand)
471#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
472 !DEC$ ATTRIBUTES DLLEXPORT :: getCovRandGRNGDS0_RK5
473#endif
474 use pm_kind, only: RKG => RK5
475 integer(IK) , intent(in) :: ndim
476 real(RKG) , intent(in) :: mold
477 real(RKG) , intent(in) , optional :: scale
478 real(RKG) :: rand(ndim, ndim)
479 end function
480#endif
481
482#if RK4_ENABLED
483 impure module function getCovRandGRNGDS0_RK4(mold, ndim, scale) result(rand)
484#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
485 !DEC$ ATTRIBUTES DLLEXPORT :: getCovRandGRNGDS0_RK4
486#endif
487 use pm_kind, only: RKG => RK4
488 integer(IK) , intent(in) :: ndim
489 real(RKG) , intent(in) :: mold
490 real(RKG) , intent(in) , optional :: scale
491 real(RKG) :: rand(ndim, ndim)
492 end function
493#endif
494
495#if RK3_ENABLED
496 impure module function getCovRandGRNGDS0_RK3(mold, ndim, scale) result(rand)
497#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
498 !DEC$ ATTRIBUTES DLLEXPORT :: getCovRandGRNGDS0_RK3
499#endif
500 use pm_kind, only: RKG => RK3
501 integer(IK) , intent(in) :: ndim
502 real(RKG) , intent(in) :: mold
503 real(RKG) , intent(in) , optional :: scale
504 real(RKG) :: rand(ndim, ndim)
505 end function
506#endif
507
508#if RK2_ENABLED
509 impure module function getCovRandGRNGDS0_RK2(mold, ndim, scale) result(rand)
510#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
511 !DEC$ ATTRIBUTES DLLEXPORT :: getCovRandGRNGDS0_RK2
512#endif
513 use pm_kind, only: RKG => RK2
514 integer(IK) , intent(in) :: ndim
515 real(RKG) , intent(in) :: mold
516 real(RKG) , intent(in) , optional :: scale
517 real(RKG) :: rand(ndim, ndim)
518 end function
519#endif
520
521#if RK1_ENABLED
522 impure module function getCovRandGRNGDS0_RK1(mold, ndim, scale) result(rand)
523#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
524 !DEC$ ATTRIBUTES DLLEXPORT :: getCovRandGRNGDS0_RK1
525#endif
526 use pm_kind, only: RKG => RK1
527 integer(IK) , intent(in) :: ndim
528 real(RKG) , intent(in) :: mold
529 real(RKG) , intent(in) , optional :: scale
530 real(RKG) :: rand(ndim, ndim)
531 end function
532#endif
533
534 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
535
536 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
537 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
538 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
539
540 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
541
542#if CK5_ENABLED
543 impure module function getCovRandGRNGDS1_CK5(mold, scale) result(rand)
544#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
545 !DEC$ ATTRIBUTES DLLEXPORT :: getCovRandGRNGDS1_CK5
546#endif
547 use pm_kind, only: CKG => CK5
548 complex(CKG) , intent(in) :: mold
549 real(CKG) , intent(in) , contiguous :: scale(:)
550 complex(CKG) :: rand(size(scale, 1, IK), size(scale, 1, IK))
551 end function
552#endif
553
554#if CK4_ENABLED
555 impure module function getCovRandGRNGDS1_CK4(mold, scale) result(rand)
556#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
557 !DEC$ ATTRIBUTES DLLEXPORT :: getCovRandGRNGDS1_CK4
558#endif
559 use pm_kind, only: CKG => CK4
560 complex(CKG) , intent(in) :: mold
561 real(CKG) , intent(in) , contiguous :: scale(:)
562 complex(CKG) :: rand(size(scale, 1, IK), size(scale, 1, IK))
563 end function
564#endif
565
566#if CK3_ENABLED
567 impure module function getCovRandGRNGDS1_CK3(mold, scale) result(rand)
568#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
569 !DEC$ ATTRIBUTES DLLEXPORT :: getCovRandGRNGDS1_CK3
570#endif
571 use pm_kind, only: CKG => CK3
572 complex(CKG) , intent(in) :: mold
573 real(CKG) , intent(in) , contiguous :: scale(:)
574 complex(CKG) :: rand(size(scale, 1, IK), size(scale, 1, IK))
575 end function
576#endif
577
578#if CK2_ENABLED
579 impure module function getCovRandGRNGDS1_CK2(mold, scale) result(rand)
580#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
581 !DEC$ ATTRIBUTES DLLEXPORT :: getCovRandGRNGDS1_CK2
582#endif
583 use pm_kind, only: CKG => CK2
584 complex(CKG) , intent(in) :: mold
585 real(CKG) , intent(in) , contiguous :: scale(:)
586 complex(CKG) :: rand(size(scale, 1, IK), size(scale, 1, IK))
587 end function
588#endif
589
590#if CK1_ENABLED
591 impure module function getCovRandGRNGDS1_CK1(mold, scale) result(rand)
592#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
593 !DEC$ ATTRIBUTES DLLEXPORT :: getCovRandGRNGDS1_CK1
594#endif
595 use pm_kind, only: CKG => CK1
596 complex(CKG) , intent(in) :: mold
597 real(CKG) , intent(in) , contiguous :: scale(:)
598 complex(CKG) :: rand(size(scale, 1, IK), size(scale, 1, IK))
599 end function
600#endif
601
602 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
603
604#if RK5_ENABLED
605 impure module function getCovRandGRNGDS1_RK5(mold, scale) result(rand)
606#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
607 !DEC$ ATTRIBUTES DLLEXPORT :: getCovRandGRNGDS1_RK5
608#endif
609 use pm_kind, only: RKG => RK5
610 real(RKG) , intent(in) :: mold
611 real(RKG) , intent(in) , contiguous :: scale(:)
612 real(RKG) :: rand(size(scale, 1, IK), size(scale, 1, IK))
613 end function
614#endif
615
616#if RK4_ENABLED
617 impure module function getCovRandGRNGDS1_RK4(mold, scale) result(rand)
618#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
619 !DEC$ ATTRIBUTES DLLEXPORT :: getCovRandGRNGDS1_RK4
620#endif
621 use pm_kind, only: RKG => RK4
622 real(RKG) , intent(in) :: mold
623 real(RKG) , intent(in) , contiguous :: scale(:)
624 real(RKG) :: rand(size(scale, 1, IK), size(scale, 1, IK))
625 end function
626#endif
627
628#if RK3_ENABLED
629 impure module function getCovRandGRNGDS1_RK3(mold, scale) result(rand)
630#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
631 !DEC$ ATTRIBUTES DLLEXPORT :: getCovRandGRNGDS1_RK3
632#endif
633 use pm_kind, only: RKG => RK3
634 real(RKG) , intent(in) :: mold
635 real(RKG) , intent(in) , contiguous :: scale(:)
636 real(RKG) :: rand(size(scale, 1, IK), size(scale, 1, IK))
637 end function
638#endif
639
640#if RK2_ENABLED
641 impure module function getCovRandGRNGDS1_RK2(mold, scale) result(rand)
642#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
643 !DEC$ ATTRIBUTES DLLEXPORT :: getCovRandGRNGDS1_RK2
644#endif
645 use pm_kind, only: RKG => RK2
646 real(RKG) , intent(in) :: mold
647 real(RKG) , intent(in) , contiguous :: scale(:)
648 real(RKG) :: rand(size(scale, 1, IK), size(scale, 1, IK))
649 end function
650#endif
651
652#if RK1_ENABLED
653 impure module function getCovRandGRNGDS1_RK1(mold, scale) result(rand)
654#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
655 !DEC$ ATTRIBUTES DLLEXPORT :: getCovRandGRNGDS1_RK1
656#endif
657 use pm_kind, only: RKG => RK1
658 real(RKG) , intent(in) :: mold
659 real(RKG) , intent(in) , contiguous :: scale(:)
660 real(RKG) :: rand(size(scale, 1, IK), size(scale, 1, IK))
661 end function
662#endif
663
664 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
665
666 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
667 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
668 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
669
670 end interface
671
672!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
673
784
785 ! setCovRandG RK
786
787 interface setCovRand
788
789 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
790 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
791 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
792
793 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
794
795#if RK5_ENABLED
796 module subroutine setCovRandGRNGFSD_RK5(rng, rand)
797#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
798 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFSD_RK5
799#endif
800 use pm_kind, only: RKG => RK5
801 type(rngf_type) , intent(in) :: rng
802 real(RKG) , intent(out) , contiguous :: rand(:,:)
803 end subroutine
804#endif
805
806#if RK4_ENABLED
807 module subroutine setCovRandGRNGFSD_RK4(rng, rand)
808#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
809 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFSD_RK4
810#endif
811 use pm_kind, only: RKG => RK4
812 type(rngf_type) , intent(in) :: rng
813 real(RKG) , intent(out) , contiguous :: rand(:,:)
814 end subroutine
815#endif
816
817#if RK3_ENABLED
818 module subroutine setCovRandGRNGFSD_RK3(rng, rand)
819#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
820 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFSD_RK3
821#endif
822 use pm_kind, only: RKG => RK3
823 type(rngf_type) , intent(in) :: rng
824 real(RKG) , intent(out) , contiguous :: rand(:,:)
825 end subroutine
826#endif
827
828#if RK2_ENABLED
829 module subroutine setCovRandGRNGFSD_RK2(rng, rand)
830#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
831 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFSD_RK2
832#endif
833 use pm_kind, only: RKG => RK2
834 type(rngf_type) , intent(in) :: rng
835 real(RKG) , intent(out) , contiguous :: rand(:,:)
836 end subroutine
837#endif
838
839#if RK1_ENABLED
840 module subroutine setCovRandGRNGFSD_RK1(rng, rand)
841#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
842 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFSD_RK1
843#endif
844 use pm_kind, only: RKG => RK1
845 type(rngf_type) , intent(in) :: rng
846 real(RKG) , intent(out) , contiguous :: rand(:,:)
847 end subroutine
848#endif
849
850 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
851
852#if RK5_ENABLED
853 module subroutine setCovRandGRNGFS0_RK5(rng, rand, scale)
854#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
855 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFS0_RK5
856#endif
857 use pm_kind, only: RKG => RK5
858 type(rngf_type) , intent(in) :: rng
859 real(RKG) , intent(in) :: scale
860 real(RKG) , intent(out) , contiguous :: rand(:,:)
861 end subroutine
862#endif
863
864#if RK4_ENABLED
865 module subroutine setCovRandGRNGFS0_RK4(rng, rand, scale)
866#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
867 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFS0_RK4
868#endif
869 use pm_kind, only: RKG => RK4
870 type(rngf_type) , intent(in) :: rng
871 real(RKG) , intent(in) :: scale
872 real(RKG) , intent(out) , contiguous :: rand(:,:)
873 end subroutine
874#endif
875
876#if RK3_ENABLED
877 module subroutine setCovRandGRNGFS0_RK3(rng, rand, scale)
878#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
879 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFS0_RK3
880#endif
881 use pm_kind, only: RKG => RK3
882 type(rngf_type) , intent(in) :: rng
883 real(RKG) , intent(in) :: scale
884 real(RKG) , intent(out) , contiguous :: rand(:,:)
885 end subroutine
886#endif
887
888#if RK2_ENABLED
889 module subroutine setCovRandGRNGFS0_RK2(rng, rand, scale)
890#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
891 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFS0_RK2
892#endif
893 use pm_kind, only: RKG => RK2
894 type(rngf_type) , intent(in) :: rng
895 real(RKG) , intent(in) :: scale
896 real(RKG) , intent(out) , contiguous :: rand(:,:)
897 end subroutine
898#endif
899
900#if RK1_ENABLED
901 module subroutine setCovRandGRNGFS0_RK1(rng, rand, scale)
902#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
903 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFS0_RK1
904#endif
905 use pm_kind, only: RKG => RK1
906 type(rngf_type) , intent(in) :: rng
907 real(RKG) , intent(in) :: scale
908 real(RKG) , intent(out) , contiguous :: rand(:,:)
909 end subroutine
910#endif
911
912 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
913
914#if RK5_ENABLED
915 module subroutine setCovRandGRNGFS1_RK5(rng, rand, scale)
916#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
917 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFS1_RK5
918#endif
919 use pm_kind, only: RKG => RK5
920 type(rngf_type) , intent(in) :: rng
921 real(RKG) , intent(in) , contiguous :: scale(:)
922 real(RKG) , intent(out) , contiguous :: rand(:,:)
923 end subroutine
924#endif
925
926#if RK4_ENABLED
927 module subroutine setCovRandGRNGFS1_RK4(rng, rand, scale)
928#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
929 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFS1_RK4
930#endif
931 use pm_kind, only: RKG => RK4
932 type(rngf_type) , intent(in) :: rng
933 real(RKG) , intent(in) , contiguous :: scale(:)
934 real(RKG) , intent(out) , contiguous :: rand(:,:)
935 end subroutine
936#endif
937
938#if RK3_ENABLED
939 module subroutine setCovRandGRNGFS1_RK3(rng, rand, scale)
940#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
941 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFS1_RK3
942#endif
943 use pm_kind, only: RKG => RK3
944 type(rngf_type) , intent(in) :: rng
945 real(RKG) , intent(in) , contiguous :: scale(:)
946 real(RKG) , intent(out) , contiguous :: rand(:,:)
947 end subroutine
948#endif
949
950#if RK2_ENABLED
951 module subroutine setCovRandGRNGFS1_RK2(rng, rand, scale)
952#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
953 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFS1_RK2
954#endif
955 use pm_kind, only: RKG => RK2
956 type(rngf_type) , intent(in) :: rng
957 real(RKG) , intent(in) , contiguous :: scale(:)
958 real(RKG) , intent(out) , contiguous :: rand(:,:)
959 end subroutine
960#endif
961
962#if RK1_ENABLED
963 module subroutine setCovRandGRNGFS1_RK1(rng, rand, scale)
964#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
965 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFS1_RK1
966#endif
967 use pm_kind, only: RKG => RK1
968 type(rngf_type) , intent(in) :: rng
969 real(RKG) , intent(in) , contiguous :: scale(:)
970 real(RKG) , intent(out) , contiguous :: rand(:,:)
971 end subroutine
972#endif
973
974 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
975
976 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
977 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
978 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
979
980 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
981
982#if RK5_ENABLED
983 PURE module subroutine setCovRandGRNGXSD_RK5(rng, rand)
984#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
985 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXSD_RK5
986#endif
987 use pm_kind, only: RKG => RK5
988 type(xoshiro256ssw_type), intent(inout) :: rng
989 real(RKG) , intent(out) , contiguous :: rand(:,:)
990 end subroutine
991#endif
992
993#if RK4_ENABLED
994 PURE module subroutine setCovRandGRNGXSD_RK4(rng, rand)
995#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
996 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXSD_RK4
997#endif
998 use pm_kind, only: RKG => RK4
999 type(xoshiro256ssw_type), intent(inout) :: rng
1000 real(RKG) , intent(out) , contiguous :: rand(:,:)
1001 end subroutine
1002#endif
1003
1004#if RK3_ENABLED
1005 PURE module subroutine setCovRandGRNGXSD_RK3(rng, rand)
1006#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1007 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXSD_RK3
1008#endif
1009 use pm_kind, only: RKG => RK3
1010 type(xoshiro256ssw_type), intent(inout) :: rng
1011 real(RKG) , intent(out) , contiguous :: rand(:,:)
1012 end subroutine
1013#endif
1014
1015#if RK2_ENABLED
1016 PURE module subroutine setCovRandGRNGXSD_RK2(rng, rand)
1017#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1018 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXSD_RK2
1019#endif
1020 use pm_kind, only: RKG => RK2
1021 type(xoshiro256ssw_type), intent(inout) :: rng
1022 real(RKG) , intent(out) , contiguous :: rand(:,:)
1023 end subroutine
1024#endif
1025
1026#if RK1_ENABLED
1027 PURE module subroutine setCovRandGRNGXSD_RK1(rng, rand)
1028#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1029 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXSD_RK1
1030#endif
1031 use pm_kind, only: RKG => RK1
1032 type(xoshiro256ssw_type), intent(inout) :: rng
1033 real(RKG) , intent(out) , contiguous :: rand(:,:)
1034 end subroutine
1035#endif
1036
1037 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1038
1039#if RK5_ENABLED
1040 PURE module subroutine setCovRandGRNGXS0_RK5(rng, rand, scale)
1041#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1042 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXS0_RK5
1043#endif
1044 use pm_kind, only: RKG => RK5
1045 type(xoshiro256ssw_type), intent(inout) :: rng
1046 real(RKG) , intent(in) :: scale
1047 real(RKG) , intent(out) , contiguous :: rand(:,:)
1048 end subroutine
1049#endif
1050
1051#if RK4_ENABLED
1052 PURE module subroutine setCovRandGRNGXS0_RK4(rng, rand, scale)
1053#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1054 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXS0_RK4
1055#endif
1056 use pm_kind, only: RKG => RK4
1057 type(xoshiro256ssw_type), intent(inout) :: rng
1058 real(RKG) , intent(in) :: scale
1059 real(RKG) , intent(out) , contiguous :: rand(:,:)
1060 end subroutine
1061#endif
1062
1063#if RK3_ENABLED
1064 PURE module subroutine setCovRandGRNGXS0_RK3(rng, rand, scale)
1065#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1066 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXS0_RK3
1067#endif
1068 use pm_kind, only: RKG => RK3
1069 type(xoshiro256ssw_type), intent(inout) :: rng
1070 real(RKG) , intent(in) :: scale
1071 real(RKG) , intent(out) , contiguous :: rand(:,:)
1072 end subroutine
1073#endif
1074
1075#if RK2_ENABLED
1076 PURE module subroutine setCovRandGRNGXS0_RK2(rng, rand, scale)
1077#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1078 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXS0_RK2
1079#endif
1080 use pm_kind, only: RKG => RK2
1081 type(xoshiro256ssw_type), intent(inout) :: rng
1082 real(RKG) , intent(in) :: scale
1083 real(RKG) , intent(out) , contiguous :: rand(:,:)
1084 end subroutine
1085#endif
1086
1087#if RK1_ENABLED
1088 PURE module subroutine setCovRandGRNGXS0_RK1(rng, rand, scale)
1089#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1090 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXS0_RK1
1091#endif
1092 use pm_kind, only: RKG => RK1
1093 type(xoshiro256ssw_type), intent(inout) :: rng
1094 real(RKG) , intent(in) :: scale
1095 real(RKG) , intent(out) , contiguous :: rand(:,:)
1096 end subroutine
1097#endif
1098
1099 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1100
1101#if RK5_ENABLED
1102 PURE module subroutine setCovRandGRNGXS1_RK5(rng, rand, scale)
1103#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1104 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXS1_RK5
1105#endif
1106 use pm_kind, only: RKG => RK5
1107 type(xoshiro256ssw_type), intent(inout) :: rng
1108 real(RKG) , intent(in) , contiguous :: scale(:)
1109 real(RKG) , intent(out) , contiguous :: rand(:,:)
1110 end subroutine
1111#endif
1112
1113#if RK4_ENABLED
1114 PURE module subroutine setCovRandGRNGXS1_RK4(rng, rand, scale)
1115#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1116 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXS1_RK4
1117#endif
1118 use pm_kind, only: RKG => RK4
1119 type(xoshiro256ssw_type), intent(inout) :: rng
1120 real(RKG) , intent(in) , contiguous :: scale(:)
1121 real(RKG) , intent(out) , contiguous :: rand(:,:)
1122 end subroutine
1123#endif
1124
1125#if RK3_ENABLED
1126 PURE module subroutine setCovRandGRNGXS1_RK3(rng, rand, scale)
1127#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1128 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXS1_RK3
1129#endif
1130 use pm_kind, only: RKG => RK3
1131 type(xoshiro256ssw_type), intent(inout) :: rng
1132 real(RKG) , intent(in) , contiguous :: scale(:)
1133 real(RKG) , intent(out) , contiguous :: rand(:,:)
1134 end subroutine
1135#endif
1136
1137#if RK2_ENABLED
1138 PURE module subroutine setCovRandGRNGXS1_RK2(rng, rand, scale)
1139#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1140 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXS1_RK2
1141#endif
1142 use pm_kind, only: RKG => RK2
1143 type(xoshiro256ssw_type), intent(inout) :: rng
1144 real(RKG) , intent(in) , contiguous :: scale(:)
1145 real(RKG) , intent(out) , contiguous :: rand(:,:)
1146 end subroutine
1147#endif
1148
1149#if RK1_ENABLED
1150 PURE module subroutine setCovRandGRNGXS1_RK1(rng, rand, scale)
1151#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1152 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXS1_RK1
1153#endif
1154 use pm_kind, only: RKG => RK1
1155 type(xoshiro256ssw_type), intent(inout) :: rng
1156 real(RKG) , intent(in) , contiguous :: scale(:)
1157 real(RKG) , intent(out) , contiguous :: rand(:,:)
1158 end subroutine
1159#endif
1160
1161 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1162
1163 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1164 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1165 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1166
1167 end interface
1168
1169 ! setCovRandG CK
1170
1171 interface setCovRand
1172
1173 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1174 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1175 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1176
1177 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1178
1179#if CK5_ENABLED
1180 module subroutine setCovRandGRNGFSD_CK5(rng, rand)
1181#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1182 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFSD_CK5
1183#endif
1184 use pm_kind, only: CKG => CK5
1185 type(rngf_type) , intent(in) :: rng
1186 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1187 end subroutine
1188#endif
1189
1190#if CK4_ENABLED
1191 module subroutine setCovRandGRNGFSD_CK4(rng, rand)
1192#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1193 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFSD_CK4
1194#endif
1195 use pm_kind, only: CKG => CK4
1196 type(rngf_type) , intent(in) :: rng
1197 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1198 end subroutine
1199#endif
1200
1201#if CK3_ENABLED
1202 module subroutine setCovRandGRNGFSD_CK3(rng, rand)
1203#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1204 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFSD_CK3
1205#endif
1206 use pm_kind, only: CKG => CK3
1207 type(rngf_type) , intent(in) :: rng
1208 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1209 end subroutine
1210#endif
1211
1212#if CK2_ENABLED
1213 module subroutine setCovRandGRNGFSD_CK2(rng, rand)
1214#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1215 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFSD_CK2
1216#endif
1217 use pm_kind, only: CKG => CK2
1218 type(rngf_type) , intent(in) :: rng
1219 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1220 end subroutine
1221#endif
1222
1223#if CK1_ENABLED
1224 module subroutine setCovRandGRNGFSD_CK1(rng, rand)
1225#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1226 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFSD_CK1
1227#endif
1228 use pm_kind, only: CKG => CK1
1229 type(rngf_type) , intent(in) :: rng
1230 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1231 end subroutine
1232#endif
1233
1234 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1235
1236#if CK5_ENABLED
1237 module subroutine setCovRandGRNGFS0_CK5(rng, rand, scale)
1238#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1239 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFS0_CK5
1240#endif
1241 use pm_kind, only: CKG => CK5
1242 type(rngf_type) , intent(in) :: rng
1243 real(CKG) , intent(in) :: scale
1244 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1245 end subroutine
1246#endif
1247
1248#if CK4_ENABLED
1249 module subroutine setCovRandGRNGFS0_CK4(rng, rand, scale)
1250#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1251 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFS0_CK4
1252#endif
1253 use pm_kind, only: CKG => CK4
1254 type(rngf_type) , intent(in) :: rng
1255 real(CKG) , intent(in) :: scale
1256 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1257 end subroutine
1258#endif
1259
1260#if CK3_ENABLED
1261 module subroutine setCovRandGRNGFS0_CK3(rng, rand, scale)
1262#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1263 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFS0_CK3
1264#endif
1265 use pm_kind, only: CKG => CK3
1266 type(rngf_type) , intent(in) :: rng
1267 real(CKG) , intent(in) :: scale
1268 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1269 end subroutine
1270#endif
1271
1272#if CK2_ENABLED
1273 module subroutine setCovRandGRNGFS0_CK2(rng, rand, scale)
1274#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1275 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFS0_CK2
1276#endif
1277 use pm_kind, only: CKG => CK2
1278 type(rngf_type) , intent(in) :: rng
1279 real(CKG) , intent(in) :: scale
1280 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1281 end subroutine
1282#endif
1283
1284#if CK1_ENABLED
1285 module subroutine setCovRandGRNGFS0_CK1(rng, rand, scale)
1286#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1287 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFS0_CK1
1288#endif
1289 use pm_kind, only: CKG => CK1
1290 type(rngf_type) , intent(in) :: rng
1291 real(CKG) , intent(in) :: scale
1292 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1293 end subroutine
1294#endif
1295
1296 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1297
1298#if CK5_ENABLED
1299 module subroutine setCovRandGRNGFS1_CK5(rng, rand, scale)
1300#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1301 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFS1_CK5
1302#endif
1303 use pm_kind, only: CKG => CK5
1304 type(rngf_type) , intent(in) :: rng
1305 real(CKG) , intent(in) , contiguous :: scale(:)
1306 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1307 end subroutine
1308#endif
1309
1310#if CK4_ENABLED
1311 module subroutine setCovRandGRNGFS1_CK4(rng, rand, scale)
1312#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1313 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFS1_CK4
1314#endif
1315 use pm_kind, only: CKG => CK4
1316 type(rngf_type) , intent(in) :: rng
1317 real(CKG) , intent(in) , contiguous :: scale(:)
1318 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1319 end subroutine
1320#endif
1321
1322#if CK3_ENABLED
1323 module subroutine setCovRandGRNGFS1_CK3(rng, rand, scale)
1324#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1325 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFS1_CK3
1326#endif
1327 use pm_kind, only: CKG => CK3
1328 type(rngf_type) , intent(in) :: rng
1329 real(CKG) , intent(in) , contiguous :: scale(:)
1330 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1331 end subroutine
1332#endif
1333
1334#if CK2_ENABLED
1335 module subroutine setCovRandGRNGFS1_CK2(rng, rand, scale)
1336#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1337 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFS1_CK2
1338#endif
1339 use pm_kind, only: CKG => CK2
1340 type(rngf_type) , intent(in) :: rng
1341 real(CKG) , intent(in) , contiguous :: scale(:)
1342 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1343 end subroutine
1344#endif
1345
1346#if CK1_ENABLED
1347 module subroutine setCovRandGRNGFS1_CK1(rng, rand, scale)
1348#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1349 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGFS1_CK1
1350#endif
1351 use pm_kind, only: CKG => CK1
1352 type(rngf_type) , intent(in) :: rng
1353 real(CKG) , intent(in) , contiguous :: scale(:)
1354 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1355 end subroutine
1356#endif
1357
1358 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1359
1360 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1361 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1362 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1363
1364 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1365
1366#if CK5_ENABLED
1367 PURE module subroutine setCovRandGRNGXSD_CK5(rng, rand)
1368#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1369 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXSD_CK5
1370#endif
1371 use pm_kind, only: CKG => CK5
1372 type(xoshiro256ssw_type), intent(inout) :: rng
1373 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1374 end subroutine
1375#endif
1376
1377#if CK4_ENABLED
1378 PURE module subroutine setCovRandGRNGXSD_CK4(rng, rand)
1379#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1380 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXSD_CK4
1381#endif
1382 use pm_kind, only: CKG => CK4
1383 type(xoshiro256ssw_type), intent(inout) :: rng
1384 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1385 end subroutine
1386#endif
1387
1388#if CK3_ENABLED
1389 PURE module subroutine setCovRandGRNGXSD_CK3(rng, rand)
1390#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1391 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXSD_CK3
1392#endif
1393 use pm_kind, only: CKG => CK3
1394 type(xoshiro256ssw_type), intent(inout) :: rng
1395 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1396 end subroutine
1397#endif
1398
1399#if CK2_ENABLED
1400 PURE module subroutine setCovRandGRNGXSD_CK2(rng, rand)
1401#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1402 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXSD_CK2
1403#endif
1404 use pm_kind, only: CKG => CK2
1405 type(xoshiro256ssw_type), intent(inout) :: rng
1406 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1407 end subroutine
1408#endif
1409
1410#if CK1_ENABLED
1411 PURE module subroutine setCovRandGRNGXSD_CK1(rng, rand)
1412#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1413 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXSD_CK1
1414#endif
1415 use pm_kind, only: CKG => CK1
1416 type(xoshiro256ssw_type), intent(inout) :: rng
1417 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1418 end subroutine
1419#endif
1420
1421 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1422
1423#if CK5_ENABLED
1424 PURE module subroutine setCovRandGRNGXS0_CK5(rng, rand, scale)
1425#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1426 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXS0_CK5
1427#endif
1428 use pm_kind, only: CKG => CK5
1429 type(xoshiro256ssw_type), intent(inout) :: rng
1430 real(CKG) , intent(in) :: scale
1431 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1432 end subroutine
1433#endif
1434
1435#if CK4_ENABLED
1436 PURE module subroutine setCovRandGRNGXS0_CK4(rng, rand, scale)
1437#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1438 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXS0_CK4
1439#endif
1440 use pm_kind, only: CKG => CK4
1441 type(xoshiro256ssw_type), intent(inout) :: rng
1442 real(CKG) , intent(in) :: scale
1443 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1444 end subroutine
1445#endif
1446
1447#if CK3_ENABLED
1448 PURE module subroutine setCovRandGRNGXS0_CK3(rng, rand, scale)
1449#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1450 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXS0_CK3
1451#endif
1452 use pm_kind, only: CKG => CK3
1453 type(xoshiro256ssw_type), intent(inout) :: rng
1454 real(CKG) , intent(in) :: scale
1455 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1456 end subroutine
1457#endif
1458
1459#if CK2_ENABLED
1460 PURE module subroutine setCovRandGRNGXS0_CK2(rng, rand, scale)
1461#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1462 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXS0_CK2
1463#endif
1464 use pm_kind, only: CKG => CK2
1465 type(xoshiro256ssw_type), intent(inout) :: rng
1466 real(CKG) , intent(in) :: scale
1467 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1468 end subroutine
1469#endif
1470
1471#if CK1_ENABLED
1472 PURE module subroutine setCovRandGRNGXS0_CK1(rng, rand, scale)
1473#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1474 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXS0_CK1
1475#endif
1476 use pm_kind, only: CKG => CK1
1477 type(xoshiro256ssw_type), intent(inout) :: rng
1478 real(CKG) , intent(in) :: scale
1479 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1480 end subroutine
1481#endif
1482
1483 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1484
1485#if CK5_ENABLED
1486 PURE module subroutine setCovRandGRNGXS1_CK5(rng, rand, scale)
1487#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1488 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXS1_CK5
1489#endif
1490 use pm_kind, only: CKG => CK5
1491 type(xoshiro256ssw_type), intent(inout) :: rng
1492 real(CKG) , intent(in) , contiguous :: scale(:)
1493 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1494 end subroutine
1495#endif
1496
1497#if CK4_ENABLED
1498 PURE module subroutine setCovRandGRNGXS1_CK4(rng, rand, scale)
1499#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1500 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXS1_CK4
1501#endif
1502 use pm_kind, only: CKG => CK4
1503 type(xoshiro256ssw_type), intent(inout) :: rng
1504 real(CKG) , intent(in) , contiguous :: scale(:)
1505 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1506 end subroutine
1507#endif
1508
1509#if CK3_ENABLED
1510 PURE module subroutine setCovRandGRNGXS1_CK3(rng, rand, scale)
1511#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1512 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXS1_CK3
1513#endif
1514 use pm_kind, only: CKG => CK3
1515 type(xoshiro256ssw_type), intent(inout) :: rng
1516 real(CKG) , intent(in) , contiguous :: scale(:)
1517 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1518 end subroutine
1519#endif
1520
1521#if CK2_ENABLED
1522 PURE module subroutine setCovRandGRNGXS1_CK2(rng, rand, scale)
1523#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1524 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXS1_CK2
1525#endif
1526 use pm_kind, only: CKG => CK2
1527 type(xoshiro256ssw_type), intent(inout) :: rng
1528 real(CKG) , intent(in) , contiguous :: scale(:)
1529 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1530 end subroutine
1531#endif
1532
1533#if CK1_ENABLED
1534 PURE module subroutine setCovRandGRNGXS1_CK1(rng, rand, scale)
1535#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1536 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandGRNGXS1_CK1
1537#endif
1538 use pm_kind, only: CKG => CK1
1539 type(xoshiro256ssw_type), intent(inout) :: rng
1540 real(CKG) , intent(in) , contiguous :: scale(:)
1541 complex(CKG) , intent(out) , contiguous :: rand(:,:)
1542 end subroutine
1543#endif
1544
1545 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1546
1547 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1548 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1549 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1550
1551 end interface
1552
1553 ! setCovRandD
1554
1555 interface setCovRand
1556
1557 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1558 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1559 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1560
1561 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1562
1563#if RK5_ENABLED
1564 module subroutine setCovRandDRNGFSD_RK5(rng, rand, method, eta)
1565#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1566 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGFSD_RK5
1567#endif
1568 use pm_kind, only: RKG => RK5
1569 type(dvine_type) , intent(in) :: method
1570 type(rngf_type) , intent(in) :: rng
1571 real(RKG) , intent(in) :: eta
1572 real(RKG) , intent(out) , contiguous :: rand(:,:)
1573 end subroutine
1574#endif
1575
1576#if RK4_ENABLED
1577 module subroutine setCovRandDRNGFSD_RK4(rng, rand, method, eta)
1578#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1579 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGFSD_RK4
1580#endif
1581 use pm_kind, only: RKG => RK4
1582 type(dvine_type) , intent(in) :: method
1583 type(rngf_type) , intent(in) :: rng
1584 real(RKG) , intent(in) :: eta
1585 real(RKG) , intent(out) , contiguous :: rand(:,:)
1586 end subroutine
1587#endif
1588
1589#if RK3_ENABLED
1590 module subroutine setCovRandDRNGFSD_RK3(rng, rand, method, eta)
1591#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1592 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGFSD_RK3
1593#endif
1594 use pm_kind, only: RKG => RK3
1595 type(dvine_type) , intent(in) :: method
1596 type(rngf_type) , intent(in) :: rng
1597 real(RKG) , intent(in) :: eta
1598 real(RKG) , intent(out) , contiguous :: rand(:,:)
1599 end subroutine
1600#endif
1601
1602#if RK2_ENABLED
1603 module subroutine setCovRandDRNGFSD_RK2(rng, rand, method, eta)
1604#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1605 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGFSD_RK2
1606#endif
1607 use pm_kind, only: RKG => RK2
1608 type(dvine_type) , intent(in) :: method
1609 type(rngf_type) , intent(in) :: rng
1610 real(RKG) , intent(in) :: eta
1611 real(RKG) , intent(out) , contiguous :: rand(:,:)
1612 end subroutine
1613#endif
1614
1615#if RK1_ENABLED
1616 module subroutine setCovRandDRNGFSD_RK1(rng, rand, method, eta)
1617#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1618 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGFSD_RK1
1619#endif
1620 use pm_kind, only: RKG => RK1
1621 type(dvine_type) , intent(in) :: method
1622 type(rngf_type) , intent(in) :: rng
1623 real(RKG) , intent(in) :: eta
1624 real(RKG) , intent(out) , contiguous :: rand(:,:)
1625 end subroutine
1626#endif
1627
1628 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1629
1630#if RK5_ENABLED
1631 module subroutine setCovRandDRNGFS0_RK5(rng, rand, method, eta, scale)
1632#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1633 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGFS0_RK5
1634#endif
1635 use pm_kind, only: RKG => RK5
1636 type(dvine_type) , intent(in) :: method
1637 type(rngf_type) , intent(in) :: rng
1638 real(RKG) , intent(in) :: eta
1639 real(RKG) , intent(in) :: scale
1640 real(RKG) , intent(out) , contiguous :: rand(:,:)
1641 end subroutine
1642#endif
1643
1644#if RK4_ENABLED
1645 module subroutine setCovRandDRNGFS0_RK4(rng, rand, method, eta, scale)
1646#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1647 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGFS0_RK4
1648#endif
1649 use pm_kind, only: RKG => RK4
1650 type(dvine_type) , intent(in) :: method
1651 type(rngf_type) , intent(in) :: rng
1652 real(RKG) , intent(in) :: eta
1653 real(RKG) , intent(in) :: scale
1654 real(RKG) , intent(out) , contiguous :: rand(:,:)
1655 end subroutine
1656#endif
1657
1658#if RK3_ENABLED
1659 module subroutine setCovRandDRNGFS0_RK3(rng, rand, method, eta, scale)
1660#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1661 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGFS0_RK3
1662#endif
1663 use pm_kind, only: RKG => RK3
1664 type(dvine_type) , intent(in) :: method
1665 type(rngf_type) , intent(in) :: rng
1666 real(RKG) , intent(in) :: eta
1667 real(RKG) , intent(in) :: scale
1668 real(RKG) , intent(out) , contiguous :: rand(:,:)
1669 end subroutine
1670#endif
1671
1672#if RK2_ENABLED
1673 module subroutine setCovRandDRNGFS0_RK2(rng, rand, method, eta, scale)
1674#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1675 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGFS0_RK2
1676#endif
1677 use pm_kind, only: RKG => RK2
1678 type(dvine_type) , intent(in) :: method
1679 type(rngf_type) , intent(in) :: rng
1680 real(RKG) , intent(in) :: eta
1681 real(RKG) , intent(in) :: scale
1682 real(RKG) , intent(out) , contiguous :: rand(:,:)
1683 end subroutine
1684#endif
1685
1686#if RK1_ENABLED
1687 module subroutine setCovRandDRNGFS0_RK1(rng, rand, method, eta, scale)
1688#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1689 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGFS0_RK1
1690#endif
1691 use pm_kind, only: RKG => RK1
1692 type(dvine_type) , intent(in) :: method
1693 type(rngf_type) , intent(in) :: rng
1694 real(RKG) , intent(in) :: eta
1695 real(RKG) , intent(in) :: scale
1696 real(RKG) , intent(out) , contiguous :: rand(:,:)
1697 end subroutine
1698#endif
1699
1700 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1701
1702#if RK5_ENABLED
1703 module subroutine setCovRandDRNGFS1_RK5(rng, rand, method, eta, scale)
1704#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1705 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGFS1_RK5
1706#endif
1707 use pm_kind, only: RKG => RK5
1708 type(dvine_type) , intent(in) :: method
1709 type(rngf_type) , intent(in) :: rng
1710 real(RKG) , intent(in) :: eta
1711 real(RKG) , intent(in) , contiguous :: scale(:)
1712 real(RKG) , intent(out) , contiguous :: rand(:,:)
1713 end subroutine
1714#endif
1715
1716#if RK4_ENABLED
1717 module subroutine setCovRandDRNGFS1_RK4(rng, rand, method, eta, scale)
1718#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1719 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGFS1_RK4
1720#endif
1721 use pm_kind, only: RKG => RK4
1722 type(dvine_type) , intent(in) :: method
1723 type(rngf_type) , intent(in) :: rng
1724 real(RKG) , intent(in) :: eta
1725 real(RKG) , intent(in) , contiguous :: scale(:)
1726 real(RKG) , intent(out) , contiguous :: rand(:,:)
1727 end subroutine
1728#endif
1729
1730#if RK3_ENABLED
1731 module subroutine setCovRandDRNGFS1_RK3(rng, rand, method, eta, scale)
1732#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1733 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGFS1_RK3
1734#endif
1735 use pm_kind, only: RKG => RK3
1736 type(dvine_type) , intent(in) :: method
1737 type(rngf_type) , intent(in) :: rng
1738 real(RKG) , intent(in) :: eta
1739 real(RKG) , intent(in) , contiguous :: scale(:)
1740 real(RKG) , intent(out) , contiguous :: rand(:,:)
1741 end subroutine
1742#endif
1743
1744#if RK2_ENABLED
1745 module subroutine setCovRandDRNGFS1_RK2(rng, rand, method, eta, scale)
1746#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1747 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGFS1_RK2
1748#endif
1749 use pm_kind, only: RKG => RK2
1750 type(dvine_type) , intent(in) :: method
1751 type(rngf_type) , intent(in) :: rng
1752 real(RKG) , intent(in) :: eta
1753 real(RKG) , intent(in) , contiguous :: scale(:)
1754 real(RKG) , intent(out) , contiguous :: rand(:,:)
1755 end subroutine
1756#endif
1757
1758#if RK1_ENABLED
1759 module subroutine setCovRandDRNGFS1_RK1(rng, rand, method, eta, scale)
1760#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1761 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGFS1_RK1
1762#endif
1763 use pm_kind, only: RKG => RK1
1764 type(dvine_type) , intent(in) :: method
1765 type(rngf_type) , intent(in) :: rng
1766 real(RKG) , intent(in) :: eta
1767 real(RKG) , intent(in) , contiguous :: scale(:)
1768 real(RKG) , intent(out) , contiguous :: rand(:,:)
1769 end subroutine
1770#endif
1771
1772 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1773
1774 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1775 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1776 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1777
1778 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1779
1780#if RK5_ENABLED
1781 PURE module subroutine setCovRandDRNGXSD_RK5(rng, rand, method, eta)
1782#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1783 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGXSD_RK5
1784#endif
1785 use pm_kind, only: RKG => RK5
1786 type(dvine_type) , intent(in) :: method
1787 type(xoshiro256ssw_type), intent(inout) :: rng
1788 real(RKG) , intent(in) :: eta
1789 real(RKG) , intent(out) , contiguous :: rand(:,:)
1790 end subroutine
1791#endif
1792
1793#if RK4_ENABLED
1794 PURE module subroutine setCovRandDRNGXSD_RK4(rng, rand, method, eta)
1795#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1796 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGXSD_RK4
1797#endif
1798 use pm_kind, only: RKG => RK4
1799 type(dvine_type) , intent(in) :: method
1800 type(xoshiro256ssw_type), intent(inout) :: rng
1801 real(RKG) , intent(in) :: eta
1802 real(RKG) , intent(out) , contiguous :: rand(:,:)
1803 end subroutine
1804#endif
1805
1806#if RK3_ENABLED
1807 PURE module subroutine setCovRandDRNGXSD_RK3(rng, rand, method, eta)
1808#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1809 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGXSD_RK3
1810#endif
1811 use pm_kind, only: RKG => RK3
1812 type(dvine_type) , intent(in) :: method
1813 type(xoshiro256ssw_type), intent(inout) :: rng
1814 real(RKG) , intent(in) :: eta
1815 real(RKG) , intent(out) , contiguous :: rand(:,:)
1816 end subroutine
1817#endif
1818
1819#if RK2_ENABLED
1820 PURE module subroutine setCovRandDRNGXSD_RK2(rng, rand, method, eta)
1821#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1822 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGXSD_RK2
1823#endif
1824 use pm_kind, only: RKG => RK2
1825 type(dvine_type) , intent(in) :: method
1826 type(xoshiro256ssw_type), intent(inout) :: rng
1827 real(RKG) , intent(in) :: eta
1828 real(RKG) , intent(out) , contiguous :: rand(:,:)
1829 end subroutine
1830#endif
1831
1832#if RK1_ENABLED
1833 PURE module subroutine setCovRandDRNGXSD_RK1(rng, rand, method, eta)
1834#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1835 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGXSD_RK1
1836#endif
1837 use pm_kind, only: RKG => RK1
1838 type(dvine_type) , intent(in) :: method
1839 type(xoshiro256ssw_type), intent(inout) :: rng
1840 real(RKG) , intent(in) :: eta
1841 real(RKG) , intent(out) , contiguous :: rand(:,:)
1842 end subroutine
1843#endif
1844
1845 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1846
1847#if RK5_ENABLED
1848 PURE module subroutine setCovRandDRNGXS0_RK5(rng, rand, method, eta, scale)
1849#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1850 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGXS0_RK5
1851#endif
1852 use pm_kind, only: RKG => RK5
1853 type(dvine_type) , intent(in) :: method
1854 type(xoshiro256ssw_type), intent(inout) :: rng
1855 real(RKG) , intent(in) :: eta
1856 real(RKG) , intent(in) :: scale
1857 real(RKG) , intent(out) , contiguous :: rand(:,:)
1858 end subroutine
1859#endif
1860
1861#if RK4_ENABLED
1862 PURE module subroutine setCovRandDRNGXS0_RK4(rng, rand, method, eta, scale)
1863#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1864 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGXS0_RK4
1865#endif
1866 use pm_kind, only: RKG => RK4
1867 type(dvine_type) , intent(in) :: method
1868 type(xoshiro256ssw_type), intent(inout) :: rng
1869 real(RKG) , intent(in) :: eta
1870 real(RKG) , intent(in) :: scale
1871 real(RKG) , intent(out) , contiguous :: rand(:,:)
1872 end subroutine
1873#endif
1874
1875#if RK3_ENABLED
1876 PURE module subroutine setCovRandDRNGXS0_RK3(rng, rand, method, eta, scale)
1877#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1878 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGXS0_RK3
1879#endif
1880 use pm_kind, only: RKG => RK3
1881 type(dvine_type) , intent(in) :: method
1882 type(xoshiro256ssw_type), intent(inout) :: rng
1883 real(RKG) , intent(in) :: eta
1884 real(RKG) , intent(in) :: scale
1885 real(RKG) , intent(out) , contiguous :: rand(:,:)
1886 end subroutine
1887#endif
1888
1889#if RK2_ENABLED
1890 PURE module subroutine setCovRandDRNGXS0_RK2(rng, rand, method, eta, scale)
1891#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1892 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGXS0_RK2
1893#endif
1894 use pm_kind, only: RKG => RK2
1895 type(dvine_type) , intent(in) :: method
1896 type(xoshiro256ssw_type), intent(inout) :: rng
1897 real(RKG) , intent(in) :: eta
1898 real(RKG) , intent(in) :: scale
1899 real(RKG) , intent(out) , contiguous :: rand(:,:)
1900 end subroutine
1901#endif
1902
1903#if RK1_ENABLED
1904 PURE module subroutine setCovRandDRNGXS0_RK1(rng, rand, method, eta, scale)
1905#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1906 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGXS0_RK1
1907#endif
1908 use pm_kind, only: RKG => RK1
1909 type(dvine_type) , intent(in) :: method
1910 type(xoshiro256ssw_type), intent(inout) :: rng
1911 real(RKG) , intent(in) :: eta
1912 real(RKG) , intent(in) :: scale
1913 real(RKG) , intent(out) , contiguous :: rand(:,:)
1914 end subroutine
1915#endif
1916
1917 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1918
1919#if RK5_ENABLED
1920 PURE module subroutine setCovRandDRNGXS1_RK5(rng, rand, method, eta, scale)
1921#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1922 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGXS1_RK5
1923#endif
1924 use pm_kind, only: RKG => RK5
1925 type(dvine_type) , intent(in) :: method
1926 type(xoshiro256ssw_type), intent(inout) :: rng
1927 real(RKG) , intent(in) :: eta
1928 real(RKG) , intent(in) , contiguous :: scale(:)
1929 real(RKG) , intent(out) , contiguous :: rand(:,:)
1930 end subroutine
1931#endif
1932
1933#if RK4_ENABLED
1934 PURE module subroutine setCovRandDRNGXS1_RK4(rng, rand, method, eta, scale)
1935#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1936 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGXS1_RK4
1937#endif
1938 use pm_kind, only: RKG => RK4
1939 type(dvine_type) , intent(in) :: method
1940 type(xoshiro256ssw_type), intent(inout) :: rng
1941 real(RKG) , intent(in) :: eta
1942 real(RKG) , intent(in) , contiguous :: scale(:)
1943 real(RKG) , intent(out) , contiguous :: rand(:,:)
1944 end subroutine
1945#endif
1946
1947#if RK3_ENABLED
1948 PURE module subroutine setCovRandDRNGXS1_RK3(rng, rand, method, eta, scale)
1949#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1950 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGXS1_RK3
1951#endif
1952 use pm_kind, only: RKG => RK3
1953 type(dvine_type) , intent(in) :: method
1954 type(xoshiro256ssw_type), intent(inout) :: rng
1955 real(RKG) , intent(in) :: eta
1956 real(RKG) , intent(in) , contiguous :: scale(:)
1957 real(RKG) , intent(out) , contiguous :: rand(:,:)
1958 end subroutine
1959#endif
1960
1961#if RK2_ENABLED
1962 PURE module subroutine setCovRandDRNGXS1_RK2(rng, rand, method, eta, scale)
1963#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1964 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGXS1_RK2
1965#endif
1966 use pm_kind, only: RKG => RK2
1967 type(dvine_type) , intent(in) :: method
1968 type(xoshiro256ssw_type), intent(inout) :: rng
1969 real(RKG) , intent(in) :: eta
1970 real(RKG) , intent(in) , contiguous :: scale(:)
1971 real(RKG) , intent(out) , contiguous :: rand(:,:)
1972 end subroutine
1973#endif
1974
1975#if RK1_ENABLED
1976 PURE module subroutine setCovRandDRNGXS1_RK1(rng, rand, method, eta, scale)
1977#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1978 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandDRNGXS1_RK1
1979#endif
1980 use pm_kind, only: RKG => RK1
1981 type(dvine_type) , intent(in) :: method
1982 type(xoshiro256ssw_type), intent(inout) :: rng
1983 real(RKG) , intent(in) :: eta
1984 real(RKG) , intent(in) , contiguous :: scale(:)
1985 real(RKG) , intent(out) , contiguous :: rand(:,:)
1986 end subroutine
1987#endif
1988
1989 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1990
1991 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1992 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1993 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1994
1995 end interface
1996
1997 ! setCovRandO
1998
1999 interface setCovRand
2000
2001 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2002 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2003 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2004
2005 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2006
2007#if RK5_ENABLED
2008 module subroutine setCovRandORNGFSD_RK5(rng, rand, method, eta)
2009#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2010 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGFSD_RK5
2011#endif
2012 use pm_kind, only: RKG => RK5
2013 type(onion_type) , intent(out) :: method
2014 type(rngf_type) , intent(in) :: rng
2015 real(RKG) , intent(in) :: eta
2016 real(RKG) , intent(out) , contiguous :: rand(:,:)
2017 end subroutine
2018#endif
2019
2020#if RK4_ENABLED
2021 module subroutine setCovRandORNGFSD_RK4(rng, rand, method, eta)
2022#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2023 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGFSD_RK4
2024#endif
2025 use pm_kind, only: RKG => RK4
2026 type(onion_type) , intent(out) :: method
2027 type(rngf_type) , intent(in) :: rng
2028 real(RKG) , intent(in) :: eta
2029 real(RKG) , intent(out) , contiguous :: rand(:,:)
2030 end subroutine
2031#endif
2032
2033#if RK3_ENABLED
2034 module subroutine setCovRandORNGFSD_RK3(rng, rand, method, eta)
2035#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2036 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGFSD_RK3
2037#endif
2038 use pm_kind, only: RKG => RK3
2039 type(onion_type) , intent(out) :: method
2040 type(rngf_type) , intent(in) :: rng
2041 real(RKG) , intent(in) :: eta
2042 real(RKG) , intent(out) , contiguous :: rand(:,:)
2043 end subroutine
2044#endif
2045
2046#if RK2_ENABLED
2047 module subroutine setCovRandORNGFSD_RK2(rng, rand, method, eta)
2048#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2049 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGFSD_RK2
2050#endif
2051 use pm_kind, only: RKG => RK2
2052 type(onion_type) , intent(out) :: method
2053 type(rngf_type) , intent(in) :: rng
2054 real(RKG) , intent(in) :: eta
2055 real(RKG) , intent(out) , contiguous :: rand(:,:)
2056 end subroutine
2057#endif
2058
2059#if RK1_ENABLED
2060 module subroutine setCovRandORNGFSD_RK1(rng, rand, method, eta)
2061#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2062 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGFSD_RK1
2063#endif
2064 use pm_kind, only: RKG => RK1
2065 type(onion_type) , intent(out) :: method
2066 type(rngf_type) , intent(in) :: rng
2067 real(RKG) , intent(in) :: eta
2068 real(RKG) , intent(out) , contiguous :: rand(:,:)
2069 end subroutine
2070#endif
2071
2072 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2073
2074#if RK5_ENABLED
2075 module subroutine setCovRandORNGFS0_RK5(rng, rand, method, eta, scale)
2076#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2077 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGFS0_RK5
2078#endif
2079 use pm_kind, only: RKG => RK5
2080 type(onion_type) , intent(out) :: method
2081 type(rngf_type) , intent(in) :: rng
2082 real(RKG) , intent(in) :: eta
2083 real(RKG) , intent(in) :: scale
2084 real(RKG) , intent(out) , contiguous :: rand(:,:)
2085 end subroutine
2086#endif
2087
2088#if RK4_ENABLED
2089 module subroutine setCovRandORNGFS0_RK4(rng, rand, method, eta, scale)
2090#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2091 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGFS0_RK4
2092#endif
2093 use pm_kind, only: RKG => RK4
2094 type(onion_type) , intent(out) :: method
2095 type(rngf_type) , intent(in) :: rng
2096 real(RKG) , intent(in) :: eta
2097 real(RKG) , intent(in) :: scale
2098 real(RKG) , intent(out) , contiguous :: rand(:,:)
2099 end subroutine
2100#endif
2101
2102#if RK3_ENABLED
2103 module subroutine setCovRandORNGFS0_RK3(rng, rand, method, eta, scale)
2104#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2105 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGFS0_RK3
2106#endif
2107 use pm_kind, only: RKG => RK3
2108 type(onion_type) , intent(out) :: method
2109 type(rngf_type) , intent(in) :: rng
2110 real(RKG) , intent(in) :: eta
2111 real(RKG) , intent(in) :: scale
2112 real(RKG) , intent(out) , contiguous :: rand(:,:)
2113 end subroutine
2114#endif
2115
2116#if RK2_ENABLED
2117 module subroutine setCovRandORNGFS0_RK2(rng, rand, method, eta, scale)
2118#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2119 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGFS0_RK2
2120#endif
2121 use pm_kind, only: RKG => RK2
2122 type(onion_type) , intent(out) :: method
2123 type(rngf_type) , intent(in) :: rng
2124 real(RKG) , intent(in) :: eta
2125 real(RKG) , intent(in) :: scale
2126 real(RKG) , intent(out) , contiguous :: rand(:,:)
2127 end subroutine
2128#endif
2129
2130#if RK1_ENABLED
2131 module subroutine setCovRandORNGFS0_RK1(rng, rand, method, eta, scale)
2132#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2133 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGFS0_RK1
2134#endif
2135 use pm_kind, only: RKG => RK1
2136 type(onion_type) , intent(out) :: method
2137 type(rngf_type) , intent(in) :: rng
2138 real(RKG) , intent(in) :: eta
2139 real(RKG) , intent(in) :: scale
2140 real(RKG) , intent(out) , contiguous :: rand(:,:)
2141 end subroutine
2142#endif
2143
2144 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2145
2146#if RK5_ENABLED
2147 module subroutine setCovRandORNGFS1_RK5(rng, rand, method, eta, scale)
2148#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2149 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGFS1_RK5
2150#endif
2151 use pm_kind, only: RKG => RK5
2152 type(onion_type) , intent(out) :: method
2153 type(rngf_type) , intent(in) :: rng
2154 real(RKG) , intent(in) :: eta
2155 real(RKG) , intent(in) , contiguous :: scale(:)
2156 real(RKG) , intent(out) , contiguous :: rand(:,:)
2157 end subroutine
2158#endif
2159
2160#if RK4_ENABLED
2161 module subroutine setCovRandORNGFS1_RK4(rng, rand, method, eta, scale)
2162#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2163 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGFS1_RK4
2164#endif
2165 use pm_kind, only: RKG => RK4
2166 type(onion_type) , intent(out) :: method
2167 type(rngf_type) , intent(in) :: rng
2168 real(RKG) , intent(in) :: eta
2169 real(RKG) , intent(in) , contiguous :: scale(:)
2170 real(RKG) , intent(out) , contiguous :: rand(:,:)
2171 end subroutine
2172#endif
2173
2174#if RK3_ENABLED
2175 module subroutine setCovRandORNGFS1_RK3(rng, rand, method, eta, scale)
2176#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2177 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGFS1_RK3
2178#endif
2179 use pm_kind, only: RKG => RK3
2180 type(onion_type) , intent(out) :: method
2181 type(rngf_type) , intent(in) :: rng
2182 real(RKG) , intent(in) :: eta
2183 real(RKG) , intent(in) , contiguous :: scale(:)
2184 real(RKG) , intent(out) , contiguous :: rand(:,:)
2185 end subroutine
2186#endif
2187
2188#if RK2_ENABLED
2189 module subroutine setCovRandORNGFS1_RK2(rng, rand, method, eta, scale)
2190#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2191 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGFS1_RK2
2192#endif
2193 use pm_kind, only: RKG => RK2
2194 type(onion_type) , intent(out) :: method
2195 type(rngf_type) , intent(in) :: rng
2196 real(RKG) , intent(in) :: eta
2197 real(RKG) , intent(in) , contiguous :: scale(:)
2198 real(RKG) , intent(out) , contiguous :: rand(:,:)
2199 end subroutine
2200#endif
2201
2202#if RK1_ENABLED
2203 module subroutine setCovRandORNGFS1_RK1(rng, rand, method, eta, scale)
2204#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2205 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGFS1_RK1
2206#endif
2207 use pm_kind, only: RKG => RK1
2208 type(onion_type) , intent(out) :: method
2209 type(rngf_type) , intent(in) :: rng
2210 real(RKG) , intent(in) :: eta
2211 real(RKG) , intent(in) , contiguous :: scale(:)
2212 real(RKG) , intent(out) , contiguous :: rand(:,:)
2213 end subroutine
2214#endif
2215
2216 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2217
2218 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2219 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2220 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2221
2222 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2223
2224#if RK5_ENABLED
2225 PURE module subroutine setCovRandORNGXSD_RK5(rng, rand, method, eta)
2226#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2227 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGXSD_RK5
2228#endif
2229 use pm_kind, only: RKG => RK5
2230 type(onion_type) , intent(out) :: method
2231 type(xoshiro256ssw_type), intent(inout) :: rng
2232 real(RKG) , intent(in) :: eta
2233 real(RKG) , intent(out) , contiguous :: rand(:,:)
2234 end subroutine
2235#endif
2236
2237#if RK4_ENABLED
2238 PURE module subroutine setCovRandORNGXSD_RK4(rng, rand, method, eta)
2239#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2240 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGXSD_RK4
2241#endif
2242 use pm_kind, only: RKG => RK4
2243 type(onion_type) , intent(out) :: method
2244 type(xoshiro256ssw_type), intent(inout) :: rng
2245 real(RKG) , intent(in) :: eta
2246 real(RKG) , intent(out) , contiguous :: rand(:,:)
2247 end subroutine
2248#endif
2249
2250#if RK3_ENABLED
2251 PURE module subroutine setCovRandORNGXSD_RK3(rng, rand, method, eta)
2252#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2253 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGXSD_RK3
2254#endif
2255 use pm_kind, only: RKG => RK3
2256 type(onion_type) , intent(out) :: method
2257 type(xoshiro256ssw_type), intent(inout) :: rng
2258 real(RKG) , intent(in) :: eta
2259 real(RKG) , intent(out) , contiguous :: rand(:,:)
2260 end subroutine
2261#endif
2262
2263#if RK2_ENABLED
2264 PURE module subroutine setCovRandORNGXSD_RK2(rng, rand, method, eta)
2265#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2266 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGXSD_RK2
2267#endif
2268 use pm_kind, only: RKG => RK2
2269 type(onion_type) , intent(out) :: method
2270 type(xoshiro256ssw_type), intent(inout) :: rng
2271 real(RKG) , intent(in) :: eta
2272 real(RKG) , intent(out) , contiguous :: rand(:,:)
2273 end subroutine
2274#endif
2275
2276#if RK1_ENABLED
2277 PURE module subroutine setCovRandORNGXSD_RK1(rng, rand, method, eta)
2278#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2279 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGXSD_RK1
2280#endif
2281 use pm_kind, only: RKG => RK1
2282 type(onion_type) , intent(out) :: method
2283 type(xoshiro256ssw_type), intent(inout) :: rng
2284 real(RKG) , intent(in) :: eta
2285 real(RKG) , intent(out) , contiguous :: rand(:,:)
2286 end subroutine
2287#endif
2288
2289 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2290
2291#if RK5_ENABLED
2292 PURE module subroutine setCovRandORNGXS0_RK5(rng, rand, method, eta, scale)
2293#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2294 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGXS0_RK5
2295#endif
2296 use pm_kind, only: RKG => RK5
2297 type(onion_type) , intent(out) :: method
2298 type(xoshiro256ssw_type), intent(inout) :: rng
2299 real(RKG) , intent(in) :: eta
2300 real(RKG) , intent(in) :: scale
2301 real(RKG) , intent(out) , contiguous :: rand(:,:)
2302 end subroutine
2303#endif
2304
2305#if RK4_ENABLED
2306 PURE module subroutine setCovRandORNGXS0_RK4(rng, rand, method, eta, scale)
2307#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2308 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGXS0_RK4
2309#endif
2310 use pm_kind, only: RKG => RK4
2311 type(onion_type) , intent(out) :: method
2312 type(xoshiro256ssw_type), intent(inout) :: rng
2313 real(RKG) , intent(in) :: eta
2314 real(RKG) , intent(in) :: scale
2315 real(RKG) , intent(out) , contiguous :: rand(:,:)
2316 end subroutine
2317#endif
2318
2319#if RK3_ENABLED
2320 PURE module subroutine setCovRandORNGXS0_RK3(rng, rand, method, eta, scale)
2321#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2322 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGXS0_RK3
2323#endif
2324 use pm_kind, only: RKG => RK3
2325 type(onion_type) , intent(out) :: method
2326 type(xoshiro256ssw_type), intent(inout) :: rng
2327 real(RKG) , intent(in) :: eta
2328 real(RKG) , intent(in) :: scale
2329 real(RKG) , intent(out) , contiguous :: rand(:,:)
2330 end subroutine
2331#endif
2332
2333#if RK2_ENABLED
2334 PURE module subroutine setCovRandORNGXS0_RK2(rng, rand, method, eta, scale)
2335#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2336 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGXS0_RK2
2337#endif
2338 use pm_kind, only: RKG => RK2
2339 type(onion_type) , intent(out) :: method
2340 type(xoshiro256ssw_type), intent(inout) :: rng
2341 real(RKG) , intent(in) :: eta
2342 real(RKG) , intent(in) :: scale
2343 real(RKG) , intent(out) , contiguous :: rand(:,:)
2344 end subroutine
2345#endif
2346
2347#if RK1_ENABLED
2348 PURE module subroutine setCovRandORNGXS0_RK1(rng, rand, method, eta, scale)
2349#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2350 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGXS0_RK1
2351#endif
2352 use pm_kind, only: RKG => RK1
2353 type(onion_type) , intent(out) :: method
2354 type(xoshiro256ssw_type), intent(inout) :: rng
2355 real(RKG) , intent(in) :: eta
2356 real(RKG) , intent(in) :: scale
2357 real(RKG) , intent(out) , contiguous :: rand(:,:)
2358 end subroutine
2359#endif
2360
2361 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2362
2363#if RK5_ENABLED
2364 PURE module subroutine setCovRandORNGXS1_RK5(rng, rand, method, eta, scale)
2365#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2366 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGXS1_RK5
2367#endif
2368 use pm_kind, only: RKG => RK5
2369 type(onion_type) , intent(out) :: method
2370 type(xoshiro256ssw_type), intent(inout) :: rng
2371 real(RKG) , intent(in) :: eta
2372 real(RKG) , intent(in) , contiguous :: scale(:)
2373 real(RKG) , intent(out) , contiguous :: rand(:,:)
2374 end subroutine
2375#endif
2376
2377#if RK4_ENABLED
2378 PURE module subroutine setCovRandORNGXS1_RK4(rng, rand, method, eta, scale)
2379#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2380 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGXS1_RK4
2381#endif
2382 use pm_kind, only: RKG => RK4
2383 type(onion_type) , intent(out) :: method
2384 type(xoshiro256ssw_type), intent(inout) :: rng
2385 real(RKG) , intent(in) :: eta
2386 real(RKG) , intent(in) , contiguous :: scale(:)
2387 real(RKG) , intent(out) , contiguous :: rand(:,:)
2388 end subroutine
2389#endif
2390
2391#if RK3_ENABLED
2392 PURE module subroutine setCovRandORNGXS1_RK3(rng, rand, method, eta, scale)
2393#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2394 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGXS1_RK3
2395#endif
2396 use pm_kind, only: RKG => RK3
2397 type(onion_type) , intent(out) :: method
2398 type(xoshiro256ssw_type), intent(inout) :: rng
2399 real(RKG) , intent(in) :: eta
2400 real(RKG) , intent(in) , contiguous :: scale(:)
2401 real(RKG) , intent(out) , contiguous :: rand(:,:)
2402 end subroutine
2403#endif
2404
2405#if RK2_ENABLED
2406 PURE module subroutine setCovRandORNGXS1_RK2(rng, rand, method, eta, scale)
2407#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2408 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGXS1_RK2
2409#endif
2410 use pm_kind, only: RKG => RK2
2411 type(onion_type) , intent(out) :: method
2412 type(xoshiro256ssw_type), intent(inout) :: rng
2413 real(RKG) , intent(in) :: eta
2414 real(RKG) , intent(in) , contiguous :: scale(:)
2415 real(RKG) , intent(out) , contiguous :: rand(:,:)
2416 end subroutine
2417#endif
2418
2419#if RK1_ENABLED
2420 PURE module subroutine setCovRandORNGXS1_RK1(rng, rand, method, eta, scale)
2421#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2422 !DEC$ ATTRIBUTES DLLEXPORT :: setCovRandORNGXS1_RK1
2423#endif
2424 use pm_kind, only: RKG => RK1
2425 type(onion_type) , intent(out) :: method
2426 type(xoshiro256ssw_type), intent(inout) :: rng
2427 real(RKG) , intent(in) :: eta
2428 real(RKG) , intent(in) , contiguous :: scale(:)
2429 real(RKG) , intent(out) , contiguous :: rand(:,:)
2430 end subroutine
2431#endif
2432
2433 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2434
2435 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2436 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2437 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2438
2439 end interface
2440
2441!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2442
2443end module pm_distCov
Generate and return a random positive-definite (correlation or covariance) matrix using the Gram meth...
Definition: pm_distCov.F90:394
Return a random positive-definite power-law-distributed (correlation) matrix.
Definition: pm_distCov.F90:787
This module contains classes and procedures for generating random matrices distributed on the space o...
Definition: pm_distCov.F90:72
type(gram_type), parameter gram
The scalar constant of type gram_type implying the use of the Gram algorithm for generating random co...
Definition: pm_distCov.F90:157
type(onion_type) onion
The scalar module variable object of type onion_type implying the use of the Onion algorithm for gene...
Definition: pm_distCov.F90:331
type(dvine_type), parameter dvine
The scalar constant of type dvine_type implying the use of the Dvine algorithm for generating random ...
Definition: pm_distCov.F90:238
character(*, SK), parameter MODULE_NAME
Definition: pm_distCov.F90:79
This module contains classes and procedures for computing various statistical quantities related to t...
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
integer, parameter RK5
Definition: pm_kind.F90:478
integer, parameter RK4
Definition: pm_kind.F90:489
integer, parameter RK2
Definition: pm_kind.F90:511
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 CK5
Definition: pm_kind.F90:420
integer, parameter CK4
Definition: pm_kind.F90:431
integer, parameter CK2
Definition: pm_kind.F90:453
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 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
This the derived type whose instances imply the use of the Dvine algorithm for generating random cova...
Definition: pm_distCov.F90:201
This the derived type whose instances imply the use of the Gram algorithm for generating random covar...
Definition: pm_distCov.F90:120
This the derived type whose instances imply the use of the Onion algorithm for generating random cova...
Definition: pm_distCov.F90:283
This is a concrete derived type whose instances can be used to define/request the default uniform ran...
This is the derived type for declaring and generating objects of type xoshiro256ssw_type containing a...