ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_distUnifEll.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
141
142!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
143
145
146 use pm_kind, only: SK, IK, LK
147 use pm_distUnif, only: rngf_type
151
152 implicit none
153
154 character(*, SK), parameter :: MODULE_NAME = "@pm_distUnifEll"
155
156!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
157
192 end type
193
194!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
195
272
273 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
274
275#if RK5_ENABLED
276 PURE elemental module function getUnifEllLogPDF_D0_RK5(logChoDia, ndim) result(logPDF)
277#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
278 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifEllLogPDF_D0_RK5
279#endif
280 use pm_kind, only: RKG => RK5
281 integer(IK) , intent(in) :: ndim
282 real(RKG) , intent(in) :: logChoDia
283 real(RKG) :: logPDF
284 end function
285#endif
286
287#if RK4_ENABLED
288 PURE elemental module function getUnifEllLogPDF_D0_RK4(logChoDia, ndim) result(logPDF)
289#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
290 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifEllLogPDF_D0_RK4
291#endif
292 use pm_kind, only: RKG => RK4
293 integer(IK) , intent(in) :: ndim
294 real(RKG) , intent(in) :: logChoDia
295 real(RKG) :: logPDF
296 end function
297#endif
298
299#if RK3_ENABLED
300 PURE elemental module function getUnifEllLogPDF_D0_RK3(logChoDia, ndim) result(logPDF)
301#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
302 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifEllLogPDF_D0_RK3
303#endif
304 use pm_kind, only: RKG => RK3
305 integer(IK) , intent(in) :: ndim
306 real(RKG) , intent(in) :: logChoDia
307 real(RKG) :: logPDF
308 end function
309#endif
310
311#if RK2_ENABLED
312 PURE elemental module function getUnifEllLogPDF_D0_RK2(logChoDia, ndim) result(logPDF)
313#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
314 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifEllLogPDF_D0_RK2
315#endif
316 use pm_kind, only: RKG => RK2
317 integer(IK) , intent(in) :: ndim
318 real(RKG) , intent(in) :: logChoDia
319 real(RKG) :: logPDF
320 end function
321#endif
322
323#if RK1_ENABLED
324 PURE elemental module function getUnifEllLogPDF_D0_RK1(logChoDia, ndim) result(logPDF)
325#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
326 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifEllLogPDF_D0_RK1
327#endif
328 use pm_kind, only: RKG => RK1
329 integer(IK) , intent(in) :: ndim
330 real(RKG) , intent(in) :: logChoDia
331 real(RKG) :: logPDF
332 end function
333#endif
334
335 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
336
337#if RK5_ENABLED
338 PURE module function getUnifEllLogPDF_D1_RK5(logChoDia) result(logPDF)
339#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
340 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifEllLogPDF_D1_RK5
341#endif
342 use pm_kind, only: RKG => RK5
343 real(RKG) , intent(in) , contiguous :: logChoDia(:)
344 real(RKG) :: logPDF
345 end function
346#endif
347
348#if RK4_ENABLED
349 PURE module function getUnifEllLogPDF_D1_RK4(logChoDia) result(logPDF)
350#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
351 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifEllLogPDF_D1_RK4
352#endif
353 use pm_kind, only: RKG => RK4
354 real(RKG) , intent(in) , contiguous :: logChoDia(:)
355 real(RKG) :: logPDF
356 end function
357#endif
358
359#if RK3_ENABLED
360 PURE module function getUnifEllLogPDF_D1_RK3(logChoDia) result(logPDF)
361#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
362 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifEllLogPDF_D1_RK3
363#endif
364 use pm_kind, only: RKG => RK3
365 real(RKG) , intent(in) , contiguous :: logChoDia(:)
366 real(RKG) :: logPDF
367 end function
368#endif
369
370#if RK2_ENABLED
371 PURE module function getUnifEllLogPDF_D1_RK2(logChoDia) result(logPDF)
372#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
373 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifEllLogPDF_D1_RK2
374#endif
375 use pm_kind, only: RKG => RK2
376 real(RKG) , intent(in) , contiguous :: logChoDia(:)
377 real(RKG) :: logPDF
378 end function
379#endif
380
381#if RK1_ENABLED
382 PURE module function getUnifEllLogPDF_D1_RK1(logChoDia) result(logPDF)
383#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
384 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifEllLogPDF_D1_RK1
385#endif
386 use pm_kind, only: RKG => RK1
387 real(RKG) , intent(in) , contiguous :: logChoDia(:)
388 real(RKG) :: logPDF
389 end function
390#endif
391
392 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
393
394#if RK5_ENABLED
395 PURE module function getUnifEllLogPDF_D2_RK5(gramian) result(logPDF)
396#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
397 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifEllLogPDF_D2_RK5
398#endif
399 use pm_kind, only: RKG => RK5
400 real(RKG) , intent(in) , contiguous :: gramian(:,:)
401 real(RKG) :: logPDF
402 end function
403#endif
404
405#if RK4_ENABLED
406 PURE module function getUnifEllLogPDF_D2_RK4(gramian) result(logPDF)
407#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
408 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifEllLogPDF_D2_RK4
409#endif
410 use pm_kind, only: RKG => RK4
411 real(RKG) , intent(in) , contiguous :: gramian(:,:)
412 real(RKG) :: logPDF
413 end function
414#endif
415
416#if RK3_ENABLED
417 PURE module function getUnifEllLogPDF_D2_RK3(gramian) result(logPDF)
418#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
419 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifEllLogPDF_D2_RK3
420#endif
421 use pm_kind, only: RKG => RK3
422 real(RKG) , intent(in) , contiguous :: gramian(:,:)
423 real(RKG) :: logPDF
424 end function
425#endif
426
427#if RK2_ENABLED
428 PURE module function getUnifEllLogPDF_D2_RK2(gramian) result(logPDF)
429#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
430 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifEllLogPDF_D2_RK2
431#endif
432 use pm_kind, only: RKG => RK2
433 real(RKG) , intent(in) , contiguous :: gramian(:,:)
434 real(RKG) :: logPDF
435 end function
436#endif
437
438#if RK1_ENABLED
439 PURE module function getUnifEllLogPDF_D2_RK1(gramian) result(logPDF)
440#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
441 !DEC$ ATTRIBUTES DLLEXPORT :: getUnifEllLogPDF_D2_RK1
442#endif
443 use pm_kind, only: RKG => RK1
444 real(RKG) , intent(in) , contiguous :: gramian(:,:)
445 real(RKG) :: logPDF
446 end function
447#endif
448
449 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
450
451 end interface
452
453!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
454
556
557 ! D1 RNGD
558
560
561 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
562
563#if RK5_ENABLED
564 impure module function getMUR_RNGD_AM_DC_XXX_D1_RK5(mean) result(rand)
565#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
566 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_DC_XXX_D1_RK5
567#endif
568 use pm_kind, only: RKG => RK5
569 real(RKG) , intent(in) , contiguous :: mean(:)
570 real(RKG) :: rand(size(mean, 1, IK))
571 end function
572#endif
573
574#if RK4_ENABLED
575 impure module function getMUR_RNGD_AM_DC_XXX_D1_RK4(mean) result(rand)
576#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
577 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_DC_XXX_D1_RK4
578#endif
579 use pm_kind, only: RKG => RK4
580 real(RKG) , intent(in) , contiguous :: mean(:)
581 real(RKG) :: rand(size(mean, 1, IK))
582 end function
583#endif
584
585#if RK3_ENABLED
586 impure module function getMUR_RNGD_AM_DC_XXX_D1_RK3(mean) result(rand)
587#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
588 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_DC_XXX_D1_RK3
589#endif
590 use pm_kind, only: RKG => RK3
591 real(RKG) , intent(in) , contiguous :: mean(:)
592 real(RKG) :: rand(size(mean, 1, IK))
593 end function
594#endif
595
596#if RK2_ENABLED
597 impure module function getMUR_RNGD_AM_DC_XXX_D1_RK2(mean) result(rand)
598#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
599 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_DC_XXX_D1_RK2
600#endif
601 use pm_kind, only: RKG => RK2
602 real(RKG) , intent(in) , contiguous :: mean(:)
603 real(RKG) :: rand(size(mean, 1, IK))
604 end function
605#endif
606
607#if RK1_ENABLED
608 impure module function getMUR_RNGD_AM_DC_XXX_D1_RK1(mean) result(rand)
609#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
610 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_DC_XXX_D1_RK1
611#endif
612 use pm_kind, only: RKG => RK1
613 real(RKG) , intent(in) , contiguous :: mean(:)
614 real(RKG) :: rand(size(mean, 1, IK))
615 end function
616#endif
617
618 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
619
620#if RK5_ENABLED
621 impure module function getMUR_RNGD_DM_AC_UXD_D1_RK5(chol, subset) result(rand)
622#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
623 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_DM_AC_UXD_D1_RK5
624#endif
625 use pm_kind, only: RKG => RK5
626 type(uppDia_type) , intent(in) :: subset
627 real(RKG) , intent(in) , contiguous :: chol(:,:)
628 real(RKG) :: rand(size(chol, 1, IK))
629 end function
630#endif
631
632#if RK4_ENABLED
633 impure module function getMUR_RNGD_DM_AC_UXD_D1_RK4(chol, subset) result(rand)
634#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
635 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_DM_AC_UXD_D1_RK4
636#endif
637 use pm_kind, only: RKG => RK4
638 type(uppDia_type) , intent(in) :: subset
639 real(RKG) , intent(in) , contiguous :: chol(:,:)
640 real(RKG) :: rand(size(chol, 1, IK))
641 end function
642#endif
643
644#if RK3_ENABLED
645 impure module function getMUR_RNGD_DM_AC_UXD_D1_RK3(chol, subset) result(rand)
646#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
647 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_DM_AC_UXD_D1_RK3
648#endif
649 use pm_kind, only: RKG => RK3
650 type(uppDia_type) , intent(in) :: subset
651 real(RKG) , intent(in) , contiguous :: chol(:,:)
652 real(RKG) :: rand(size(chol, 1, IK))
653 end function
654#endif
655
656#if RK2_ENABLED
657 impure module function getMUR_RNGD_DM_AC_UXD_D1_RK2(chol, subset) result(rand)
658#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
659 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_DM_AC_UXD_D1_RK2
660#endif
661 use pm_kind, only: RKG => RK2
662 type(uppDia_type) , intent(in) :: subset
663 real(RKG) , intent(in) , contiguous :: chol(:,:)
664 real(RKG) :: rand(size(chol, 1, IK))
665 end function
666#endif
667
668#if RK1_ENABLED
669 impure module function getMUR_RNGD_DM_AC_UXD_D1_RK1(chol, subset) result(rand)
670#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
671 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_DM_AC_UXD_D1_RK1
672#endif
673 use pm_kind, only: RKG => RK1
674 type(uppDia_type) , intent(in) :: subset
675 real(RKG) , intent(in) , contiguous :: chol(:,:)
676 real(RKG) :: rand(size(chol, 1, IK))
677 end function
678#endif
679
680 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
681
682#if RK5_ENABLED
683 impure module function getMUR_RNGD_DM_AC_XLD_D1_RK5(chol, subset) result(rand)
684#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
685 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_DM_AC_XLD_D1_RK5
686#endif
687 use pm_kind, only: RKG => RK5
688 type(lowDia_type) , intent(in) :: subset
689 real(RKG) , intent(in) , contiguous :: chol(:,:)
690 real(RKG) :: rand(size(chol, 1, IK))
691 end function
692#endif
693
694#if RK4_ENABLED
695 impure module function getMUR_RNGD_DM_AC_XLD_D1_RK4(chol, subset) result(rand)
696#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
697 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_DM_AC_XLD_D1_RK4
698#endif
699 use pm_kind, only: RKG => RK4
700 type(lowDia_type) , intent(in) :: subset
701 real(RKG) , intent(in) , contiguous :: chol(:,:)
702 real(RKG) :: rand(size(chol, 1, IK))
703 end function
704#endif
705
706#if RK3_ENABLED
707 impure module function getMUR_RNGD_DM_AC_XLD_D1_RK3(chol, subset) result(rand)
708#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
709 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_DM_AC_XLD_D1_RK3
710#endif
711 use pm_kind, only: RKG => RK3
712 type(lowDia_type) , intent(in) :: subset
713 real(RKG) , intent(in) , contiguous :: chol(:,:)
714 real(RKG) :: rand(size(chol, 1, IK))
715 end function
716#endif
717
718#if RK2_ENABLED
719 impure module function getMUR_RNGD_DM_AC_XLD_D1_RK2(chol, subset) result(rand)
720#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
721 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_DM_AC_XLD_D1_RK2
722#endif
723 use pm_kind, only: RKG => RK2
724 type(lowDia_type) , intent(in) :: subset
725 real(RKG) , intent(in) , contiguous :: chol(:,:)
726 real(RKG) :: rand(size(chol, 1, IK))
727 end function
728#endif
729
730#if RK1_ENABLED
731 impure module function getMUR_RNGD_DM_AC_XLD_D1_RK1(chol, subset) result(rand)
732#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
733 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_DM_AC_XLD_D1_RK1
734#endif
735 use pm_kind, only: RKG => RK1
736 type(lowDia_type) , intent(in) :: subset
737 real(RKG) , intent(in) , contiguous :: chol(:,:)
738 real(RKG) :: rand(size(chol, 1, IK))
739 end function
740#endif
741
742 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
743
744#if RK5_ENABLED
745 impure module function getMUR_RNGD_AM_AC_UXD_D1_RK5(mean, chol, subset) result(rand)
746#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
747 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_AC_UXD_D1_RK5
748#endif
749 use pm_kind, only: RKG => RK5
750 type(uppDia_type) , intent(in) :: subset
751 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
752 real(RKG) :: rand(size(chol, 1, IK))
753 end function
754#endif
755
756#if RK4_ENABLED
757 impure module function getMUR_RNGD_AM_AC_UXD_D1_RK4(mean, chol, subset) result(rand)
758#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
759 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_AC_UXD_D1_RK4
760#endif
761 use pm_kind, only: RKG => RK4
762 type(uppDia_type) , intent(in) :: subset
763 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
764 real(RKG) :: rand(size(chol, 1, IK))
765 end function
766#endif
767
768#if RK3_ENABLED
769 impure module function getMUR_RNGD_AM_AC_UXD_D1_RK3(mean, chol, subset) result(rand)
770#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
771 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_AC_UXD_D1_RK3
772#endif
773 use pm_kind, only: RKG => RK3
774 type(uppDia_type) , intent(in) :: subset
775 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
776 real(RKG) :: rand(size(chol, 1, IK))
777 end function
778#endif
779
780#if RK2_ENABLED
781 impure module function getMUR_RNGD_AM_AC_UXD_D1_RK2(mean, chol, subset) result(rand)
782#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
783 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_AC_UXD_D1_RK2
784#endif
785 use pm_kind, only: RKG => RK2
786 type(uppDia_type) , intent(in) :: subset
787 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
788 real(RKG) :: rand(size(chol, 1, IK))
789 end function
790#endif
791
792#if RK1_ENABLED
793 impure module function getMUR_RNGD_AM_AC_UXD_D1_RK1(mean, chol, subset) result(rand)
794#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
795 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_AC_UXD_D1_RK1
796#endif
797 use pm_kind, only: RKG => RK1
798 type(uppDia_type) , intent(in) :: subset
799 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
800 real(RKG) :: rand(size(chol, 1, IK))
801 end function
802#endif
803
804 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
805
806#if RK5_ENABLED
807 impure module function getMUR_RNGD_AM_AC_XLD_D1_RK5(mean, chol, subset) result(rand)
808#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
809 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_AC_XLD_D1_RK5
810#endif
811 use pm_kind, only: RKG => RK5
812 type(lowDia_type) , intent(in) :: subset
813 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
814 real(RKG) :: rand(size(chol, 1, IK))
815 end function
816#endif
817
818#if RK4_ENABLED
819 impure module function getMUR_RNGD_AM_AC_XLD_D1_RK4(mean, chol, subset) result(rand)
820#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
821 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_AC_XLD_D1_RK4
822#endif
823 use pm_kind, only: RKG => RK4
824 type(lowDia_type) , intent(in) :: subset
825 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
826 real(RKG) :: rand(size(chol, 1, IK))
827 end function
828#endif
829
830#if RK3_ENABLED
831 impure module function getMUR_RNGD_AM_AC_XLD_D1_RK3(mean, chol, subset) result(rand)
832#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
833 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_AC_XLD_D1_RK3
834#endif
835 use pm_kind, only: RKG => RK3
836 type(lowDia_type) , intent(in) :: subset
837 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
838 real(RKG) :: rand(size(chol, 1, IK))
839 end function
840#endif
841
842#if RK2_ENABLED
843 impure module function getMUR_RNGD_AM_AC_XLD_D1_RK2(mean, chol, subset) result(rand)
844#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
845 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_AC_XLD_D1_RK2
846#endif
847 use pm_kind, only: RKG => RK2
848 type(lowDia_type) , intent(in) :: subset
849 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
850 real(RKG) :: rand(size(chol, 1, IK))
851 end function
852#endif
853
854#if RK1_ENABLED
855 impure module function getMUR_RNGD_AM_AC_XLD_D1_RK1(mean, chol, subset) result(rand)
856#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
857 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_AC_XLD_D1_RK1
858#endif
859 use pm_kind, only: RKG => RK1
860 type(lowDia_type) , intent(in) :: subset
861 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
862 real(RKG) :: rand(size(chol, 1, IK))
863 end function
864#endif
865
866 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
867
868 end interface
869
870 ! D1 RNGF
871
872 interface getUnifEllRand
873
874 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
875
876#if RK5_ENABLED
877 impure module function getMUR_RNGF_AM_DC_XXX_D1_RK5(rng, mean) result(rand)
878#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
879 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_DC_XXX_D1_RK5
880#endif
881 use pm_kind, only: RKG => RK5
882 type(rngf_type) , intent(in) :: rng
883 real(RKG) , intent(in) , contiguous :: mean(:)
884 real(RKG) :: rand(size(mean, 1, IK))
885 end function
886#endif
887
888#if RK4_ENABLED
889 impure module function getMUR_RNGF_AM_DC_XXX_D1_RK4(rng, mean) result(rand)
890#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
891 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_DC_XXX_D1_RK4
892#endif
893 use pm_kind, only: RKG => RK4
894 type(rngf_type) , intent(in) :: rng
895 real(RKG) , intent(in) , contiguous :: mean(:)
896 real(RKG) :: rand(size(mean, 1, IK))
897 end function
898#endif
899
900#if RK3_ENABLED
901 impure module function getMUR_RNGF_AM_DC_XXX_D1_RK3(rng, mean) result(rand)
902#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
903 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_DC_XXX_D1_RK3
904#endif
905 use pm_kind, only: RKG => RK3
906 type(rngf_type) , intent(in) :: rng
907 real(RKG) , intent(in) , contiguous :: mean(:)
908 real(RKG) :: rand(size(mean, 1, IK))
909 end function
910#endif
911
912#if RK2_ENABLED
913 impure module function getMUR_RNGF_AM_DC_XXX_D1_RK2(rng, mean) result(rand)
914#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
915 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_DC_XXX_D1_RK2
916#endif
917 use pm_kind, only: RKG => RK2
918 type(rngf_type) , intent(in) :: rng
919 real(RKG) , intent(in) , contiguous :: mean(:)
920 real(RKG) :: rand(size(mean, 1, IK))
921 end function
922#endif
923
924#if RK1_ENABLED
925 impure module function getMUR_RNGF_AM_DC_XXX_D1_RK1(rng, mean) result(rand)
926#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
927 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_DC_XXX_D1_RK1
928#endif
929 use pm_kind, only: RKG => RK1
930 type(rngf_type) , intent(in) :: rng
931 real(RKG) , intent(in) , contiguous :: mean(:)
932 real(RKG) :: rand(size(mean, 1, IK))
933 end function
934#endif
935
936 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
937
938#if RK5_ENABLED
939 impure module function getMUR_RNGF_DM_AC_UXD_D1_RK5(rng, chol, subset) result(rand)
940#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
941 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_DM_AC_UXD_D1_RK5
942#endif
943 use pm_kind, only: RKG => RK5
944 type(rngf_type) , intent(in) :: rng
945 type(uppDia_type) , intent(in) :: subset
946 real(RKG) , intent(in) , contiguous :: chol(:,:)
947 real(RKG) :: rand(size(chol, 1, IK))
948 end function
949#endif
950
951#if RK4_ENABLED
952 impure module function getMUR_RNGF_DM_AC_UXD_D1_RK4(rng, chol, subset) result(rand)
953#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
954 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_DM_AC_UXD_D1_RK4
955#endif
956 use pm_kind, only: RKG => RK4
957 type(rngf_type) , intent(in) :: rng
958 type(uppDia_type) , intent(in) :: subset
959 real(RKG) , intent(in) , contiguous :: chol(:,:)
960 real(RKG) :: rand(size(chol, 1, IK))
961 end function
962#endif
963
964#if RK3_ENABLED
965 impure module function getMUR_RNGF_DM_AC_UXD_D1_RK3(rng, chol, subset) result(rand)
966#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
967 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_DM_AC_UXD_D1_RK3
968#endif
969 use pm_kind, only: RKG => RK3
970 type(rngf_type) , intent(in) :: rng
971 type(uppDia_type) , intent(in) :: subset
972 real(RKG) , intent(in) , contiguous :: chol(:,:)
973 real(RKG) :: rand(size(chol, 1, IK))
974 end function
975#endif
976
977#if RK2_ENABLED
978 impure module function getMUR_RNGF_DM_AC_UXD_D1_RK2(rng, chol, subset) result(rand)
979#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
980 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_DM_AC_UXD_D1_RK2
981#endif
982 use pm_kind, only: RKG => RK2
983 type(rngf_type) , intent(in) :: rng
984 type(uppDia_type) , intent(in) :: subset
985 real(RKG) , intent(in) , contiguous :: chol(:,:)
986 real(RKG) :: rand(size(chol, 1, IK))
987 end function
988#endif
989
990#if RK1_ENABLED
991 impure module function getMUR_RNGF_DM_AC_UXD_D1_RK1(rng, chol, subset) result(rand)
992#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
993 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_DM_AC_UXD_D1_RK1
994#endif
995 use pm_kind, only: RKG => RK1
996 type(rngf_type) , intent(in) :: rng
997 type(uppDia_type) , intent(in) :: subset
998 real(RKG) , intent(in) , contiguous :: chol(:,:)
999 real(RKG) :: rand(size(chol, 1, IK))
1000 end function
1001#endif
1002
1003 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1004
1005#if RK5_ENABLED
1006 impure module function getMUR_RNGF_DM_AC_XLD_D1_RK5(rng, chol, subset) result(rand)
1007#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1008 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_DM_AC_XLD_D1_RK5
1009#endif
1010 use pm_kind, only: RKG => RK5
1011 type(rngf_type) , intent(in) :: rng
1012 type(lowDia_type) , intent(in) :: subset
1013 real(RKG) , intent(in) , contiguous :: chol(:,:)
1014 real(RKG) :: rand(size(chol, 1, IK))
1015 end function
1016#endif
1017
1018#if RK4_ENABLED
1019 impure module function getMUR_RNGF_DM_AC_XLD_D1_RK4(rng, chol, subset) result(rand)
1020#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1021 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_DM_AC_XLD_D1_RK4
1022#endif
1023 use pm_kind, only: RKG => RK4
1024 type(rngf_type) , intent(in) :: rng
1025 type(lowDia_type) , intent(in) :: subset
1026 real(RKG) , intent(in) , contiguous :: chol(:,:)
1027 real(RKG) :: rand(size(chol, 1, IK))
1028 end function
1029#endif
1030
1031#if RK3_ENABLED
1032 impure module function getMUR_RNGF_DM_AC_XLD_D1_RK3(rng, chol, subset) result(rand)
1033#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1034 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_DM_AC_XLD_D1_RK3
1035#endif
1036 use pm_kind, only: RKG => RK3
1037 type(rngf_type) , intent(in) :: rng
1038 type(lowDia_type) , intent(in) :: subset
1039 real(RKG) , intent(in) , contiguous :: chol(:,:)
1040 real(RKG) :: rand(size(chol, 1, IK))
1041 end function
1042#endif
1043
1044#if RK2_ENABLED
1045 impure module function getMUR_RNGF_DM_AC_XLD_D1_RK2(rng, chol, subset) result(rand)
1046#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1047 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_DM_AC_XLD_D1_RK2
1048#endif
1049 use pm_kind, only: RKG => RK2
1050 type(rngf_type) , intent(in) :: rng
1051 type(lowDia_type) , intent(in) :: subset
1052 real(RKG) , intent(in) , contiguous :: chol(:,:)
1053 real(RKG) :: rand(size(chol, 1, IK))
1054 end function
1055#endif
1056
1057#if RK1_ENABLED
1058 impure module function getMUR_RNGF_DM_AC_XLD_D1_RK1(rng, chol, subset) result(rand)
1059#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1060 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_DM_AC_XLD_D1_RK1
1061#endif
1062 use pm_kind, only: RKG => RK1
1063 type(rngf_type) , intent(in) :: rng
1064 type(lowDia_type) , intent(in) :: subset
1065 real(RKG) , intent(in) , contiguous :: chol(:,:)
1066 real(RKG) :: rand(size(chol, 1, IK))
1067 end function
1068#endif
1069
1070 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1071
1072#if RK5_ENABLED
1073 impure module function getMUR_RNGF_AM_AC_UXD_D1_RK5(rng, mean, chol, subset) result(rand)
1074#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1075 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_AC_UXD_D1_RK5
1076#endif
1077 use pm_kind, only: RKG => RK5
1078 type(rngf_type) , intent(in) :: rng
1079 type(uppDia_type) , intent(in) :: subset
1080 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1081 real(RKG) :: rand(size(chol, 1, IK))
1082 end function
1083#endif
1084
1085#if RK4_ENABLED
1086 impure module function getMUR_RNGF_AM_AC_UXD_D1_RK4(rng, mean, chol, subset) result(rand)
1087#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1088 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_AC_UXD_D1_RK4
1089#endif
1090 use pm_kind, only: RKG => RK4
1091 type(rngf_type) , intent(in) :: rng
1092 type(uppDia_type) , intent(in) :: subset
1093 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1094 real(RKG) :: rand(size(chol, 1, IK))
1095 end function
1096#endif
1097
1098#if RK3_ENABLED
1099 impure module function getMUR_RNGF_AM_AC_UXD_D1_RK3(rng, mean, chol, subset) result(rand)
1100#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1101 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_AC_UXD_D1_RK3
1102#endif
1103 use pm_kind, only: RKG => RK3
1104 type(rngf_type) , intent(in) :: rng
1105 type(uppDia_type) , intent(in) :: subset
1106 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1107 real(RKG) :: rand(size(chol, 1, IK))
1108 end function
1109#endif
1110
1111#if RK2_ENABLED
1112 impure module function getMUR_RNGF_AM_AC_UXD_D1_RK2(rng, mean, chol, subset) result(rand)
1113#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1114 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_AC_UXD_D1_RK2
1115#endif
1116 use pm_kind, only: RKG => RK2
1117 type(rngf_type) , intent(in) :: rng
1118 type(uppDia_type) , intent(in) :: subset
1119 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1120 real(RKG) :: rand(size(chol, 1, IK))
1121 end function
1122#endif
1123
1124#if RK1_ENABLED
1125 impure module function getMUR_RNGF_AM_AC_UXD_D1_RK1(rng, mean, chol, subset) result(rand)
1126#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1127 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_AC_UXD_D1_RK1
1128#endif
1129 use pm_kind, only: RKG => RK1
1130 type(rngf_type) , intent(in) :: rng
1131 type(uppDia_type) , intent(in) :: subset
1132 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1133 real(RKG) :: rand(size(chol, 1, IK))
1134 end function
1135#endif
1136
1137 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1138
1139#if RK5_ENABLED
1140 impure module function getMUR_RNGF_AM_AC_XLD_D1_RK5(rng, mean, chol, subset) result(rand)
1141#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1142 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_AC_XLD_D1_RK5
1143#endif
1144 use pm_kind, only: RKG => RK5
1145 type(rngf_type) , intent(in) :: rng
1146 type(lowDia_type) , intent(in) :: subset
1147 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1148 real(RKG) :: rand(size(chol, 1, IK))
1149 end function
1150#endif
1151
1152#if RK4_ENABLED
1153 impure module function getMUR_RNGF_AM_AC_XLD_D1_RK4(rng, mean, chol, subset) result(rand)
1154#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1155 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_AC_XLD_D1_RK4
1156#endif
1157 use pm_kind, only: RKG => RK4
1158 type(rngf_type) , intent(in) :: rng
1159 type(lowDia_type) , intent(in) :: subset
1160 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1161 real(RKG) :: rand(size(chol, 1, IK))
1162 end function
1163#endif
1164
1165#if RK3_ENABLED
1166 impure module function getMUR_RNGF_AM_AC_XLD_D1_RK3(rng, mean, chol, subset) result(rand)
1167#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1168 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_AC_XLD_D1_RK3
1169#endif
1170 use pm_kind, only: RKG => RK3
1171 type(rngf_type) , intent(in) :: rng
1172 type(lowDia_type) , intent(in) :: subset
1173 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1174 real(RKG) :: rand(size(chol, 1, IK))
1175 end function
1176#endif
1177
1178#if RK2_ENABLED
1179 impure module function getMUR_RNGF_AM_AC_XLD_D1_RK2(rng, mean, chol, subset) result(rand)
1180#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1181 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_AC_XLD_D1_RK2
1182#endif
1183 use pm_kind, only: RKG => RK2
1184 type(rngf_type) , intent(in) :: rng
1185 type(lowDia_type) , intent(in) :: subset
1186 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1187 real(RKG) :: rand(size(chol, 1, IK))
1188 end function
1189#endif
1190
1191#if RK1_ENABLED
1192 impure module function getMUR_RNGF_AM_AC_XLD_D1_RK1(rng, mean, chol, subset) result(rand)
1193#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1194 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_AC_XLD_D1_RK1
1195#endif
1196 use pm_kind, only: RKG => RK1
1197 type(rngf_type) , intent(in) :: rng
1198 type(lowDia_type) , intent(in) :: subset
1199 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1200 real(RKG) :: rand(size(chol, 1, IK))
1201 end function
1202#endif
1203
1204 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1205
1206 end interface
1207
1208 ! D1 RNGX
1209
1210 interface getUnifEllRand
1211
1212 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1213
1214#if RK5_ENABLED
1215 impure module function getMUR_RNGX_AM_DC_XXX_D1_RK5(rng, mean) result(rand)
1216#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1217 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_DC_XXX_D1_RK5
1218#endif
1219 use pm_kind, only: RKG => RK5
1220 type(xoshiro256ssw_type), intent(inout) :: rng
1221 real(RKG) , intent(in) , contiguous :: mean(:)
1222 real(RKG) :: rand(size(mean, 1, IK))
1223 end function
1224#endif
1225
1226#if RK4_ENABLED
1227 impure module function getMUR_RNGX_AM_DC_XXX_D1_RK4(rng, mean) result(rand)
1228#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1229 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_DC_XXX_D1_RK4
1230#endif
1231 use pm_kind, only: RKG => RK4
1232 type(xoshiro256ssw_type), intent(inout) :: rng
1233 real(RKG) , intent(in) , contiguous :: mean(:)
1234 real(RKG) :: rand(size(mean, 1, IK))
1235 end function
1236#endif
1237
1238#if RK3_ENABLED
1239 impure module function getMUR_RNGX_AM_DC_XXX_D1_RK3(rng, mean) result(rand)
1240#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1241 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_DC_XXX_D1_RK3
1242#endif
1243 use pm_kind, only: RKG => RK3
1244 type(xoshiro256ssw_type), intent(inout) :: rng
1245 real(RKG) , intent(in) , contiguous :: mean(:)
1246 real(RKG) :: rand(size(mean, 1, IK))
1247 end function
1248#endif
1249
1250#if RK2_ENABLED
1251 impure module function getMUR_RNGX_AM_DC_XXX_D1_RK2(rng, mean) result(rand)
1252#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1253 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_DC_XXX_D1_RK2
1254#endif
1255 use pm_kind, only: RKG => RK2
1256 type(xoshiro256ssw_type), intent(inout) :: rng
1257 real(RKG) , intent(in) , contiguous :: mean(:)
1258 real(RKG) :: rand(size(mean, 1, IK))
1259 end function
1260#endif
1261
1262#if RK1_ENABLED
1263 impure module function getMUR_RNGX_AM_DC_XXX_D1_RK1(rng, mean) result(rand)
1264#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1265 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_DC_XXX_D1_RK1
1266#endif
1267 use pm_kind, only: RKG => RK1
1268 type(xoshiro256ssw_type), intent(inout) :: rng
1269 real(RKG) , intent(in) , contiguous :: mean(:)
1270 real(RKG) :: rand(size(mean, 1, IK))
1271 end function
1272#endif
1273
1274 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1275
1276#if RK5_ENABLED
1277 impure module function getMUR_RNGX_DM_AC_UXD_D1_RK5(rng, chol, subset) result(rand)
1278#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1279 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_DM_AC_UXD_D1_RK5
1280#endif
1281 use pm_kind, only: RKG => RK5
1282 type(xoshiro256ssw_type), intent(inout) :: rng
1283 type(uppDia_type) , intent(in) :: subset
1284 real(RKG) , intent(in) , contiguous :: chol(:,:)
1285 real(RKG) :: rand(size(chol, 1, IK))
1286 end function
1287#endif
1288
1289#if RK4_ENABLED
1290 impure module function getMUR_RNGX_DM_AC_UXD_D1_RK4(rng, chol, subset) result(rand)
1291#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1292 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_DM_AC_UXD_D1_RK4
1293#endif
1294 use pm_kind, only: RKG => RK4
1295 type(xoshiro256ssw_type), intent(inout) :: rng
1296 type(uppDia_type) , intent(in) :: subset
1297 real(RKG) , intent(in) , contiguous :: chol(:,:)
1298 real(RKG) :: rand(size(chol, 1, IK))
1299 end function
1300#endif
1301
1302#if RK3_ENABLED
1303 impure module function getMUR_RNGX_DM_AC_UXD_D1_RK3(rng, chol, subset) result(rand)
1304#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1305 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_DM_AC_UXD_D1_RK3
1306#endif
1307 use pm_kind, only: RKG => RK3
1308 type(xoshiro256ssw_type), intent(inout) :: rng
1309 type(uppDia_type) , intent(in) :: subset
1310 real(RKG) , intent(in) , contiguous :: chol(:,:)
1311 real(RKG) :: rand(size(chol, 1, IK))
1312 end function
1313#endif
1314
1315#if RK2_ENABLED
1316 impure module function getMUR_RNGX_DM_AC_UXD_D1_RK2(rng, chol, subset) result(rand)
1317#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1318 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_DM_AC_UXD_D1_RK2
1319#endif
1320 use pm_kind, only: RKG => RK2
1321 type(xoshiro256ssw_type), intent(inout) :: rng
1322 type(uppDia_type) , intent(in) :: subset
1323 real(RKG) , intent(in) , contiguous :: chol(:,:)
1324 real(RKG) :: rand(size(chol, 1, IK))
1325 end function
1326#endif
1327
1328#if RK1_ENABLED
1329 impure module function getMUR_RNGX_DM_AC_UXD_D1_RK1(rng, chol, subset) result(rand)
1330#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1331 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_DM_AC_UXD_D1_RK1
1332#endif
1333 use pm_kind, only: RKG => RK1
1334 type(xoshiro256ssw_type), intent(inout) :: rng
1335 type(uppDia_type) , intent(in) :: subset
1336 real(RKG) , intent(in) , contiguous :: chol(:,:)
1337 real(RKG) :: rand(size(chol, 1, IK))
1338 end function
1339#endif
1340
1341 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1342
1343#if RK5_ENABLED
1344 impure module function getMUR_RNGX_DM_AC_XLD_D1_RK5(rng, chol, subset) result(rand)
1345#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1346 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_DM_AC_XLD_D1_RK5
1347#endif
1348 use pm_kind, only: RKG => RK5
1349 type(xoshiro256ssw_type), intent(inout) :: rng
1350 type(lowDia_type) , intent(in) :: subset
1351 real(RKG) , intent(in) , contiguous :: chol(:,:)
1352 real(RKG) :: rand(size(chol, 1, IK))
1353 end function
1354#endif
1355
1356#if RK4_ENABLED
1357 impure module function getMUR_RNGX_DM_AC_XLD_D1_RK4(rng, chol, subset) result(rand)
1358#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1359 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_DM_AC_XLD_D1_RK4
1360#endif
1361 use pm_kind, only: RKG => RK4
1362 type(xoshiro256ssw_type), intent(inout) :: rng
1363 type(lowDia_type) , intent(in) :: subset
1364 real(RKG) , intent(in) , contiguous :: chol(:,:)
1365 real(RKG) :: rand(size(chol, 1, IK))
1366 end function
1367#endif
1368
1369#if RK3_ENABLED
1370 impure module function getMUR_RNGX_DM_AC_XLD_D1_RK3(rng, chol, subset) result(rand)
1371#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1372 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_DM_AC_XLD_D1_RK3
1373#endif
1374 use pm_kind, only: RKG => RK3
1375 type(xoshiro256ssw_type), intent(inout) :: rng
1376 type(lowDia_type) , intent(in) :: subset
1377 real(RKG) , intent(in) , contiguous :: chol(:,:)
1378 real(RKG) :: rand(size(chol, 1, IK))
1379 end function
1380#endif
1381
1382#if RK2_ENABLED
1383 impure module function getMUR_RNGX_DM_AC_XLD_D1_RK2(rng, chol, subset) result(rand)
1384#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1385 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_DM_AC_XLD_D1_RK2
1386#endif
1387 use pm_kind, only: RKG => RK2
1388 type(xoshiro256ssw_type), intent(inout) :: rng
1389 type(lowDia_type) , intent(in) :: subset
1390 real(RKG) , intent(in) , contiguous :: chol(:,:)
1391 real(RKG) :: rand(size(chol, 1, IK))
1392 end function
1393#endif
1394
1395#if RK1_ENABLED
1396 impure module function getMUR_RNGX_DM_AC_XLD_D1_RK1(rng, chol, subset) result(rand)
1397#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1398 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_DM_AC_XLD_D1_RK1
1399#endif
1400 use pm_kind, only: RKG => RK1
1401 type(xoshiro256ssw_type), intent(inout) :: rng
1402 type(lowDia_type) , intent(in) :: subset
1403 real(RKG) , intent(in) , contiguous :: chol(:,:)
1404 real(RKG) :: rand(size(chol, 1, IK))
1405 end function
1406#endif
1407
1408 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1409
1410#if RK5_ENABLED
1411 impure module function getMUR_RNGX_AM_AC_UXD_D1_RK5(rng, mean, chol, subset) result(rand)
1412#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1413 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_AC_UXD_D1_RK5
1414#endif
1415 use pm_kind, only: RKG => RK5
1416 type(xoshiro256ssw_type), intent(inout) :: rng
1417 type(uppDia_type) , intent(in) :: subset
1418 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1419 real(RKG) :: rand(size(chol, 1, IK))
1420 end function
1421#endif
1422
1423#if RK4_ENABLED
1424 impure module function getMUR_RNGX_AM_AC_UXD_D1_RK4(rng, mean, chol, subset) result(rand)
1425#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1426 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_AC_UXD_D1_RK4
1427#endif
1428 use pm_kind, only: RKG => RK4
1429 type(xoshiro256ssw_type), intent(inout) :: rng
1430 type(uppDia_type) , intent(in) :: subset
1431 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1432 real(RKG) :: rand(size(chol, 1, IK))
1433 end function
1434#endif
1435
1436#if RK3_ENABLED
1437 impure module function getMUR_RNGX_AM_AC_UXD_D1_RK3(rng, mean, chol, subset) result(rand)
1438#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1439 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_AC_UXD_D1_RK3
1440#endif
1441 use pm_kind, only: RKG => RK3
1442 type(xoshiro256ssw_type), intent(inout) :: rng
1443 type(uppDia_type) , intent(in) :: subset
1444 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1445 real(RKG) :: rand(size(chol, 1, IK))
1446 end function
1447#endif
1448
1449#if RK2_ENABLED
1450 impure module function getMUR_RNGX_AM_AC_UXD_D1_RK2(rng, mean, chol, subset) result(rand)
1451#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1452 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_AC_UXD_D1_RK2
1453#endif
1454 use pm_kind, only: RKG => RK2
1455 type(xoshiro256ssw_type), intent(inout) :: rng
1456 type(uppDia_type) , intent(in) :: subset
1457 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1458 real(RKG) :: rand(size(chol, 1, IK))
1459 end function
1460#endif
1461
1462#if RK1_ENABLED
1463 impure module function getMUR_RNGX_AM_AC_UXD_D1_RK1(rng, mean, chol, subset) result(rand)
1464#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1465 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_AC_UXD_D1_RK1
1466#endif
1467 use pm_kind, only: RKG => RK1
1468 type(xoshiro256ssw_type), intent(inout) :: rng
1469 type(uppDia_type) , intent(in) :: subset
1470 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1471 real(RKG) :: rand(size(chol, 1, IK))
1472 end function
1473#endif
1474
1475 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1476
1477#if RK5_ENABLED
1478 impure module function getMUR_RNGX_AM_AC_XLD_D1_RK5(rng, mean, chol, subset) result(rand)
1479#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1480 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_AC_XLD_D1_RK5
1481#endif
1482 use pm_kind, only: RKG => RK5
1483 type(xoshiro256ssw_type), intent(inout) :: rng
1484 type(lowDia_type) , intent(in) :: subset
1485 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1486 real(RKG) :: rand(size(chol, 1, IK))
1487 end function
1488#endif
1489
1490#if RK4_ENABLED
1491 impure module function getMUR_RNGX_AM_AC_XLD_D1_RK4(rng, mean, chol, subset) result(rand)
1492#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1493 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_AC_XLD_D1_RK4
1494#endif
1495 use pm_kind, only: RKG => RK4
1496 type(xoshiro256ssw_type), intent(inout) :: rng
1497 type(lowDia_type) , intent(in) :: subset
1498 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1499 real(RKG) :: rand(size(chol, 1, IK))
1500 end function
1501#endif
1502
1503#if RK3_ENABLED
1504 impure module function getMUR_RNGX_AM_AC_XLD_D1_RK3(rng, mean, chol, subset) result(rand)
1505#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1506 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_AC_XLD_D1_RK3
1507#endif
1508 use pm_kind, only: RKG => RK3
1509 type(xoshiro256ssw_type), intent(inout) :: rng
1510 type(lowDia_type) , intent(in) :: subset
1511 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1512 real(RKG) :: rand(size(chol, 1, IK))
1513 end function
1514#endif
1515
1516#if RK2_ENABLED
1517 impure module function getMUR_RNGX_AM_AC_XLD_D1_RK2(rng, mean, chol, subset) result(rand)
1518#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1519 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_AC_XLD_D1_RK2
1520#endif
1521 use pm_kind, only: RKG => RK2
1522 type(xoshiro256ssw_type), intent(inout) :: rng
1523 type(lowDia_type) , intent(in) :: subset
1524 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1525 real(RKG) :: rand(size(chol, 1, IK))
1526 end function
1527#endif
1528
1529#if RK1_ENABLED
1530 impure module function getMUR_RNGX_AM_AC_XLD_D1_RK1(rng, mean, chol, subset) result(rand)
1531#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1532 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_AC_XLD_D1_RK1
1533#endif
1534 use pm_kind, only: RKG => RK1
1535 type(xoshiro256ssw_type), intent(inout) :: rng
1536 type(lowDia_type) , intent(in) :: subset
1537 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1538 real(RKG) :: rand(size(chol, 1, IK))
1539 end function
1540#endif
1541
1542 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1543
1544 end interface
1545
1546 ! D2 RNGD
1547
1548 interface getUnifEllRand
1549
1550 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1551
1552#if RK5_ENABLED
1553 impure module function getMUR_RNGD_AM_DC_XXX_D2_RK5(mean, nsam) result(rand)
1554#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1555 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_DC_XXX_D2_RK5
1556#endif
1557 use pm_kind, only: RKG => RK5
1558 integer(IK) , intent(in) :: nsam
1559 real(RKG) , intent(in) , contiguous :: mean(:)
1560 real(RKG) :: rand(size(mean, 1, IK), nsam)
1561 end function
1562#endif
1563
1564#if RK4_ENABLED
1565 impure module function getMUR_RNGD_AM_DC_XXX_D2_RK4(mean, nsam) result(rand)
1566#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1567 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_DC_XXX_D2_RK4
1568#endif
1569 use pm_kind, only: RKG => RK4
1570 integer(IK) , intent(in) :: nsam
1571 real(RKG) , intent(in) , contiguous :: mean(:)
1572 real(RKG) :: rand(size(mean, 1, IK), nsam)
1573 end function
1574#endif
1575
1576#if RK3_ENABLED
1577 impure module function getMUR_RNGD_AM_DC_XXX_D2_RK3(mean, nsam) result(rand)
1578#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1579 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_DC_XXX_D2_RK3
1580#endif
1581 use pm_kind, only: RKG => RK3
1582 integer(IK) , intent(in) :: nsam
1583 real(RKG) , intent(in) , contiguous :: mean(:)
1584 real(RKG) :: rand(size(mean, 1, IK), nsam)
1585 end function
1586#endif
1587
1588#if RK2_ENABLED
1589 impure module function getMUR_RNGD_AM_DC_XXX_D2_RK2(mean, nsam) result(rand)
1590#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1591 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_DC_XXX_D2_RK2
1592#endif
1593 use pm_kind, only: RKG => RK2
1594 integer(IK) , intent(in) :: nsam
1595 real(RKG) , intent(in) , contiguous :: mean(:)
1596 real(RKG) :: rand(size(mean, 1, IK), nsam)
1597 end function
1598#endif
1599
1600#if RK1_ENABLED
1601 impure module function getMUR_RNGD_AM_DC_XXX_D2_RK1(mean, nsam) result(rand)
1602#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1603 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_DC_XXX_D2_RK1
1604#endif
1605 use pm_kind, only: RKG => RK1
1606 integer(IK) , intent(in) :: nsam
1607 real(RKG) , intent(in) , contiguous :: mean(:)
1608 real(RKG) :: rand(size(mean, 1, IK), nsam)
1609 end function
1610#endif
1611
1612 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1613
1614#if RK5_ENABLED
1615 impure module function getMUR_RNGD_DM_AC_UXD_D2_RK5(chol, subset, nsam) result(rand)
1616#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1617 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_DM_AC_UXD_D2_RK5
1618#endif
1619 use pm_kind, only: RKG => RK5
1620 integer(IK) , intent(in) :: nsam
1621 type(uppDia_type) , intent(in) :: subset
1622 real(RKG) , intent(in) , contiguous :: chol(:,:)
1623 real(RKG) :: rand(size(chol, 1, IK), nsam)
1624 end function
1625#endif
1626
1627#if RK4_ENABLED
1628 impure module function getMUR_RNGD_DM_AC_UXD_D2_RK4(chol, subset, nsam) result(rand)
1629#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1630 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_DM_AC_UXD_D2_RK4
1631#endif
1632 use pm_kind, only: RKG => RK4
1633 integer(IK) , intent(in) :: nsam
1634 type(uppDia_type) , intent(in) :: subset
1635 real(RKG) , intent(in) , contiguous :: chol(:,:)
1636 real(RKG) :: rand(size(chol, 1, IK), nsam)
1637 end function
1638#endif
1639
1640#if RK3_ENABLED
1641 impure module function getMUR_RNGD_DM_AC_UXD_D2_RK3(chol, subset, nsam) result(rand)
1642#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1643 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_DM_AC_UXD_D2_RK3
1644#endif
1645 use pm_kind, only: RKG => RK3
1646 integer(IK) , intent(in) :: nsam
1647 type(uppDia_type) , intent(in) :: subset
1648 real(RKG) , intent(in) , contiguous :: chol(:,:)
1649 real(RKG) :: rand(size(chol, 1, IK), nsam)
1650 end function
1651#endif
1652
1653#if RK2_ENABLED
1654 impure module function getMUR_RNGD_DM_AC_UXD_D2_RK2(chol, subset, nsam) result(rand)
1655#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1656 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_DM_AC_UXD_D2_RK2
1657#endif
1658 use pm_kind, only: RKG => RK2
1659 integer(IK) , intent(in) :: nsam
1660 type(uppDia_type) , intent(in) :: subset
1661 real(RKG) , intent(in) , contiguous :: chol(:,:)
1662 real(RKG) :: rand(size(chol, 1, IK), nsam)
1663 end function
1664#endif
1665
1666#if RK1_ENABLED
1667 impure module function getMUR_RNGD_DM_AC_UXD_D2_RK1(chol, subset, nsam) result(rand)
1668#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1669 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_DM_AC_UXD_D2_RK1
1670#endif
1671 use pm_kind, only: RKG => RK1
1672 integer(IK) , intent(in) :: nsam
1673 type(uppDia_type) , intent(in) :: subset
1674 real(RKG) , intent(in) , contiguous :: chol(:,:)
1675 real(RKG) :: rand(size(chol, 1, IK), nsam)
1676 end function
1677#endif
1678
1679 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1680
1681#if RK5_ENABLED
1682 impure module function getMUR_RNGD_DM_AC_XLD_D2_RK5(chol, subset, nsam) result(rand)
1683#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1684 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_DM_AC_XLD_D2_RK5
1685#endif
1686 use pm_kind, only: RKG => RK5
1687 integer(IK) , intent(in) :: nsam
1688 type(lowDia_type) , intent(in) :: subset
1689 real(RKG) , intent(in) , contiguous :: chol(:,:)
1690 real(RKG) :: rand(size(chol, 1, IK), nsam)
1691 end function
1692#endif
1693
1694#if RK4_ENABLED
1695 impure module function getMUR_RNGD_DM_AC_XLD_D2_RK4(chol, subset, nsam) result(rand)
1696#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1697 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_DM_AC_XLD_D2_RK4
1698#endif
1699 use pm_kind, only: RKG => RK4
1700 integer(IK) , intent(in) :: nsam
1701 type(lowDia_type) , intent(in) :: subset
1702 real(RKG) , intent(in) , contiguous :: chol(:,:)
1703 real(RKG) :: rand(size(chol, 1, IK), nsam)
1704 end function
1705#endif
1706
1707#if RK3_ENABLED
1708 impure module function getMUR_RNGD_DM_AC_XLD_D2_RK3(chol, subset, nsam) result(rand)
1709#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1710 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_DM_AC_XLD_D2_RK3
1711#endif
1712 use pm_kind, only: RKG => RK3
1713 integer(IK) , intent(in) :: nsam
1714 type(lowDia_type) , intent(in) :: subset
1715 real(RKG) , intent(in) , contiguous :: chol(:,:)
1716 real(RKG) :: rand(size(chol, 1, IK), nsam)
1717 end function
1718#endif
1719
1720#if RK2_ENABLED
1721 impure module function getMUR_RNGD_DM_AC_XLD_D2_RK2(chol, subset, nsam) result(rand)
1722#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1723 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_DM_AC_XLD_D2_RK2
1724#endif
1725 use pm_kind, only: RKG => RK2
1726 integer(IK) , intent(in) :: nsam
1727 type(lowDia_type) , intent(in) :: subset
1728 real(RKG) , intent(in) , contiguous :: chol(:,:)
1729 real(RKG) :: rand(size(chol, 1, IK), nsam)
1730 end function
1731#endif
1732
1733#if RK1_ENABLED
1734 impure module function getMUR_RNGD_DM_AC_XLD_D2_RK1(chol, subset, nsam) result(rand)
1735#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1736 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_DM_AC_XLD_D2_RK1
1737#endif
1738 use pm_kind, only: RKG => RK1
1739 integer(IK) , intent(in) :: nsam
1740 type(lowDia_type) , intent(in) :: subset
1741 real(RKG) , intent(in) , contiguous :: chol(:,:)
1742 real(RKG) :: rand(size(chol, 1, IK), nsam)
1743 end function
1744#endif
1745
1746 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1747
1748#if RK5_ENABLED
1749 impure module function getMUR_RNGD_AM_AC_UXD_D2_RK5(mean, chol, subset, nsam) result(rand)
1750#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1751 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_AC_UXD_D2_RK5
1752#endif
1753 use pm_kind, only: RKG => RK5
1754 integer(IK) , intent(in) :: nsam
1755 type(uppDia_type) , intent(in) :: subset
1756 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1757 real(RKG) :: rand(size(chol, 1, IK), nsam)
1758 end function
1759#endif
1760
1761#if RK4_ENABLED
1762 impure module function getMUR_RNGD_AM_AC_UXD_D2_RK4(mean, chol, subset, nsam) result(rand)
1763#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1764 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_AC_UXD_D2_RK4
1765#endif
1766 use pm_kind, only: RKG => RK4
1767 integer(IK) , intent(in) :: nsam
1768 type(uppDia_type) , intent(in) :: subset
1769 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1770 real(RKG) :: rand(size(chol, 1, IK), nsam)
1771 end function
1772#endif
1773
1774#if RK3_ENABLED
1775 impure module function getMUR_RNGD_AM_AC_UXD_D2_RK3(mean, chol, subset, nsam) result(rand)
1776#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1777 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_AC_UXD_D2_RK3
1778#endif
1779 use pm_kind, only: RKG => RK3
1780 integer(IK) , intent(in) :: nsam
1781 type(uppDia_type) , intent(in) :: subset
1782 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1783 real(RKG) :: rand(size(chol, 1, IK), nsam)
1784 end function
1785#endif
1786
1787#if RK2_ENABLED
1788 impure module function getMUR_RNGD_AM_AC_UXD_D2_RK2(mean, chol, subset, nsam) result(rand)
1789#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1790 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_AC_UXD_D2_RK2
1791#endif
1792 use pm_kind, only: RKG => RK2
1793 integer(IK) , intent(in) :: nsam
1794 type(uppDia_type) , intent(in) :: subset
1795 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1796 real(RKG) :: rand(size(chol, 1, IK), nsam)
1797 end function
1798#endif
1799
1800#if RK1_ENABLED
1801 impure module function getMUR_RNGD_AM_AC_UXD_D2_RK1(mean, chol, subset, nsam) result(rand)
1802#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1803 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_AC_UXD_D2_RK1
1804#endif
1805 use pm_kind, only: RKG => RK1
1806 integer(IK) , intent(in) :: nsam
1807 type(uppDia_type) , intent(in) :: subset
1808 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1809 real(RKG) :: rand(size(chol, 1, IK), nsam)
1810 end function
1811#endif
1812
1813 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1814
1815#if RK5_ENABLED
1816 impure module function getMUR_RNGD_AM_AC_XLD_D2_RK5(mean, chol, subset, nsam) result(rand)
1817#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1818 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_AC_XLD_D2_RK5
1819#endif
1820 use pm_kind, only: RKG => RK5
1821 integer(IK) , intent(in) :: nsam
1822 type(lowDia_type) , intent(in) :: subset
1823 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1824 real(RKG) :: rand(size(chol, 1, IK), nsam)
1825 end function
1826#endif
1827
1828#if RK4_ENABLED
1829 impure module function getMUR_RNGD_AM_AC_XLD_D2_RK4(mean, chol, subset, nsam) result(rand)
1830#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1831 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_AC_XLD_D2_RK4
1832#endif
1833 use pm_kind, only: RKG => RK4
1834 integer(IK) , intent(in) :: nsam
1835 type(lowDia_type) , intent(in) :: subset
1836 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1837 real(RKG) :: rand(size(chol, 1, IK), nsam)
1838 end function
1839#endif
1840
1841#if RK3_ENABLED
1842 impure module function getMUR_RNGD_AM_AC_XLD_D2_RK3(mean, chol, subset, nsam) result(rand)
1843#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1844 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_AC_XLD_D2_RK3
1845#endif
1846 use pm_kind, only: RKG => RK3
1847 integer(IK) , intent(in) :: nsam
1848 type(lowDia_type) , intent(in) :: subset
1849 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1850 real(RKG) :: rand(size(chol, 1, IK), nsam)
1851 end function
1852#endif
1853
1854#if RK2_ENABLED
1855 impure module function getMUR_RNGD_AM_AC_XLD_D2_RK2(mean, chol, subset, nsam) result(rand)
1856#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1857 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_AC_XLD_D2_RK2
1858#endif
1859 use pm_kind, only: RKG => RK2
1860 integer(IK) , intent(in) :: nsam
1861 type(lowDia_type) , intent(in) :: subset
1862 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1863 real(RKG) :: rand(size(chol, 1, IK), nsam)
1864 end function
1865#endif
1866
1867#if RK1_ENABLED
1868 impure module function getMUR_RNGD_AM_AC_XLD_D2_RK1(mean, chol, subset, nsam) result(rand)
1869#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1870 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGD_AM_AC_XLD_D2_RK1
1871#endif
1872 use pm_kind, only: RKG => RK1
1873 integer(IK) , intent(in) :: nsam
1874 type(lowDia_type) , intent(in) :: subset
1875 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
1876 real(RKG) :: rand(size(chol, 1, IK), nsam)
1877 end function
1878#endif
1879
1880 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1881
1882 end interface
1883
1884 ! D2 RNGF
1885
1886 interface getUnifEllRand
1887
1888 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1889
1890#if RK5_ENABLED
1891 impure module function getMUR_RNGF_AM_DC_XXX_D2_RK5(rng, mean, nsam) result(rand)
1892#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1893 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_DC_XXX_D2_RK5
1894#endif
1895 use pm_kind, only: RKG => RK5
1896 type(rngf_type) , intent(in) :: rng
1897 integer(IK) , intent(in) :: nsam
1898 real(RKG) , intent(in) , contiguous :: mean(:)
1899 real(RKG) :: rand(size(mean, 1, IK), nsam)
1900 end function
1901#endif
1902
1903#if RK4_ENABLED
1904 impure module function getMUR_RNGF_AM_DC_XXX_D2_RK4(rng, mean, nsam) result(rand)
1905#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1906 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_DC_XXX_D2_RK4
1907#endif
1908 use pm_kind, only: RKG => RK4
1909 type(rngf_type) , intent(in) :: rng
1910 integer(IK) , intent(in) :: nsam
1911 real(RKG) , intent(in) , contiguous :: mean(:)
1912 real(RKG) :: rand(size(mean, 1, IK), nsam)
1913 end function
1914#endif
1915
1916#if RK3_ENABLED
1917 impure module function getMUR_RNGF_AM_DC_XXX_D2_RK3(rng, mean, nsam) result(rand)
1918#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1919 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_DC_XXX_D2_RK3
1920#endif
1921 use pm_kind, only: RKG => RK3
1922 type(rngf_type) , intent(in) :: rng
1923 integer(IK) , intent(in) :: nsam
1924 real(RKG) , intent(in) , contiguous :: mean(:)
1925 real(RKG) :: rand(size(mean, 1, IK), nsam)
1926 end function
1927#endif
1928
1929#if RK2_ENABLED
1930 impure module function getMUR_RNGF_AM_DC_XXX_D2_RK2(rng, mean, nsam) result(rand)
1931#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1932 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_DC_XXX_D2_RK2
1933#endif
1934 use pm_kind, only: RKG => RK2
1935 type(rngf_type) , intent(in) :: rng
1936 integer(IK) , intent(in) :: nsam
1937 real(RKG) , intent(in) , contiguous :: mean(:)
1938 real(RKG) :: rand(size(mean, 1, IK), nsam)
1939 end function
1940#endif
1941
1942#if RK1_ENABLED
1943 impure module function getMUR_RNGF_AM_DC_XXX_D2_RK1(rng, mean, nsam) result(rand)
1944#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1945 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_DC_XXX_D2_RK1
1946#endif
1947 use pm_kind, only: RKG => RK1
1948 type(rngf_type) , intent(in) :: rng
1949 integer(IK) , intent(in) :: nsam
1950 real(RKG) , intent(in) , contiguous :: mean(:)
1951 real(RKG) :: rand(size(mean, 1, IK), nsam)
1952 end function
1953#endif
1954
1955 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1956
1957#if RK5_ENABLED
1958 impure module function getMUR_RNGF_DM_AC_UXD_D2_RK5(rng, chol, subset, nsam) result(rand)
1959#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1960 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_DM_AC_UXD_D2_RK5
1961#endif
1962 use pm_kind, only: RKG => RK5
1963 type(rngf_type) , intent(in) :: rng
1964 integer(IK) , intent(in) :: nsam
1965 type(uppDia_type) , intent(in) :: subset
1966 real(RKG) , intent(in) , contiguous :: chol(:,:)
1967 real(RKG) :: rand(size(chol, 1, IK), nsam)
1968 end function
1969#endif
1970
1971#if RK4_ENABLED
1972 impure module function getMUR_RNGF_DM_AC_UXD_D2_RK4(rng, chol, subset, nsam) result(rand)
1973#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1974 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_DM_AC_UXD_D2_RK4
1975#endif
1976 use pm_kind, only: RKG => RK4
1977 type(rngf_type) , intent(in) :: rng
1978 integer(IK) , intent(in) :: nsam
1979 type(uppDia_type) , intent(in) :: subset
1980 real(RKG) , intent(in) , contiguous :: chol(:,:)
1981 real(RKG) :: rand(size(chol, 1, IK), nsam)
1982 end function
1983#endif
1984
1985#if RK3_ENABLED
1986 impure module function getMUR_RNGF_DM_AC_UXD_D2_RK3(rng, chol, subset, nsam) result(rand)
1987#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1988 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_DM_AC_UXD_D2_RK3
1989#endif
1990 use pm_kind, only: RKG => RK3
1991 type(rngf_type) , intent(in) :: rng
1992 integer(IK) , intent(in) :: nsam
1993 type(uppDia_type) , intent(in) :: subset
1994 real(RKG) , intent(in) , contiguous :: chol(:,:)
1995 real(RKG) :: rand(size(chol, 1, IK), nsam)
1996 end function
1997#endif
1998
1999#if RK2_ENABLED
2000 impure module function getMUR_RNGF_DM_AC_UXD_D2_RK2(rng, chol, subset, nsam) result(rand)
2001#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2002 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_DM_AC_UXD_D2_RK2
2003#endif
2004 use pm_kind, only: RKG => RK2
2005 type(rngf_type) , intent(in) :: rng
2006 integer(IK) , intent(in) :: nsam
2007 type(uppDia_type) , intent(in) :: subset
2008 real(RKG) , intent(in) , contiguous :: chol(:,:)
2009 real(RKG) :: rand(size(chol, 1, IK), nsam)
2010 end function
2011#endif
2012
2013#if RK1_ENABLED
2014 impure module function getMUR_RNGF_DM_AC_UXD_D2_RK1(rng, chol, subset, nsam) result(rand)
2015#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2016 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_DM_AC_UXD_D2_RK1
2017#endif
2018 use pm_kind, only: RKG => RK1
2019 type(rngf_type) , intent(in) :: rng
2020 integer(IK) , intent(in) :: nsam
2021 type(uppDia_type) , intent(in) :: subset
2022 real(RKG) , intent(in) , contiguous :: chol(:,:)
2023 real(RKG) :: rand(size(chol, 1, IK), nsam)
2024 end function
2025#endif
2026
2027 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2028
2029#if RK5_ENABLED
2030 impure module function getMUR_RNGF_DM_AC_XLD_D2_RK5(rng, chol, subset, nsam) result(rand)
2031#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2032 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_DM_AC_XLD_D2_RK5
2033#endif
2034 use pm_kind, only: RKG => RK5
2035 type(rngf_type) , intent(in) :: rng
2036 integer(IK) , intent(in) :: nsam
2037 type(lowDia_type) , intent(in) :: subset
2038 real(RKG) , intent(in) , contiguous :: chol(:,:)
2039 real(RKG) :: rand(size(chol, 1, IK), nsam)
2040 end function
2041#endif
2042
2043#if RK4_ENABLED
2044 impure module function getMUR_RNGF_DM_AC_XLD_D2_RK4(rng, chol, subset, nsam) result(rand)
2045#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2046 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_DM_AC_XLD_D2_RK4
2047#endif
2048 use pm_kind, only: RKG => RK4
2049 type(rngf_type) , intent(in) :: rng
2050 integer(IK) , intent(in) :: nsam
2051 type(lowDia_type) , intent(in) :: subset
2052 real(RKG) , intent(in) , contiguous :: chol(:,:)
2053 real(RKG) :: rand(size(chol, 1, IK), nsam)
2054 end function
2055#endif
2056
2057#if RK3_ENABLED
2058 impure module function getMUR_RNGF_DM_AC_XLD_D2_RK3(rng, chol, subset, nsam) result(rand)
2059#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2060 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_DM_AC_XLD_D2_RK3
2061#endif
2062 use pm_kind, only: RKG => RK3
2063 type(rngf_type) , intent(in) :: rng
2064 integer(IK) , intent(in) :: nsam
2065 type(lowDia_type) , intent(in) :: subset
2066 real(RKG) , intent(in) , contiguous :: chol(:,:)
2067 real(RKG) :: rand(size(chol, 1, IK), nsam)
2068 end function
2069#endif
2070
2071#if RK2_ENABLED
2072 impure module function getMUR_RNGF_DM_AC_XLD_D2_RK2(rng, chol, subset, nsam) result(rand)
2073#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2074 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_DM_AC_XLD_D2_RK2
2075#endif
2076 use pm_kind, only: RKG => RK2
2077 type(rngf_type) , intent(in) :: rng
2078 integer(IK) , intent(in) :: nsam
2079 type(lowDia_type) , intent(in) :: subset
2080 real(RKG) , intent(in) , contiguous :: chol(:,:)
2081 real(RKG) :: rand(size(chol, 1, IK), nsam)
2082 end function
2083#endif
2084
2085#if RK1_ENABLED
2086 impure module function getMUR_RNGF_DM_AC_XLD_D2_RK1(rng, chol, subset, nsam) result(rand)
2087#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2088 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_DM_AC_XLD_D2_RK1
2089#endif
2090 use pm_kind, only: RKG => RK1
2091 type(rngf_type) , intent(in) :: rng
2092 integer(IK) , intent(in) :: nsam
2093 type(lowDia_type) , intent(in) :: subset
2094 real(RKG) , intent(in) , contiguous :: chol(:,:)
2095 real(RKG) :: rand(size(chol, 1, IK), nsam)
2096 end function
2097#endif
2098
2099 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2100
2101#if RK5_ENABLED
2102 impure module function getMUR_RNGF_AM_AC_UXD_D2_RK5(rng, mean, chol, subset, nsam) result(rand)
2103#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2104 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_AC_UXD_D2_RK5
2105#endif
2106 use pm_kind, only: RKG => RK5
2107 type(rngf_type) , intent(in) :: rng
2108 integer(IK) , intent(in) :: nsam
2109 type(uppDia_type) , intent(in) :: subset
2110 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2111 real(RKG) :: rand(size(chol, 1, IK), nsam)
2112 end function
2113#endif
2114
2115#if RK4_ENABLED
2116 impure module function getMUR_RNGF_AM_AC_UXD_D2_RK4(rng, mean, chol, subset, nsam) result(rand)
2117#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2118 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_AC_UXD_D2_RK4
2119#endif
2120 use pm_kind, only: RKG => RK4
2121 type(rngf_type) , intent(in) :: rng
2122 integer(IK) , intent(in) :: nsam
2123 type(uppDia_type) , intent(in) :: subset
2124 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2125 real(RKG) :: rand(size(chol, 1, IK), nsam)
2126 end function
2127#endif
2128
2129#if RK3_ENABLED
2130 impure module function getMUR_RNGF_AM_AC_UXD_D2_RK3(rng, mean, chol, subset, nsam) result(rand)
2131#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2132 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_AC_UXD_D2_RK3
2133#endif
2134 use pm_kind, only: RKG => RK3
2135 type(rngf_type) , intent(in) :: rng
2136 integer(IK) , intent(in) :: nsam
2137 type(uppDia_type) , intent(in) :: subset
2138 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2139 real(RKG) :: rand(size(chol, 1, IK), nsam)
2140 end function
2141#endif
2142
2143#if RK2_ENABLED
2144 impure module function getMUR_RNGF_AM_AC_UXD_D2_RK2(rng, mean, chol, subset, nsam) result(rand)
2145#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2146 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_AC_UXD_D2_RK2
2147#endif
2148 use pm_kind, only: RKG => RK2
2149 type(rngf_type) , intent(in) :: rng
2150 integer(IK) , intent(in) :: nsam
2151 type(uppDia_type) , intent(in) :: subset
2152 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2153 real(RKG) :: rand(size(chol, 1, IK), nsam)
2154 end function
2155#endif
2156
2157#if RK1_ENABLED
2158 impure module function getMUR_RNGF_AM_AC_UXD_D2_RK1(rng, mean, chol, subset, nsam) result(rand)
2159#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2160 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_AC_UXD_D2_RK1
2161#endif
2162 use pm_kind, only: RKG => RK1
2163 type(rngf_type) , intent(in) :: rng
2164 integer(IK) , intent(in) :: nsam
2165 type(uppDia_type) , intent(in) :: subset
2166 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2167 real(RKG) :: rand(size(chol, 1, IK), nsam)
2168 end function
2169#endif
2170
2171 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2172
2173#if RK5_ENABLED
2174 impure module function getMUR_RNGF_AM_AC_XLD_D2_RK5(rng, mean, chol, subset, nsam) result(rand)
2175#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2176 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_AC_XLD_D2_RK5
2177#endif
2178 use pm_kind, only: RKG => RK5
2179 type(rngf_type) , intent(in) :: rng
2180 integer(IK) , intent(in) :: nsam
2181 type(lowDia_type) , intent(in) :: subset
2182 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2183 real(RKG) :: rand(size(chol, 1, IK), nsam)
2184 end function
2185#endif
2186
2187#if RK4_ENABLED
2188 impure module function getMUR_RNGF_AM_AC_XLD_D2_RK4(rng, mean, chol, subset, nsam) result(rand)
2189#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2190 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_AC_XLD_D2_RK4
2191#endif
2192 use pm_kind, only: RKG => RK4
2193 type(rngf_type) , intent(in) :: rng
2194 integer(IK) , intent(in) :: nsam
2195 type(lowDia_type) , intent(in) :: subset
2196 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2197 real(RKG) :: rand(size(chol, 1, IK), nsam)
2198 end function
2199#endif
2200
2201#if RK3_ENABLED
2202 impure module function getMUR_RNGF_AM_AC_XLD_D2_RK3(rng, mean, chol, subset, nsam) result(rand)
2203#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2204 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_AC_XLD_D2_RK3
2205#endif
2206 use pm_kind, only: RKG => RK3
2207 type(rngf_type) , intent(in) :: rng
2208 integer(IK) , intent(in) :: nsam
2209 type(lowDia_type) , intent(in) :: subset
2210 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2211 real(RKG) :: rand(size(chol, 1, IK), nsam)
2212 end function
2213#endif
2214
2215#if RK2_ENABLED
2216 impure module function getMUR_RNGF_AM_AC_XLD_D2_RK2(rng, mean, chol, subset, nsam) result(rand)
2217#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2218 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_AC_XLD_D2_RK2
2219#endif
2220 use pm_kind, only: RKG => RK2
2221 type(rngf_type) , intent(in) :: rng
2222 integer(IK) , intent(in) :: nsam
2223 type(lowDia_type) , intent(in) :: subset
2224 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2225 real(RKG) :: rand(size(chol, 1, IK), nsam)
2226 end function
2227#endif
2228
2229#if RK1_ENABLED
2230 impure module function getMUR_RNGF_AM_AC_XLD_D2_RK1(rng, mean, chol, subset, nsam) result(rand)
2231#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2232 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGF_AM_AC_XLD_D2_RK1
2233#endif
2234 use pm_kind, only: RKG => RK1
2235 type(rngf_type) , intent(in) :: rng
2236 integer(IK) , intent(in) :: nsam
2237 type(lowDia_type) , intent(in) :: subset
2238 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2239 real(RKG) :: rand(size(chol, 1, IK), nsam)
2240 end function
2241#endif
2242
2243 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2244
2245 end interface
2246
2247 ! D2 RNGX
2248
2249 interface getUnifEllRand
2250
2251 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2252
2253#if RK5_ENABLED
2254 impure module function getMUR_RNGX_AM_DC_XXX_D2_RK5(rng, mean, nsam) result(rand)
2255#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2256 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_DC_XXX_D2_RK5
2257#endif
2258 use pm_kind, only: RKG => RK5
2259 type(xoshiro256ssw_type), intent(inout) :: rng
2260 integer(IK) , intent(in) :: nsam
2261 real(RKG) , intent(in) , contiguous :: mean(:)
2262 real(RKG) :: rand(size(mean, 1, IK), nsam)
2263 end function
2264#endif
2265
2266#if RK4_ENABLED
2267 impure module function getMUR_RNGX_AM_DC_XXX_D2_RK4(rng, mean, nsam) result(rand)
2268#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2269 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_DC_XXX_D2_RK4
2270#endif
2271 use pm_kind, only: RKG => RK4
2272 type(xoshiro256ssw_type), intent(inout) :: rng
2273 integer(IK) , intent(in) :: nsam
2274 real(RKG) , intent(in) , contiguous :: mean(:)
2275 real(RKG) :: rand(size(mean, 1, IK), nsam)
2276 end function
2277#endif
2278
2279#if RK3_ENABLED
2280 impure module function getMUR_RNGX_AM_DC_XXX_D2_RK3(rng, mean, nsam) result(rand)
2281#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2282 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_DC_XXX_D2_RK3
2283#endif
2284 use pm_kind, only: RKG => RK3
2285 type(xoshiro256ssw_type), intent(inout) :: rng
2286 integer(IK) , intent(in) :: nsam
2287 real(RKG) , intent(in) , contiguous :: mean(:)
2288 real(RKG) :: rand(size(mean, 1, IK), nsam)
2289 end function
2290#endif
2291
2292#if RK2_ENABLED
2293 impure module function getMUR_RNGX_AM_DC_XXX_D2_RK2(rng, mean, nsam) result(rand)
2294#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2295 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_DC_XXX_D2_RK2
2296#endif
2297 use pm_kind, only: RKG => RK2
2298 type(xoshiro256ssw_type), intent(inout) :: rng
2299 integer(IK) , intent(in) :: nsam
2300 real(RKG) , intent(in) , contiguous :: mean(:)
2301 real(RKG) :: rand(size(mean, 1, IK), nsam)
2302 end function
2303#endif
2304
2305#if RK1_ENABLED
2306 impure module function getMUR_RNGX_AM_DC_XXX_D2_RK1(rng, mean, nsam) result(rand)
2307#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2308 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_DC_XXX_D2_RK1
2309#endif
2310 use pm_kind, only: RKG => RK1
2311 type(xoshiro256ssw_type), intent(inout) :: rng
2312 integer(IK) , intent(in) :: nsam
2313 real(RKG) , intent(in) , contiguous :: mean(:)
2314 real(RKG) :: rand(size(mean, 1, IK), nsam)
2315 end function
2316#endif
2317
2318 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2319
2320#if RK5_ENABLED
2321 impure module function getMUR_RNGX_DM_AC_UXD_D2_RK5(rng, chol, subset, nsam) result(rand)
2322#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2323 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_DM_AC_UXD_D2_RK5
2324#endif
2325 use pm_kind, only: RKG => RK5
2326 type(xoshiro256ssw_type), intent(inout) :: rng
2327 integer(IK) , intent(in) :: nsam
2328 type(uppDia_type) , intent(in) :: subset
2329 real(RKG) , intent(in) , contiguous :: chol(:,:)
2330 real(RKG) :: rand(size(chol, 1, IK), nsam)
2331 end function
2332#endif
2333
2334#if RK4_ENABLED
2335 impure module function getMUR_RNGX_DM_AC_UXD_D2_RK4(rng, chol, subset, nsam) result(rand)
2336#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2337 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_DM_AC_UXD_D2_RK4
2338#endif
2339 use pm_kind, only: RKG => RK4
2340 type(xoshiro256ssw_type), intent(inout) :: rng
2341 integer(IK) , intent(in) :: nsam
2342 type(uppDia_type) , intent(in) :: subset
2343 real(RKG) , intent(in) , contiguous :: chol(:,:)
2344 real(RKG) :: rand(size(chol, 1, IK), nsam)
2345 end function
2346#endif
2347
2348#if RK3_ENABLED
2349 impure module function getMUR_RNGX_DM_AC_UXD_D2_RK3(rng, chol, subset, nsam) result(rand)
2350#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2351 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_DM_AC_UXD_D2_RK3
2352#endif
2353 use pm_kind, only: RKG => RK3
2354 type(xoshiro256ssw_type), intent(inout) :: rng
2355 integer(IK) , intent(in) :: nsam
2356 type(uppDia_type) , intent(in) :: subset
2357 real(RKG) , intent(in) , contiguous :: chol(:,:)
2358 real(RKG) :: rand(size(chol, 1, IK), nsam)
2359 end function
2360#endif
2361
2362#if RK2_ENABLED
2363 impure module function getMUR_RNGX_DM_AC_UXD_D2_RK2(rng, chol, subset, nsam) result(rand)
2364#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2365 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_DM_AC_UXD_D2_RK2
2366#endif
2367 use pm_kind, only: RKG => RK2
2368 type(xoshiro256ssw_type), intent(inout) :: rng
2369 integer(IK) , intent(in) :: nsam
2370 type(uppDia_type) , intent(in) :: subset
2371 real(RKG) , intent(in) , contiguous :: chol(:,:)
2372 real(RKG) :: rand(size(chol, 1, IK), nsam)
2373 end function
2374#endif
2375
2376#if RK1_ENABLED
2377 impure module function getMUR_RNGX_DM_AC_UXD_D2_RK1(rng, chol, subset, nsam) result(rand)
2378#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2379 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_DM_AC_UXD_D2_RK1
2380#endif
2381 use pm_kind, only: RKG => RK1
2382 type(xoshiro256ssw_type), intent(inout) :: rng
2383 integer(IK) , intent(in) :: nsam
2384 type(uppDia_type) , intent(in) :: subset
2385 real(RKG) , intent(in) , contiguous :: chol(:,:)
2386 real(RKG) :: rand(size(chol, 1, IK), nsam)
2387 end function
2388#endif
2389
2390 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2391
2392#if RK5_ENABLED
2393 impure module function getMUR_RNGX_DM_AC_XLD_D2_RK5(rng, chol, subset, nsam) result(rand)
2394#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2395 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_DM_AC_XLD_D2_RK5
2396#endif
2397 use pm_kind, only: RKG => RK5
2398 type(xoshiro256ssw_type), intent(inout) :: rng
2399 integer(IK) , intent(in) :: nsam
2400 type(lowDia_type) , intent(in) :: subset
2401 real(RKG) , intent(in) , contiguous :: chol(:,:)
2402 real(RKG) :: rand(size(chol, 1, IK), nsam)
2403 end function
2404#endif
2405
2406#if RK4_ENABLED
2407 impure module function getMUR_RNGX_DM_AC_XLD_D2_RK4(rng, chol, subset, nsam) result(rand)
2408#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2409 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_DM_AC_XLD_D2_RK4
2410#endif
2411 use pm_kind, only: RKG => RK4
2412 type(xoshiro256ssw_type), intent(inout) :: rng
2413 integer(IK) , intent(in) :: nsam
2414 type(lowDia_type) , intent(in) :: subset
2415 real(RKG) , intent(in) , contiguous :: chol(:,:)
2416 real(RKG) :: rand(size(chol, 1, IK), nsam)
2417 end function
2418#endif
2419
2420#if RK3_ENABLED
2421 impure module function getMUR_RNGX_DM_AC_XLD_D2_RK3(rng, chol, subset, nsam) result(rand)
2422#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2423 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_DM_AC_XLD_D2_RK3
2424#endif
2425 use pm_kind, only: RKG => RK3
2426 type(xoshiro256ssw_type), intent(inout) :: rng
2427 integer(IK) , intent(in) :: nsam
2428 type(lowDia_type) , intent(in) :: subset
2429 real(RKG) , intent(in) , contiguous :: chol(:,:)
2430 real(RKG) :: rand(size(chol, 1, IK), nsam)
2431 end function
2432#endif
2433
2434#if RK2_ENABLED
2435 impure module function getMUR_RNGX_DM_AC_XLD_D2_RK2(rng, chol, subset, nsam) result(rand)
2436#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2437 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_DM_AC_XLD_D2_RK2
2438#endif
2439 use pm_kind, only: RKG => RK2
2440 type(xoshiro256ssw_type), intent(inout) :: rng
2441 integer(IK) , intent(in) :: nsam
2442 type(lowDia_type) , intent(in) :: subset
2443 real(RKG) , intent(in) , contiguous :: chol(:,:)
2444 real(RKG) :: rand(size(chol, 1, IK), nsam)
2445 end function
2446#endif
2447
2448#if RK1_ENABLED
2449 impure module function getMUR_RNGX_DM_AC_XLD_D2_RK1(rng, chol, subset, nsam) result(rand)
2450#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2451 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_DM_AC_XLD_D2_RK1
2452#endif
2453 use pm_kind, only: RKG => RK1
2454 type(xoshiro256ssw_type), intent(inout) :: rng
2455 integer(IK) , intent(in) :: nsam
2456 type(lowDia_type) , intent(in) :: subset
2457 real(RKG) , intent(in) , contiguous :: chol(:,:)
2458 real(RKG) :: rand(size(chol, 1, IK), nsam)
2459 end function
2460#endif
2461
2462 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2463
2464#if RK5_ENABLED
2465 impure module function getMUR_RNGX_AM_AC_UXD_D2_RK5(rng, mean, chol, subset, nsam) result(rand)
2466#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2467 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_AC_UXD_D2_RK5
2468#endif
2469 use pm_kind, only: RKG => RK5
2470 type(xoshiro256ssw_type), intent(inout) :: rng
2471 integer(IK) , intent(in) :: nsam
2472 type(uppDia_type) , intent(in) :: subset
2473 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2474 real(RKG) :: rand(size(chol, 1, IK), nsam)
2475 end function
2476#endif
2477
2478#if RK4_ENABLED
2479 impure module function getMUR_RNGX_AM_AC_UXD_D2_RK4(rng, mean, chol, subset, nsam) result(rand)
2480#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2481 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_AC_UXD_D2_RK4
2482#endif
2483 use pm_kind, only: RKG => RK4
2484 type(xoshiro256ssw_type), intent(inout) :: rng
2485 integer(IK) , intent(in) :: nsam
2486 type(uppDia_type) , intent(in) :: subset
2487 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2488 real(RKG) :: rand(size(chol, 1, IK), nsam)
2489 end function
2490#endif
2491
2492#if RK3_ENABLED
2493 impure module function getMUR_RNGX_AM_AC_UXD_D2_RK3(rng, mean, chol, subset, nsam) result(rand)
2494#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2495 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_AC_UXD_D2_RK3
2496#endif
2497 use pm_kind, only: RKG => RK3
2498 type(xoshiro256ssw_type), intent(inout) :: rng
2499 integer(IK) , intent(in) :: nsam
2500 type(uppDia_type) , intent(in) :: subset
2501 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2502 real(RKG) :: rand(size(chol, 1, IK), nsam)
2503 end function
2504#endif
2505
2506#if RK2_ENABLED
2507 impure module function getMUR_RNGX_AM_AC_UXD_D2_RK2(rng, mean, chol, subset, nsam) result(rand)
2508#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2509 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_AC_UXD_D2_RK2
2510#endif
2511 use pm_kind, only: RKG => RK2
2512 type(xoshiro256ssw_type), intent(inout) :: rng
2513 integer(IK) , intent(in) :: nsam
2514 type(uppDia_type) , intent(in) :: subset
2515 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2516 real(RKG) :: rand(size(chol, 1, IK), nsam)
2517 end function
2518#endif
2519
2520#if RK1_ENABLED
2521 impure module function getMUR_RNGX_AM_AC_UXD_D2_RK1(rng, mean, chol, subset, nsam) result(rand)
2522#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2523 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_AC_UXD_D2_RK1
2524#endif
2525 use pm_kind, only: RKG => RK1
2526 type(xoshiro256ssw_type), intent(inout) :: rng
2527 integer(IK) , intent(in) :: nsam
2528 type(uppDia_type) , intent(in) :: subset
2529 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2530 real(RKG) :: rand(size(chol, 1, IK), nsam)
2531 end function
2532#endif
2533
2534 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2535
2536#if RK5_ENABLED
2537 impure module function getMUR_RNGX_AM_AC_XLD_D2_RK5(rng, mean, chol, subset, nsam) result(rand)
2538#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2539 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_AC_XLD_D2_RK5
2540#endif
2541 use pm_kind, only: RKG => RK5
2542 type(xoshiro256ssw_type), intent(inout) :: rng
2543 integer(IK) , intent(in) :: nsam
2544 type(lowDia_type) , intent(in) :: subset
2545 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2546 real(RKG) :: rand(size(chol, 1, IK), nsam)
2547 end function
2548#endif
2549
2550#if RK4_ENABLED
2551 impure module function getMUR_RNGX_AM_AC_XLD_D2_RK4(rng, mean, chol, subset, nsam) result(rand)
2552#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2553 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_AC_XLD_D2_RK4
2554#endif
2555 use pm_kind, only: RKG => RK4
2556 type(xoshiro256ssw_type), intent(inout) :: rng
2557 integer(IK) , intent(in) :: nsam
2558 type(lowDia_type) , intent(in) :: subset
2559 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2560 real(RKG) :: rand(size(chol, 1, IK), nsam)
2561 end function
2562#endif
2563
2564#if RK3_ENABLED
2565 impure module function getMUR_RNGX_AM_AC_XLD_D2_RK3(rng, mean, chol, subset, nsam) result(rand)
2566#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2567 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_AC_XLD_D2_RK3
2568#endif
2569 use pm_kind, only: RKG => RK3
2570 type(xoshiro256ssw_type), intent(inout) :: rng
2571 integer(IK) , intent(in) :: nsam
2572 type(lowDia_type) , intent(in) :: subset
2573 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2574 real(RKG) :: rand(size(chol, 1, IK), nsam)
2575 end function
2576#endif
2577
2578#if RK2_ENABLED
2579 impure module function getMUR_RNGX_AM_AC_XLD_D2_RK2(rng, mean, chol, subset, nsam) result(rand)
2580#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2581 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_AC_XLD_D2_RK2
2582#endif
2583 use pm_kind, only: RKG => RK2
2584 type(xoshiro256ssw_type), intent(inout) :: rng
2585 integer(IK) , intent(in) :: nsam
2586 type(lowDia_type) , intent(in) :: subset
2587 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2588 real(RKG) :: rand(size(chol, 1, IK), nsam)
2589 end function
2590#endif
2591
2592#if RK1_ENABLED
2593 impure module function getMUR_RNGX_AM_AC_XLD_D2_RK1(rng, mean, chol, subset, nsam) result(rand)
2594#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2595 !DEC$ ATTRIBUTES DLLEXPORT :: getMUR_RNGX_AM_AC_XLD_D2_RK1
2596#endif
2597 use pm_kind, only: RKG => RK1
2598 type(xoshiro256ssw_type), intent(inout) :: rng
2599 integer(IK) , intent(in) :: nsam
2600 type(lowDia_type) , intent(in) :: subset
2601 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2602 real(RKG) :: rand(size(chol, 1, IK), nsam)
2603 end function
2604#endif
2605
2606 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2607
2608 end interface
2609
2610!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2611
2711
2712 ! D1 RNGD
2713
2715
2716 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2717
2718#if RK5_ENABLED
2719 impure module subroutine setMUR_RNGD_DM_DC_XXX_D1_RK5(rand)
2720#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2721 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_DC_XXX_D1_RK5
2722#endif
2723 use pm_kind, only: RKG => RK5
2724 real(RKG) , intent(out) , contiguous :: rand(:)
2725 end subroutine
2726#endif
2727
2728#if RK4_ENABLED
2729 impure module subroutine setMUR_RNGD_DM_DC_XXX_D1_RK4(rand)
2730#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2731 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_DC_XXX_D1_RK4
2732#endif
2733 use pm_kind, only: RKG => RK4
2734 real(RKG) , intent(out) , contiguous :: rand(:)
2735 end subroutine
2736#endif
2737
2738#if RK3_ENABLED
2739 impure module subroutine setMUR_RNGD_DM_DC_XXX_D1_RK3(rand)
2740#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2741 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_DC_XXX_D1_RK3
2742#endif
2743 use pm_kind, only: RKG => RK3
2744 real(RKG) , intent(out) , contiguous :: rand(:)
2745 end subroutine
2746#endif
2747
2748#if RK2_ENABLED
2749 impure module subroutine setMUR_RNGD_DM_DC_XXX_D1_RK2(rand)
2750#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2751 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_DC_XXX_D1_RK2
2752#endif
2753 use pm_kind, only: RKG => RK2
2754 real(RKG) , intent(out) , contiguous :: rand(:)
2755 end subroutine
2756#endif
2757
2758#if RK1_ENABLED
2759 impure module subroutine setMUR_RNGD_DM_DC_XXX_D1_RK1(rand)
2760#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2761 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_DC_XXX_D1_RK1
2762#endif
2763 use pm_kind, only: RKG => RK1
2764 real(RKG) , intent(out) , contiguous :: rand(:)
2765 end subroutine
2766#endif
2767
2768 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2769
2770#if RK5_ENABLED
2771 impure module subroutine setMUR_RNGD_AM_DC_XXX_D1_RK5(rand, mean)
2772#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2773 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_DC_XXX_D1_RK5
2774#endif
2775 use pm_kind, only: RKG => RK5
2776 real(RKG) , intent(out) , contiguous :: rand(:)
2777 real(RKG) , intent(in) , contiguous :: mean(:)
2778 end subroutine
2779#endif
2780
2781#if RK4_ENABLED
2782 impure module subroutine setMUR_RNGD_AM_DC_XXX_D1_RK4(rand, mean)
2783#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2784 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_DC_XXX_D1_RK4
2785#endif
2786 use pm_kind, only: RKG => RK4
2787 real(RKG) , intent(out) , contiguous :: rand(:)
2788 real(RKG) , intent(in) , contiguous :: mean(:)
2789 end subroutine
2790#endif
2791
2792#if RK3_ENABLED
2793 impure module subroutine setMUR_RNGD_AM_DC_XXX_D1_RK3(rand, mean)
2794#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2795 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_DC_XXX_D1_RK3
2796#endif
2797 use pm_kind, only: RKG => RK3
2798 real(RKG) , intent(out) , contiguous :: rand(:)
2799 real(RKG) , intent(in) , contiguous :: mean(:)
2800 end subroutine
2801#endif
2802
2803#if RK2_ENABLED
2804 impure module subroutine setMUR_RNGD_AM_DC_XXX_D1_RK2(rand, mean)
2805#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2806 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_DC_XXX_D1_RK2
2807#endif
2808 use pm_kind, only: RKG => RK2
2809 real(RKG) , intent(out) , contiguous :: rand(:)
2810 real(RKG) , intent(in) , contiguous :: mean(:)
2811 end subroutine
2812#endif
2813
2814#if RK1_ENABLED
2815 impure module subroutine setMUR_RNGD_AM_DC_XXX_D1_RK1(rand, mean)
2816#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2817 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_DC_XXX_D1_RK1
2818#endif
2819 use pm_kind, only: RKG => RK1
2820 real(RKG) , intent(out) , contiguous :: rand(:)
2821 real(RKG) , intent(in) , contiguous :: mean(:)
2822 end subroutine
2823#endif
2824
2825 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2826
2827#if RK5_ENABLED
2828 impure module subroutine setMUR_RNGD_DM_AC_UXD_D1_RK5(rand, chol, subset)
2829#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2830 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_AC_UXD_D1_RK5
2831#endif
2832 use pm_kind, only: RKG => RK5
2833 real(RKG) , intent(out) , contiguous :: rand(:)
2834 real(RKG) , intent(in) , contiguous :: chol(:,:)
2835 type(uppDia_type) , intent(in) :: subset
2836 end subroutine
2837#endif
2838
2839#if RK4_ENABLED
2840 impure module subroutine setMUR_RNGD_DM_AC_UXD_D1_RK4(rand, chol, subset)
2841#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2842 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_AC_UXD_D1_RK4
2843#endif
2844 use pm_kind, only: RKG => RK4
2845 real(RKG) , intent(out) , contiguous :: rand(:)
2846 real(RKG) , intent(in) , contiguous :: chol(:,:)
2847 type(uppDia_type) , intent(in) :: subset
2848 end subroutine
2849#endif
2850
2851#if RK3_ENABLED
2852 impure module subroutine setMUR_RNGD_DM_AC_UXD_D1_RK3(rand, chol, subset)
2853#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2854 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_AC_UXD_D1_RK3
2855#endif
2856 use pm_kind, only: RKG => RK3
2857 real(RKG) , intent(out) , contiguous :: rand(:)
2858 real(RKG) , intent(in) , contiguous :: chol(:,:)
2859 type(uppDia_type) , intent(in) :: subset
2860 end subroutine
2861#endif
2862
2863#if RK2_ENABLED
2864 impure module subroutine setMUR_RNGD_DM_AC_UXD_D1_RK2(rand, chol, subset)
2865#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2866 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_AC_UXD_D1_RK2
2867#endif
2868 use pm_kind, only: RKG => RK2
2869 real(RKG) , intent(out) , contiguous :: rand(:)
2870 real(RKG) , intent(in) , contiguous :: chol(:,:)
2871 type(uppDia_type) , intent(in) :: subset
2872 end subroutine
2873#endif
2874
2875#if RK1_ENABLED
2876 impure module subroutine setMUR_RNGD_DM_AC_UXD_D1_RK1(rand, chol, subset)
2877#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2878 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_AC_UXD_D1_RK1
2879#endif
2880 use pm_kind, only: RKG => RK1
2881 real(RKG) , intent(out) , contiguous :: rand(:)
2882 real(RKG) , intent(in) , contiguous :: chol(:,:)
2883 type(uppDia_type) , intent(in) :: subset
2884 end subroutine
2885#endif
2886
2887 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2888
2889#if RK5_ENABLED
2890 impure module subroutine setMUR_RNGD_DM_AC_XLD_D1_RK5(rand, chol, subset)
2891#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2892 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_AC_XLD_D1_RK5
2893#endif
2894 use pm_kind, only: RKG => RK5
2895 real(RKG) , intent(out) , contiguous :: rand(:)
2896 real(RKG) , intent(in) , contiguous :: chol(:,:)
2897 type(lowDia_type) , intent(in) :: subset
2898 end subroutine
2899#endif
2900
2901#if RK4_ENABLED
2902 impure module subroutine setMUR_RNGD_DM_AC_XLD_D1_RK4(rand, chol, subset)
2903#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2904 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_AC_XLD_D1_RK4
2905#endif
2906 use pm_kind, only: RKG => RK4
2907 real(RKG) , intent(out) , contiguous :: rand(:)
2908 real(RKG) , intent(in) , contiguous :: chol(:,:)
2909 type(lowDia_type) , intent(in) :: subset
2910 end subroutine
2911#endif
2912
2913#if RK3_ENABLED
2914 impure module subroutine setMUR_RNGD_DM_AC_XLD_D1_RK3(rand, chol, subset)
2915#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2916 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_AC_XLD_D1_RK3
2917#endif
2918 use pm_kind, only: RKG => RK3
2919 real(RKG) , intent(out) , contiguous :: rand(:)
2920 real(RKG) , intent(in) , contiguous :: chol(:,:)
2921 type(lowDia_type) , intent(in) :: subset
2922 end subroutine
2923#endif
2924
2925#if RK2_ENABLED
2926 impure module subroutine setMUR_RNGD_DM_AC_XLD_D1_RK2(rand, chol, subset)
2927#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2928 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_AC_XLD_D1_RK2
2929#endif
2930 use pm_kind, only: RKG => RK2
2931 real(RKG) , intent(out) , contiguous :: rand(:)
2932 real(RKG) , intent(in) , contiguous :: chol(:,:)
2933 type(lowDia_type) , intent(in) :: subset
2934 end subroutine
2935#endif
2936
2937#if RK1_ENABLED
2938 impure module subroutine setMUR_RNGD_DM_AC_XLD_D1_RK1(rand, chol, subset)
2939#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2940 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_AC_XLD_D1_RK1
2941#endif
2942 use pm_kind, only: RKG => RK1
2943 real(RKG) , intent(out) , contiguous :: rand(:)
2944 real(RKG) , intent(in) , contiguous :: chol(:,:)
2945 type(lowDia_type) , intent(in) :: subset
2946 end subroutine
2947#endif
2948
2949 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2950
2951#if RK5_ENABLED
2952 impure module subroutine setMUR_RNGD_AM_AC_UXD_D1_RK5(rand, mean, chol, subset)
2953#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2954 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_AC_UXD_D1_RK5
2955#endif
2956 use pm_kind, only: RKG => RK5
2957 real(RKG) , intent(out) , contiguous :: rand(:)
2958 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2959 type(uppDia_type) , intent(in) :: subset
2960 end subroutine
2961#endif
2962
2963#if RK4_ENABLED
2964 impure module subroutine setMUR_RNGD_AM_AC_UXD_D1_RK4(rand, mean, chol, subset)
2965#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2966 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_AC_UXD_D1_RK4
2967#endif
2968 use pm_kind, only: RKG => RK4
2969 real(RKG) , intent(out) , contiguous :: rand(:)
2970 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2971 type(uppDia_type) , intent(in) :: subset
2972 end subroutine
2973#endif
2974
2975#if RK3_ENABLED
2976 impure module subroutine setMUR_RNGD_AM_AC_UXD_D1_RK3(rand, mean, chol, subset)
2977#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2978 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_AC_UXD_D1_RK3
2979#endif
2980 use pm_kind, only: RKG => RK3
2981 real(RKG) , intent(out) , contiguous :: rand(:)
2982 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2983 type(uppDia_type) , intent(in) :: subset
2984 end subroutine
2985#endif
2986
2987#if RK2_ENABLED
2988 impure module subroutine setMUR_RNGD_AM_AC_UXD_D1_RK2(rand, mean, chol, subset)
2989#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2990 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_AC_UXD_D1_RK2
2991#endif
2992 use pm_kind, only: RKG => RK2
2993 real(RKG) , intent(out) , contiguous :: rand(:)
2994 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
2995 type(uppDia_type) , intent(in) :: subset
2996 end subroutine
2997#endif
2998
2999#if RK1_ENABLED
3000 impure module subroutine setMUR_RNGD_AM_AC_UXD_D1_RK1(rand, mean, chol, subset)
3001#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3002 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_AC_UXD_D1_RK1
3003#endif
3004 use pm_kind, only: RKG => RK1
3005 real(RKG) , intent(out) , contiguous :: rand(:)
3006 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3007 type(uppDia_type) , intent(in) :: subset
3008 end subroutine
3009#endif
3010
3011 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3012
3013#if RK5_ENABLED
3014 impure module subroutine setMUR_RNGD_AM_AC_XLD_D1_RK5(rand, mean, chol, subset)
3015#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3016 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_AC_XLD_D1_RK5
3017#endif
3018 use pm_kind, only: RKG => RK5
3019 real(RKG) , intent(out) , contiguous :: rand(:)
3020 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3021 type(lowDia_type) , intent(in) :: subset
3022 end subroutine
3023#endif
3024
3025#if RK4_ENABLED
3026 impure module subroutine setMUR_RNGD_AM_AC_XLD_D1_RK4(rand, mean, chol, subset)
3027#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3028 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_AC_XLD_D1_RK4
3029#endif
3030 use pm_kind, only: RKG => RK4
3031 real(RKG) , intent(out) , contiguous :: rand(:)
3032 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3033 type(lowDia_type) , intent(in) :: subset
3034 end subroutine
3035#endif
3036
3037#if RK3_ENABLED
3038 impure module subroutine setMUR_RNGD_AM_AC_XLD_D1_RK3(rand, mean, chol, subset)
3039#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3040 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_AC_XLD_D1_RK3
3041#endif
3042 use pm_kind, only: RKG => RK3
3043 real(RKG) , intent(out) , contiguous :: rand(:)
3044 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3045 type(lowDia_type) , intent(in) :: subset
3046 end subroutine
3047#endif
3048
3049#if RK2_ENABLED
3050 impure module subroutine setMUR_RNGD_AM_AC_XLD_D1_RK2(rand, mean, chol, subset)
3051#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3052 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_AC_XLD_D1_RK2
3053#endif
3054 use pm_kind, only: RKG => RK2
3055 real(RKG) , intent(out) , contiguous :: rand(:)
3056 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3057 type(lowDia_type) , intent(in) :: subset
3058 end subroutine
3059#endif
3060
3061#if RK1_ENABLED
3062 impure module subroutine setMUR_RNGD_AM_AC_XLD_D1_RK1(rand, mean, chol, subset)
3063#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3064 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_AC_XLD_D1_RK1
3065#endif
3066 use pm_kind, only: RKG => RK1
3067 real(RKG) , intent(out) , contiguous :: rand(:)
3068 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3069 type(lowDia_type) , intent(in) :: subset
3070 end subroutine
3071#endif
3072
3073 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3074
3075 end interface
3076
3077 ! D1 RNGF
3078
3079 interface setUnifEllRand
3080
3081 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3082
3083#if RK5_ENABLED
3084 impure module subroutine setMUR_RNGF_DM_DC_XXX_D1_RK5(rng, rand)
3085#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3086 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_DC_XXX_D1_RK5
3087#endif
3088 use pm_kind, only: RKG => RK5
3089 type(rngf_type) , intent(in) :: rng
3090 real(RKG) , intent(out) , contiguous :: rand(:)
3091 end subroutine
3092#endif
3093
3094#if RK4_ENABLED
3095 impure module subroutine setMUR_RNGF_DM_DC_XXX_D1_RK4(rng, rand)
3096#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3097 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_DC_XXX_D1_RK4
3098#endif
3099 use pm_kind, only: RKG => RK4
3100 type(rngf_type) , intent(in) :: rng
3101 real(RKG) , intent(out) , contiguous :: rand(:)
3102 end subroutine
3103#endif
3104
3105#if RK3_ENABLED
3106 impure module subroutine setMUR_RNGF_DM_DC_XXX_D1_RK3(rng, rand)
3107#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3108 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_DC_XXX_D1_RK3
3109#endif
3110 use pm_kind, only: RKG => RK3
3111 type(rngf_type) , intent(in) :: rng
3112 real(RKG) , intent(out) , contiguous :: rand(:)
3113 end subroutine
3114#endif
3115
3116#if RK2_ENABLED
3117 impure module subroutine setMUR_RNGF_DM_DC_XXX_D1_RK2(rng, rand)
3118#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3119 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_DC_XXX_D1_RK2
3120#endif
3121 use pm_kind, only: RKG => RK2
3122 type(rngf_type) , intent(in) :: rng
3123 real(RKG) , intent(out) , contiguous :: rand(:)
3124 end subroutine
3125#endif
3126
3127#if RK1_ENABLED
3128 impure module subroutine setMUR_RNGF_DM_DC_XXX_D1_RK1(rng, rand)
3129#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3130 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_DC_XXX_D1_RK1
3131#endif
3132 use pm_kind, only: RKG => RK1
3133 type(rngf_type) , intent(in) :: rng
3134 real(RKG) , intent(out) , contiguous :: rand(:)
3135 end subroutine
3136#endif
3137
3138 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3139
3140#if RK5_ENABLED
3141 impure module subroutine setMUR_RNGF_AM_DC_XXX_D1_RK5(rng, rand, mean)
3142#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3143 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_DC_XXX_D1_RK5
3144#endif
3145 use pm_kind, only: RKG => RK5
3146 type(rngf_type) , intent(in) :: rng
3147 real(RKG) , intent(out) , contiguous :: rand(:)
3148 real(RKG) , intent(in) , contiguous :: mean(:)
3149 end subroutine
3150#endif
3151
3152#if RK4_ENABLED
3153 impure module subroutine setMUR_RNGF_AM_DC_XXX_D1_RK4(rng, rand, mean)
3154#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3155 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_DC_XXX_D1_RK4
3156#endif
3157 use pm_kind, only: RKG => RK4
3158 type(rngf_type) , intent(in) :: rng
3159 real(RKG) , intent(out) , contiguous :: rand(:)
3160 real(RKG) , intent(in) , contiguous :: mean(:)
3161 end subroutine
3162#endif
3163
3164#if RK3_ENABLED
3165 impure module subroutine setMUR_RNGF_AM_DC_XXX_D1_RK3(rng, rand, mean)
3166#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3167 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_DC_XXX_D1_RK3
3168#endif
3169 use pm_kind, only: RKG => RK3
3170 type(rngf_type) , intent(in) :: rng
3171 real(RKG) , intent(out) , contiguous :: rand(:)
3172 real(RKG) , intent(in) , contiguous :: mean(:)
3173 end subroutine
3174#endif
3175
3176#if RK2_ENABLED
3177 impure module subroutine setMUR_RNGF_AM_DC_XXX_D1_RK2(rng, rand, mean)
3178#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3179 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_DC_XXX_D1_RK2
3180#endif
3181 use pm_kind, only: RKG => RK2
3182 type(rngf_type) , intent(in) :: rng
3183 real(RKG) , intent(out) , contiguous :: rand(:)
3184 real(RKG) , intent(in) , contiguous :: mean(:)
3185 end subroutine
3186#endif
3187
3188#if RK1_ENABLED
3189 impure module subroutine setMUR_RNGF_AM_DC_XXX_D1_RK1(rng, rand, mean)
3190#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3191 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_DC_XXX_D1_RK1
3192#endif
3193 use pm_kind, only: RKG => RK1
3194 type(rngf_type) , intent(in) :: rng
3195 real(RKG) , intent(out) , contiguous :: rand(:)
3196 real(RKG) , intent(in) , contiguous :: mean(:)
3197 end subroutine
3198#endif
3199
3200 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3201
3202#if RK5_ENABLED
3203 impure module subroutine setMUR_RNGF_DM_AC_UXD_D1_RK5(rng, rand, chol, subset)
3204#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3205 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_AC_UXD_D1_RK5
3206#endif
3207 use pm_kind, only: RKG => RK5
3208 type(rngf_type) , intent(in) :: rng
3209 real(RKG) , intent(out) , contiguous :: rand(:)
3210 real(RKG) , intent(in) , contiguous :: chol(:,:)
3211 type(uppDia_type) , intent(in) :: subset
3212 end subroutine
3213#endif
3214
3215#if RK4_ENABLED
3216 impure module subroutine setMUR_RNGF_DM_AC_UXD_D1_RK4(rng, rand, chol, subset)
3217#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3218 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_AC_UXD_D1_RK4
3219#endif
3220 use pm_kind, only: RKG => RK4
3221 type(rngf_type) , intent(in) :: rng
3222 real(RKG) , intent(out) , contiguous :: rand(:)
3223 real(RKG) , intent(in) , contiguous :: chol(:,:)
3224 type(uppDia_type) , intent(in) :: subset
3225 end subroutine
3226#endif
3227
3228#if RK3_ENABLED
3229 impure module subroutine setMUR_RNGF_DM_AC_UXD_D1_RK3(rng, rand, chol, subset)
3230#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3231 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_AC_UXD_D1_RK3
3232#endif
3233 use pm_kind, only: RKG => RK3
3234 type(rngf_type) , intent(in) :: rng
3235 real(RKG) , intent(out) , contiguous :: rand(:)
3236 real(RKG) , intent(in) , contiguous :: chol(:,:)
3237 type(uppDia_type) , intent(in) :: subset
3238 end subroutine
3239#endif
3240
3241#if RK2_ENABLED
3242 impure module subroutine setMUR_RNGF_DM_AC_UXD_D1_RK2(rng, rand, chol, subset)
3243#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3244 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_AC_UXD_D1_RK2
3245#endif
3246 use pm_kind, only: RKG => RK2
3247 type(rngf_type) , intent(in) :: rng
3248 real(RKG) , intent(out) , contiguous :: rand(:)
3249 real(RKG) , intent(in) , contiguous :: chol(:,:)
3250 type(uppDia_type) , intent(in) :: subset
3251 end subroutine
3252#endif
3253
3254#if RK1_ENABLED
3255 impure module subroutine setMUR_RNGF_DM_AC_UXD_D1_RK1(rng, rand, chol, subset)
3256#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3257 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_AC_UXD_D1_RK1
3258#endif
3259 use pm_kind, only: RKG => RK1
3260 type(rngf_type) , intent(in) :: rng
3261 real(RKG) , intent(out) , contiguous :: rand(:)
3262 real(RKG) , intent(in) , contiguous :: chol(:,:)
3263 type(uppDia_type) , intent(in) :: subset
3264 end subroutine
3265#endif
3266
3267 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3268
3269#if RK5_ENABLED
3270 impure module subroutine setMUR_RNGF_DM_AC_XLD_D1_RK5(rng, rand, chol, subset)
3271#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3272 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_AC_XLD_D1_RK5
3273#endif
3274 use pm_kind, only: RKG => RK5
3275 type(rngf_type) , intent(in) :: rng
3276 real(RKG) , intent(out) , contiguous :: rand(:)
3277 real(RKG) , intent(in) , contiguous :: chol(:,:)
3278 type(lowDia_type) , intent(in) :: subset
3279 end subroutine
3280#endif
3281
3282#if RK4_ENABLED
3283 impure module subroutine setMUR_RNGF_DM_AC_XLD_D1_RK4(rng, rand, chol, subset)
3284#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3285 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_AC_XLD_D1_RK4
3286#endif
3287 use pm_kind, only: RKG => RK4
3288 type(rngf_type) , intent(in) :: rng
3289 real(RKG) , intent(out) , contiguous :: rand(:)
3290 real(RKG) , intent(in) , contiguous :: chol(:,:)
3291 type(lowDia_type) , intent(in) :: subset
3292 end subroutine
3293#endif
3294
3295#if RK3_ENABLED
3296 impure module subroutine setMUR_RNGF_DM_AC_XLD_D1_RK3(rng, rand, chol, subset)
3297#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3298 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_AC_XLD_D1_RK3
3299#endif
3300 use pm_kind, only: RKG => RK3
3301 type(rngf_type) , intent(in) :: rng
3302 real(RKG) , intent(out) , contiguous :: rand(:)
3303 real(RKG) , intent(in) , contiguous :: chol(:,:)
3304 type(lowDia_type) , intent(in) :: subset
3305 end subroutine
3306#endif
3307
3308#if RK2_ENABLED
3309 impure module subroutine setMUR_RNGF_DM_AC_XLD_D1_RK2(rng, rand, chol, subset)
3310#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3311 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_AC_XLD_D1_RK2
3312#endif
3313 use pm_kind, only: RKG => RK2
3314 type(rngf_type) , intent(in) :: rng
3315 real(RKG) , intent(out) , contiguous :: rand(:)
3316 real(RKG) , intent(in) , contiguous :: chol(:,:)
3317 type(lowDia_type) , intent(in) :: subset
3318 end subroutine
3319#endif
3320
3321#if RK1_ENABLED
3322 impure module subroutine setMUR_RNGF_DM_AC_XLD_D1_RK1(rng, rand, chol, subset)
3323#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3324 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_AC_XLD_D1_RK1
3325#endif
3326 use pm_kind, only: RKG => RK1
3327 type(rngf_type) , intent(in) :: rng
3328 real(RKG) , intent(out) , contiguous :: rand(:)
3329 real(RKG) , intent(in) , contiguous :: chol(:,:)
3330 type(lowDia_type) , intent(in) :: subset
3331 end subroutine
3332#endif
3333
3334 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3335
3336#if RK5_ENABLED
3337 impure module subroutine setMUR_RNGF_AM_AC_UXD_D1_RK5(rng, rand, mean, chol, subset)
3338#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3339 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_AC_UXD_D1_RK5
3340#endif
3341 use pm_kind, only: RKG => RK5
3342 type(rngf_type) , intent(in) :: rng
3343 real(RKG) , intent(out) , contiguous :: rand(:)
3344 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3345 type(uppDia_type) , intent(in) :: subset
3346 end subroutine
3347#endif
3348
3349#if RK4_ENABLED
3350 impure module subroutine setMUR_RNGF_AM_AC_UXD_D1_RK4(rng, rand, mean, chol, subset)
3351#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3352 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_AC_UXD_D1_RK4
3353#endif
3354 use pm_kind, only: RKG => RK4
3355 type(rngf_type) , intent(in) :: rng
3356 real(RKG) , intent(out) , contiguous :: rand(:)
3357 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3358 type(uppDia_type) , intent(in) :: subset
3359 end subroutine
3360#endif
3361
3362#if RK3_ENABLED
3363 impure module subroutine setMUR_RNGF_AM_AC_UXD_D1_RK3(rng, rand, mean, chol, subset)
3364#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3365 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_AC_UXD_D1_RK3
3366#endif
3367 use pm_kind, only: RKG => RK3
3368 type(rngf_type) , intent(in) :: rng
3369 real(RKG) , intent(out) , contiguous :: rand(:)
3370 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3371 type(uppDia_type) , intent(in) :: subset
3372 end subroutine
3373#endif
3374
3375#if RK2_ENABLED
3376 impure module subroutine setMUR_RNGF_AM_AC_UXD_D1_RK2(rng, rand, mean, chol, subset)
3377#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3378 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_AC_UXD_D1_RK2
3379#endif
3380 use pm_kind, only: RKG => RK2
3381 type(rngf_type) , intent(in) :: rng
3382 real(RKG) , intent(out) , contiguous :: rand(:)
3383 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3384 type(uppDia_type) , intent(in) :: subset
3385 end subroutine
3386#endif
3387
3388#if RK1_ENABLED
3389 impure module subroutine setMUR_RNGF_AM_AC_UXD_D1_RK1(rng, rand, mean, chol, subset)
3390#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3391 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_AC_UXD_D1_RK1
3392#endif
3393 use pm_kind, only: RKG => RK1
3394 type(rngf_type) , intent(in) :: rng
3395 real(RKG) , intent(out) , contiguous :: rand(:)
3396 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3397 type(uppDia_type) , intent(in) :: subset
3398 end subroutine
3399#endif
3400
3401 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3402
3403#if RK5_ENABLED
3404 impure module subroutine setMUR_RNGF_AM_AC_XLD_D1_RK5(rng, rand, mean, chol, subset)
3405#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3406 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_AC_XLD_D1_RK5
3407#endif
3408 use pm_kind, only: RKG => RK5
3409 type(rngf_type) , intent(in) :: rng
3410 real(RKG) , intent(out) , contiguous :: rand(:)
3411 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3412 type(lowDia_type) , intent(in) :: subset
3413 end subroutine
3414#endif
3415
3416#if RK4_ENABLED
3417 impure module subroutine setMUR_RNGF_AM_AC_XLD_D1_RK4(rng, rand, mean, chol, subset)
3418#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3419 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_AC_XLD_D1_RK4
3420#endif
3421 use pm_kind, only: RKG => RK4
3422 type(rngf_type) , intent(in) :: rng
3423 real(RKG) , intent(out) , contiguous :: rand(:)
3424 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3425 type(lowDia_type) , intent(in) :: subset
3426 end subroutine
3427#endif
3428
3429#if RK3_ENABLED
3430 impure module subroutine setMUR_RNGF_AM_AC_XLD_D1_RK3(rng, rand, mean, chol, subset)
3431#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3432 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_AC_XLD_D1_RK3
3433#endif
3434 use pm_kind, only: RKG => RK3
3435 type(rngf_type) , intent(in) :: rng
3436 real(RKG) , intent(out) , contiguous :: rand(:)
3437 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3438 type(lowDia_type) , intent(in) :: subset
3439 end subroutine
3440#endif
3441
3442#if RK2_ENABLED
3443 impure module subroutine setMUR_RNGF_AM_AC_XLD_D1_RK2(rng, rand, mean, chol, subset)
3444#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3445 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_AC_XLD_D1_RK2
3446#endif
3447 use pm_kind, only: RKG => RK2
3448 type(rngf_type) , intent(in) :: rng
3449 real(RKG) , intent(out) , contiguous :: rand(:)
3450 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3451 type(lowDia_type) , intent(in) :: subset
3452 end subroutine
3453#endif
3454
3455#if RK1_ENABLED
3456 impure module subroutine setMUR_RNGF_AM_AC_XLD_D1_RK1(rng, rand, mean, chol, subset)
3457#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3458 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_AC_XLD_D1_RK1
3459#endif
3460 use pm_kind, only: RKG => RK1
3461 type(rngf_type) , intent(in) :: rng
3462 real(RKG) , intent(out) , contiguous :: rand(:)
3463 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3464 type(lowDia_type) , intent(in) :: subset
3465 end subroutine
3466#endif
3467
3468 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3469
3470 end interface
3471
3472 ! D1 RNGX
3473
3474 interface setUnifEllRand
3475
3476 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3477
3478#if RK5_ENABLED
3479 PURE module subroutine setMUR_RNGX_DM_DC_XXX_D1_RK5(rng, rand)
3480#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3481 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_DC_XXX_D1_RK5
3482#endif
3483 use pm_kind, only: RKG => RK5
3484 type(xoshiro256ssw_type), intent(inout) :: rng
3485 real(RKG) , intent(out) , contiguous :: rand(:)
3486 end subroutine
3487#endif
3488
3489#if RK4_ENABLED
3490 PURE module subroutine setMUR_RNGX_DM_DC_XXX_D1_RK4(rng, rand)
3491#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3492 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_DC_XXX_D1_RK4
3493#endif
3494 use pm_kind, only: RKG => RK4
3495 type(xoshiro256ssw_type), intent(inout) :: rng
3496 real(RKG) , intent(out) , contiguous :: rand(:)
3497 end subroutine
3498#endif
3499
3500#if RK3_ENABLED
3501 PURE module subroutine setMUR_RNGX_DM_DC_XXX_D1_RK3(rng, rand)
3502#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3503 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_DC_XXX_D1_RK3
3504#endif
3505 use pm_kind, only: RKG => RK3
3506 type(xoshiro256ssw_type), intent(inout) :: rng
3507 real(RKG) , intent(out) , contiguous :: rand(:)
3508 end subroutine
3509#endif
3510
3511#if RK2_ENABLED
3512 PURE module subroutine setMUR_RNGX_DM_DC_XXX_D1_RK2(rng, rand)
3513#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3514 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_DC_XXX_D1_RK2
3515#endif
3516 use pm_kind, only: RKG => RK2
3517 type(xoshiro256ssw_type), intent(inout) :: rng
3518 real(RKG) , intent(out) , contiguous :: rand(:)
3519 end subroutine
3520#endif
3521
3522#if RK1_ENABLED
3523 PURE module subroutine setMUR_RNGX_DM_DC_XXX_D1_RK1(rng, rand)
3524#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3525 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_DC_XXX_D1_RK1
3526#endif
3527 use pm_kind, only: RKG => RK1
3528 type(xoshiro256ssw_type), intent(inout) :: rng
3529 real(RKG) , intent(out) , contiguous :: rand(:)
3530 end subroutine
3531#endif
3532
3533 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3534
3535#if RK5_ENABLED
3536 PURE module subroutine setMUR_RNGX_AM_DC_XXX_D1_RK5(rng, rand, mean)
3537#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3538 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_DC_XXX_D1_RK5
3539#endif
3540 use pm_kind, only: RKG => RK5
3541 type(xoshiro256ssw_type), intent(inout) :: rng
3542 real(RKG) , intent(out) , contiguous :: rand(:)
3543 real(RKG) , intent(in) , contiguous :: mean(:)
3544 end subroutine
3545#endif
3546
3547#if RK4_ENABLED
3548 PURE module subroutine setMUR_RNGX_AM_DC_XXX_D1_RK4(rng, rand, mean)
3549#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3550 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_DC_XXX_D1_RK4
3551#endif
3552 use pm_kind, only: RKG => RK4
3553 type(xoshiro256ssw_type), intent(inout) :: rng
3554 real(RKG) , intent(out) , contiguous :: rand(:)
3555 real(RKG) , intent(in) , contiguous :: mean(:)
3556 end subroutine
3557#endif
3558
3559#if RK3_ENABLED
3560 PURE module subroutine setMUR_RNGX_AM_DC_XXX_D1_RK3(rng, rand, mean)
3561#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3562 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_DC_XXX_D1_RK3
3563#endif
3564 use pm_kind, only: RKG => RK3
3565 type(xoshiro256ssw_type), intent(inout) :: rng
3566 real(RKG) , intent(out) , contiguous :: rand(:)
3567 real(RKG) , intent(in) , contiguous :: mean(:)
3568 end subroutine
3569#endif
3570
3571#if RK2_ENABLED
3572 PURE module subroutine setMUR_RNGX_AM_DC_XXX_D1_RK2(rng, rand, mean)
3573#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3574 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_DC_XXX_D1_RK2
3575#endif
3576 use pm_kind, only: RKG => RK2
3577 type(xoshiro256ssw_type), intent(inout) :: rng
3578 real(RKG) , intent(out) , contiguous :: rand(:)
3579 real(RKG) , intent(in) , contiguous :: mean(:)
3580 end subroutine
3581#endif
3582
3583#if RK1_ENABLED
3584 PURE module subroutine setMUR_RNGX_AM_DC_XXX_D1_RK1(rng, rand, mean)
3585#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3586 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_DC_XXX_D1_RK1
3587#endif
3588 use pm_kind, only: RKG => RK1
3589 type(xoshiro256ssw_type), intent(inout) :: rng
3590 real(RKG) , intent(out) , contiguous :: rand(:)
3591 real(RKG) , intent(in) , contiguous :: mean(:)
3592 end subroutine
3593#endif
3594
3595 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3596
3597#if RK5_ENABLED
3598 PURE module subroutine setMUR_RNGX_DM_AC_UXD_D1_RK5(rng, rand, chol, subset)
3599#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3600 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_AC_UXD_D1_RK5
3601#endif
3602 use pm_kind, only: RKG => RK5
3603 type(xoshiro256ssw_type), intent(inout) :: rng
3604 real(RKG) , intent(out) , contiguous :: rand(:)
3605 real(RKG) , intent(in) , contiguous :: chol(:,:)
3606 type(uppDia_type) , intent(in) :: subset
3607 end subroutine
3608#endif
3609
3610#if RK4_ENABLED
3611 PURE module subroutine setMUR_RNGX_DM_AC_UXD_D1_RK4(rng, rand, chol, subset)
3612#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3613 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_AC_UXD_D1_RK4
3614#endif
3615 use pm_kind, only: RKG => RK4
3616 type(xoshiro256ssw_type), intent(inout) :: rng
3617 real(RKG) , intent(out) , contiguous :: rand(:)
3618 real(RKG) , intent(in) , contiguous :: chol(:,:)
3619 type(uppDia_type) , intent(in) :: subset
3620 end subroutine
3621#endif
3622
3623#if RK3_ENABLED
3624 PURE module subroutine setMUR_RNGX_DM_AC_UXD_D1_RK3(rng, rand, chol, subset)
3625#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3626 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_AC_UXD_D1_RK3
3627#endif
3628 use pm_kind, only: RKG => RK3
3629 type(xoshiro256ssw_type), intent(inout) :: rng
3630 real(RKG) , intent(out) , contiguous :: rand(:)
3631 real(RKG) , intent(in) , contiguous :: chol(:,:)
3632 type(uppDia_type) , intent(in) :: subset
3633 end subroutine
3634#endif
3635
3636#if RK2_ENABLED
3637 PURE module subroutine setMUR_RNGX_DM_AC_UXD_D1_RK2(rng, rand, chol, subset)
3638#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3639 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_AC_UXD_D1_RK2
3640#endif
3641 use pm_kind, only: RKG => RK2
3642 type(xoshiro256ssw_type), intent(inout) :: rng
3643 real(RKG) , intent(out) , contiguous :: rand(:)
3644 real(RKG) , intent(in) , contiguous :: chol(:,:)
3645 type(uppDia_type) , intent(in) :: subset
3646 end subroutine
3647#endif
3648
3649#if RK1_ENABLED
3650 PURE module subroutine setMUR_RNGX_DM_AC_UXD_D1_RK1(rng, rand, chol, subset)
3651#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3652 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_AC_UXD_D1_RK1
3653#endif
3654 use pm_kind, only: RKG => RK1
3655 type(xoshiro256ssw_type), intent(inout) :: rng
3656 real(RKG) , intent(out) , contiguous :: rand(:)
3657 real(RKG) , intent(in) , contiguous :: chol(:,:)
3658 type(uppDia_type) , intent(in) :: subset
3659 end subroutine
3660#endif
3661
3662 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3663
3664#if RK5_ENABLED
3665 PURE module subroutine setMUR_RNGX_DM_AC_XLD_D1_RK5(rng, rand, chol, subset)
3666#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3667 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_AC_XLD_D1_RK5
3668#endif
3669 use pm_kind, only: RKG => RK5
3670 type(xoshiro256ssw_type), intent(inout) :: rng
3671 real(RKG) , intent(out) , contiguous :: rand(:)
3672 real(RKG) , intent(in) , contiguous :: chol(:,:)
3673 type(lowDia_type) , intent(in) :: subset
3674 end subroutine
3675#endif
3676
3677#if RK4_ENABLED
3678 PURE module subroutine setMUR_RNGX_DM_AC_XLD_D1_RK4(rng, rand, chol, subset)
3679#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3680 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_AC_XLD_D1_RK4
3681#endif
3682 use pm_kind, only: RKG => RK4
3683 type(xoshiro256ssw_type), intent(inout) :: rng
3684 real(RKG) , intent(out) , contiguous :: rand(:)
3685 real(RKG) , intent(in) , contiguous :: chol(:,:)
3686 type(lowDia_type) , intent(in) :: subset
3687 end subroutine
3688#endif
3689
3690#if RK3_ENABLED
3691 PURE module subroutine setMUR_RNGX_DM_AC_XLD_D1_RK3(rng, rand, chol, subset)
3692#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3693 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_AC_XLD_D1_RK3
3694#endif
3695 use pm_kind, only: RKG => RK3
3696 type(xoshiro256ssw_type), intent(inout) :: rng
3697 real(RKG) , intent(out) , contiguous :: rand(:)
3698 real(RKG) , intent(in) , contiguous :: chol(:,:)
3699 type(lowDia_type) , intent(in) :: subset
3700 end subroutine
3701#endif
3702
3703#if RK2_ENABLED
3704 PURE module subroutine setMUR_RNGX_DM_AC_XLD_D1_RK2(rng, rand, chol, subset)
3705#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3706 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_AC_XLD_D1_RK2
3707#endif
3708 use pm_kind, only: RKG => RK2
3709 type(xoshiro256ssw_type), intent(inout) :: rng
3710 real(RKG) , intent(out) , contiguous :: rand(:)
3711 real(RKG) , intent(in) , contiguous :: chol(:,:)
3712 type(lowDia_type) , intent(in) :: subset
3713 end subroutine
3714#endif
3715
3716#if RK1_ENABLED
3717 PURE module subroutine setMUR_RNGX_DM_AC_XLD_D1_RK1(rng, rand, chol, subset)
3718#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3719 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_AC_XLD_D1_RK1
3720#endif
3721 use pm_kind, only: RKG => RK1
3722 type(xoshiro256ssw_type), intent(inout) :: rng
3723 real(RKG) , intent(out) , contiguous :: rand(:)
3724 real(RKG) , intent(in) , contiguous :: chol(:,:)
3725 type(lowDia_type) , intent(in) :: subset
3726 end subroutine
3727#endif
3728
3729 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3730
3731#if RK5_ENABLED
3732 PURE module subroutine setMUR_RNGX_AM_AC_UXD_D1_RK5(rng, rand, mean, chol, subset)
3733#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3734 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_AC_UXD_D1_RK5
3735#endif
3736 use pm_kind, only: RKG => RK5
3737 type(xoshiro256ssw_type), intent(inout) :: rng
3738 real(RKG) , intent(out) , contiguous :: rand(:)
3739 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3740 type(uppDia_type) , intent(in) :: subset
3741 end subroutine
3742#endif
3743
3744#if RK4_ENABLED
3745 PURE module subroutine setMUR_RNGX_AM_AC_UXD_D1_RK4(rng, rand, mean, chol, subset)
3746#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3747 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_AC_UXD_D1_RK4
3748#endif
3749 use pm_kind, only: RKG => RK4
3750 type(xoshiro256ssw_type), intent(inout) :: rng
3751 real(RKG) , intent(out) , contiguous :: rand(:)
3752 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3753 type(uppDia_type) , intent(in) :: subset
3754 end subroutine
3755#endif
3756
3757#if RK3_ENABLED
3758 PURE module subroutine setMUR_RNGX_AM_AC_UXD_D1_RK3(rng, rand, mean, chol, subset)
3759#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3760 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_AC_UXD_D1_RK3
3761#endif
3762 use pm_kind, only: RKG => RK3
3763 type(xoshiro256ssw_type), intent(inout) :: rng
3764 real(RKG) , intent(out) , contiguous :: rand(:)
3765 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3766 type(uppDia_type) , intent(in) :: subset
3767 end subroutine
3768#endif
3769
3770#if RK2_ENABLED
3771 PURE module subroutine setMUR_RNGX_AM_AC_UXD_D1_RK2(rng, rand, mean, chol, subset)
3772#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3773 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_AC_UXD_D1_RK2
3774#endif
3775 use pm_kind, only: RKG => RK2
3776 type(xoshiro256ssw_type), intent(inout) :: rng
3777 real(RKG) , intent(out) , contiguous :: rand(:)
3778 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3779 type(uppDia_type) , intent(in) :: subset
3780 end subroutine
3781#endif
3782
3783#if RK1_ENABLED
3784 PURE module subroutine setMUR_RNGX_AM_AC_UXD_D1_RK1(rng, rand, mean, chol, subset)
3785#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3786 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_AC_UXD_D1_RK1
3787#endif
3788 use pm_kind, only: RKG => RK1
3789 type(xoshiro256ssw_type), intent(inout) :: rng
3790 real(RKG) , intent(out) , contiguous :: rand(:)
3791 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3792 type(uppDia_type) , intent(in) :: subset
3793 end subroutine
3794#endif
3795
3796 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3797
3798#if RK5_ENABLED
3799 PURE module subroutine setMUR_RNGX_AM_AC_XLD_D1_RK5(rng, rand, mean, chol, subset)
3800#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3801 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_AC_XLD_D1_RK5
3802#endif
3803 use pm_kind, only: RKG => RK5
3804 type(xoshiro256ssw_type), intent(inout) :: rng
3805 real(RKG) , intent(out) , contiguous :: rand(:)
3806 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3807 type(lowDia_type) , intent(in) :: subset
3808 end subroutine
3809#endif
3810
3811#if RK4_ENABLED
3812 PURE module subroutine setMUR_RNGX_AM_AC_XLD_D1_RK4(rng, rand, mean, chol, subset)
3813#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3814 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_AC_XLD_D1_RK4
3815#endif
3816 use pm_kind, only: RKG => RK4
3817 type(xoshiro256ssw_type), intent(inout) :: rng
3818 real(RKG) , intent(out) , contiguous :: rand(:)
3819 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3820 type(lowDia_type) , intent(in) :: subset
3821 end subroutine
3822#endif
3823
3824#if RK3_ENABLED
3825 PURE module subroutine setMUR_RNGX_AM_AC_XLD_D1_RK3(rng, rand, mean, chol, subset)
3826#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3827 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_AC_XLD_D1_RK3
3828#endif
3829 use pm_kind, only: RKG => RK3
3830 type(xoshiro256ssw_type), intent(inout) :: rng
3831 real(RKG) , intent(out) , contiguous :: rand(:)
3832 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3833 type(lowDia_type) , intent(in) :: subset
3834 end subroutine
3835#endif
3836
3837#if RK2_ENABLED
3838 PURE module subroutine setMUR_RNGX_AM_AC_XLD_D1_RK2(rng, rand, mean, chol, subset)
3839#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3840 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_AC_XLD_D1_RK2
3841#endif
3842 use pm_kind, only: RKG => RK2
3843 type(xoshiro256ssw_type), intent(inout) :: rng
3844 real(RKG) , intent(out) , contiguous :: rand(:)
3845 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3846 type(lowDia_type) , intent(in) :: subset
3847 end subroutine
3848#endif
3849
3850#if RK1_ENABLED
3851 PURE module subroutine setMUR_RNGX_AM_AC_XLD_D1_RK1(rng, rand, mean, chol, subset)
3852#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3853 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_AC_XLD_D1_RK1
3854#endif
3855 use pm_kind, only: RKG => RK1
3856 type(xoshiro256ssw_type), intent(inout) :: rng
3857 real(RKG) , intent(out) , contiguous :: rand(:)
3858 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
3859 type(lowDia_type) , intent(in) :: subset
3860 end subroutine
3861#endif
3862
3863 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3864
3865 end interface
3866
3867 ! D2 RNGD
3868
3869 interface setUnifEllRand
3870
3871 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3872
3873#if RK5_ENABLED
3874 impure module subroutine setMUR_RNGD_DM_DC_XXX_D2_RK5(rand)
3875#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3876 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_DC_XXX_D2_RK5
3877#endif
3878 use pm_kind, only: RKG => RK5
3879 real(RKG) , intent(out) , contiguous :: rand(:,:)
3880 end subroutine
3881#endif
3882
3883#if RK4_ENABLED
3884 impure module subroutine setMUR_RNGD_DM_DC_XXX_D2_RK4(rand)
3885#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3886 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_DC_XXX_D2_RK4
3887#endif
3888 use pm_kind, only: RKG => RK4
3889 real(RKG) , intent(out) , contiguous :: rand(:,:)
3890 end subroutine
3891#endif
3892
3893#if RK3_ENABLED
3894 impure module subroutine setMUR_RNGD_DM_DC_XXX_D2_RK3(rand)
3895#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3896 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_DC_XXX_D2_RK3
3897#endif
3898 use pm_kind, only: RKG => RK3
3899 real(RKG) , intent(out) , contiguous :: rand(:,:)
3900 end subroutine
3901#endif
3902
3903#if RK2_ENABLED
3904 impure module subroutine setMUR_RNGD_DM_DC_XXX_D2_RK2(rand)
3905#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3906 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_DC_XXX_D2_RK2
3907#endif
3908 use pm_kind, only: RKG => RK2
3909 real(RKG) , intent(out) , contiguous :: rand(:,:)
3910 end subroutine
3911#endif
3912
3913#if RK1_ENABLED
3914 impure module subroutine setMUR_RNGD_DM_DC_XXX_D2_RK1(rand)
3915#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3916 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_DC_XXX_D2_RK1
3917#endif
3918 use pm_kind, only: RKG => RK1
3919 real(RKG) , intent(out) , contiguous :: rand(:,:)
3920 end subroutine
3921#endif
3922
3923 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3924
3925#if RK5_ENABLED
3926 impure module subroutine setMUR_RNGD_AM_DC_XXX_D2_RK5(rand, mean)
3927#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3928 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_DC_XXX_D2_RK5
3929#endif
3930 use pm_kind, only: RKG => RK5
3931 real(RKG) , intent(out) , contiguous :: rand(:,:)
3932 real(RKG) , intent(in) , contiguous :: mean(:)
3933 end subroutine
3934#endif
3935
3936#if RK4_ENABLED
3937 impure module subroutine setMUR_RNGD_AM_DC_XXX_D2_RK4(rand, mean)
3938#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3939 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_DC_XXX_D2_RK4
3940#endif
3941 use pm_kind, only: RKG => RK4
3942 real(RKG) , intent(out) , contiguous :: rand(:,:)
3943 real(RKG) , intent(in) , contiguous :: mean(:)
3944 end subroutine
3945#endif
3946
3947#if RK3_ENABLED
3948 impure module subroutine setMUR_RNGD_AM_DC_XXX_D2_RK3(rand, mean)
3949#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3950 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_DC_XXX_D2_RK3
3951#endif
3952 use pm_kind, only: RKG => RK3
3953 real(RKG) , intent(out) , contiguous :: rand(:,:)
3954 real(RKG) , intent(in) , contiguous :: mean(:)
3955 end subroutine
3956#endif
3957
3958#if RK2_ENABLED
3959 impure module subroutine setMUR_RNGD_AM_DC_XXX_D2_RK2(rand, mean)
3960#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3961 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_DC_XXX_D2_RK2
3962#endif
3963 use pm_kind, only: RKG => RK2
3964 real(RKG) , intent(out) , contiguous :: rand(:,:)
3965 real(RKG) , intent(in) , contiguous :: mean(:)
3966 end subroutine
3967#endif
3968
3969#if RK1_ENABLED
3970 impure module subroutine setMUR_RNGD_AM_DC_XXX_D2_RK1(rand, mean)
3971#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3972 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_DC_XXX_D2_RK1
3973#endif
3974 use pm_kind, only: RKG => RK1
3975 real(RKG) , intent(out) , contiguous :: rand(:,:)
3976 real(RKG) , intent(in) , contiguous :: mean(:)
3977 end subroutine
3978#endif
3979
3980 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3981
3982#if RK5_ENABLED
3983 impure module subroutine setMUR_RNGD_DM_AC_UXD_D2_RK5(rand, chol, subset)
3984#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3985 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_AC_UXD_D2_RK5
3986#endif
3987 use pm_kind, only: RKG => RK5
3988 real(RKG) , intent(out) , contiguous :: rand(:,:)
3989 real(RKG) , intent(in) , contiguous :: chol(:,:)
3990 type(uppDia_type) , intent(in) :: subset
3991 end subroutine
3992#endif
3993
3994#if RK4_ENABLED
3995 impure module subroutine setMUR_RNGD_DM_AC_UXD_D2_RK4(rand, chol, subset)
3996#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3997 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_AC_UXD_D2_RK4
3998#endif
3999 use pm_kind, only: RKG => RK4
4000 real(RKG) , intent(out) , contiguous :: rand(:,:)
4001 real(RKG) , intent(in) , contiguous :: chol(:,:)
4002 type(uppDia_type) , intent(in) :: subset
4003 end subroutine
4004#endif
4005
4006#if RK3_ENABLED
4007 impure module subroutine setMUR_RNGD_DM_AC_UXD_D2_RK3(rand, chol, subset)
4008#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4009 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_AC_UXD_D2_RK3
4010#endif
4011 use pm_kind, only: RKG => RK3
4012 real(RKG) , intent(out) , contiguous :: rand(:,:)
4013 real(RKG) , intent(in) , contiguous :: chol(:,:)
4014 type(uppDia_type) , intent(in) :: subset
4015 end subroutine
4016#endif
4017
4018#if RK2_ENABLED
4019 impure module subroutine setMUR_RNGD_DM_AC_UXD_D2_RK2(rand, chol, subset)
4020#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4021 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_AC_UXD_D2_RK2
4022#endif
4023 use pm_kind, only: RKG => RK2
4024 real(RKG) , intent(out) , contiguous :: rand(:,:)
4025 real(RKG) , intent(in) , contiguous :: chol(:,:)
4026 type(uppDia_type) , intent(in) :: subset
4027 end subroutine
4028#endif
4029
4030#if RK1_ENABLED
4031 impure module subroutine setMUR_RNGD_DM_AC_UXD_D2_RK1(rand, chol, subset)
4032#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4033 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_AC_UXD_D2_RK1
4034#endif
4035 use pm_kind, only: RKG => RK1
4036 real(RKG) , intent(out) , contiguous :: rand(:,:)
4037 real(RKG) , intent(in) , contiguous :: chol(:,:)
4038 type(uppDia_type) , intent(in) :: subset
4039 end subroutine
4040#endif
4041
4042 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4043
4044#if RK5_ENABLED
4045 impure module subroutine setMUR_RNGD_DM_AC_XLD_D2_RK5(rand, chol, subset)
4046#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4047 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_AC_XLD_D2_RK5
4048#endif
4049 use pm_kind, only: RKG => RK5
4050 real(RKG) , intent(out) , contiguous :: rand(:,:)
4051 real(RKG) , intent(in) , contiguous :: chol(:,:)
4052 type(lowDia_type) , intent(in) :: subset
4053 end subroutine
4054#endif
4055
4056#if RK4_ENABLED
4057 impure module subroutine setMUR_RNGD_DM_AC_XLD_D2_RK4(rand, chol, subset)
4058#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4059 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_AC_XLD_D2_RK4
4060#endif
4061 use pm_kind, only: RKG => RK4
4062 real(RKG) , intent(out) , contiguous :: rand(:,:)
4063 real(RKG) , intent(in) , contiguous :: chol(:,:)
4064 type(lowDia_type) , intent(in) :: subset
4065 end subroutine
4066#endif
4067
4068#if RK3_ENABLED
4069 impure module subroutine setMUR_RNGD_DM_AC_XLD_D2_RK3(rand, chol, subset)
4070#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4071 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_AC_XLD_D2_RK3
4072#endif
4073 use pm_kind, only: RKG => RK3
4074 real(RKG) , intent(out) , contiguous :: rand(:,:)
4075 real(RKG) , intent(in) , contiguous :: chol(:,:)
4076 type(lowDia_type) , intent(in) :: subset
4077 end subroutine
4078#endif
4079
4080#if RK2_ENABLED
4081 impure module subroutine setMUR_RNGD_DM_AC_XLD_D2_RK2(rand, chol, subset)
4082#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4083 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_AC_XLD_D2_RK2
4084#endif
4085 use pm_kind, only: RKG => RK2
4086 real(RKG) , intent(out) , contiguous :: rand(:,:)
4087 real(RKG) , intent(in) , contiguous :: chol(:,:)
4088 type(lowDia_type) , intent(in) :: subset
4089 end subroutine
4090#endif
4091
4092#if RK1_ENABLED
4093 impure module subroutine setMUR_RNGD_DM_AC_XLD_D2_RK1(rand, chol, subset)
4094#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4095 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_DM_AC_XLD_D2_RK1
4096#endif
4097 use pm_kind, only: RKG => RK1
4098 real(RKG) , intent(out) , contiguous :: rand(:,:)
4099 real(RKG) , intent(in) , contiguous :: chol(:,:)
4100 type(lowDia_type) , intent(in) :: subset
4101 end subroutine
4102#endif
4103
4104 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4105
4106#if RK5_ENABLED
4107 impure module subroutine setMUR_RNGD_AM_AC_UXD_D2_RK5(rand, mean, chol, subset)
4108#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4109 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_AC_UXD_D2_RK5
4110#endif
4111 use pm_kind, only: RKG => RK5
4112 real(RKG) , intent(out) , contiguous :: rand(:,:)
4113 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4114 type(uppDia_type) , intent(in) :: subset
4115 end subroutine
4116#endif
4117
4118#if RK4_ENABLED
4119 impure module subroutine setMUR_RNGD_AM_AC_UXD_D2_RK4(rand, mean, chol, subset)
4120#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4121 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_AC_UXD_D2_RK4
4122#endif
4123 use pm_kind, only: RKG => RK4
4124 real(RKG) , intent(out) , contiguous :: rand(:,:)
4125 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4126 type(uppDia_type) , intent(in) :: subset
4127 end subroutine
4128#endif
4129
4130#if RK3_ENABLED
4131 impure module subroutine setMUR_RNGD_AM_AC_UXD_D2_RK3(rand, mean, chol, subset)
4132#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4133 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_AC_UXD_D2_RK3
4134#endif
4135 use pm_kind, only: RKG => RK3
4136 real(RKG) , intent(out) , contiguous :: rand(:,:)
4137 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4138 type(uppDia_type) , intent(in) :: subset
4139 end subroutine
4140#endif
4141
4142#if RK2_ENABLED
4143 impure module subroutine setMUR_RNGD_AM_AC_UXD_D2_RK2(rand, mean, chol, subset)
4144#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4145 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_AC_UXD_D2_RK2
4146#endif
4147 use pm_kind, only: RKG => RK2
4148 real(RKG) , intent(out) , contiguous :: rand(:,:)
4149 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4150 type(uppDia_type) , intent(in) :: subset
4151 end subroutine
4152#endif
4153
4154#if RK1_ENABLED
4155 impure module subroutine setMUR_RNGD_AM_AC_UXD_D2_RK1(rand, mean, chol, subset)
4156#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4157 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_AC_UXD_D2_RK1
4158#endif
4159 use pm_kind, only: RKG => RK1
4160 real(RKG) , intent(out) , contiguous :: rand(:,:)
4161 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4162 type(uppDia_type) , intent(in) :: subset
4163 end subroutine
4164#endif
4165
4166 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4167
4168#if RK5_ENABLED
4169 impure module subroutine setMUR_RNGD_AM_AC_XLD_D2_RK5(rand, mean, chol, subset)
4170#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4171 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_AC_XLD_D2_RK5
4172#endif
4173 use pm_kind, only: RKG => RK5
4174 real(RKG) , intent(out) , contiguous :: rand(:,:)
4175 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4176 type(lowDia_type) , intent(in) :: subset
4177 end subroutine
4178#endif
4179
4180#if RK4_ENABLED
4181 impure module subroutine setMUR_RNGD_AM_AC_XLD_D2_RK4(rand, mean, chol, subset)
4182#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4183 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_AC_XLD_D2_RK4
4184#endif
4185 use pm_kind, only: RKG => RK4
4186 real(RKG) , intent(out) , contiguous :: rand(:,:)
4187 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4188 type(lowDia_type) , intent(in) :: subset
4189 end subroutine
4190#endif
4191
4192#if RK3_ENABLED
4193 impure module subroutine setMUR_RNGD_AM_AC_XLD_D2_RK3(rand, mean, chol, subset)
4194#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4195 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_AC_XLD_D2_RK3
4196#endif
4197 use pm_kind, only: RKG => RK3
4198 real(RKG) , intent(out) , contiguous :: rand(:,:)
4199 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4200 type(lowDia_type) , intent(in) :: subset
4201 end subroutine
4202#endif
4203
4204#if RK2_ENABLED
4205 impure module subroutine setMUR_RNGD_AM_AC_XLD_D2_RK2(rand, mean, chol, subset)
4206#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4207 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_AC_XLD_D2_RK2
4208#endif
4209 use pm_kind, only: RKG => RK2
4210 real(RKG) , intent(out) , contiguous :: rand(:,:)
4211 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4212 type(lowDia_type) , intent(in) :: subset
4213 end subroutine
4214#endif
4215
4216#if RK1_ENABLED
4217 impure module subroutine setMUR_RNGD_AM_AC_XLD_D2_RK1(rand, mean, chol, subset)
4218#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4219 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGD_AM_AC_XLD_D2_RK1
4220#endif
4221 use pm_kind, only: RKG => RK1
4222 real(RKG) , intent(out) , contiguous :: rand(:,:)
4223 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4224 type(lowDia_type) , intent(in) :: subset
4225 end subroutine
4226#endif
4227
4228 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4229
4230 end interface
4231
4232 ! D2 RNGF
4233
4234 interface setUnifEllRand
4235
4236 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4237
4238#if RK5_ENABLED
4239 impure module subroutine setMUR_RNGF_DM_DC_XXX_D2_RK5(rng, rand)
4240#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4241 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_DC_XXX_D2_RK5
4242#endif
4243 use pm_kind, only: RKG => RK5
4244 type(rngf_type) , intent(in) :: rng
4245 real(RKG) , intent(out) , contiguous :: rand(:,:)
4246 end subroutine
4247#endif
4248
4249#if RK4_ENABLED
4250 impure module subroutine setMUR_RNGF_DM_DC_XXX_D2_RK4(rng, rand)
4251#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4252 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_DC_XXX_D2_RK4
4253#endif
4254 use pm_kind, only: RKG => RK4
4255 type(rngf_type) , intent(in) :: rng
4256 real(RKG) , intent(out) , contiguous :: rand(:,:)
4257 end subroutine
4258#endif
4259
4260#if RK3_ENABLED
4261 impure module subroutine setMUR_RNGF_DM_DC_XXX_D2_RK3(rng, rand)
4262#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4263 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_DC_XXX_D2_RK3
4264#endif
4265 use pm_kind, only: RKG => RK3
4266 type(rngf_type) , intent(in) :: rng
4267 real(RKG) , intent(out) , contiguous :: rand(:,:)
4268 end subroutine
4269#endif
4270
4271#if RK2_ENABLED
4272 impure module subroutine setMUR_RNGF_DM_DC_XXX_D2_RK2(rng, rand)
4273#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4274 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_DC_XXX_D2_RK2
4275#endif
4276 use pm_kind, only: RKG => RK2
4277 type(rngf_type) , intent(in) :: rng
4278 real(RKG) , intent(out) , contiguous :: rand(:,:)
4279 end subroutine
4280#endif
4281
4282#if RK1_ENABLED
4283 impure module subroutine setMUR_RNGF_DM_DC_XXX_D2_RK1(rng, rand)
4284#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4285 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_DC_XXX_D2_RK1
4286#endif
4287 use pm_kind, only: RKG => RK1
4288 type(rngf_type) , intent(in) :: rng
4289 real(RKG) , intent(out) , contiguous :: rand(:,:)
4290 end subroutine
4291#endif
4292
4293 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4294
4295#if RK5_ENABLED
4296 impure module subroutine setMUR_RNGF_AM_DC_XXX_D2_RK5(rng, rand, mean)
4297#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4298 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_DC_XXX_D2_RK5
4299#endif
4300 use pm_kind, only: RKG => RK5
4301 type(rngf_type) , intent(in) :: rng
4302 real(RKG) , intent(out) , contiguous :: rand(:,:)
4303 real(RKG) , intent(in) , contiguous :: mean(:)
4304 end subroutine
4305#endif
4306
4307#if RK4_ENABLED
4308 impure module subroutine setMUR_RNGF_AM_DC_XXX_D2_RK4(rng, rand, mean)
4309#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4310 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_DC_XXX_D2_RK4
4311#endif
4312 use pm_kind, only: RKG => RK4
4313 type(rngf_type) , intent(in) :: rng
4314 real(RKG) , intent(out) , contiguous :: rand(:,:)
4315 real(RKG) , intent(in) , contiguous :: mean(:)
4316 end subroutine
4317#endif
4318
4319#if RK3_ENABLED
4320 impure module subroutine setMUR_RNGF_AM_DC_XXX_D2_RK3(rng, rand, mean)
4321#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4322 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_DC_XXX_D2_RK3
4323#endif
4324 use pm_kind, only: RKG => RK3
4325 type(rngf_type) , intent(in) :: rng
4326 real(RKG) , intent(out) , contiguous :: rand(:,:)
4327 real(RKG) , intent(in) , contiguous :: mean(:)
4328 end subroutine
4329#endif
4330
4331#if RK2_ENABLED
4332 impure module subroutine setMUR_RNGF_AM_DC_XXX_D2_RK2(rng, rand, mean)
4333#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4334 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_DC_XXX_D2_RK2
4335#endif
4336 use pm_kind, only: RKG => RK2
4337 type(rngf_type) , intent(in) :: rng
4338 real(RKG) , intent(out) , contiguous :: rand(:,:)
4339 real(RKG) , intent(in) , contiguous :: mean(:)
4340 end subroutine
4341#endif
4342
4343#if RK1_ENABLED
4344 impure module subroutine setMUR_RNGF_AM_DC_XXX_D2_RK1(rng, rand, mean)
4345#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4346 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_DC_XXX_D2_RK1
4347#endif
4348 use pm_kind, only: RKG => RK1
4349 type(rngf_type) , intent(in) :: rng
4350 real(RKG) , intent(out) , contiguous :: rand(:,:)
4351 real(RKG) , intent(in) , contiguous :: mean(:)
4352 end subroutine
4353#endif
4354
4355 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4356
4357#if RK5_ENABLED
4358 impure module subroutine setMUR_RNGF_DM_AC_UXD_D2_RK5(rng, rand, chol, subset)
4359#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4360 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_AC_UXD_D2_RK5
4361#endif
4362 use pm_kind, only: RKG => RK5
4363 type(rngf_type) , intent(in) :: rng
4364 real(RKG) , intent(out) , contiguous :: rand(:,:)
4365 real(RKG) , intent(in) , contiguous :: chol(:,:)
4366 type(uppDia_type) , intent(in) :: subset
4367 end subroutine
4368#endif
4369
4370#if RK4_ENABLED
4371 impure module subroutine setMUR_RNGF_DM_AC_UXD_D2_RK4(rng, rand, chol, subset)
4372#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4373 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_AC_UXD_D2_RK4
4374#endif
4375 use pm_kind, only: RKG => RK4
4376 type(rngf_type) , intent(in) :: rng
4377 real(RKG) , intent(out) , contiguous :: rand(:,:)
4378 real(RKG) , intent(in) , contiguous :: chol(:,:)
4379 type(uppDia_type) , intent(in) :: subset
4380 end subroutine
4381#endif
4382
4383#if RK3_ENABLED
4384 impure module subroutine setMUR_RNGF_DM_AC_UXD_D2_RK3(rng, rand, chol, subset)
4385#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4386 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_AC_UXD_D2_RK3
4387#endif
4388 use pm_kind, only: RKG => RK3
4389 type(rngf_type) , intent(in) :: rng
4390 real(RKG) , intent(out) , contiguous :: rand(:,:)
4391 real(RKG) , intent(in) , contiguous :: chol(:,:)
4392 type(uppDia_type) , intent(in) :: subset
4393 end subroutine
4394#endif
4395
4396#if RK2_ENABLED
4397 impure module subroutine setMUR_RNGF_DM_AC_UXD_D2_RK2(rng, rand, chol, subset)
4398#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4399 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_AC_UXD_D2_RK2
4400#endif
4401 use pm_kind, only: RKG => RK2
4402 type(rngf_type) , intent(in) :: rng
4403 real(RKG) , intent(out) , contiguous :: rand(:,:)
4404 real(RKG) , intent(in) , contiguous :: chol(:,:)
4405 type(uppDia_type) , intent(in) :: subset
4406 end subroutine
4407#endif
4408
4409#if RK1_ENABLED
4410 impure module subroutine setMUR_RNGF_DM_AC_UXD_D2_RK1(rng, rand, chol, subset)
4411#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4412 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_AC_UXD_D2_RK1
4413#endif
4414 use pm_kind, only: RKG => RK1
4415 type(rngf_type) , intent(in) :: rng
4416 real(RKG) , intent(out) , contiguous :: rand(:,:)
4417 real(RKG) , intent(in) , contiguous :: chol(:,:)
4418 type(uppDia_type) , intent(in) :: subset
4419 end subroutine
4420#endif
4421
4422 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4423
4424#if RK5_ENABLED
4425 impure module subroutine setMUR_RNGF_DM_AC_XLD_D2_RK5(rng, rand, chol, subset)
4426#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4427 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_AC_XLD_D2_RK5
4428#endif
4429 use pm_kind, only: RKG => RK5
4430 type(rngf_type) , intent(in) :: rng
4431 real(RKG) , intent(out) , contiguous :: rand(:,:)
4432 real(RKG) , intent(in) , contiguous :: chol(:,:)
4433 type(lowDia_type) , intent(in) :: subset
4434 end subroutine
4435#endif
4436
4437#if RK4_ENABLED
4438 impure module subroutine setMUR_RNGF_DM_AC_XLD_D2_RK4(rng, rand, chol, subset)
4439#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4440 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_AC_XLD_D2_RK4
4441#endif
4442 use pm_kind, only: RKG => RK4
4443 type(rngf_type) , intent(in) :: rng
4444 real(RKG) , intent(out) , contiguous :: rand(:,:)
4445 real(RKG) , intent(in) , contiguous :: chol(:,:)
4446 type(lowDia_type) , intent(in) :: subset
4447 end subroutine
4448#endif
4449
4450#if RK3_ENABLED
4451 impure module subroutine setMUR_RNGF_DM_AC_XLD_D2_RK3(rng, rand, chol, subset)
4452#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4453 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_AC_XLD_D2_RK3
4454#endif
4455 use pm_kind, only: RKG => RK3
4456 type(rngf_type) , intent(in) :: rng
4457 real(RKG) , intent(out) , contiguous :: rand(:,:)
4458 real(RKG) , intent(in) , contiguous :: chol(:,:)
4459 type(lowDia_type) , intent(in) :: subset
4460 end subroutine
4461#endif
4462
4463#if RK2_ENABLED
4464 impure module subroutine setMUR_RNGF_DM_AC_XLD_D2_RK2(rng, rand, chol, subset)
4465#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4466 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_AC_XLD_D2_RK2
4467#endif
4468 use pm_kind, only: RKG => RK2
4469 type(rngf_type) , intent(in) :: rng
4470 real(RKG) , intent(out) , contiguous :: rand(:,:)
4471 real(RKG) , intent(in) , contiguous :: chol(:,:)
4472 type(lowDia_type) , intent(in) :: subset
4473 end subroutine
4474#endif
4475
4476#if RK1_ENABLED
4477 impure module subroutine setMUR_RNGF_DM_AC_XLD_D2_RK1(rng, rand, chol, subset)
4478#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4479 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_DM_AC_XLD_D2_RK1
4480#endif
4481 use pm_kind, only: RKG => RK1
4482 type(rngf_type) , intent(in) :: rng
4483 real(RKG) , intent(out) , contiguous :: rand(:,:)
4484 real(RKG) , intent(in) , contiguous :: chol(:,:)
4485 type(lowDia_type) , intent(in) :: subset
4486 end subroutine
4487#endif
4488
4489 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4490
4491#if RK5_ENABLED
4492 impure module subroutine setMUR_RNGF_AM_AC_UXD_D2_RK5(rng, rand, mean, chol, subset)
4493#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4494 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_AC_UXD_D2_RK5
4495#endif
4496 use pm_kind, only: RKG => RK5
4497 type(rngf_type) , intent(in) :: rng
4498 real(RKG) , intent(out) , contiguous :: rand(:,:)
4499 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4500 type(uppDia_type) , intent(in) :: subset
4501 end subroutine
4502#endif
4503
4504#if RK4_ENABLED
4505 impure module subroutine setMUR_RNGF_AM_AC_UXD_D2_RK4(rng, rand, mean, chol, subset)
4506#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4507 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_AC_UXD_D2_RK4
4508#endif
4509 use pm_kind, only: RKG => RK4
4510 type(rngf_type) , intent(in) :: rng
4511 real(RKG) , intent(out) , contiguous :: rand(:,:)
4512 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4513 type(uppDia_type) , intent(in) :: subset
4514 end subroutine
4515#endif
4516
4517#if RK3_ENABLED
4518 impure module subroutine setMUR_RNGF_AM_AC_UXD_D2_RK3(rng, rand, mean, chol, subset)
4519#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4520 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_AC_UXD_D2_RK3
4521#endif
4522 use pm_kind, only: RKG => RK3
4523 type(rngf_type) , intent(in) :: rng
4524 real(RKG) , intent(out) , contiguous :: rand(:,:)
4525 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4526 type(uppDia_type) , intent(in) :: subset
4527 end subroutine
4528#endif
4529
4530#if RK2_ENABLED
4531 impure module subroutine setMUR_RNGF_AM_AC_UXD_D2_RK2(rng, rand, mean, chol, subset)
4532#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4533 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_AC_UXD_D2_RK2
4534#endif
4535 use pm_kind, only: RKG => RK2
4536 type(rngf_type) , intent(in) :: rng
4537 real(RKG) , intent(out) , contiguous :: rand(:,:)
4538 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4539 type(uppDia_type) , intent(in) :: subset
4540 end subroutine
4541#endif
4542
4543#if RK1_ENABLED
4544 impure module subroutine setMUR_RNGF_AM_AC_UXD_D2_RK1(rng, rand, mean, chol, subset)
4545#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4546 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_AC_UXD_D2_RK1
4547#endif
4548 use pm_kind, only: RKG => RK1
4549 type(rngf_type) , intent(in) :: rng
4550 real(RKG) , intent(out) , contiguous :: rand(:,:)
4551 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4552 type(uppDia_type) , intent(in) :: subset
4553 end subroutine
4554#endif
4555
4556 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4557
4558#if RK5_ENABLED
4559 impure module subroutine setMUR_RNGF_AM_AC_XLD_D2_RK5(rng, rand, mean, chol, subset)
4560#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4561 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_AC_XLD_D2_RK5
4562#endif
4563 use pm_kind, only: RKG => RK5
4564 type(rngf_type) , intent(in) :: rng
4565 real(RKG) , intent(out) , contiguous :: rand(:,:)
4566 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4567 type(lowDia_type) , intent(in) :: subset
4568 end subroutine
4569#endif
4570
4571#if RK4_ENABLED
4572 impure module subroutine setMUR_RNGF_AM_AC_XLD_D2_RK4(rng, rand, mean, chol, subset)
4573#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4574 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_AC_XLD_D2_RK4
4575#endif
4576 use pm_kind, only: RKG => RK4
4577 type(rngf_type) , intent(in) :: rng
4578 real(RKG) , intent(out) , contiguous :: rand(:,:)
4579 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4580 type(lowDia_type) , intent(in) :: subset
4581 end subroutine
4582#endif
4583
4584#if RK3_ENABLED
4585 impure module subroutine setMUR_RNGF_AM_AC_XLD_D2_RK3(rng, rand, mean, chol, subset)
4586#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4587 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_AC_XLD_D2_RK3
4588#endif
4589 use pm_kind, only: RKG => RK3
4590 type(rngf_type) , intent(in) :: rng
4591 real(RKG) , intent(out) , contiguous :: rand(:,:)
4592 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4593 type(lowDia_type) , intent(in) :: subset
4594 end subroutine
4595#endif
4596
4597#if RK2_ENABLED
4598 impure module subroutine setMUR_RNGF_AM_AC_XLD_D2_RK2(rng, rand, mean, chol, subset)
4599#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4600 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_AC_XLD_D2_RK2
4601#endif
4602 use pm_kind, only: RKG => RK2
4603 type(rngf_type) , intent(in) :: rng
4604 real(RKG) , intent(out) , contiguous :: rand(:,:)
4605 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4606 type(lowDia_type) , intent(in) :: subset
4607 end subroutine
4608#endif
4609
4610#if RK1_ENABLED
4611 impure module subroutine setMUR_RNGF_AM_AC_XLD_D2_RK1(rng, rand, mean, chol, subset)
4612#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4613 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGF_AM_AC_XLD_D2_RK1
4614#endif
4615 use pm_kind, only: RKG => RK1
4616 type(rngf_type) , intent(in) :: rng
4617 real(RKG) , intent(out) , contiguous :: rand(:,:)
4618 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4619 type(lowDia_type) , intent(in) :: subset
4620 end subroutine
4621#endif
4622
4623 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4624
4625 end interface
4626
4627 ! D2 RNGX
4628
4629 interface setUnifEllRand
4630
4631 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4632
4633#if RK5_ENABLED
4634 PURE module subroutine setMUR_RNGX_DM_DC_XXX_D2_RK5(rng, rand)
4635#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4636 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_DC_XXX_D2_RK5
4637#endif
4638 use pm_kind, only: RKG => RK5
4639 type(xoshiro256ssw_type), intent(inout) :: rng
4640 real(RKG) , intent(out) , contiguous :: rand(:,:)
4641 end subroutine
4642#endif
4643
4644#if RK4_ENABLED
4645 PURE module subroutine setMUR_RNGX_DM_DC_XXX_D2_RK4(rng, rand)
4646#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4647 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_DC_XXX_D2_RK4
4648#endif
4649 use pm_kind, only: RKG => RK4
4650 type(xoshiro256ssw_type), intent(inout) :: rng
4651 real(RKG) , intent(out) , contiguous :: rand(:,:)
4652 end subroutine
4653#endif
4654
4655#if RK3_ENABLED
4656 PURE module subroutine setMUR_RNGX_DM_DC_XXX_D2_RK3(rng, rand)
4657#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4658 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_DC_XXX_D2_RK3
4659#endif
4660 use pm_kind, only: RKG => RK3
4661 type(xoshiro256ssw_type), intent(inout) :: rng
4662 real(RKG) , intent(out) , contiguous :: rand(:,:)
4663 end subroutine
4664#endif
4665
4666#if RK2_ENABLED
4667 PURE module subroutine setMUR_RNGX_DM_DC_XXX_D2_RK2(rng, rand)
4668#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4669 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_DC_XXX_D2_RK2
4670#endif
4671 use pm_kind, only: RKG => RK2
4672 type(xoshiro256ssw_type), intent(inout) :: rng
4673 real(RKG) , intent(out) , contiguous :: rand(:,:)
4674 end subroutine
4675#endif
4676
4677#if RK1_ENABLED
4678 PURE module subroutine setMUR_RNGX_DM_DC_XXX_D2_RK1(rng, rand)
4679#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4680 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_DC_XXX_D2_RK1
4681#endif
4682 use pm_kind, only: RKG => RK1
4683 type(xoshiro256ssw_type), intent(inout) :: rng
4684 real(RKG) , intent(out) , contiguous :: rand(:,:)
4685 end subroutine
4686#endif
4687
4688 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4689
4690#if RK5_ENABLED
4691 PURE module subroutine setMUR_RNGX_AM_DC_XXX_D2_RK5(rng, rand, mean)
4692#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4693 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_DC_XXX_D2_RK5
4694#endif
4695 use pm_kind, only: RKG => RK5
4696 type(xoshiro256ssw_type), intent(inout) :: rng
4697 real(RKG) , intent(out) , contiguous :: rand(:,:)
4698 real(RKG) , intent(in) , contiguous :: mean(:)
4699 end subroutine
4700#endif
4701
4702#if RK4_ENABLED
4703 PURE module subroutine setMUR_RNGX_AM_DC_XXX_D2_RK4(rng, rand, mean)
4704#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4705 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_DC_XXX_D2_RK4
4706#endif
4707 use pm_kind, only: RKG => RK4
4708 type(xoshiro256ssw_type), intent(inout) :: rng
4709 real(RKG) , intent(out) , contiguous :: rand(:,:)
4710 real(RKG) , intent(in) , contiguous :: mean(:)
4711 end subroutine
4712#endif
4713
4714#if RK3_ENABLED
4715 PURE module subroutine setMUR_RNGX_AM_DC_XXX_D2_RK3(rng, rand, mean)
4716#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4717 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_DC_XXX_D2_RK3
4718#endif
4719 use pm_kind, only: RKG => RK3
4720 type(xoshiro256ssw_type), intent(inout) :: rng
4721 real(RKG) , intent(out) , contiguous :: rand(:,:)
4722 real(RKG) , intent(in) , contiguous :: mean(:)
4723 end subroutine
4724#endif
4725
4726#if RK2_ENABLED
4727 PURE module subroutine setMUR_RNGX_AM_DC_XXX_D2_RK2(rng, rand, mean)
4728#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4729 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_DC_XXX_D2_RK2
4730#endif
4731 use pm_kind, only: RKG => RK2
4732 type(xoshiro256ssw_type), intent(inout) :: rng
4733 real(RKG) , intent(out) , contiguous :: rand(:,:)
4734 real(RKG) , intent(in) , contiguous :: mean(:)
4735 end subroutine
4736#endif
4737
4738#if RK1_ENABLED
4739 PURE module subroutine setMUR_RNGX_AM_DC_XXX_D2_RK1(rng, rand, mean)
4740#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4741 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_DC_XXX_D2_RK1
4742#endif
4743 use pm_kind, only: RKG => RK1
4744 type(xoshiro256ssw_type), intent(inout) :: rng
4745 real(RKG) , intent(out) , contiguous :: rand(:,:)
4746 real(RKG) , intent(in) , contiguous :: mean(:)
4747 end subroutine
4748#endif
4749
4750 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4751
4752#if RK5_ENABLED
4753 PURE module subroutine setMUR_RNGX_DM_AC_UXD_D2_RK5(rng, rand, chol, subset)
4754#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4755 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_AC_UXD_D2_RK5
4756#endif
4757 use pm_kind, only: RKG => RK5
4758 type(xoshiro256ssw_type), intent(inout) :: rng
4759 real(RKG) , intent(out) , contiguous :: rand(:,:)
4760 real(RKG) , intent(in) , contiguous :: chol(:,:)
4761 type(uppDia_type) , intent(in) :: subset
4762 end subroutine
4763#endif
4764
4765#if RK4_ENABLED
4766 PURE module subroutine setMUR_RNGX_DM_AC_UXD_D2_RK4(rng, rand, chol, subset)
4767#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4768 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_AC_UXD_D2_RK4
4769#endif
4770 use pm_kind, only: RKG => RK4
4771 type(xoshiro256ssw_type), intent(inout) :: rng
4772 real(RKG) , intent(out) , contiguous :: rand(:,:)
4773 real(RKG) , intent(in) , contiguous :: chol(:,:)
4774 type(uppDia_type) , intent(in) :: subset
4775 end subroutine
4776#endif
4777
4778#if RK3_ENABLED
4779 PURE module subroutine setMUR_RNGX_DM_AC_UXD_D2_RK3(rng, rand, chol, subset)
4780#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4781 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_AC_UXD_D2_RK3
4782#endif
4783 use pm_kind, only: RKG => RK3
4784 type(xoshiro256ssw_type), intent(inout) :: rng
4785 real(RKG) , intent(out) , contiguous :: rand(:,:)
4786 real(RKG) , intent(in) , contiguous :: chol(:,:)
4787 type(uppDia_type) , intent(in) :: subset
4788 end subroutine
4789#endif
4790
4791#if RK2_ENABLED
4792 PURE module subroutine setMUR_RNGX_DM_AC_UXD_D2_RK2(rng, rand, chol, subset)
4793#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4794 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_AC_UXD_D2_RK2
4795#endif
4796 use pm_kind, only: RKG => RK2
4797 type(xoshiro256ssw_type), intent(inout) :: rng
4798 real(RKG) , intent(out) , contiguous :: rand(:,:)
4799 real(RKG) , intent(in) , contiguous :: chol(:,:)
4800 type(uppDia_type) , intent(in) :: subset
4801 end subroutine
4802#endif
4803
4804#if RK1_ENABLED
4805 PURE module subroutine setMUR_RNGX_DM_AC_UXD_D2_RK1(rng, rand, chol, subset)
4806#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4807 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_AC_UXD_D2_RK1
4808#endif
4809 use pm_kind, only: RKG => RK1
4810 type(xoshiro256ssw_type), intent(inout) :: rng
4811 real(RKG) , intent(out) , contiguous :: rand(:,:)
4812 real(RKG) , intent(in) , contiguous :: chol(:,:)
4813 type(uppDia_type) , intent(in) :: subset
4814 end subroutine
4815#endif
4816
4817 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4818
4819#if RK5_ENABLED
4820 PURE module subroutine setMUR_RNGX_DM_AC_XLD_D2_RK5(rng, rand, chol, subset)
4821#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4822 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_AC_XLD_D2_RK5
4823#endif
4824 use pm_kind, only: RKG => RK5
4825 type(xoshiro256ssw_type), intent(inout) :: rng
4826 real(RKG) , intent(out) , contiguous :: rand(:,:)
4827 real(RKG) , intent(in) , contiguous :: chol(:,:)
4828 type(lowDia_type) , intent(in) :: subset
4829 end subroutine
4830#endif
4831
4832#if RK4_ENABLED
4833 PURE module subroutine setMUR_RNGX_DM_AC_XLD_D2_RK4(rng, rand, chol, subset)
4834#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4835 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_AC_XLD_D2_RK4
4836#endif
4837 use pm_kind, only: RKG => RK4
4838 type(xoshiro256ssw_type), intent(inout) :: rng
4839 real(RKG) , intent(out) , contiguous :: rand(:,:)
4840 real(RKG) , intent(in) , contiguous :: chol(:,:)
4841 type(lowDia_type) , intent(in) :: subset
4842 end subroutine
4843#endif
4844
4845#if RK3_ENABLED
4846 PURE module subroutine setMUR_RNGX_DM_AC_XLD_D2_RK3(rng, rand, chol, subset)
4847#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4848 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_AC_XLD_D2_RK3
4849#endif
4850 use pm_kind, only: RKG => RK3
4851 type(xoshiro256ssw_type), intent(inout) :: rng
4852 real(RKG) , intent(out) , contiguous :: rand(:,:)
4853 real(RKG) , intent(in) , contiguous :: chol(:,:)
4854 type(lowDia_type) , intent(in) :: subset
4855 end subroutine
4856#endif
4857
4858#if RK2_ENABLED
4859 PURE module subroutine setMUR_RNGX_DM_AC_XLD_D2_RK2(rng, rand, chol, subset)
4860#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4861 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_AC_XLD_D2_RK2
4862#endif
4863 use pm_kind, only: RKG => RK2
4864 type(xoshiro256ssw_type), intent(inout) :: rng
4865 real(RKG) , intent(out) , contiguous :: rand(:,:)
4866 real(RKG) , intent(in) , contiguous :: chol(:,:)
4867 type(lowDia_type) , intent(in) :: subset
4868 end subroutine
4869#endif
4870
4871#if RK1_ENABLED
4872 PURE module subroutine setMUR_RNGX_DM_AC_XLD_D2_RK1(rng, rand, chol, subset)
4873#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4874 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_DM_AC_XLD_D2_RK1
4875#endif
4876 use pm_kind, only: RKG => RK1
4877 type(xoshiro256ssw_type), intent(inout) :: rng
4878 real(RKG) , intent(out) , contiguous :: rand(:,:)
4879 real(RKG) , intent(in) , contiguous :: chol(:,:)
4880 type(lowDia_type) , intent(in) :: subset
4881 end subroutine
4882#endif
4883
4884 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4885
4886#if RK5_ENABLED
4887 PURE module subroutine setMUR_RNGX_AM_AC_UXD_D2_RK5(rng, rand, mean, chol, subset)
4888#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4889 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_AC_UXD_D2_RK5
4890#endif
4891 use pm_kind, only: RKG => RK5
4892 type(xoshiro256ssw_type), intent(inout) :: rng
4893 real(RKG) , intent(out) , contiguous :: rand(:,:)
4894 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4895 type(uppDia_type) , intent(in) :: subset
4896 end subroutine
4897#endif
4898
4899#if RK4_ENABLED
4900 PURE module subroutine setMUR_RNGX_AM_AC_UXD_D2_RK4(rng, rand, mean, chol, subset)
4901#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4902 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_AC_UXD_D2_RK4
4903#endif
4904 use pm_kind, only: RKG => RK4
4905 type(xoshiro256ssw_type), intent(inout) :: rng
4906 real(RKG) , intent(out) , contiguous :: rand(:,:)
4907 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4908 type(uppDia_type) , intent(in) :: subset
4909 end subroutine
4910#endif
4911
4912#if RK3_ENABLED
4913 PURE module subroutine setMUR_RNGX_AM_AC_UXD_D2_RK3(rng, rand, mean, chol, subset)
4914#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4915 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_AC_UXD_D2_RK3
4916#endif
4917 use pm_kind, only: RKG => RK3
4918 type(xoshiro256ssw_type), intent(inout) :: rng
4919 real(RKG) , intent(out) , contiguous :: rand(:,:)
4920 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4921 type(uppDia_type) , intent(in) :: subset
4922 end subroutine
4923#endif
4924
4925#if RK2_ENABLED
4926 PURE module subroutine setMUR_RNGX_AM_AC_UXD_D2_RK2(rng, rand, mean, chol, subset)
4927#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4928 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_AC_UXD_D2_RK2
4929#endif
4930 use pm_kind, only: RKG => RK2
4931 type(xoshiro256ssw_type), intent(inout) :: rng
4932 real(RKG) , intent(out) , contiguous :: rand(:,:)
4933 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4934 type(uppDia_type) , intent(in) :: subset
4935 end subroutine
4936#endif
4937
4938#if RK1_ENABLED
4939 PURE module subroutine setMUR_RNGX_AM_AC_UXD_D2_RK1(rng, rand, mean, chol, subset)
4940#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4941 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_AC_UXD_D2_RK1
4942#endif
4943 use pm_kind, only: RKG => RK1
4944 type(xoshiro256ssw_type), intent(inout) :: rng
4945 real(RKG) , intent(out) , contiguous :: rand(:,:)
4946 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4947 type(uppDia_type) , intent(in) :: subset
4948 end subroutine
4949#endif
4950
4951 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4952
4953#if RK5_ENABLED
4954 PURE module subroutine setMUR_RNGX_AM_AC_XLD_D2_RK5(rng, rand, mean, chol, subset)
4955#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4956 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_AC_XLD_D2_RK5
4957#endif
4958 use pm_kind, only: RKG => RK5
4959 type(xoshiro256ssw_type), intent(inout) :: rng
4960 real(RKG) , intent(out) , contiguous :: rand(:,:)
4961 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4962 type(lowDia_type) , intent(in) :: subset
4963 end subroutine
4964#endif
4965
4966#if RK4_ENABLED
4967 PURE module subroutine setMUR_RNGX_AM_AC_XLD_D2_RK4(rng, rand, mean, chol, subset)
4968#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4969 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_AC_XLD_D2_RK4
4970#endif
4971 use pm_kind, only: RKG => RK4
4972 type(xoshiro256ssw_type), intent(inout) :: rng
4973 real(RKG) , intent(out) , contiguous :: rand(:,:)
4974 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4975 type(lowDia_type) , intent(in) :: subset
4976 end subroutine
4977#endif
4978
4979#if RK3_ENABLED
4980 PURE module subroutine setMUR_RNGX_AM_AC_XLD_D2_RK3(rng, rand, mean, chol, subset)
4981#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4982 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_AC_XLD_D2_RK3
4983#endif
4984 use pm_kind, only: RKG => RK3
4985 type(xoshiro256ssw_type), intent(inout) :: rng
4986 real(RKG) , intent(out) , contiguous :: rand(:,:)
4987 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
4988 type(lowDia_type) , intent(in) :: subset
4989 end subroutine
4990#endif
4991
4992#if RK2_ENABLED
4993 PURE module subroutine setMUR_RNGX_AM_AC_XLD_D2_RK2(rng, rand, mean, chol, subset)
4994#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4995 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_AC_XLD_D2_RK2
4996#endif
4997 use pm_kind, only: RKG => RK2
4998 type(xoshiro256ssw_type), intent(inout) :: rng
4999 real(RKG) , intent(out) , contiguous :: rand(:,:)
5000 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
5001 type(lowDia_type) , intent(in) :: subset
5002 end subroutine
5003#endif
5004
5005#if RK1_ENABLED
5006 PURE module subroutine setMUR_RNGX_AM_AC_XLD_D2_RK1(rng, rand, mean, chol, subset)
5007#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5008 !DEC$ ATTRIBUTES DLLEXPORT :: setMUR_RNGX_AM_AC_XLD_D2_RK1
5009#endif
5010 use pm_kind, only: RKG => RK1
5011 type(xoshiro256ssw_type), intent(inout) :: rng
5012 real(RKG) , intent(out) , contiguous :: rand(:,:)
5013 real(RKG) , intent(in) , contiguous :: mean(:), chol(:,:)
5014 type(lowDia_type) , intent(in) :: subset
5015 end subroutine
5016#endif
5017
5018 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5019
5020 end interface
5021
5022!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5023
5024end module pm_distUnifEll
Generate and return the natural logarithm of the Probability Density Function (PDF) of the MultiVaria...
Generate and return a (collection) of random vector(s) of size ndim from the ndim-dimensional MultiVa...
Return a (collection) of random vector(s) of size ndim from the ndim-dimensional MultiVariate Uniform...
This module contains classes and procedures for computing various statistical quantities related to t...
This module contains classes and procedures for computing various statistical quantities related to t...
character(*, SK), parameter MODULE_NAME
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 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 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 module contains abstract and concrete derived types that are required for compile-time resolutio...
type(lowDia_type), parameter lowDia
This is a scalar parameter object of type lowDia_type that is exclusively used to request lower-diago...
type(uppDia_type), parameter uppDia
This is a scalar parameter object of type uppDia_type that is exclusively used to request upper-diago...
This is the derived type for signifying distributions that are of type MultiVariate Uniform Ellipsoid...
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...
This is a concrete derived type whose instances are exclusively used to request lower-diagonal triang...
This is a concrete derived type whose instances are exclusively used to request upper-diagonal triang...