ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_distNorm.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
176
177!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
178
180
181 use pm_distUnif, only: rngf_type
183 use pm_kind, only: SK, IK, LK, RKH, RKB
184
185 implicit none
186
187 character(*, SK), parameter :: MODULE_NAME = "@pm_distNorm"
188
189!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
190
225 end type
226
227!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
228
295
296 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
297
298#if RK5_ENABLED
299 PURE elemental module function getNormLogPDF_RK5(x, mu, sigma) result(logPDF)
300#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
301 !DEC$ ATTRIBUTES DLLEXPORT :: getNormLogPDF_RK5
302#endif
303 use pm_kind, only: RKG => RK5
304 real(RKG) , intent(in) :: x
305 real(RKG) , intent(in) , optional :: mu, sigma
306 real(RKG) :: logPDF
307 end function
308#endif
309
310#if RK4_ENABLED
311 PURE elemental module function getNormLogPDF_RK4(x, mu, sigma) result(logPDF)
312#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
313 !DEC$ ATTRIBUTES DLLEXPORT :: getNormLogPDF_RK4
314#endif
315 use pm_kind, only: RKG => RK4
316 real(RKG) , intent(in) :: x
317 real(RKG) , intent(in) , optional :: mu, sigma
318 real(RKG) :: logPDF
319 end function
320#endif
321
322#if RK3_ENABLED
323 PURE elemental module function getNormLogPDF_RK3(x, mu, sigma) result(logPDF)
324#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
325 !DEC$ ATTRIBUTES DLLEXPORT :: getNormLogPDF_RK3
326#endif
327 use pm_kind, only: RKG => RK3
328 real(RKG) , intent(in) :: x
329 real(RKG) , intent(in) , optional :: mu, sigma
330 real(RKG) :: logPDF
331 end function
332#endif
333
334#if RK2_ENABLED
335 PURE elemental module function getNormLogPDF_RK2(x, mu, sigma) result(logPDF)
336#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
337 !DEC$ ATTRIBUTES DLLEXPORT :: getNormLogPDF_RK2
338#endif
339 use pm_kind, only: RKG => RK2
340 real(RKG) , intent(in) :: x
341 real(RKG) , intent(in) , optional :: mu, sigma
342 real(RKG) :: logPDF
343 end function
344#endif
345
346#if RK1_ENABLED
347 PURE elemental module function getNormLogPDF_RK1(x, mu, sigma) result(logPDF)
348#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
349 !DEC$ ATTRIBUTES DLLEXPORT :: getNormLogPDF_RK1
350#endif
351 use pm_kind, only: RKG => RK1
352 real(RKG) , intent(in) :: x
353 real(RKG) , intent(in) , optional :: mu, sigma
354 real(RKG) :: logPDF
355 end function
356#endif
357
358 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
359
360 end interface getNormLogPDF
361
362!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
363
438
439 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
440
441#if RK5_ENABLED
442 PURE elemental module subroutine setNormLogPDFDD_RK5(logPDF, x)
443#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
444 !DEC$ ATTRIBUTES DLLEXPORT :: setNormLogPDFDD_RK5
445#endif
446 use pm_kind, only: RKG => RK5
447 real(RKG) , intent(out) :: logPDF
448 real(RKG) , intent(in) :: x
449 end subroutine
450#endif
451
452#if RK4_ENABLED
453 PURE elemental module subroutine setNormLogPDFDD_RK4(logPDF, x)
454#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
455 !DEC$ ATTRIBUTES DLLEXPORT :: setNormLogPDFDD_RK4
456#endif
457 use pm_kind, only: RKG => RK4
458 real(RKG) , intent(out) :: logPDF
459 real(RKG) , intent(in) :: x
460 end subroutine
461#endif
462
463#if RK3_ENABLED
464 PURE elemental module subroutine setNormLogPDFDD_RK3(logPDF, x)
465#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
466 !DEC$ ATTRIBUTES DLLEXPORT :: setNormLogPDFDD_RK3
467#endif
468 use pm_kind, only: RKG => RK3
469 real(RKG) , intent(out) :: logPDF
470 real(RKG) , intent(in) :: x
471 end subroutine
472#endif
473
474#if RK2_ENABLED
475 PURE elemental module subroutine setNormLogPDFDD_RK2(logPDF, x)
476#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
477 !DEC$ ATTRIBUTES DLLEXPORT :: setNormLogPDFDD_RK2
478#endif
479 use pm_kind, only: RKG => RK2
480 real(RKG) , intent(out) :: logPDF
481 real(RKG) , intent(in) :: x
482 end subroutine
483#endif
484
485#if RK1_ENABLED
486 PURE elemental module subroutine setNormLogPDFDD_RK1(logPDF, x)
487#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
488 !DEC$ ATTRIBUTES DLLEXPORT :: setNormLogPDFDD_RK1
489#endif
490 use pm_kind, only: RKG => RK1
491 real(RKG) , intent(out) :: logPDF
492 real(RKG) , intent(in) :: x
493 end subroutine
494#endif
495
496 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
497
498#if RK5_ENABLED
499 PURE elemental module subroutine setNormLogPDFMD_RK5(logPDF, x, mu)
500#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
501 !DEC$ ATTRIBUTES DLLEXPORT :: setNormLogPDFMD_RK5
502#endif
503 use pm_kind, only: RKG => RK5
504 real(RKG) , intent(out) :: logPDF
505 real(RKG) , intent(in) :: x
506 real(RKG) , intent(in) :: mu
507 end subroutine
508#endif
509
510#if RK4_ENABLED
511 PURE elemental module subroutine setNormLogPDFMD_RK4(logPDF, x, mu)
512#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
513 !DEC$ ATTRIBUTES DLLEXPORT :: setNormLogPDFMD_RK4
514#endif
515 use pm_kind, only: RKG => RK4
516 real(RKG) , intent(out) :: logPDF
517 real(RKG) , intent(in) :: x
518 real(RKG) , intent(in) :: mu
519 end subroutine
520#endif
521
522#if RK3_ENABLED
523 PURE elemental module subroutine setNormLogPDFMD_RK3(logPDF, x, mu)
524#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
525 !DEC$ ATTRIBUTES DLLEXPORT :: setNormLogPDFMD_RK3
526#endif
527 use pm_kind, only: RKG => RK3
528 real(RKG) , intent(out) :: logPDF
529 real(RKG) , intent(in) :: x
530 real(RKG) , intent(in) :: mu
531 end subroutine
532#endif
533
534#if RK2_ENABLED
535 PURE elemental module subroutine setNormLogPDFMD_RK2(logPDF, x, mu)
536#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
537 !DEC$ ATTRIBUTES DLLEXPORT :: setNormLogPDFMD_RK2
538#endif
539 use pm_kind, only: RKG => RK2
540 real(RKG) , intent(out) :: logPDF
541 real(RKG) , intent(in) :: x
542 real(RKG) , intent(in) :: mu
543 end subroutine
544#endif
545
546#if RK1_ENABLED
547 PURE elemental module subroutine setNormLogPDFMD_RK1(logPDF, x, mu)
548#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
549 !DEC$ ATTRIBUTES DLLEXPORT :: setNormLogPDFMD_RK1
550#endif
551 use pm_kind, only: RKG => RK1
552 real(RKG) , intent(out) :: logPDF
553 real(RKG) , intent(in) :: x
554 real(RKG) , intent(in) :: mu
555 end subroutine
556#endif
557
558 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
559
560#if RK5_ENABLED
561 PURE elemental module subroutine setNormLogPDFDS_RK5(logPDF, x, invSigma, logInvSigma)
562#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
563 !DEC$ ATTRIBUTES DLLEXPORT :: setNormLogPDFDS_RK5
564#endif
565 use pm_kind, only: RKG => RK5
566 real(RKG) , intent(out) :: logPDF
567 real(RKG) , intent(in) :: x
568 real(RKG) , intent(in) :: invSigma, logInvSigma
569 end subroutine
570#endif
571
572#if RK4_ENABLED
573 PURE elemental module subroutine setNormLogPDFDS_RK4(logPDF, x, invSigma, logInvSigma)
574#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
575 !DEC$ ATTRIBUTES DLLEXPORT :: setNormLogPDFDS_RK4
576#endif
577 use pm_kind, only: RKG => RK4
578 real(RKG) , intent(out) :: logPDF
579 real(RKG) , intent(in) :: x
580 real(RKG) , intent(in) :: invSigma, logInvSigma
581 end subroutine
582#endif
583
584#if RK3_ENABLED
585 PURE elemental module subroutine setNormLogPDFDS_RK3(logPDF, x, invSigma, logInvSigma)
586#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
587 !DEC$ ATTRIBUTES DLLEXPORT :: setNormLogPDFDS_RK3
588#endif
589 use pm_kind, only: RKG => RK3
590 real(RKG) , intent(out) :: logPDF
591 real(RKG) , intent(in) :: x
592 real(RKG) , intent(in) :: invSigma, logInvSigma
593 end subroutine
594#endif
595
596#if RK2_ENABLED
597 PURE elemental module subroutine setNormLogPDFDS_RK2(logPDF, x, invSigma, logInvSigma)
598#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
599 !DEC$ ATTRIBUTES DLLEXPORT :: setNormLogPDFDS_RK2
600#endif
601 use pm_kind, only: RKG => RK2
602 real(RKG) , intent(out) :: logPDF
603 real(RKG) , intent(in) :: x
604 real(RKG) , intent(in) :: invSigma, logInvSigma
605 end subroutine
606#endif
607
608#if RK1_ENABLED
609 PURE elemental module subroutine setNormLogPDFDS_RK1(logPDF, x, invSigma, logInvSigma)
610#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
611 !DEC$ ATTRIBUTES DLLEXPORT :: setNormLogPDFDS_RK1
612#endif
613 use pm_kind, only: RKG => RK1
614 real(RKG) , intent(out) :: logPDF
615 real(RKG) , intent(in) :: x
616 real(RKG) , intent(in) :: invSigma, logInvSigma
617 end subroutine
618#endif
619
620 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
621
622#if RK5_ENABLED
623 PURE elemental module subroutine setNormLogPDFMS_RK5(logPDF, x, mu, invSigma, logInvSigma)
624#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
625 !DEC$ ATTRIBUTES DLLEXPORT :: setNormLogPDFMS_RK5
626#endif
627 use pm_kind, only: RKG => RK5
628 real(RKG) , intent(out) :: logPDF
629 real(RKG) , intent(in) :: x
630 real(RKG) , intent(in) :: mu
631 real(RKG) , intent(in) :: invSigma
632 real(RKG) , intent(in) :: logInvSigma
633 end subroutine
634#endif
635
636#if RK4_ENABLED
637 PURE elemental module subroutine setNormLogPDFMS_RK4(logPDF, x, mu, invSigma, logInvSigma)
638#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
639 !DEC$ ATTRIBUTES DLLEXPORT :: setNormLogPDFMS_RK4
640#endif
641 use pm_kind, only: RKG => RK4
642 real(RKG) , intent(out) :: logPDF
643 real(RKG) , intent(in) :: x
644 real(RKG) , intent(in) :: mu
645 real(RKG) , intent(in) :: invSigma
646 real(RKG) , intent(in) :: logInvSigma
647 end subroutine
648#endif
649
650#if RK3_ENABLED
651 PURE elemental module subroutine setNormLogPDFMS_RK3(logPDF, x, mu, invSigma, logInvSigma)
652#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
653 !DEC$ ATTRIBUTES DLLEXPORT :: setNormLogPDFMS_RK3
654#endif
655 use pm_kind, only: RKG => RK3
656 real(RKG) , intent(out) :: logPDF
657 real(RKG) , intent(in) :: x
658 real(RKG) , intent(in) :: mu
659 real(RKG) , intent(in) :: invSigma
660 real(RKG) , intent(in) :: logInvSigma
661 end subroutine
662#endif
663
664#if RK2_ENABLED
665 PURE elemental module subroutine setNormLogPDFMS_RK2(logPDF, x, mu, invSigma, logInvSigma)
666#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
667 !DEC$ ATTRIBUTES DLLEXPORT :: setNormLogPDFMS_RK2
668#endif
669 use pm_kind, only: RKG => RK2
670 real(RKG) , intent(out) :: logPDF
671 real(RKG) , intent(in) :: x
672 real(RKG) , intent(in) :: mu
673 real(RKG) , intent(in) :: invSigma
674 real(RKG) , intent(in) :: logInvSigma
675 end subroutine
676#endif
677
678#if RK1_ENABLED
679 PURE elemental module subroutine setNormLogPDFMS_RK1(logPDF, x, mu, invSigma, logInvSigma)
680#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
681 !DEC$ ATTRIBUTES DLLEXPORT :: setNormLogPDFMS_RK1
682#endif
683 use pm_kind, only: RKG => RK1
684 real(RKG) , intent(out) :: logPDF
685 real(RKG) , intent(in) :: x
686 real(RKG) , intent(in) :: mu
687 real(RKG) , intent(in) :: invSigma
688 real(RKG) , intent(in) :: logInvSigma
689 end subroutine
690#endif
691
692 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
693
694 end interface setNormLogPDF
695
696!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
697
754 interface getNormCDF
755
756 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
757
758#if RK5_ENABLED
759 PURE elemental module function getNormCDF_RK5(x, mu, sigma) result(cdf)
760#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
761 !DEC$ ATTRIBUTES DLLEXPORT :: getNormCDF_RK5
762#endif
763 use pm_kind, only: RKG => RK5
764 real(RKG) , intent(in) :: x
765 real(RKG) , intent(in) , optional :: mu
766 real(RKG) , intent(in) , optional :: sigma
767 real(RKG) :: cdf
768 end function
769#endif
770
771#if RK4_ENABLED
772 PURE elemental module function getNormCDF_RK4(x, mu, sigma) result(cdf)
773#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
774 !DEC$ ATTRIBUTES DLLEXPORT :: getNormCDF_RK4
775#endif
776 use pm_kind, only: RKG => RK4
777 real(RKG) , intent(in) :: x
778 real(RKG) , intent(in) , optional :: mu
779 real(RKG) , intent(in) , optional :: sigma
780 real(RKG) :: cdf
781 end function
782#endif
783
784#if RK3_ENABLED
785 PURE elemental module function getNormCDF_RK3(x, mu, sigma) result(cdf)
786#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
787 !DEC$ ATTRIBUTES DLLEXPORT :: getNormCDF_RK3
788#endif
789 use pm_kind, only: RKG => RK3
790 real(RKG) , intent(in) :: x
791 real(RKG) , intent(in) , optional :: mu
792 real(RKG) , intent(in) , optional :: sigma
793 real(RKG) :: cdf
794 end function
795#endif
796
797#if RK2_ENABLED
798 PURE elemental module function getNormCDF_RK2(x, mu, sigma) result(cdf)
799#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
800 !DEC$ ATTRIBUTES DLLEXPORT :: getNormCDF_RK2
801#endif
802 use pm_kind, only: RKG => RK2
803 real(RKG) , intent(in) :: x
804 real(RKG) , intent(in) , optional :: mu
805 real(RKG) , intent(in) , optional :: sigma
806 real(RKG) :: cdf
807 end function
808#endif
809
810#if RK1_ENABLED
811 PURE elemental module function getNormCDF_RK1(x, mu, sigma) result(cdf)
812#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
813 !DEC$ ATTRIBUTES DLLEXPORT :: getNormCDF_RK1
814#endif
815 use pm_kind, only: RKG => RK1
816 real(RKG) , intent(in) :: x
817 real(RKG) , intent(in) , optional :: mu
818 real(RKG) , intent(in) , optional :: sigma
819 real(RKG) :: cdf
820 end function
821#endif
822
823 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
824
825 end interface getNormCDF
826
827!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
828
886 interface setNormCDF
887
888 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
889
890#if RK5_ENABLED
891 PURE elemental module subroutine setNormCDFDD_RK5(cdf, x)
892#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
893 !DEC$ ATTRIBUTES DLLEXPORT :: setNormCDFDD_RK5
894#endif
895 use pm_kind, only: RKG => RK5
896 real(RKG) , intent(out) :: cdf
897 real(RKG) , intent(in) :: x
898 end subroutine
899#endif
900
901#if RK4_ENABLED
902 PURE elemental module subroutine setNormCDFDD_RK4(cdf, x)
903#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
904 !DEC$ ATTRIBUTES DLLEXPORT :: setNormCDFDD_RK4
905#endif
906 use pm_kind, only: RKG => RK4
907 real(RKG) , intent(out) :: cdf
908 real(RKG) , intent(in) :: x
909 end subroutine
910#endif
911
912#if RK3_ENABLED
913 PURE elemental module subroutine setNormCDFDD_RK3(cdf, x)
914#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
915 !DEC$ ATTRIBUTES DLLEXPORT :: setNormCDFDD_RK3
916#endif
917 use pm_kind, only: RKG => RK3
918 real(RKG) , intent(out) :: cdf
919 real(RKG) , intent(in) :: x
920 end subroutine
921#endif
922
923#if RK2_ENABLED
924 PURE elemental module subroutine setNormCDFDD_RK2(cdf, x)
925#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
926 !DEC$ ATTRIBUTES DLLEXPORT :: setNormCDFDD_RK2
927#endif
928 use pm_kind, only: RKG => RK2
929 real(RKG) , intent(in) :: x
930 real(RKG) , intent(out) :: cdf
931 end subroutine
932#endif
933
934#if RK1_ENABLED
935 PURE elemental module subroutine setNormCDFDD_RK1(cdf, x)
936#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
937 !DEC$ ATTRIBUTES DLLEXPORT :: setNormCDFDD_RK1
938#endif
939 use pm_kind, only: RKG => RK1
940 real(RKG) , intent(out) :: cdf
941 real(RKG) , intent(in) :: x
942 end subroutine
943#endif
944
945 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
946
947#if RK5_ENABLED
948 PURE elemental module subroutine setNormCDFMD_RK5(cdf, x, mu)
949#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
950 !DEC$ ATTRIBUTES DLLEXPORT :: setNormCDFMD_RK5
951#endif
952 use pm_kind, only: RKG => RK5
953 real(RKG) , intent(out) :: cdf
954 real(RKG) , intent(in) :: x
955 real(RKG) , intent(in) :: mu
956 end subroutine
957#endif
958
959#if RK4_ENABLED
960 PURE elemental module subroutine setNormCDFMD_RK4(cdf, x, mu)
961#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
962 !DEC$ ATTRIBUTES DLLEXPORT :: setNormCDFMD_RK4
963#endif
964 use pm_kind, only: RKG => RK4
965 real(RKG) , intent(out) :: cdf
966 real(RKG) , intent(in) :: x
967 real(RKG) , intent(in) :: mu
968 end subroutine
969#endif
970
971#if RK3_ENABLED
972 PURE elemental module subroutine setNormCDFMD_RK3(cdf, x, mu)
973#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
974 !DEC$ ATTRIBUTES DLLEXPORT :: setNormCDFMD_RK3
975#endif
976 use pm_kind, only: RKG => RK3
977 real(RKG) , intent(out) :: cdf
978 real(RKG) , intent(in) :: x
979 real(RKG) , intent(in) :: mu
980 end subroutine
981#endif
982
983#if RK2_ENABLED
984 PURE elemental module subroutine setNormCDFMD_RK2(cdf, x, mu)
985#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
986 !DEC$ ATTRIBUTES DLLEXPORT :: setNormCDFMD_RK2
987#endif
988 use pm_kind, only: RKG => RK2
989 real(RKG) , intent(out) :: cdf
990 real(RKG) , intent(in) :: x
991 real(RKG) , intent(in) :: mu
992 end subroutine
993#endif
994
995#if RK1_ENABLED
996 PURE elemental module subroutine setNormCDFMD_RK1(cdf, x, mu)
997#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
998 !DEC$ ATTRIBUTES DLLEXPORT :: setNormCDFMD_RK1
999#endif
1000 use pm_kind, only: RKG => RK1
1001 real(RKG) , intent(out) :: cdf
1002 real(RKG) , intent(in) :: x
1003 real(RKG) , intent(in) :: mu
1004 end subroutine
1005#endif
1006
1007 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1008
1009#if RK5_ENABLED
1010 PURE elemental module subroutine setNormCDFMS_RK5(cdf, x, mu, invSigma)
1011#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1012 !DEC$ ATTRIBUTES DLLEXPORT :: setNormCDFMS_RK5
1013#endif
1014 use pm_kind, only: RKG => RK5
1015 real(RKG) , intent(out) :: cdf
1016 real(RKG) , intent(in) :: x
1017 real(RKG) , intent(in) :: mu
1018 real(RKG) , intent(in) :: invSigma
1019 end subroutine
1020#endif
1021
1022#if RK4_ENABLED
1023 PURE elemental module subroutine setNormCDFMS_RK4(cdf, x, mu, invSigma)
1024#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1025 !DEC$ ATTRIBUTES DLLEXPORT :: setNormCDFMS_RK4
1026#endif
1027 use pm_kind, only: RKG => RK4
1028 real(RKG) , intent(out) :: cdf
1029 real(RKG) , intent(in) :: x
1030 real(RKG) , intent(in) :: mu
1031 real(RKG) , intent(in) :: invSigma
1032 end subroutine
1033#endif
1034
1035#if RK3_ENABLED
1036 PURE elemental module subroutine setNormCDFMS_RK3(cdf, x, mu, invSigma)
1037#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1038 !DEC$ ATTRIBUTES DLLEXPORT :: setNormCDFMS_RK3
1039#endif
1040 use pm_kind, only: RKG => RK3
1041 real(RKG) , intent(out) :: cdf
1042 real(RKG) , intent(in) :: x
1043 real(RKG) , intent(in) :: mu
1044 real(RKG) , intent(in) :: invSigma
1045 end subroutine
1046#endif
1047
1048#if RK2_ENABLED
1049 PURE elemental module subroutine setNormCDFMS_RK2(cdf, x, mu, invSigma)
1050#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1051 !DEC$ ATTRIBUTES DLLEXPORT :: setNormCDFMS_RK2
1052#endif
1053 use pm_kind, only: RKG => RK2
1054 real(RKG) , intent(out) :: cdf
1055 real(RKG) , intent(in) :: x
1056 real(RKG) , intent(in) :: mu
1057 real(RKG) , intent(in) :: invSigma
1058 end subroutine
1059#endif
1060
1061#if RK1_ENABLED
1062 PURE elemental module subroutine setNormCDFMS_RK1(cdf, x, mu, invSigma)
1063#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1064 !DEC$ ATTRIBUTES DLLEXPORT :: setNormCDFMS_RK1
1065#endif
1066 use pm_kind, only: RKG => RK1
1067 real(RKG) , intent(out) :: cdf
1068 real(RKG) , intent(in) :: x
1069 real(RKG) , intent(in) :: mu
1070 real(RKG) , intent(in) :: invSigma
1071 end subroutine
1072#endif
1073
1074 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1075
1076 end interface setNormCDF
1077
1078!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1079
1138 interface getNormQuan
1139
1140 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1141
1142#if RK5_ENABLED
1143 PURE elemental module function getNormQuan_RK5(cdf, mu, sigma) result(quantile)
1144#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1145 !DEC$ ATTRIBUTES DLLEXPORT :: getNormQuan_RK5
1146#endif
1147 use pm_kind, only: RKG => RK5
1148 real(RKG) , intent(in) :: cdf
1149 real(RKG) , intent(in) , optional :: mu
1150 real(RKG) , intent(in) , optional :: sigma
1151 real(RKG) :: quantile
1152 end function
1153#endif
1154
1155#if RK4_ENABLED
1156 PURE elemental module function getNormQuan_RK4(cdf, mu, sigma) result(quantile)
1157#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1158 !DEC$ ATTRIBUTES DLLEXPORT :: getNormQuan_RK4
1159#endif
1160 use pm_kind, only: RKG => RK4
1161 real(RKG) , intent(in) :: cdf
1162 real(RKG) , intent(in) , optional :: mu
1163 real(RKG) , intent(in) , optional :: sigma
1164 real(RKG) :: quantile
1165 end function
1166#endif
1167
1168#if RK3_ENABLED
1169 PURE elemental module function getNormQuan_RK3(cdf, mu, sigma) result(quantile)
1170#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1171 !DEC$ ATTRIBUTES DLLEXPORT :: getNormQuan_RK3
1172#endif
1173 use pm_kind, only: RKG => RK3
1174 real(RKG) , intent(in) :: cdf
1175 real(RKG) , intent(in) , optional :: mu
1176 real(RKG) , intent(in) , optional :: sigma
1177 real(RKG) :: quantile
1178 end function
1179#endif
1180
1181#if RK2_ENABLED
1182 PURE elemental module function getNormQuan_RK2(cdf, mu, sigma) result(quantile)
1183#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1184 !DEC$ ATTRIBUTES DLLEXPORT :: getNormQuan_RK2
1185#endif
1186 use pm_kind, only: RKG => RK2
1187 real(RKG) , intent(in) :: cdf
1188 real(RKG) , intent(in) , optional :: mu
1189 real(RKG) , intent(in) , optional :: sigma
1190 real(RKG) :: quantile
1191 end function
1192#endif
1193
1194#if RK1_ENABLED
1195 PURE elemental module function getNormQuan_RK1(cdf, mu, sigma) result(quantile)
1196#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1197 !DEC$ ATTRIBUTES DLLEXPORT :: getNormQuan_RK1
1198#endif
1199 use pm_kind, only: RKG => RK1
1200 real(RKG) , intent(in) :: cdf
1201 real(RKG) , intent(in) , optional :: mu
1202 real(RKG) , intent(in) , optional :: sigma
1203 real(RKG) :: quantile
1204 end function
1205#endif
1206
1207 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1208
1209 end interface getNormQuan
1210
1211!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1212
1276 interface setNormQuan
1277
1278 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1279
1280#if RK5_ENABLED
1281 PURE elemental module subroutine setNormQuanDD_RK5(quantile, cdf)
1282#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1283 !DEC$ ATTRIBUTES DLLEXPORT :: setNormQuanDD_RK5
1284#endif
1285 use pm_kind, only: RKG => RK5
1286 real(RKG) , intent(out) :: quantile
1287 real(RKG) , intent(in) :: cdf
1288 end subroutine
1289#endif
1290
1291#if RK4_ENABLED
1292 PURE elemental module subroutine setNormQuanDD_RK4(quantile, cdf)
1293#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1294 !DEC$ ATTRIBUTES DLLEXPORT :: setNormQuanDD_RK4
1295#endif
1296 use pm_kind, only: RKG => RK4
1297 real(RKG) , intent(out) :: quantile
1298 real(RKG) , intent(in) :: cdf
1299 end subroutine
1300#endif
1301
1302#if RK3_ENABLED
1303 PURE elemental module subroutine setNormQuanDD_RK3(quantile, cdf)
1304#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1305 !DEC$ ATTRIBUTES DLLEXPORT :: setNormQuanDD_RK3
1306#endif
1307 use pm_kind, only: RKG => RK3
1308 real(RKG) , intent(out) :: quantile
1309 real(RKG) , intent(in) :: cdf
1310 end subroutine
1311#endif
1312
1313#if RK2_ENABLED
1314 PURE elemental module subroutine setNormQuanDD_RK2(quantile, cdf)
1315#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1316 !DEC$ ATTRIBUTES DLLEXPORT :: setNormQuanDD_RK2
1317#endif
1318 use pm_kind, only: RKG => RK2
1319 real(RKG) , intent(in) :: cdf
1320 real(RKG) , intent(out) :: quantile
1321 end subroutine
1322#endif
1323
1324#if RK1_ENABLED
1325 PURE elemental module subroutine setNormQuanDD_RK1(quantile, cdf)
1326#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1327 !DEC$ ATTRIBUTES DLLEXPORT :: setNormQuanDD_RK1
1328#endif
1329 use pm_kind, only: RKG => RK1
1330 real(RKG) , intent(out) :: quantile
1331 real(RKG) , intent(in) :: cdf
1332 end subroutine
1333#endif
1334
1335 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1336
1337#if RK5_ENABLED
1338 PURE elemental module subroutine setNormQuanMD_RK5(quantile, cdf, mu)
1339#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1340 !DEC$ ATTRIBUTES DLLEXPORT :: setNormQuanMD_RK5
1341#endif
1342 use pm_kind, only: RKG => RK5
1343 real(RKG) , intent(out) :: quantile
1344 real(RKG) , intent(in) :: cdf
1345 real(RKG) , intent(in) :: mu
1346 end subroutine
1347#endif
1348
1349#if RK4_ENABLED
1350 PURE elemental module subroutine setNormQuanMD_RK4(quantile, cdf, mu)
1351#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1352 !DEC$ ATTRIBUTES DLLEXPORT :: setNormQuanMD_RK4
1353#endif
1354 use pm_kind, only: RKG => RK4
1355 real(RKG) , intent(out) :: quantile
1356 real(RKG) , intent(in) :: cdf
1357 real(RKG) , intent(in) :: mu
1358 end subroutine
1359#endif
1360
1361#if RK3_ENABLED
1362 PURE elemental module subroutine setNormQuanMD_RK3(quantile, cdf, mu)
1363#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1364 !DEC$ ATTRIBUTES DLLEXPORT :: setNormQuanMD_RK3
1365#endif
1366 use pm_kind, only: RKG => RK3
1367 real(RKG) , intent(out) :: quantile
1368 real(RKG) , intent(in) :: cdf
1369 real(RKG) , intent(in) :: mu
1370 end subroutine
1371#endif
1372
1373#if RK2_ENABLED
1374 PURE elemental module subroutine setNormQuanMD_RK2(quantile, cdf, mu)
1375#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1376 !DEC$ ATTRIBUTES DLLEXPORT :: setNormQuanMD_RK2
1377#endif
1378 use pm_kind, only: RKG => RK2
1379 real(RKG) , intent(out) :: quantile
1380 real(RKG) , intent(in) :: cdf
1381 real(RKG) , intent(in) :: mu
1382 end subroutine
1383#endif
1384
1385#if RK1_ENABLED
1386 PURE elemental module subroutine setNormQuanMD_RK1(quantile, cdf, mu)
1387#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1388 !DEC$ ATTRIBUTES DLLEXPORT :: setNormQuanMD_RK1
1389#endif
1390 use pm_kind, only: RKG => RK1
1391 real(RKG) , intent(out) :: quantile
1392 real(RKG) , intent(in) :: cdf
1393 real(RKG) , intent(in) :: mu
1394 end subroutine
1395#endif
1396
1397 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1398
1399#if RK5_ENABLED
1400 PURE elemental module subroutine setNormQuanMS_RK5(quantile, cdf, mu, sigma)
1401#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1402 !DEC$ ATTRIBUTES DLLEXPORT :: setNormQuanMS_RK5
1403#endif
1404 use pm_kind, only: RKG => RK5
1405 real(RKG) , intent(out) :: quantile
1406 real(RKG) , intent(in) :: cdf
1407 real(RKG) , intent(in) :: mu
1408 real(RKG) , intent(in) :: sigma
1409 end subroutine
1410#endif
1411
1412#if RK4_ENABLED
1413 PURE elemental module subroutine setNormQuanMS_RK4(quantile, cdf, mu, sigma)
1414#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1415 !DEC$ ATTRIBUTES DLLEXPORT :: setNormQuanMS_RK4
1416#endif
1417 use pm_kind, only: RKG => RK4
1418 real(RKG) , intent(out) :: quantile
1419 real(RKG) , intent(in) :: cdf
1420 real(RKG) , intent(in) :: mu
1421 real(RKG) , intent(in) :: sigma
1422 end subroutine
1423#endif
1424
1425#if RK3_ENABLED
1426 PURE elemental module subroutine setNormQuanMS_RK3(quantile, cdf, mu, sigma)
1427#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1428 !DEC$ ATTRIBUTES DLLEXPORT :: setNormQuanMS_RK3
1429#endif
1430 use pm_kind, only: RKG => RK3
1431 real(RKG) , intent(out) :: quantile
1432 real(RKG) , intent(in) :: cdf
1433 real(RKG) , intent(in) :: mu
1434 real(RKG) , intent(in) :: sigma
1435 end subroutine
1436#endif
1437
1438#if RK2_ENABLED
1439 PURE elemental module subroutine setNormQuanMS_RK2(quantile, cdf, mu, sigma)
1440#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1441 !DEC$ ATTRIBUTES DLLEXPORT :: setNormQuanMS_RK2
1442#endif
1443 use pm_kind, only: RKG => RK2
1444 real(RKG) , intent(out) :: quantile
1445 real(RKG) , intent(in) :: cdf
1446 real(RKG) , intent(in) :: mu
1447 real(RKG) , intent(in) :: sigma
1448 end subroutine
1449#endif
1450
1451#if RK1_ENABLED
1452 PURE elemental module subroutine setNormQuanMS_RK1(quantile, cdf, mu, sigma)
1453#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1454 !DEC$ ATTRIBUTES DLLEXPORT :: setNormQuanMS_RK1
1455#endif
1456 use pm_kind, only: RKG => RK1
1457 real(RKG) , intent(out) :: quantile
1458 real(RKG) , intent(in) :: cdf
1459 real(RKG) , intent(in) :: mu
1460 real(RKG) , intent(in) :: sigma
1461 end subroutine
1462#endif
1463
1464 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1465
1466 end interface setNormQuan
1467
1468!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1469
1487 integer(IK) , parameter :: ZIG_PRECISION = 33_IK
1488
1489 real(RKB), parameter, private :: ZIGSET1(2, 0:128) = reshape([ +3.910757959524915869549621434510571640_RKB, +0.000000000000000000000000000000000000E+0_RKB &
1490 , +3.654152885361008771645429720399515670_RKB, +0.502781343070952005087938400241541891E-3_RKB &
1491 , +3.449278298561431270627228213833611250_RKB, +0.104086943106322506013635915064907845E-2_RKB &
1492 , +3.320244733839825517532232984442230700_RKB, +0.161091799459473453538408742342021986E-2_RKB &
1493 , +3.224575052047801587144019828764775500_RKB, +0.220312016549958827311372671027399889E-2_RKB &
1494 , +3.147889289518000685451855194084413580_RKB, +0.281289233937616172611348633870502865E-2_RKB &
1495 , +3.083526132002143251877768947617198840_RKB, +0.343751917929162224416229759239016324E-2_RKB &
1496 , +3.027837791769593524571714584215607150_RKB, +0.407518400039001087464038448139061472E-2_RKB &
1497 , +2.978603279881843165536974212294808030_RKB, +0.472457682607575925888895096351016103E-2_RKB &
1498 , +2.934366867208887589959928979567677640_RKB, +0.538470372266379748395288853907771468E-2_RKB &
1499 , +2.894121053613412181388100356210103800_RKB, +0.605478221942164063991037466747021604E-2_RKB &
1500 , +2.857138730873224588561645268053226920_RKB, +0.673417886624137640800598237565554838E-2_RKB &
1501 , +2.822877396826442907534115515646593530_RKB, +0.742236950888280249329920345563351449E-2_RKB &
1502 , +2.790921174001927318997779045468293070_RKB, +0.811891273868296054077142626445965006E-2_RKB &
1503 , +2.760944005279986201244382392492695240_RKB, +0.882343143223528339445647449425005264E-2_RKB &
1504 , +2.732685359044011420043182513046678140_RKB, +0.953559949343287212693559957627379651E-2_RKB &
1505 , +2.705933656123062221333700225998574460_RKB, +0.102551320707227866483396053794922990E-1_RKB &
1506 , +2.680514643285745101098374611431323380_RKB, +0.109817781711791129427823736030159900E-1_RKB &
1507 , +2.656283037576743296802124304559512000_RKB, +0.117153149732408013682731286377880085E-1_RKB &
1508 , +2.633116393631582759976309292516893140_RKB, +0.124555433719091587849084452906815838E-1_RKB &
1509 , +2.610910518488823671930263694478955450_RKB, +0.132022844366303809959357880408105012E-1_RKB &
1510 , +2.589575986708286649808805574507900700_RKB, +0.139553765573260408177619288977468218E-1_RKB &
1511 , +2.569035452681843781314262921528081910_RKB, +0.147146731176153334234423656007745630E-1_RKB &
1512 , +2.549221550324783104422671371241746650_RKB, +0.154800405777112059806768992081788185E-1_RKB &
1513 , +2.530075232159854187716539084126876370_RKB, +0.162513568797661774124156785927309438E-1_RKB &
1514 , +2.511544441626694343254607344580084390_RKB, +0.170285101099635321775373808069033731E-1_RKB &
1515 , +2.493583041271046768170053296506813290_RKB, +0.178113973671931254109163549358583312E-1_RKB &
1516 , +2.476149939670523163756216268162166500_RKB, +0.185999237995485118944697972790344771E-1_RKB &
1517 , +2.459208374334705035673859596487019180_RKB, +0.193940017783549904963609637793049119E-1_RKB &
1518 , +2.442725318200364223794234919225453500_RKB, +0.201935501858165129428739457647187713E-1_RKB &
1519 , +2.426670984937146719863529851633726960_RKB, +0.209984937972267218821328887239805004E-1_RKB &
1520 , +2.411018413901119491690349211725038630_RKB, +0.218087627424279111659346610629834973E-1_RKB &
1521 , +2.395743119781927356168686681412574760_RKB, +0.226242920341075527766680294896069533E-1_RKB &
1522 , +2.380822795172085556506619691319380400_RKB, +0.234450211528013514383037474818822027E-1_RKB &
1523 , +2.366237056717290911362148128140186000_RKB, +0.242708936802748765008871090362921378E-1_RKB &
1524 , +2.351967227379144761902530751453964640_RKB, +0.251018569743934986305835005740321359E-1_RKB &
1525 , +2.337996148796528635433480327093713940_RKB, +0.259378618797451777000075273655017443E-1_RKB &
1526 , +2.324308018871132508266119157050790040_RKB, +0.267788624692146997471273278024758566E-1_RKB &
1527 , +2.310888250601371758550614355860895420_RKB, +0.276248158124683715174543699462393572E-1_RKB &
1528 , +2.297723348902863520079790814230529130_RKB, +0.284756817679310236840265332909329685E-1_RKB &
1529 , +2.284800802724492127387834486937223350_RKB, +0.293314227953502809501556980682789090E-1_RKB &
1530 , +2.272108990228381861937683717373910900_RKB, +0.301920037864680654091842729977054983E-1_RKB &
1531 , +2.259637095173787624597566531167311770_RKB, +0.310573919116731481152577086508924965E-1_RKB &
1532 , +2.247375032947389262297952392515659590_RKB, +0.319275564808046037696524061552362067E-1_RKB &
1533 , +2.235313384929921110748362199673550240_RKB, +0.328024688165248443463852626030938600E-1_RKB &
1534 , +2.223443340092510611365346409716922540_RKB, +0.336821021388909593274737975695380343E-1_RKB &
1535 , +2.211756642884160997470500709266731210_RKB, +0.345664314599311541791934500133628777E-1_RKB &
1536 , +2.200245546611276427712165173291835590_RKB, +0.354554334871846263278378901217329216E-1_RKB &
1537 , +2.188902771626360742839576505604305880_RKB, +0.363490865352926868627480678085691155E-1_RKB &
1538 , +2.177721467740293002579164079152503390_RKB, +0.372473704448399433976210004282028638E-1_RKB &
1539 , +2.166695180354308542353137142121026540_RKB, +0.381502665077398667348211240367435477E-1_RKB &
1540 , +2.155817819876737469119503677197502650_RKB, +0.390577573985415074098963321878992358E-1_RKB &
1541 , +2.145083634047888982767999729572053870_RKB, +0.399698271111055203479683284323823695E-1_RKB &
1542 , +2.134487182846016909178836604796243250_RKB, +0.408864609001596660576863760104051322E-1_RKB &
1543 , +2.124023315689523545420714787478384860_RKB, +0.418076452272979751244992871255722388E-1_RKB &
1544 , +2.113687150686653177781935198589005610_RKB, +0.427333677110349512002228670090424488E-1_RKB &
1545 , +2.103474055714877305933714304045440450_RKB, +0.436636170805675209921984193602696278E-1_RKB &
1546 , +2.093379631138791930166361585961667970_RKB, +0.445983831329337385181389634688869380E-1_RKB &
1547 , +2.083399693998304613670792088175897210_RKB, +0.455376566932892082093887264381438529E-1_RKB &
1548 , +2.073530263518743034646393248416971800_RKB, +0.464814295780503946152953311870656232E-1_RKB &
1549 , +2.063767547811732114341853749078149630_RKB, +0.474296945606789346776298063351001244E-1_RKB &
1550 , +2.054107931650652130219475666313816510_RKB, +0.483824453399031873773625284851490337E-1_RKB &
1551 , +2.044547965217531455282628792749082960_RKB, +0.493396765101929088581344120097015200E-1_RKB &
1552 , +2.035084353729618971413871948694988270_RKB, +0.503013835343204408492863489427518069E-1_RKB &
1553 , +2.025713947863854245252399025955272060_RKB, +0.512675627178574145127079248497036520E-1_RKB &
1554 , +2.016433734906204123873988577023278720_RKB, +0.522382111854699318500836298767666937E-1_RKB &
1555 , +2.007240830560528758913239738198299090_RKB, +0.532133268588876922360496499106520185E-1_RKB &
1556 , +1.998132471358419680392214769162858870_RKB, +0.541929084364337554633405727268610055E-1_RKB &
1557 , +1.989106007617438123201023091217180910_RKB, +0.551769553740117250736639942272910314E-1_RKB &
1558 , +1.980158896900476605540416694815765850_RKB, +0.561654678674562273820736142229565223E-1_RKB &
1559 , +1.971288697933659294606356474434686550_RKB, +0.571584468361607664497222499802473837E-1_RKB &
1560 , +1.962493064944363052826024381256974850_RKB, +0.581558939079044529261453899150298019E-1_RKB &
1561 , +1.953769742384646776692572811817963060_RKB, +0.591578114048058224055549195846209505E-1_RKB &
1562 , +1.945116560008678301234686281875394240_RKB, +0.601642023303380532839147151743642514E-1_RKB &
1563 , +1.936531428275694700380702197135648770_RKB, +0.611750703573454323914419246868044098E-1_RKB &
1564 , +1.928012334052665710328808957510011910_RKB, +0.621904198170059582295143354352838012E-1_RKB &
1565 , +1.919557336593188113064282063465457130_RKB, +0.632102556886895688287062083850491706E-1_RKB &
1566 , +1.911164563771253338349016119398665420_RKB, +0.642345835906656803805852580678544053E-1_RKB &
1567 , +1.902832208550429269452784399230803680_RKB, +0.652634097716175649174146849378032930E-1_RKB &
1568 , +1.894558525670704732040885690575958130_RKB, +0.662967411029246168483446165075442866E-1_RKB &
1569 , +1.886341828536782820037856553309563160_RKB, +0.673345850716767915010299444811729445E-1_RKB &
1570 , +1.878180486292995844684467996043645020_RKB, +0.683769497743884728203642791575539760E-1_RKB &
1571 , +1.870072921071266778496337776290841830_RKB, +0.694238439113817677925134633773045847E-1_RKB &
1572 , +1.862017605399674118665348784397922740_RKB, +0.704752767818117550133248257276187773E-1_RKB &
1573 , +1.854013059760201906750898441184461490_RKB, +0.715312582793085547211649297744966411E-1_RKB &
1574 , +1.846057850285185505570580952991448920_RKB, +0.725917988882132560598516526262197654E-1_RKB &
1575 , +1.838150586582806633764931304898561700_RKB, +0.736569096803867509488343563799016629E-1_RKB &
1576 , +1.830289919682756933756055676984081970_RKB, +0.747266023125723976798301015314803279E-1_RKB &
1577 , +1.822474540093885838871898571617810260_RKB, +0.758008890242951847298446370142010715E-1_RKB &
1578 , +1.814703175966282671680772343522476780_RKB, +0.768797826362816984781690401687711081E-1_RKB &
1579 , +1.806974591350820938703420428388107530_RKB, +0.779632965493867285846698800079747914E-1_RKB &
1580 , +1.799287584549720199341728680984235510_RKB, +0.790514447440137817496961412302243116E-1_RKB &
1581 , +1.791640986552162594624382322132709310_RKB, +0.801442417800181275436054931177368005E-1_RKB &
1582 , +1.784033659549441512971864077807943680_RKB, +0.812417027970822772687529532474258376E-1_RKB &
1583 , +1.776464495524522868996124119276484200_RKB, +0.823438435155550059817881401744955979E-1_RKB &
1584 , +1.768932414911268589029665159840958690_RKB, +0.834506802377461758021915029242417507E-1_RKB &
1585 , +1.761436365318910280539794251593908460_RKB, +0.845622298496707118376316534786168010E-1_RKB &
1586 , +1.753975320317671535176286495650271100_RKB, +0.856785098232361263350014624915617177E-1_RKB &
1587 , +1.746548278281722412853610819915111290_RKB, +0.867995382188689874348253633476266673E-1_RKB &
1588 , +1.739154261285911657262420055628115450_RKB, +0.879253336885766911833903717911534395E-1_RKB &
1589 , +1.731792314052963154137933505808925000_RKB, +0.890559154794418239043567001488716945E-1_RKB &
1590 , +1.724461502948044912052862397775662270_RKB, +0.901913034375473009991491331657262247E-1_RKB &
1591 , +1.717160915017823089741659119609676780_RKB, +0.913315180123313418058911041645338441E-1_RKB &
1592 , +1.709889657071301820241745482016102880_RKB, +0.924765802613721921296195811766027943E-1_RKB &
1593 , +1.702646854799923151653900407051805770_RKB, +0.936265118556033400788781021199070560E-1_RKB &
1594 , +1.695431651934561568299588089192625460_RKB, +0.947813350849607903374772538857282822E-1_RKB &
1595 , +1.688243209437195389093695018261921410_RKB, +0.959410728644647702377950152378611650E-1_RKB &
1596 , +1.681080704725173871909617303396002540_RKB, +0.971057487407390411201725488177809241E-1_RKB &
1597 , +1.673943330926124999231911729230294350_RKB, +0.982753868989717834844303967803275557E-1_RKB &
1598 , +1.666830296161665512280717200364773540_RKB, +0.994500121703228172933039137854161328E-1_RKB &
1599 , +1.659740822858182552384789747414556960_RKB, +0.100629650039782712328127609576129162E+0_RKB &
1600 , +1.652674147083055944977076666279072050_RKB, +0.101814326654490140522320621972065562E+0_RKB &
1601 , +1.645629517904782346099997435068184430_RKB, +0.103004068832514625466733060901486566E+0_RKB &
1602 , +1.638606196775547730191205373889528150_RKB, +0.104198904072112656528428960098709859E+0_RKB &
1603 , +1.631603456934873546471532683464361160_RKB, +0.105398860561465958979782511482284346E+0_RKB &
1604 , +1.624620582833034778354059455865975410_RKB, +0.106603967188911549935198869215607602E+0_RKB &
1605 , +1.617656869573015532637880619762087450_RKB, +0.107814253553674065499513686193278908E+0_RKB &
1606 , +1.610711622369830051160545249046193620_RKB, +0.109029749977111720145296612324748632E+0_RKB &
1607 , +1.603784156026094530393066805218239570_RKB, +0.110250487514488157810061008578271138E+0_RKB &
1608 , +1.596873794422788175563087978818873180_RKB, +0.111476497967283378462230486935475436E+0_RKB &
1609 , +1.589979870024190797461111747861209560_RKB, +0.112707813896057876934855393386708534E+0_RKB &
1610 , +1.583101723396029247521107058058590910_RKB, +0.113944468633885115777321981289805190E+0_RKB &
1611 , +1.576238702735906320876658002975291310_RKB, +0.115186496300368473953376646626857215E+0_RKB &
1612 , +1.569390163415123656042832370955675890_RKB, +0.116433931816259871778263682344311485E+0_RKB &
1613 , +1.562555467531044820930627254229273630_RKB, +0.117686810918698373049736317381864947E+0_RKB &
1614 , +1.555733983469176375991038619565492320_RKB, +0.118945170177088211568318678970235501E+0_RKB &
1615 , +1.548925085474173406375274133330557850_RKB, +0.120209047009636885032310150781360772E+0_RKB &
1616 , +1.542128153229001959318075945656599760_RKB, +0.121478479700575208713903649777558606E+0_RKB &
1617 , +1.535342571441514138082707130216935300_RKB, +0.122753507418082528688239173356532507E+0_RKB ], shape = [2, 129])
1618 real(RKB), parameter, private :: ZIGSET2(2, 1:128) = reshape([ +1.528567729437712402628199461442167180_RKB, +0.124034170232941664267186768442998377E+0_RKB &
1619 , +1.521803020760998008679228498636570410_RKB, +0.125320509137949586535569901372920916E+0_RKB &
1620 , +1.515047842776714566947194255734634790_RKB, +0.126612566068111349659514010876108850E+0_RKB &
1621 , +1.508301596281311496171425183785073880_RKB, +0.127910383921646379432792471520964754E+0_RKB &
1622 , +1.501563685115463738688173273682448190_RKB, +0.129214006581837895215365859576747957E+0_RKB &
1623 , +1.494833515780493555035890159317754310_RKB, +0.130523478939758003270817270840923056E+0_RKB &
1624 , +1.488110497057447553013103271226758760_RKB, +0.131838846917902858239534927650542548E+0_RKB &
1625 , +1.481394039628187363902263028944763970_RKB, +0.133160157494774252287691074366070633E+0_RKB &
1626 , +1.474683555697855570628865196528769660_RKB, +0.134487458730446066069814161355648980E+0_RKB &
1627 , +1.467978458618079624962505551018572310_RKB, +0.135820799793156210330787895235534157E+0_RKB &
1628 , +1.461278162510275558141634572902431380_RKB, +0.137160230986967010673991854114446593E+0_RKB &
1629 , +1.454582081888410275202473614895370850_RKB, +0.138505803780539450342898439610712141E+0_RKB &
1630 , +1.447889631280576100338960603208179050_RKB, +0.139857570837069297157912765350925466E+0_RKB &
1631 , +1.441200224848723969896483905460819290_RKB, +0.141215586045435912189035654183361969E+0_RKB &
1632 , +1.434513276005892200373197821347744230_RKB, +0.142579904552617481390538701477587025E+0_RKB &
1633 , +1.427828197030256028046923580264626420_RKB, +0.143950582797429540314021584008091148E+0_RKB &
1634 , +1.421144398675309048678328840045534000_RKB, +0.145327678545646990255525094264574683E+0_RKB &
1635 , +1.414461289775471190729091975769526810_RKB, +0.146711250926573347052911625905291106E+0_RKB &
1636 , +1.407778276846398829890729544114189010_RKB, +0.148101360471124737782233265331001140E+0_RKB &
1637 , +1.401094763679250977372468027391928780_RKB, +0.149498069151500183758164830605819877E+0_RKB &
1638 , +1.394410150928141013910818209046742880_RKB, +0.150901440422514000012107606564276651E+0_RKB &
1639 , +1.387723835689976042816457610158740000_RKB, +0.152311539264670722976597120096621794E+0_RKB &
1640 , +1.381035211075855426557023886048995030_RKB, +0.153728432229067872471998597962422358E+0_RKB &
1641 , +1.374343665773166259809330405021183000_RKB, +0.155152187484217086331763054685730862E+0_RKB &
1642 , +1.367648583597476202662733878746826080_RKB, +0.156582874864879763414378129073938725E+0_RKB &
1643 , +1.360949343033283011396528844287145660_RKB, +0.158020565923019343095774015163019653E+0_RKB &
1644 , +1.354245316762634995007843766072061330_RKB, +0.159465333980978769091659649295558937E+0_RKB &
1645 , +1.347535871180587198226303191916842980_RKB, +0.160917254186998568094181273666041719E+0_RKB &
1646 , +1.340820365896404038797740514363138740_RKB, +0.162376403573198357993539454690214112E+0_RKB &
1647 , +1.334098153219360045667959181721837720_RKB, +0.163842861116152528813630294472766962E+0_RKB &
1648 , +1.327368577627925853644432080219569470_RKB, +0.165316707800199358376684187822216740E+0_RKB &
1649 , +1.320630975221056264316363281880977050_RKB, +0.166798026683631985045755192821871952E+0_RKB &
1650 , +1.313884673150220489854736808952840970_RKB, +0.168286902967929517543098016930008494E+0_RKB &
1651 , +1.307128989030731110178131195502915220_RKB, +0.169783424070197178160245257400787177E+0_RKB &
1652 , +1.300363230330837190351929439655934200_RKB, +0.171287679698995818105358886788417999E+0_RKB &
1653 , +1.293586693736947753945601406359300470_RKB, +0.172799761933753486486498659023686530E+0_RKB &
1654 , +1.286798664493243646316660896517199420_RKB, +0.174319765307965059246455246546117697E+0_RKB &
1655 , +1.279998415713817924797308907917922830_RKB, +0.175847786896400331371952020571991623E+0_RKB &
1656 , +1.273185207665356364764060323720764170_RKB, +0.177383926406556544373322976411406151E+0_RKB &
1657 , +1.266358287018229453775313848849852450_RKB, +0.178928286274608171283092549748417432E+0_RKB &
1658 , +1.259516886063714228190559472001646690_RKB, +0.180480971766125034830178787412733260E+0_RKB &
1659 , +1.252660221894897227354473865616388090_RKB, +0.182042091081849625639024292847696263E+0_RKB &
1660 , +1.245787495548627294596662055366290760_RKB, +0.183611755468845965529740751119222664E+0_RKB &
1661 , +1.238897891105687374493975672708951630_RKB, +0.185190079337355691907687938603429913E+0_RKB &
1662 , +1.231990574746136091354596183983300960_RKB, +0.186777180383722406901836668848789685E+0_RKB &
1663 , +1.225064693756530787096859391988721310_RKB, +0.188373179719772944131913560975705614E+0_RKB &
1664 , +1.218119375485481656036492926236470550_RKB, +0.189978202009074284878057268848586717E+0_RKB &
1665 , +1.211153726243699183035927701680494030_RKB, +0.191592375610517658429468812562799404E+0_RKB &
1666 , +1.204166830144381512972585409228431810_RKB, +0.193215832729717172651871738633649002E+0_RKB &
1667 , +1.197157747879441555149951169947666830_RKB, +0.194848709578749458096518050299059063E+0_RKB &
1668 , +1.190125515426692069320479795685490130_RKB, +0.196491146544803628100426175257282935E+0_RKB &
1669 , +1.183069142682686761029921497512774320_RKB, +0.198143288368357757303338740744073695E+0_RKB &
1670 , +1.175987612015452098437940687032687740_RKB, +0.199805284331549509895377775340098004E+0_RKB &
1671 , +1.168879876730833138384076802216189500_RKB, +0.201477288457465010601480272621186237E+0_RKB &
1672 , +1.161744859445611442407678658730303350_RKB, +0.203159459721132113428367115004471988E+0_RKB &
1673 , +1.154581450359927740740669252500180290_RKB, +0.204851962273072525723359017960643915E+0_RKB &
1674 , +1.147388505420849058458757243582079270_RKB, +0.206554965676342511391397805599266881E+0_RKB &
1675 , +1.140164844368151242664448937938463130_RKB, +0.208268645158074945659692042041697417E+0_RKB &
1676 , +1.132909248652533753115898715892141530_RKB, +0.209993181876627252316799052585710853E+0_RKB &
1677 , +1.125620459215533391227475593856507500_RKB, +0.211728763205541276296151308493989896E+0_RKB &
1678 , +1.118297174119344981546693309349106980_RKB, +0.213475583035633628019879947303927958E+0_RKB &
1679 , +1.110938046013575721417560779257849040_RKB, +0.215233842096659846410648766825208954E+0_RKB &
1680 , +1.103541679424639718350709546845052450_RKB, +0.217003748300134423613077654918982009E+0_RKB &
1681 , +1.096106627852021437094938365415991340_RKB, +0.218785517105043099072370007214575357E+0_RKB &
1682 , +1.088631390653979821403993213445028160_RKB, +0.220579371908355906900178024260990122E+0_RKB &
1683 , +1.081114409703403838077538136757234410_RKB, +0.222385544462441594762945169415386684E+0_RKB &
1684 , +1.073554065792436288292686500464555760_RKB, +0.224204275321698924941276382479365999E+0_RKB &
1685 , +1.065948674762122501754284026538321330_RKB, +0.226035814320961132564753113117134625E+0_RKB &
1686 , +1.058296483330675084513966896229645790_RKB, +0.227880421088500051269826182271994471E+0_RKB &
1687 , +1.050595664590929901514279329073961990_RKB, +0.229738365596760291802256320937473869E+0_RKB &
1688 , +1.042844313144148970939980229020163640_RKB, +0.231609928754296215469589885980076311E+0_RKB &
1689 , +1.035040439833440875887862746039381010_RKB, +0.233495403042770916853974440099008843E+0_RKB &
1690 , +1.027181966035645772350639887939364020_RKB, +0.235395093203313594481836509609421923E+0_RKB &
1691 , +1.019266717465484244962537467525869270_RKB, +0.237309316977027237519675921574483765E+0_RKB &
1692 , +1.011292417439995739530489041191619980_RKB, +0.239238405905001516168070540916910782E+0_RKB &
1693 , +1.003256679544672977063838476902952280_RKB, +0.241182706193826750302150947619295807E+0_RKB &
1694 , +0.995156999635090923837912834290083799_RKB, +0.243142579653336370820347935962210089E+0_RKB &
1695 , +0.986990747099062472368807733566367723_RKB, +0.245118404714142202924320107980890993E+0_RKB &
1696 , +0.978755155294224603880824209605885949_RKB, +0.247110577533486783260721039414118216E+0_RKB &
1697 , +0.970447311064224450680967868251783851_RKB, +0.249119513199040723215271175059742679E+0_RKB &
1698 , +0.962064143223040583869351754884239000_RKB, +0.251145647041545878684196026994747375E+0_RKB &
1699 , +0.953602409881086036147944393710646946_RKB, +0.253189436068676791163884011564958290E+0_RKB &
1700 , +0.945058684468165463037907528952905452_RKB, +0.255251360534199633721355034811644515E+0_RKB &
1701 , +0.936429340286575141234349646203595494_RKB, +0.257331925658493337610224432667231202E+0_RKB &
1702 , +0.927710533402000123870677193352685174_RKB, +0.259431663518814566212074318832185428E+0_RKB &
1703 , +0.918898183649590612180034442455129809_RKB, +0.261551135130401113878336401593219032E+0_RKB &
1704 , +0.909987953496718494483529567690366580_RKB, +0.263690932742695838070411741690697980E+0_RKB &
1705 , +0.900975224461221833746547856386022859_RKB, +0.265851682378732029260877257163356597E+0_RKB &
1706 , +0.891855070732941566850586789359498648_RKB, +0.268034046650170417793435080776528378E+0_RKB &
1707 , +0.882622229585165554772936671621819385_RKB, +0.270238727885765625479222906930855857E+0_RKB &
1708 , +0.873271068088860754125762716220304264_RKB, +0.272466471617349972495381721975295691E+0_RKB &
1709 , +0.863795545553308854813178505394360638_RKB, +0.274718070474985863152207934163143218E+0_RKB &
1710 , +0.854189171008163807454180162989399104_RKB, +0.276994368552045124993231875042116081E+0_RKB &
1711 , +0.844444954909153918889582440732428571_RKB, +0.279296266311992916126496729438627603E+0_RKB &
1712 , +0.834555354086382178924726895193815695_RKB, +0.281624726122054644081592741705012005E+0_RKB &
1713 , +0.824512208752292130518310689451625822_RKB, +0.283980778515329245279710753274268026E+0_RKB &
1714 , +0.814306670135215230392694899997583155_RKB, +0.286365529303059635938328101021065686E+0_RKB &
1715 , +0.803929116989971220407539518038181495_RKB, +0.288780167683694362995818015176624321E+0_RKB &
1716 , +0.793369058840623296211094246674767659_RKB, +0.291225975526402318340687192537257840E+0_RKB &
1717 , +0.782615023307233120893558043746138323_RKB, +0.293704338045591948359518681668325255E+0_RKB &
1718 , +0.771654424224568084749572873233895398_RKB, +0.296216756132081268041022602880704688E+0_RKB &
1719 , +0.760473406430108029348112105521972518_RKB, +0.298764860669019852359816171738518807E+0_RKB &
1720 , +0.749056662017815292302576863549466866_RKB, +0.301350429240767224099410447613497339E+0_RKB &
1721 , +0.737387211434295591278302895320305406_RKB, +0.303975405746574722328106158035369533E+0_RKB &
1722 , +0.725446140909999639160421404681071701_RKB, +0.306641923566284096197801960631070354E+0_RKB &
1723 , +0.713212285190975958395437234225351400_RKB, +0.309352333103853461802712328689370145E+0_RKB &
1724 , +0.700661841106815072627797458756938969_RKB, +0.312109234772742761743862339129657007E+0_RKB &
1725 , +0.687767892795788534294858623414951669_RKB, +0.314915518808718397997156048518493503E+0_RKB &
1726 , +0.674499822837293822822291441953147501_RKB, +0.317774413735206587646816278462680542E+0_RKB &
1727 , +0.660822574244419738417074112845703024_RKB, +0.320689545915737438541580666581786760E+0_RKB &
1728 , +0.646695714894993817513389454402005337_RKB, +0.323665013485929872609853214812546138E+0_RKB &
1729 , +0.632072236386061170945000136838048409_RKB, +0.326705479185682685503639905197287285E+0_RKB &
1730 , +0.616896990007751449983468424580333684_RKB, +0.329816288403562001297942710464242773E+0_RKB &
1731 , +0.601104617755992621533900682881952269_RKB, +0.333003621412417574590814956444079152E+0_RKB &
1732 , +0.584616766106379321441587601292714165_RKB, +0.336274692838645610198728629890296241E+0_RKB &
1733 , +0.567338257053818748196811566000406618_RKB, +0.339638017760732372141674530066184563E+0_RKB &
1734 , +0.549151702327165120668100504067842453_RKB, +0.343103774061966311836681659618112095E+0_RKB &
1735 , +0.529909720661558116786810165407173123_RKB, +0.346684307694080825876172229626686798E+0_RKB &
1736 , +0.509423329602091814469823299066412422_RKB, +0.350394856987006815154163453112784578E+0_RKB &
1737 , +0.487443966139236039301073245095571196_RKB, +0.354254625523424624005573055746854654E+0_RKB &
1738 , +0.463634336790882217507922976793371502_RKB, +0.358288435101351989902170775658332694E+0_RKB &
1739 , +0.437518402207871681933515025173607280_RKB, +0.362529398255472763687561092414814622E+0_RKB &
1740 , +0.408389134611991145290558016416221589_RKB, +0.367023508970343116977068094647372845E+0_RKB &
1741 , +0.375121332878380591495093443929722987_RKB, +0.371838172174307847618293715165674310E+0_RKB &
1742 , +0.335737519214425235638195399148542308_RKB, +0.377079825919318504715611620323180171E+0_RKB &
1743 , +0.286174591792072510002201653739714122_RKB, +0.382936353792390580381634933484297406E+0_RKB &
1744 , +0.215241895984881699325976137068393403_RKB, +0.389807180887844207493515693365586429E+0_RKB &
1745 , +0.000000000000000000000000000000000000_RKB, +0.398942280401432677939946059934381874E+0_RKB ], shape = [2, 128])
1746
1774 real(RKB), parameter :: ZIG_RKB(2, 0:256) = reshape([ZIGSET1, ZIGSET2], shape = [2, 257])
1775
1776!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1777
1849 interface getNormRand
1850
1851 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1852
1853#if RK5_ENABLED
1854 impure elemental module function getNormRandRDMASA_D0_RK5(mean, std) result(rand)
1855#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1856 !DEC$ ATTRIBUTES DLLEXPORT :: getNormRandRDMASA_D0_RK5
1857#endif
1858 use pm_kind, only: RKG => RK5
1859 real(RKG) , intent(in) :: mean
1860 real(RKG) , intent(in) , optional :: std
1861 real(RKG) :: rand
1862 end function
1863#endif
1864
1865#if RK4_ENABLED
1866 impure elemental module function getNormRandRDMASA_D0_RK4(mean, std) result(rand)
1867#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1868 !DEC$ ATTRIBUTES DLLEXPORT :: getNormRandRDMASA_D0_RK4
1869#endif
1870 use pm_kind, only: RKG => RK4
1871 real(RKG) , intent(in) :: mean
1872 real(RKG) , intent(in) , optional :: std
1873 real(RKG) :: rand
1874 end function
1875#endif
1876
1877#if RK3_ENABLED
1878 impure elemental module function getNormRandRDMASA_D0_RK3(mean, std) result(rand)
1879#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1880 !DEC$ ATTRIBUTES DLLEXPORT :: getNormRandRDMASA_D0_RK3
1881#endif
1882 use pm_kind, only: RKG => RK3
1883 real(RKG) , intent(in) :: mean
1884 real(RKG) , intent(in) , optional :: std
1885 real(RKG) :: rand
1886 end function
1887#endif
1888
1889#if RK2_ENABLED
1890 impure elemental module function getNormRandRDMASA_D0_RK2(mean, std) result(rand)
1891#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1892 !DEC$ ATTRIBUTES DLLEXPORT :: getNormRandRDMASA_D0_RK2
1893#endif
1894 use pm_kind, only: RKG => RK2
1895 real(RKG) , intent(in) :: mean
1896 real(RKG) , intent(in) , optional :: std
1897 real(RKG) :: rand
1898 end function
1899#endif
1900
1901#if RK1_ENABLED
1902 impure elemental module function getNormRandRDMASA_D0_RK1(mean, std) result(rand)
1903#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1904 !DEC$ ATTRIBUTES DLLEXPORT :: getNormRandRDMASA_D0_RK1
1905#endif
1906 use pm_kind, only: RKG => RK1
1907 real(RKG) , intent(in) :: mean
1908 real(RKG) , intent(in) , optional :: std
1909 real(RKG) :: rand
1910 end function
1911#endif
1912
1913 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1914
1915 end interface
1916
1917!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1918
2022 interface setNormRand
2023
2024 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2025 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2026 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2027
2028 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2029
2030#if RK5_ENABLED
2031 impure elemental module subroutine setNormRandUDZD_D0_RK5(rand)
2032#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2033 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUDZD_D0_RK5
2034#endif
2035 use pm_kind, only: RKG => RK5
2036 real(RKG) , intent(out) :: rand
2037 end subroutine
2038#endif
2039
2040#if RK4_ENABLED
2041 impure elemental module subroutine setNormRandUDZD_D0_RK4(rand)
2042#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2043 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUDZD_D0_RK4
2044#endif
2045 use pm_kind, only: RKG => RK4
2046 real(RKG) , intent(out) :: rand
2047 end subroutine
2048#endif
2049
2050#if RK3_ENABLED
2051 impure elemental module subroutine setNormRandUDZD_D0_RK3(rand)
2052#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2053 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUDZD_D0_RK3
2054#endif
2055 use pm_kind, only: RKG => RK3
2056 real(RKG) , intent(out) :: rand
2057 end subroutine
2058#endif
2059
2060#if RK2_ENABLED
2061 impure elemental module subroutine setNormRandUDZD_D0_RK2(rand)
2062#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2063 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUDZD_D0_RK2
2064#endif
2065 use pm_kind, only: RKG => RK2
2066 real(RKG) , intent(out) :: rand
2067 end subroutine
2068#endif
2069
2070#if RK1_ENABLED
2071 impure elemental module subroutine setNormRandUDZD_D0_RK1(rand)
2072#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2073 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUDZD_D0_RK1
2074#endif
2075 use pm_kind, only: RKG => RK1
2076 real(RKG) , intent(out) :: rand
2077 end subroutine
2078#endif
2079
2080 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2081
2082#if RK5_ENABLED
2083 impure elemental module subroutine setNormRandUFZD_D0_RK5(rng, rand)
2084#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2085 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUFZD_D0_RK5
2086#endif
2087 use pm_kind, only: RKG => RK5
2088 type(rngf_type) , intent(in) :: rng
2089 real(RKG) , intent(out) :: rand
2090 end subroutine
2091#endif
2092
2093#if RK4_ENABLED
2094 impure elemental module subroutine setNormRandUFZD_D0_RK4(rng, rand)
2095#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2096 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUFZD_D0_RK4
2097#endif
2098 use pm_kind, only: RKG => RK4
2099 type(rngf_type) , intent(in) :: rng
2100 real(RKG) , intent(out) :: rand
2101 end subroutine
2102#endif
2103
2104#if RK3_ENABLED
2105 impure elemental module subroutine setNormRandUFZD_D0_RK3(rng, rand)
2106#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2107 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUFZD_D0_RK3
2108#endif
2109 use pm_kind, only: RKG => RK3
2110 type(rngf_type) , intent(in) :: rng
2111 real(RKG) , intent(out) :: rand
2112 end subroutine
2113#endif
2114
2115#if RK2_ENABLED
2116 impure elemental module subroutine setNormRandUFZD_D0_RK2(rng, rand)
2117#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2118 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUFZD_D0_RK2
2119#endif
2120 use pm_kind, only: RKG => RK2
2121 type(rngf_type) , intent(in) :: rng
2122 real(RKG) , intent(out) :: rand
2123 end subroutine
2124#endif
2125
2126#if RK1_ENABLED
2127 impure elemental module subroutine setNormRandUFZD_D0_RK1(rng, rand)
2128#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2129 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUFZD_D0_RK1
2130#endif
2131 use pm_kind, only: RKG => RK1
2132 type(rngf_type) , intent(in) :: rng
2133 real(RKG) , intent(out) :: rand
2134 end subroutine
2135#endif
2136
2137 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2138
2139#if RK5_ENABLED
2140 PURE module subroutine setNormRandUXZD_D0_RK5(rng, rand)
2141#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2142 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUXZD_D0_RK5
2143#endif
2144 use pm_kind, only: RKG => RK5
2145 type(xoshiro256ssw_type) , intent(inout) :: rng
2146 real(RKG) , intent(out) :: rand
2147 end subroutine
2148#endif
2149
2150#if RK4_ENABLED
2151 PURE module subroutine setNormRandUXZD_D0_RK4(rng, rand)
2152#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2153 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUXZD_D0_RK4
2154#endif
2155 use pm_kind, only: RKG => RK4
2156 type(xoshiro256ssw_type) , intent(inout) :: rng
2157 real(RKG) , intent(out) :: rand
2158 end subroutine
2159#endif
2160
2161#if RK3_ENABLED
2162 PURE module subroutine setNormRandUXZD_D0_RK3(rng, rand)
2163#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2164 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUXZD_D0_RK3
2165#endif
2166 use pm_kind, only: RKG => RK3
2167 type(xoshiro256ssw_type) , intent(inout) :: rng
2168 real(RKG) , intent(out) :: rand
2169 end subroutine
2170#endif
2171
2172#if RK2_ENABLED
2173 PURE module subroutine setNormRandUXZD_D0_RK2(rng, rand)
2174#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2175 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUXZD_D0_RK2
2176#endif
2177 use pm_kind, only: RKG => RK2
2178 type(xoshiro256ssw_type) , intent(inout) :: rng
2179 real(RKG) , intent(out) :: rand
2180 end subroutine
2181#endif
2182
2183#if RK1_ENABLED
2184 PURE module subroutine setNormRandUXZD_D0_RK1(rng, rand)
2185#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2186 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUXZD_D0_RK1
2187#endif
2188 use pm_kind, only: RKG => RK1
2189 type(xoshiro256ssw_type) , intent(inout) :: rng
2190 real(RKG) , intent(out) :: rand
2191 end subroutine
2192#endif
2193
2194 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2195
2196 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2197 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2198 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2199
2200 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2201
2202#if RK5_ENABLED
2203 impure module subroutine setNormRandUDZA_D0_RK5(rand, zig)
2204#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2205 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUDZA_D0_RK5
2206#endif
2207 use pm_kind, only: RKG => RK5
2208 real(RKG) , intent(out) :: rand
2209 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2210 end subroutine
2211#endif
2212
2213#if RK4_ENABLED
2214 impure module subroutine setNormRandUDZA_D0_RK4(rand, zig)
2215#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2216 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUDZA_D0_RK4
2217#endif
2218 use pm_kind, only: RKG => RK4
2219 real(RKG) , intent(out) :: rand
2220 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2221 end subroutine
2222#endif
2223
2224#if RK3_ENABLED
2225 impure module subroutine setNormRandUDZA_D0_RK3(rand, zig)
2226#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2227 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUDZA_D0_RK3
2228#endif
2229 use pm_kind, only: RKG => RK3
2230 real(RKG) , intent(out) :: rand
2231 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2232 end subroutine
2233#endif
2234
2235#if RK2_ENABLED
2236 impure module subroutine setNormRandUDZA_D0_RK2(rand, zig)
2237#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2238 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUDZA_D0_RK2
2239#endif
2240 use pm_kind, only: RKG => RK2
2241 real(RKG) , intent(out) :: rand
2242 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2243 end subroutine
2244#endif
2245
2246#if RK1_ENABLED
2247 impure module subroutine setNormRandUDZA_D0_RK1(rand, zig)
2248#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2249 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUDZA_D0_RK1
2250#endif
2251 use pm_kind, only: RKG => RK1
2252 real(RKG) , intent(out) :: rand
2253 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2254 end subroutine
2255#endif
2256
2257 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2258
2259 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2260 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2261 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2262
2263 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2264
2265#if RK5_ENABLED
2266 impure module subroutine setNormRandUFZA_D0_RK5(rng, rand, zig)
2267#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2268 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUFZA_D0_RK5
2269#endif
2270 use pm_kind, only: RKG => RK5
2271 type(rngf_type) , intent(in) :: rng
2272 real(RKG) , intent(out) :: rand
2273 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2274 end subroutine
2275#endif
2276
2277#if RK4_ENABLED
2278 impure module subroutine setNormRandUFZA_D0_RK4(rng, rand, zig)
2279#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2280 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUFZA_D0_RK4
2281#endif
2282 use pm_kind, only: RKG => RK4
2283 type(rngf_type) , intent(in) :: rng
2284 real(RKG) , intent(out) :: rand
2285 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2286 end subroutine
2287#endif
2288
2289#if RK3_ENABLED
2290 impure module subroutine setNormRandUFZA_D0_RK3(rng, rand, zig)
2291#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2292 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUFZA_D0_RK3
2293#endif
2294 use pm_kind, only: RKG => RK3
2295 type(rngf_type) , intent(in) :: rng
2296 real(RKG) , intent(out) :: rand
2297 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2298 end subroutine
2299#endif
2300
2301#if RK2_ENABLED
2302 impure module subroutine setNormRandUFZA_D0_RK2(rng, rand, zig)
2303#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2304 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUFZA_D0_RK2
2305#endif
2306 use pm_kind, only: RKG => RK2
2307 type(rngf_type) , intent(in) :: rng
2308 real(RKG) , intent(out) :: rand
2309 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2310 end subroutine
2311#endif
2312
2313#if RK1_ENABLED
2314 impure module subroutine setNormRandUFZA_D0_RK1(rng, rand, zig)
2315#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2316 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUFZA_D0_RK1
2317#endif
2318 use pm_kind, only: RKG => RK1
2319 type(rngf_type) , intent(in) :: rng
2320 real(RKG) , intent(out) :: rand
2321 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2322 end subroutine
2323#endif
2324
2325 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2326
2327#if RK5_ENABLED
2328 PURE module subroutine setNormRandUXZA_D0_RK5(rng, rand, zig)
2329#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2330 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUXZA_D0_RK5
2331#endif
2332 use pm_kind, only: RKG => RK5
2333 type(xoshiro256ssw_type) , intent(inout) :: rng
2334 real(RKG) , intent(out) :: rand
2335 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2336 end subroutine
2337#endif
2338
2339#if RK4_ENABLED
2340 PURE module subroutine setNormRandUXZA_D0_RK4(rng, rand, zig)
2341#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2342 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUXZA_D0_RK4
2343#endif
2344 use pm_kind, only: RKG => RK4
2345 type(xoshiro256ssw_type) , intent(inout) :: rng
2346 real(RKG) , intent(out) :: rand
2347 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2348 end subroutine
2349#endif
2350
2351#if RK3_ENABLED
2352 PURE module subroutine setNormRandUXZA_D0_RK3(rng, rand, zig)
2353#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2354 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUXZA_D0_RK3
2355#endif
2356 use pm_kind, only: RKG => RK3
2357 type(xoshiro256ssw_type) , intent(inout) :: rng
2358 real(RKG) , intent(out) :: rand
2359 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2360 end subroutine
2361#endif
2362
2363#if RK2_ENABLED
2364 PURE module subroutine setNormRandUXZA_D0_RK2(rng, rand, zig)
2365#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2366 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUXZA_D0_RK2
2367#endif
2368 use pm_kind, only: RKG => RK2
2369 type(xoshiro256ssw_type) , intent(inout) :: rng
2370 real(RKG) , intent(out) :: rand
2371 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2372 end subroutine
2373#endif
2374
2375#if RK1_ENABLED
2376 PURE module subroutine setNormRandUXZA_D0_RK1(rng, rand, zig)
2377#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2378 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUXZA_D0_RK1
2379#endif
2380 use pm_kind, only: RKG => RK1
2381 type(xoshiro256ssw_type) , intent(inout) :: rng
2382 real(RKG) , intent(out) :: rand
2383 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2384 end subroutine
2385#endif
2386
2387 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2388
2389 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2390 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2391 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2392
2393 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2394 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2395 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2396
2397 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2398
2399#if RK5_ENABLED
2400 impure module subroutine setNormRandUDZD_D1_RK5(rand)
2401#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2402 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUDZD_D1_RK5
2403#endif
2404 use pm_kind, only: RKG => RK5
2405 real(RKG) , intent(out) :: rand(:)
2406 end subroutine
2407#endif
2408
2409#if RK4_ENABLED
2410 impure module subroutine setNormRandUDZD_D1_RK4(rand)
2411#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2412 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUDZD_D1_RK4
2413#endif
2414 use pm_kind, only: RKG => RK4
2415 real(RKG) , intent(out) :: rand(:)
2416 end subroutine
2417#endif
2418
2419#if RK3_ENABLED
2420 impure module subroutine setNormRandUDZD_D1_RK3(rand)
2421#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2422 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUDZD_D1_RK3
2423#endif
2424 use pm_kind, only: RKG => RK3
2425 real(RKG) , intent(out) :: rand(:)
2426 end subroutine
2427#endif
2428
2429#if RK2_ENABLED
2430 impure module subroutine setNormRandUDZD_D1_RK2(rand)
2431#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2432 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUDZD_D1_RK2
2433#endif
2434 use pm_kind, only: RKG => RK2
2435 real(RKG) , intent(out) :: rand(:)
2436 end subroutine
2437#endif
2438
2439#if RK1_ENABLED
2440 impure module subroutine setNormRandUDZD_D1_RK1(rand)
2441#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2442 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUDZD_D1_RK1
2443#endif
2444 use pm_kind, only: RKG => RK1
2445 real(RKG) , intent(out) :: rand(:)
2446 end subroutine
2447#endif
2448
2449 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2450
2451#if RK5_ENABLED
2452 impure module subroutine setNormRandUFZD_D1_RK5(rng, rand)
2453#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2454 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUFZD_D1_RK5
2455#endif
2456 use pm_kind, only: RKG => RK5
2457 type(rngf_type) , intent(in) :: rng
2458 real(RKG) , intent(out) :: rand(:)
2459 end subroutine
2460#endif
2461
2462#if RK4_ENABLED
2463 impure module subroutine setNormRandUFZD_D1_RK4(rng, rand)
2464#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2465 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUFZD_D1_RK4
2466#endif
2467 use pm_kind, only: RKG => RK4
2468 type(rngf_type) , intent(in) :: rng
2469 real(RKG) , intent(out) :: rand(:)
2470 end subroutine
2471#endif
2472
2473#if RK3_ENABLED
2474 impure module subroutine setNormRandUFZD_D1_RK3(rng, rand)
2475#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2476 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUFZD_D1_RK3
2477#endif
2478 use pm_kind, only: RKG => RK3
2479 type(rngf_type) , intent(in) :: rng
2480 real(RKG) , intent(out) :: rand(:)
2481 end subroutine
2482#endif
2483
2484#if RK2_ENABLED
2485 impure module subroutine setNormRandUFZD_D1_RK2(rng, rand)
2486#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2487 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUFZD_D1_RK2
2488#endif
2489 use pm_kind, only: RKG => RK2
2490 type(rngf_type) , intent(in) :: rng
2491 real(RKG) , intent(out) :: rand(:)
2492 end subroutine
2493#endif
2494
2495#if RK1_ENABLED
2496 impure module subroutine setNormRandUFZD_D1_RK1(rng, rand)
2497#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2498 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUFZD_D1_RK1
2499#endif
2500 use pm_kind, only: RKG => RK1
2501 type(rngf_type) , intent(in) :: rng
2502 real(RKG) , intent(out) :: rand(:)
2503 end subroutine
2504#endif
2505
2506 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2507
2508#if RK5_ENABLED
2509 PURE module subroutine setNormRandUXZD_D1_RK5(rng, rand)
2510#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2511 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUXZD_D1_RK5
2512#endif
2513 use pm_kind, only: RKG => RK5
2514 type(xoshiro256ssw_type) , intent(inout) :: rng
2515 real(RKG) , intent(out) :: rand(:)
2516 end subroutine
2517#endif
2518
2519#if RK4_ENABLED
2520 PURE module subroutine setNormRandUXZD_D1_RK4(rng, rand)
2521#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2522 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUXZD_D1_RK4
2523#endif
2524 use pm_kind, only: RKG => RK4
2525 type(xoshiro256ssw_type) , intent(inout) :: rng
2526 real(RKG) , intent(out) :: rand(:)
2527 end subroutine
2528#endif
2529
2530#if RK3_ENABLED
2531 PURE module subroutine setNormRandUXZD_D1_RK3(rng, rand)
2532#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2533 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUXZD_D1_RK3
2534#endif
2535 use pm_kind, only: RKG => RK3
2536 type(xoshiro256ssw_type) , intent(inout) :: rng
2537 real(RKG) , intent(out) :: rand(:)
2538 end subroutine
2539#endif
2540
2541#if RK2_ENABLED
2542 PURE module subroutine setNormRandUXZD_D1_RK2(rng, rand)
2543#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2544 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUXZD_D1_RK2
2545#endif
2546 use pm_kind, only: RKG => RK2
2547 type(xoshiro256ssw_type) , intent(inout) :: rng
2548 real(RKG) , intent(out) :: rand(:)
2549 end subroutine
2550#endif
2551
2552#if RK1_ENABLED
2553 PURE module subroutine setNormRandUXZD_D1_RK1(rng, rand)
2554#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2555 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUXZD_D1_RK1
2556#endif
2557 use pm_kind, only: RKG => RK1
2558 type(xoshiro256ssw_type) , intent(inout) :: rng
2559 real(RKG) , intent(out) :: rand(:)
2560 end subroutine
2561#endif
2562
2563 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2564
2565 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2566 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2567 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2568
2569 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2570
2571#if RK5_ENABLED
2572 impure module subroutine setNormRandUDZA_D1_RK5(rand, zig)
2573#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2574 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUDZA_D1_RK5
2575#endif
2576 use pm_kind, only: RKG => RK5
2577 real(RKG) , intent(out) :: rand(:)
2578 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2579 end subroutine
2580#endif
2581
2582#if RK4_ENABLED
2583 impure module subroutine setNormRandUDZA_D1_RK4(rand, zig)
2584#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2585 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUDZA_D1_RK4
2586#endif
2587 use pm_kind, only: RKG => RK4
2588 real(RKG) , intent(out) :: rand(:)
2589 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2590 end subroutine
2591#endif
2592
2593#if RK3_ENABLED
2594 impure module subroutine setNormRandUDZA_D1_RK3(rand, zig)
2595#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2596 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUDZA_D1_RK3
2597#endif
2598 use pm_kind, only: RKG => RK3
2599 real(RKG) , intent(out) :: rand(:)
2600 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2601 end subroutine
2602#endif
2603
2604#if RK2_ENABLED
2605 impure module subroutine setNormRandUDZA_D1_RK2(rand, zig)
2606#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2607 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUDZA_D1_RK2
2608#endif
2609 use pm_kind, only: RKG => RK2
2610 real(RKG) , intent(out) :: rand(:)
2611 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2612 end subroutine
2613#endif
2614
2615#if RK1_ENABLED
2616 impure module subroutine setNormRandUDZA_D1_RK1(rand, zig)
2617#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2618 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUDZA_D1_RK1
2619#endif
2620 use pm_kind, only: RKG => RK1
2621 real(RKG) , intent(out) :: rand(:)
2622 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2623 end subroutine
2624#endif
2625
2626 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2627
2628 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2629 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2630 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2631
2632 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2633
2634#if RK5_ENABLED
2635 impure module subroutine setNormRandUFZA_D1_RK5(rng, rand, zig)
2636#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2637 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUFZA_D1_RK5
2638#endif
2639 use pm_kind, only: RKG => RK5
2640 type(rngf_type) , intent(in) :: rng
2641 real(RKG) , intent(out) :: rand(:)
2642 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2643 end subroutine
2644#endif
2645
2646#if RK4_ENABLED
2647 impure module subroutine setNormRandUFZA_D1_RK4(rng, rand, zig)
2648#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2649 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUFZA_D1_RK4
2650#endif
2651 use pm_kind, only: RKG => RK4
2652 type(rngf_type) , intent(in) :: rng
2653 real(RKG) , intent(out) :: rand(:)
2654 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2655 end subroutine
2656#endif
2657
2658#if RK3_ENABLED
2659 impure module subroutine setNormRandUFZA_D1_RK3(rng, rand, zig)
2660#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2661 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUFZA_D1_RK3
2662#endif
2663 use pm_kind, only: RKG => RK3
2664 type(rngf_type) , intent(in) :: rng
2665 real(RKG) , intent(out) :: rand(:)
2666 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2667 end subroutine
2668#endif
2669
2670#if RK2_ENABLED
2671 impure module subroutine setNormRandUFZA_D1_RK2(rng, rand, zig)
2672#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2673 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUFZA_D1_RK2
2674#endif
2675 use pm_kind, only: RKG => RK2
2676 type(rngf_type) , intent(in) :: rng
2677 real(RKG) , intent(out) :: rand(:)
2678 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2679 end subroutine
2680#endif
2681
2682#if RK1_ENABLED
2683 impure module subroutine setNormRandUFZA_D1_RK1(rng, rand, zig)
2684#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2685 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUFZA_D1_RK1
2686#endif
2687 use pm_kind, only: RKG => RK1
2688 type(rngf_type) , intent(in) :: rng
2689 real(RKG) , intent(out) :: rand(:)
2690 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2691 end subroutine
2692#endif
2693
2694 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2695
2696#if RK5_ENABLED
2697 PURE module subroutine setNormRandUXZA_D1_RK5(rng, rand, zig)
2698#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2699 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUXZA_D1_RK5
2700#endif
2701 use pm_kind, only: RKG => RK5
2702 type(xoshiro256ssw_type) , intent(inout) :: rng
2703 real(RKG) , intent(out) :: rand(:)
2704 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2705 end subroutine
2706#endif
2707
2708#if RK4_ENABLED
2709 PURE module subroutine setNormRandUXZA_D1_RK4(rng, rand, zig)
2710#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2711 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUXZA_D1_RK4
2712#endif
2713 use pm_kind, only: RKG => RK4
2714 type(xoshiro256ssw_type) , intent(inout) :: rng
2715 real(RKG) , intent(out) :: rand(:)
2716 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2717 end subroutine
2718#endif
2719
2720#if RK3_ENABLED
2721 PURE module subroutine setNormRandUXZA_D1_RK3(rng, rand, zig)
2722#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2723 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUXZA_D1_RK3
2724#endif
2725 use pm_kind, only: RKG => RK3
2726 type(xoshiro256ssw_type) , intent(inout) :: rng
2727 real(RKG) , intent(out) :: rand(:)
2728 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2729 end subroutine
2730#endif
2731
2732#if RK2_ENABLED
2733 PURE module subroutine setNormRandUXZA_D1_RK2(rng, rand, zig)
2734#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2735 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUXZA_D1_RK2
2736#endif
2737 use pm_kind, only: RKG => RK2
2738 type(xoshiro256ssw_type) , intent(inout) :: rng
2739 real(RKG) , intent(out) :: rand(:)
2740 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2741 end subroutine
2742#endif
2743
2744#if RK1_ENABLED
2745 PURE module subroutine setNormRandUXZA_D1_RK1(rng, rand, zig)
2746#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2747 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandUXZA_D1_RK1
2748#endif
2749 use pm_kind, only: RKG => RK1
2750 type(xoshiro256ssw_type) , intent(inout) :: rng
2751 real(RKG) , intent(out) :: rand(:)
2752 real(RKG) , intent(in) , contiguous :: zig(:, 0 :)
2753 end subroutine
2754#endif
2755
2756 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2757
2758 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2759 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2760 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2761
2762 end interface
2763
2764!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2765 end do
2867
2868 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2869 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2870 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2871
2872 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2873
2874#if RK5_ENABLED
2875 PURE elemental module subroutine setNormRandBoxBasicDD_D0_RK5(rand1, rand2)
2876#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2877 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxBasicDD_D0_RK5
2878#endif
2879 use pm_kind, only: RKG => RK5
2880 real(RKG) , intent(inout) :: rand1, rand2
2881 end subroutine
2882#endif
2883
2884#if RK4_ENABLED
2885 PURE elemental module subroutine setNormRandBoxBasicDD_D0_RK4(rand1, rand2)
2886#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2887 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxBasicDD_D0_RK4
2888#endif
2889 use pm_kind, only: RKG => RK4
2890 real(RKG) , intent(inout) :: rand1, rand2
2891 end subroutine
2892#endif
2893
2894#if RK3_ENABLED
2895 PURE elemental module subroutine setNormRandBoxBasicDD_D0_RK3(rand1, rand2)
2896#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2897 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxBasicDD_D0_RK3
2898#endif
2899 use pm_kind, only: RKG => RK3
2900 real(RKG) , intent(inout) :: rand1, rand2
2901 end subroutine
2902#endif
2903
2904#if RK2_ENABLED
2905 PURE elemental module subroutine setNormRandBoxBasicDD_D0_RK2(rand1, rand2)
2906#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2907 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxBasicDD_D0_RK2
2908#endif
2909 use pm_kind, only: RKG => RK2
2910 real(RKG) , intent(inout) :: rand1, rand2
2911 end subroutine
2912#endif
2913
2914#if RK1_ENABLED
2915 PURE elemental module subroutine setNormRandBoxBasicDD_D0_RK1(rand1, rand2)
2916#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2917 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxBasicDD_D0_RK1
2918#endif
2919 use pm_kind, only: RKG => RK1
2920 real(RKG) , intent(inout) :: rand1, rand2
2921 end subroutine
2922#endif
2923
2924 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2925
2926#if RK5_ENABLED
2927 PURE elemental module subroutine setNormRandBoxPolarDD_D0_RK5(rand1, rand2, failed)
2928#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2929 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxPolarDD_D0_RK5
2930#endif
2931 use pm_kind, only: RKG => RK5
2932 logical(LK) , intent(out) :: failed
2933 real(RKG) , intent(inout) :: rand1, rand2
2934 end subroutine
2935#endif
2936
2937#if RK4_ENABLED
2938 PURE elemental module subroutine setNormRandBoxPolarDD_D0_RK4(rand1, rand2, failed)
2939#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2940 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxPolarDD_D0_RK4
2941#endif
2942 use pm_kind, only: RKG => RK4
2943 logical(LK) , intent(out) :: failed
2944 real(RKG) , intent(inout) :: rand1, rand2
2945 end subroutine
2946#endif
2947
2948#if RK3_ENABLED
2949 PURE elemental module subroutine setNormRandBoxPolarDD_D0_RK3(rand1, rand2, failed)
2950#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2951 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxPolarDD_D0_RK3
2952#endif
2953 use pm_kind, only: RKG => RK3
2954 logical(LK) , intent(out) :: failed
2955 real(RKG) , intent(inout) :: rand1, rand2
2956 end subroutine
2957#endif
2958
2959#if RK2_ENABLED
2960 PURE elemental module subroutine setNormRandBoxPolarDD_D0_RK2(rand1, rand2, failed)
2961#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2962 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxPolarDD_D0_RK2
2963#endif
2964 use pm_kind, only: RKG => RK2
2965 logical(LK) , intent(out) :: failed
2966 real(RKG) , intent(inout) :: rand1, rand2
2967 end subroutine
2968#endif
2969
2970#if RK1_ENABLED
2971 PURE elemental module subroutine setNormRandBoxPolarDD_D0_RK1(rand1, rand2, failed)
2972#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2973 !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxPolarDD_D0_RK1
2974#endif
2975 use pm_kind, only: RKG => RK1
2976 logical(LK) , intent(out) :: failed
2977 real(RKG) , intent(inout) :: rand1, rand2
2978 end subroutine
2979#endif
2980
2981 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2982
2983 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2984 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2985 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2986
2987 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2988
2989!
2990!#if RK5_ENABLED
2991! PURE elemental module subroutine setNormRandBoxBasicMD_RK5(rand1, rand2, mean)
2992!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2993! !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxBasicMD_RK5
2994!#endif
2995! use pm_kind, only: RKG => RK5
2996! real(RKG) , intent(inout) :: rand1, rand2
2997! real(RKG) , intent(in) :: mean
2998! end subroutine
2999!#endif
3000!
3001!#if RK4_ENABLED
3002! PURE elemental module subroutine setNormRandBoxBasicMD_RK4(rand1, rand2, mean)
3003!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3004! !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxBasicMD_RK4
3005!#endif
3006! use pm_kind, only: RKG => RK4
3007! real(RKG) , intent(inout) :: rand1, rand2
3008! real(RKG) , intent(in) :: mean
3009! end subroutine
3010!#endif
3011!
3012!#if RK3_ENABLED
3013! PURE elemental module subroutine setNormRandBoxBasicMD_RK3(rand1, rand2, mean)
3014!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3015! !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxBasicMD_RK3
3016!#endif
3017! use pm_kind, only: RKG => RK3
3018! real(RKG) , intent(inout) :: rand1, rand2
3019! real(RKG) , intent(in) :: mean
3020! end subroutine
3021!#endif
3022!
3023!#if RK2_ENABLED
3024! PURE elemental module subroutine setNormRandBoxBasicMD_RK2(rand1, rand2, mean)
3025!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3026! !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxBasicMD_RK2
3027!#endif
3028! use pm_kind, only: RKG => RK2
3029! real(RKG) , intent(inout) :: rand1, rand2
3030! real(RKG) , intent(in) :: mean
3031! end subroutine
3032!#endif
3033!
3034!#if RK1_ENABLED
3035! PURE elemental module subroutine setNormRandBoxBasicMD_RK1(rand1, rand2, mean)
3036!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3037! !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxBasicMD_RK1
3038!#endif
3039! use pm_kind, only: RKG => RK1
3040! real(RKG) , intent(inout) :: rand1, rand2
3041! real(RKG) , intent(in) :: mean
3042! end subroutine
3043!#endif
3044!
3045! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3046!
3047!#if RK5_ENABLED
3048! PURE elemental module subroutine setNormRandBoxBasicMS_RK5(rand1, rand2, mean, std)
3049!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3050! !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxBasicMS_RK5
3051!#endif
3052! use pm_kind, only: RKG => RK5
3053! real(RKG) , intent(inout) :: rand1, rand2
3054! real(RKG) , intent(in) :: mean, std
3055! end subroutine
3056!#endif
3057!
3058!#if RK4_ENABLED
3059! PURE elemental module subroutine setNormRandBoxBasicMS_RK4(rand1, rand2, mean, std)
3060!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3061! !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxBasicMS_RK4
3062!#endif
3063! use pm_kind, only: RKG => RK4
3064! real(RKG) , intent(inout) :: rand1, rand2
3065! real(RKG) , intent(in) :: mean, std
3066! end subroutine
3067!#endif
3068!
3069!#if RK3_ENABLED
3070! PURE elemental module subroutine setNormRandBoxBasicMS_RK3(rand1, rand2, mean, std)
3071!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3072! !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxBasicMS_RK3
3073!#endif
3074! use pm_kind, only: RKG => RK3
3075! real(RKG) , intent(inout) :: rand1, rand2
3076! real(RKG) , intent(in) :: mean, std
3077! end subroutine
3078!#endif
3079!
3080!#if RK2_ENABLED
3081! PURE elemental module subroutine setNormRandBoxBasicMS_RK2(rand1, rand2, mean, std)
3082!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3083! !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxBasicMS_RK2
3084!#endif
3085! use pm_kind, only: RKG => RK2
3086! real(RKG) , intent(inout) :: rand1, rand2
3087! real(RKG) , intent(in) :: mean, std
3088! end subroutine
3089!#endif
3090!
3091!#if RK1_ENABLED
3092! PURE elemental module subroutine setNormRandBoxBasicMS_RK1(rand1, rand2, mean, std)
3093!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3094! !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxBasicMS_RK1
3095!#endif
3096! use pm_kind, only: RKG => RK1
3097! real(RKG) , intent(inout) :: rand1, rand2
3098! real(RKG) , intent(in) :: mean, std
3099! end subroutine
3100!#endif
3101!
3102! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3103!
3104! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3105! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3106! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3107!
3108! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3109!
3110!#if RK5_ENABLED
3111! PURE elemental module subroutine setNormRandBoxPolarMD_RK5(rand1, rand2, failed, mean)
3112!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3113! !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxPolarMD_RK5
3114!#endif
3115! use pm_kind, only: RKG => RK5
3116! logical(LK) , intent(out) :: failed
3117! real(RKG) , intent(inout) :: rand1, rand2
3118! real(RKG) , intent(in) :: mean
3119! end subroutine
3120!#endif
3121!
3122!#if RK4_ENABLED
3123! PURE elemental module subroutine setNormRandBoxPolarMD_RK4(rand1, rand2, failed, mean)
3124!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3125! !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxPolarMD_RK4
3126!#endif
3127! use pm_kind, only: RKG => RK4
3128! logical(LK) , intent(out) :: failed
3129! real(RKG) , intent(inout) :: rand1, rand2
3130! real(RKG) , intent(in) :: mean
3131! end subroutine
3132!#endif
3133!
3134!#if RK3_ENABLED
3135! PURE elemental module subroutine setNormRandBoxPolarMD_RK3(rand1, rand2, failed, mean)
3136!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3137! !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxPolarMD_RK3
3138!#endif
3139! use pm_kind, only: RKG => RK3
3140! logical(LK) , intent(out) :: failed
3141! real(RKG) , intent(inout) :: rand1, rand2
3142! real(RKG) , intent(in) :: mean
3143! end subroutine
3144!#endif
3145!
3146!#if RK2_ENABLED
3147! PURE elemental module subroutine setNormRandBoxPolarMD_RK2(rand1, rand2, failed, mean)
3148!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3149! !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxPolarMD_RK2
3150!#endif
3151! use pm_kind, only: RKG => RK2
3152! logical(LK) , intent(out) :: failed
3153! real(RKG) , intent(inout) :: rand1, rand2
3154! real(RKG) , intent(in) :: mean
3155! end subroutine
3156!#endif
3157!
3158!#if RK1_ENABLED
3159! PURE elemental module subroutine setNormRandBoxPolarMD_RK1(rand1, rand2, failed, mean)
3160!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3161! !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxPolarMD_RK1
3162!#endif
3163! use pm_kind, only: RKG => RK1
3164! logical(LK) , intent(out) :: failed
3165! real(RKG) , intent(inout) :: rand1, rand2
3166! real(RKG) , intent(in) :: mean
3167! end subroutine
3168!#endif
3169!
3170! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3171!
3172!#if RK5_ENABLED
3173! PURE elemental module subroutine setNormRandBoxPolarMS_RK5(rand1, rand2, failed, mean, std)
3174!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3175! !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxPolarMS_RK5
3176!#endif
3177! use pm_kind, only: RKG => RK5
3178! logical(LK) , intent(out) :: failed
3179! real(RKG) , intent(inout) :: rand1, rand2
3180! real(RKG) , intent(in) :: mean, std
3181! end subroutine
3182!#endif
3183!
3184!#if RK4_ENABLED
3185! PURE elemental module subroutine setNormRandBoxPolarMS_RK4(rand1, rand2, failed, mean, std)
3186!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3187! !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxPolarMS_RK4
3188!#endif
3189! use pm_kind, only: RKG => RK4
3190! logical(LK) , intent(out) :: failed
3191! real(RKG) , intent(inout) :: rand1, rand2
3192! real(RKG) , intent(in) :: mean, std
3193! end subroutine
3194!#endif
3195!
3196!#if RK3_ENABLED
3197! PURE elemental module subroutine setNormRandBoxPolarMS_RK3(rand1, rand2, failed, mean, std)
3198!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3199! !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxPolarMS_RK3
3200!#endif
3201! use pm_kind, only: RKG => RK3
3202! logical(LK) , intent(out) :: failed
3203! real(RKG) , intent(inout) :: rand1, rand2
3204! real(RKG) , intent(in) :: mean, std
3205! end subroutine
3206!#endif
3207!
3208!#if RK2_ENABLED
3209! PURE elemental module subroutine setNormRandBoxPolarMS_RK2(rand1, rand2, failed, mean, std)
3210!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3211! !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxPolarMS_RK2
3212!#endif
3213! use pm_kind, only: RKG => RK2
3214! logical(LK) , intent(out) :: failed
3215! real(RKG) , intent(inout) :: rand1, rand2
3216! real(RKG) , intent(in) :: mean, std
3217! end subroutine
3218!#endif
3219!
3220!#if RK1_ENABLED
3221! PURE elemental module subroutine setNormRandBoxPolarMS_RK1(rand1, rand2, failed, mean, std)
3222!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3223! !DEC$ ATTRIBUTES DLLEXPORT :: setNormRandBoxPolarMS_RK1
3224!#endif
3225! use pm_kind, only: RKG => RK1
3226! logical(LK) , intent(out) :: failed
3227! real(RKG) , intent(inout) :: rand1, rand2
3228! real(RKG) , intent(in) :: mean, std
3229! end subroutine
3230!#endif
3231!
3232! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3233!
3234! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3235! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3236! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3237
3238 end interface
3239
3240!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3241
3294 interface getZigNorm
3295
3296 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3297
3298#if RK5_ENABLED
3299 impure module function getZigNorm_RK5(nlay, abserr, abstol) result(zig)
3300#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3301 !DEC$ ATTRIBUTES DLLEXPORT :: getZigNorm_RK5
3302#endif
3303 use pm_kind, only: RKG => RK5
3304 integer(IK) , intent(in) :: nlay
3305 real(RKG) , intent(out) :: abserr
3306 real(RKG) , intent(in) , optional :: abstol
3307 real(RKG) :: zig(2, 0 : nlay)
3308 end function
3309#endif
3310
3311#if RK4_ENABLED
3312 impure module function getZigNorm_RK4(nlay, abserr, abstol) result(zig)
3313#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3314 !DEC$ ATTRIBUTES DLLEXPORT :: getZigNorm_RK4
3315#endif
3316 use pm_kind, only: RKG => RK4
3317 integer(IK) , intent(in) :: nlay
3318 real(RKG) , intent(out) :: abserr
3319 real(RKG) , intent(in) , optional :: abstol
3320 real(RKG) :: zig(2, 0 : nlay)
3321 end function
3322#endif
3323
3324#if RK3_ENABLED
3325 impure module function getZigNorm_RK3(nlay, abserr, abstol) result(zig)
3326#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3327 !DEC$ ATTRIBUTES DLLEXPORT :: getZigNorm_RK3
3328#endif
3329 use pm_kind, only: RKG => RK3
3330 integer(IK) , intent(in) :: nlay
3331 real(RKG) , intent(out) :: abserr
3332 real(RKG) , intent(in) , optional :: abstol
3333 real(RKG) :: zig(2, 0 : nlay)
3334 end function
3335#endif
3336
3337#if RK2_ENABLED
3338 impure module function getZigNorm_RK2(nlay, abserr, abstol) result(zig)
3339#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3340 !DEC$ ATTRIBUTES DLLEXPORT :: getZigNorm_RK2
3341#endif
3342 use pm_kind, only: RKG => RK2
3343 integer(IK) , intent(in) :: nlay
3344 real(RKG) , intent(out) :: abserr
3345 real(RKG) , intent(in) , optional :: abstol
3346 real(RKG) :: zig(2, 0 : nlay)
3347 end function
3348#endif
3349
3350#if RK1_ENABLED
3351 impure module function getZigNorm_RK1(nlay, abserr, abstol) result(zig)
3352#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3353 !DEC$ ATTRIBUTES DLLEXPORT :: getZigNorm_RK1
3354#endif
3355 use pm_kind, only: RKG => RK1
3356 integer(IK) , intent(in) :: nlay
3357 real(RKG) , intent(out) :: abserr
3358 real(RKG) , intent(in) , optional :: abstol
3359 real(RKG) :: zig(2, 0 : nlay)
3360 end function
3361#endif
3362
3363 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3364
3365 end interface
3366
3367!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3368!
3369! !> \cond excluded
3370! ! Internal module function used for the computation of the ziggurat partitions.
3371! interface getFuncNorm
3372!
3373! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3374!
3375!#if RK5_ENABLED
3376! pure elemental module function getFuncNorm_RK5(x) result(func)
3377!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3378! !DEC$ ATTRIBUTES DLLEXPORT :: getFuncNorm_RK5
3379!#endif
3380! use pm_kind, only: RKG => RK5
3381! real(RKG) , intent(in) :: x
3382! real(RKG) :: func
3383! end function
3384!#endif
3385!
3386!#if RK4_ENABLED
3387! pure elemental module function getFuncNorm_RK4(x) result(func)
3388!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3389! !DEC$ ATTRIBUTES DLLEXPORT :: getFuncNorm_RK4
3390!#endif
3391! use pm_kind, only: RKG => RK4
3392! real(RKG) , intent(in) :: x
3393! real(RKG) :: func
3394! end function
3395!#endif
3396!
3397!#if RK3_ENABLED
3398! pure elemental module function getFuncNorm_RK3(x) result(func)
3399!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3400! !DEC$ ATTRIBUTES DLLEXPORT :: getFuncNorm_RK3
3401!#endif
3402! use pm_kind, only: RKG => RK3
3403! real(RKG) , intent(in) :: x
3404! real(RKG) :: func
3405! end function
3406!#endif
3407!
3408!#if RK2_ENABLED
3409! pure elemental module function getFuncNorm_RK2(x) result(func)
3410!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3411! !DEC$ ATTRIBUTES DLLEXPORT :: getFuncNorm_RK2
3412!#endif
3413! use pm_kind, only: RKG => RK2
3414! real(RKG) , intent(in) :: x
3415! real(RKG) :: func
3416! end function
3417!#endif
3418!
3419!#if RK1_ENABLED
3420! pure elemental module function getFuncNorm_RK1(x) result(func)
3421!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3422! !DEC$ ATTRIBUTES DLLEXPORT :: getFuncNorm_RK1
3423!#endif
3424! use pm_kind, only: RKG => RK1
3425! real(RKG) , intent(in) :: x
3426! real(RKG) :: func
3427! end function
3428!#endif
3429!
3430! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3431!
3432! end interface
3433! !> \endcond excluded
3434!
3435!!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3436!
3437! !> \cond excluded
3438! ! Internal module function used for the computation of the ziggurat partitions.
3439! interface getGradNorm
3440!
3441! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3442!
3443!#if RK5_ENABLED
3444! pure elemental module function getGradNorm_RK5(x) result(grad)
3445!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3446! !DEC$ ATTRIBUTES DLLEXPORT :: getGradNorm_RK5
3447!#endif
3448! use pm_kind, only: RKG => RK5
3449! real(RKG) , intent(in) :: x
3450! real(RKG) :: grad
3451! end function
3452!#endif
3453!
3454!#if RK4_ENABLED
3455! pure elemental module function getGradNorm_RK4(x) result(grad)
3456!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3457! !DEC$ ATTRIBUTES DLLEXPORT :: getGradNorm_RK4
3458!#endif
3459! use pm_kind, only: RKG => RK4
3460! real(RKG) , intent(in) :: x
3461! real(RKG) :: grad
3462! end function
3463!#endif
3464!
3465!#if RK3_ENABLED
3466! pure elemental module function getGradNorm_RK3(x) result(grad)
3467!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3468! !DEC$ ATTRIBUTES DLLEXPORT :: getGradNorm_RK3
3469!#endif
3470! use pm_kind, only: RKG => RK3
3471! real(RKG) , intent(in) :: x
3472! real(RKG) :: grad
3473! end function
3474!#endif
3475!
3476!#if RK2_ENABLED
3477! pure elemental module function getGradNorm_RK2(x) result(grad)
3478!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3479! !DEC$ ATTRIBUTES DLLEXPORT :: getGradNorm_RK2
3480!#endif
3481! use pm_kind, only: RKG => RK2
3482! real(RKG) , intent(in) :: x
3483! real(RKG) :: grad
3484! end function
3485!#endif
3486!
3487!#if RK1_ENABLED
3488! pure elemental module function getGradNorm_RK1(x) result(grad)
3489!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3490! !DEC$ ATTRIBUTES DLLEXPORT :: getGradNorm_RK1
3491!#endif
3492! use pm_kind, only: RKG => RK1
3493! real(RKG) , intent(in) :: x
3494! real(RKG) :: grad
3495! end function
3496!#endif
3497!
3498! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3499!
3500! end interface
3501! !> \endcond excluded
3502!
3503!!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3504!
3505! !> \cond excluded
3506! ! Internal module function used for the computation of the ziggurat partitions.
3507! interface getFuncInvNorm
3508!
3509! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3510!
3511!#if RK5_ENABLED
3512! pure elemental module function getFuncInvNorm_RK5(func) result(x)
3513!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3514! !DEC$ ATTRIBUTES DLLEXPORT :: getFuncInvNorm_RK5
3515!#endif
3516! use pm_kind, only: RKG => RK5
3517! real(RKG) , intent(in) :: func
3518! real(RKG) :: x
3519! end function
3520!#endif
3521!
3522!#if RK4_ENABLED
3523! pure elemental module function getFuncInvNorm_RK4(func) result(x)
3524!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3525! !DEC$ ATTRIBUTES DLLEXPORT :: getFuncInvNorm_RK4
3526!#endif
3527! use pm_kind, only: RKG => RK4
3528! real(RKG) , intent(in) :: func
3529! real(RKG) :: x
3530! end function
3531!#endif
3532!
3533!#if RK3_ENABLED
3534! pure elemental module function getFuncInvNorm_RK3(func) result(x)
3535!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3536! !DEC$ ATTRIBUTES DLLEXPORT :: getFuncInvNorm_RK3
3537!#endif
3538! use pm_kind, only: RKG => RK3
3539! real(RKG) , intent(in) :: func
3540! real(RKG) :: x
3541! end function
3542!#endif
3543!
3544!#if RK2_ENABLED
3545! pure elemental module function getFuncInvNorm_RK2(func) result(x)
3546!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3547! !DEC$ ATTRIBUTES DLLEXPORT :: getFuncInvNorm_RK2
3548!#endif
3549! use pm_kind, only: RKG => RK2
3550! real(RKG) , intent(in) :: func
3551! real(RKG) :: x
3552! end function
3553!#endif
3554!
3555!#if RK1_ENABLED
3556! pure elemental module function getFuncInvNorm_RK1(func) result(x)
3557!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3558! !DEC$ ATTRIBUTES DLLEXPORT :: getFuncInvNorm_RK1
3559!#endif
3560! use pm_kind, only: RKG => RK1
3561! real(RKG) , intent(in) :: func
3562! real(RKG) :: x
3563! end function
3564!#endif
3565!
3566! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3567!
3568! end interface
3569! !> \endcond excluded
3570!
3571!!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3572!
3573! !> \cond excluded
3574! ! Internal module function used for the computation of the ziggurat partitions.
3575! interface getZigAreaNorm
3576!
3577! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3578!
3579!#if RK5_ENABLED
3580! PURE elemental module function getZigAreaNorm_RK5(r) result(area)
3581!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3582! !DEC$ ATTRIBUTES DLLEXPORT :: getZigAreaNorm_RK5
3583!#endif
3584! use pm_kind, only: RKG => RK5
3585! real(RKG) , intent(in) :: r
3586! real(RKG) :: area
3587! end function
3588!#endif
3589!
3590!#if RK4_ENABLED
3591! PURE elemental module function getZigAreaNorm_RK4(r) result(area)
3592!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3593! !DEC$ ATTRIBUTES DLLEXPORT :: getZigAreaNorm_RK4
3594!#endif
3595! use pm_kind, only: RKG => RK4
3596! real(RKG) , intent(in) :: r
3597! real(RKG) :: area
3598! end function
3599!#endif
3600!
3601!#if RK3_ENABLED
3602! PURE elemental module function getZigAreaNorm_RK3(r) result(area)
3603!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3604! !DEC$ ATTRIBUTES DLLEXPORT :: getZigAreaNorm_RK3
3605!#endif
3606! use pm_kind, only: RKG => RK3
3607! real(RKG) , intent(in) :: r
3608! real(RKG) :: area
3609! end function
3610!#endif
3611!
3612!#if RK2_ENABLED
3613! PURE elemental module function getZigAreaNorm_RK2(r) result(area)
3614!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3615! !DEC$ ATTRIBUTES DLLEXPORT :: getZigAreaNorm_RK2
3616!#endif
3617! use pm_kind, only: RKG => RK2
3618! real(RKG) , intent(in) :: r
3619! real(RKG) :: area
3620! end function
3621!#endif
3622!
3623!#if RK1_ENABLED
3624! PURE elemental module function getZigAreaNorm_RK1(r) result(area)
3625!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3626! !DEC$ ATTRIBUTES DLLEXPORT :: getZigAreaNorm_RK1
3627!#endif
3628! use pm_kind, only: RKG => RK1
3629! real(RKG) , intent(in) :: r
3630! real(RKG) :: area
3631! end function
3632!#endif
3633!
3634! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3635!
3636! end interface
3637! !> \endcond excluded
3638!
3639!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3640
3689
3690 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3691
3692#if RK5_ENABLED
3693 pure elemental module function getNormEntropy_RK5(logVar) result(entropy)
3694#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3695 !DEC$ ATTRIBUTES DLLEXPORT :: getNormEntropy_RK5
3696#endif
3697 use pm_kind, only: RKG => RK5
3698 real(RKG) , intent(in) :: logVar
3699 real(RKG) :: entropy
3700 end function
3701#endif
3702
3703#if RK4_ENABLED
3704 pure elemental module function getNormEntropy_RK4(logVar) result(entropy)
3705#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3706 !DEC$ ATTRIBUTES DLLEXPORT :: getNormEntropy_RK4
3707#endif
3708 use pm_kind, only: RKG => RK4
3709 real(RKG) , intent(in) :: logVar
3710 real(RKG) :: entropy
3711 end function
3712#endif
3713
3714#if RK3_ENABLED
3715 pure elemental module function getNormEntropy_RK3(logVar) result(entropy)
3716#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3717 !DEC$ ATTRIBUTES DLLEXPORT :: getNormEntropy_RK3
3718#endif
3719 use pm_kind, only: RKG => RK3
3720 real(RKG) , intent(in) :: logVar
3721 real(RKG) :: entropy
3722 end function
3723#endif
3724
3725#if RK2_ENABLED
3726 pure elemental module function getNormEntropy_RK2(logVar) result(entropy)
3727#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3728 !DEC$ ATTRIBUTES DLLEXPORT :: getNormEntropy_RK2
3729#endif
3730 use pm_kind, only: RKG => RK2
3731 real(RKG) , intent(in) :: logVar
3732 real(RKG) :: entropy
3733 end function
3734#endif
3735
3736#if RK1_ENABLED
3737 pure elemental module function getNormEntropy_RK1(logVar) result(entropy)
3738#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3739 !DEC$ ATTRIBUTES DLLEXPORT :: getNormEntropy_RK1
3740#endif
3741 use pm_kind, only: RKG => RK1
3742 real(RKG) , intent(in) :: logVar
3743 real(RKG) :: entropy
3744 end function
3745#endif
3746
3747 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3748
3749 end interface getNormEntropy
3750
3751!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3752
3806
3807 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3808
3809#if RK5_ENABLED
3810 PURE module function getNormFisher_RK5(varInv) result(Fisher)
3811#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3812 !DEC$ ATTRIBUTES DLLEXPORT :: getNormFisher_RK5
3813#endif
3814 use pm_kind, only: RKG => RK5
3815 real(RKG) , intent(in) :: varInv
3816 real(RKG) :: Fisher(2,2)
3817 end function
3818#endif
3819
3820#if RK4_ENABLED
3821 PURE module function getNormFisher_RK4(varInv) result(Fisher)
3822#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3823 !DEC$ ATTRIBUTES DLLEXPORT :: getNormFisher_RK4
3824#endif
3825 use pm_kind, only: RKG => RK4
3826 real(RKG) , intent(in) :: varInv
3827 real(RKG) :: Fisher(2,2)
3828 end function
3829#endif
3830
3831#if RK3_ENABLED
3832 PURE module function getNormFisher_RK3(varInv) result(Fisher)
3833#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3834 !DEC$ ATTRIBUTES DLLEXPORT :: getNormFisher_RK3
3835#endif
3836 use pm_kind, only: RKG => RK3
3837 real(RKG) , intent(in) :: varInv
3838 real(RKG) :: Fisher(2,2)
3839 end function
3840#endif
3841
3842#if RK2_ENABLED
3843 PURE module function getNormFisher_RK2(varInv) result(Fisher)
3844#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3845 !DEC$ ATTRIBUTES DLLEXPORT :: getNormFisher_RK2
3846#endif
3847 use pm_kind, only: RKG => RK2
3848 real(RKG) , intent(in) :: varInv
3849 real(RKG) :: Fisher(2,2)
3850 end function
3851#endif
3852
3853#if RK1_ENABLED
3854 PURE module function getNormFisher_RK1(varInv) result(Fisher)
3855#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3856 !DEC$ ATTRIBUTES DLLEXPORT :: getNormFisher_RK1
3857#endif
3858 use pm_kind, only: RKG => RK1
3859 real(RKG) , intent(in) :: varInv
3860 real(RKG) :: Fisher(2,2)
3861 end function
3862#endif
3863
3864 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3865
3866 end interface getNormFisher
3867
3868!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3869
3942 interface getNormKLD
3943
3944 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3945
3946#if RK5_ENABLED
3947 PURE elemental module function getNormKLDMD_RK5(meanDiffSq) result(kld)
3948#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3949 !DEC$ ATTRIBUTES DLLEXPORT :: getNormKLDMD_RK5
3950#endif
3951 use pm_kind, only: RKG => RK5
3952 real(RKG) , intent(in) :: meanDiffSq
3953 real(RKG) :: kld
3954 end function
3955#endif
3956
3957#if RK4_ENABLED
3958 PURE elemental module function getNormKLDMD_RK4(meanDiffSq) result(kld)
3959#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3960 !DEC$ ATTRIBUTES DLLEXPORT :: getNormKLDMD_RK4
3961#endif
3962 use pm_kind, only: RKG => RK4
3963 real(RKG) , intent(in) :: meanDiffSq
3964 real(RKG) :: kld
3965 end function
3966#endif
3967
3968#if RK3_ENABLED
3969 PURE elemental module function getNormKLDMD_RK3(meanDiffSq) result(kld)
3970#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3971 !DEC$ ATTRIBUTES DLLEXPORT :: getNormKLDMD_RK3
3972#endif
3973 use pm_kind, only: RKG => RK3
3974 real(RKG) , intent(in) :: meanDiffSq
3975 real(RKG) :: kld
3976 end function
3977#endif
3978
3979#if RK2_ENABLED
3980 PURE elemental module function getNormKLDMD_RK2(meanDiffSq) result(kld)
3981#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3982 !DEC$ ATTRIBUTES DLLEXPORT :: getNormKLDMD_RK2
3983#endif
3984 use pm_kind, only: RKG => RK2
3985 real(RKG) , intent(in) :: meanDiffSq
3986 real(RKG) :: kld
3987 end function
3988#endif
3989
3990#if RK1_ENABLED
3991 PURE elemental module function getNormKLDMD_RK1(meanDiffSq) result(kld)
3992#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3993 !DEC$ ATTRIBUTES DLLEXPORT :: getNormKLDMD_RK1
3994#endif
3995 use pm_kind, only: RKG => RK1
3996 real(RKG) , intent(in) :: meanDiffSq
3997 real(RKG) :: kld
3998 end function
3999#endif
4000
4001 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4002
4003#if RK5_ENABLED
4004 PURE elemental module function getNormKLDDV_RK5(varP, varQ) result(kld)
4005#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4006 !DEC$ ATTRIBUTES DLLEXPORT :: getNormKLDDV_RK5
4007#endif
4008 use pm_kind, only: RKG => RK5
4009 real(RKG) , intent(in) :: varP, varQ
4010 real(RKG) :: kld
4011 end function
4012#endif
4013
4014#if RK4_ENABLED
4015 PURE elemental module function getNormKLDDV_RK4(varP, varQ) result(kld)
4016#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4017 !DEC$ ATTRIBUTES DLLEXPORT :: getNormKLDDV_RK4
4018#endif
4019 use pm_kind, only: RKG => RK4
4020 real(RKG) , intent(in) :: varP, varQ
4021 real(RKG) :: kld
4022 end function
4023#endif
4024
4025#if RK3_ENABLED
4026 PURE elemental module function getNormKLDDV_RK3(varP, varQ) result(kld)
4027#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4028 !DEC$ ATTRIBUTES DLLEXPORT :: getNormKLDDV_RK3
4029#endif
4030 use pm_kind, only: RKG => RK3
4031 real(RKG) , intent(in) :: varP, varQ
4032 real(RKG) :: kld
4033 end function
4034#endif
4035
4036#if RK2_ENABLED
4037 PURE elemental module function getNormKLDDV_RK2(varP, varQ) result(kld)
4038#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4039 !DEC$ ATTRIBUTES DLLEXPORT :: getNormKLDDV_RK2
4040#endif
4041 use pm_kind, only: RKG => RK2
4042 real(RKG) , intent(in) :: varP, varQ
4043 real(RKG) :: kld
4044 end function
4045#endif
4046
4047#if RK1_ENABLED
4048 PURE elemental module function getNormKLDDV_RK1(varP, varQ) result(kld)
4049#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4050 !DEC$ ATTRIBUTES DLLEXPORT :: getNormKLDDV_RK1
4051#endif
4052 use pm_kind, only: RKG => RK1
4053 real(RKG) , intent(in) :: varP, varQ
4054 real(RKG) :: kld
4055 end function
4056#endif
4057
4058 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4059
4060#if RK5_ENABLED
4061 PURE elemental module function getNormKLDMV_RK5(meanDiffSq, varP, varQ) result(kld)
4062#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4063 !DEC$ ATTRIBUTES DLLEXPORT :: getNormKLDMV_RK5
4064#endif
4065 use pm_kind, only: RKG => RK5
4066 real(RKG) , intent(in) :: meanDiffSq
4067 real(RKG) , intent(in) :: varP, varQ
4068 real(RKG) :: kld
4069 end function
4070#endif
4071
4072#if RK4_ENABLED
4073 PURE elemental module function getNormKLDMV_RK4(meanDiffSq, varP, varQ) result(kld)
4074#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4075 !DEC$ ATTRIBUTES DLLEXPORT :: getNormKLDMV_RK4
4076#endif
4077 use pm_kind, only: RKG => RK4
4078 real(RKG) , intent(in) :: meanDiffSq
4079 real(RKG) , intent(in) :: varP, varQ
4080 real(RKG) :: kld
4081 end function
4082#endif
4083
4084#if RK3_ENABLED
4085 PURE elemental module function getNormKLDMV_RK3(meanDiffSq, varP, varQ) result(kld)
4086#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4087 !DEC$ ATTRIBUTES DLLEXPORT :: getNormKLDMV_RK3
4088#endif
4089 use pm_kind, only: RKG => RK3
4090 real(RKG) , intent(in) :: meanDiffSq
4091 real(RKG) , intent(in) :: varP, varQ
4092 real(RKG) :: kld
4093 end function
4094#endif
4095
4096#if RK2_ENABLED
4097 PURE elemental module function getNormKLDMV_RK2(meanDiffSq, varP, varQ) result(kld)
4098#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4099 !DEC$ ATTRIBUTES DLLEXPORT :: getNormKLDMV_RK2
4100#endif
4101 use pm_kind, only: RKG => RK2
4102 real(RKG) , intent(in) :: meanDiffSq
4103 real(RKG) , intent(in) :: varP, varQ
4104 real(RKG) :: kld
4105 end function
4106#endif
4107
4108#if RK1_ENABLED
4109 PURE elemental module function getNormKLDMV_RK1(meanDiffSq, varP, varQ) result(kld)
4110#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4111 !DEC$ ATTRIBUTES DLLEXPORT :: getNormKLDMV_RK1
4112#endif
4113 use pm_kind, only: RKG => RK1
4114 real(RKG) , intent(in) :: meanDiffSq
4115 real(RKG) , intent(in) :: varP, varQ
4116 real(RKG) :: kld
4117 end function
4118#endif
4119
4120 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4121
4122 end interface getNormKLD
4123
4124!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4125
4126end module pm_distNorm
Generate and return the Cumulative Distribution Function (CDF) of the univariate Normal distribution.
Generate and return the entropy of the Normal distribution with the input natural logarithm of the va...
Generate the Fisher Information of the Normal distribution.
Generate and return the Kullback-Leibler Divergence (KLD) of a given univariate Normal distribution ...
Generate the natural logarithm of probability density function (PDF) of the univariate Normal distrib...
Generate and return the Normal Quantile corresponding to the input CDF of the univariate Normal distr...
Generate and return a scalar or array of arbitrary rank of random values from the univariate Normal d...
Generate and return the lower right edges of the rectangles of a Ziggurat partitioning of the Normal ...
Generate and return the Cumulative Distribution Function (CDF) of the univariate Normal distribution.
Generate the natural logarithm of probability density function (PDF) of the univariate Normal distrib...
Generate and return the quantile of the univariate Normal distribution at the specified input CDF.
Return a scalar or array of arbitrary rank of random values from the univariate Normal distribution,...
Return a scalar or array of arbitrary rank of random values from the standard univariate Normal distr...
This module contains classes and procedures for computing various statistical quantities related to t...
real(RKB), dimension(2, 0:128), parameter ZIGSET1
real(RKB), dimension(2, 1:128), parameter ZIGSET2
character(*, SK), parameter MODULE_NAME
integer(IK), parameter ZIG_PRECISION
The scalar integer of default kind IK containing the output of Fortran intrinsic precision() for the ...
real(RKB), dimension(2, 0:256), parameter ZIG_RKB
The constant array of type real of kind RKB of shape (1 : 2, 0 : 256) containing the default 256-laye...
This module contains classes and procedures for computing various statistical quantities related to t...
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
integer, parameter RK5
Definition: pm_kind.F90:478
integer, parameter RK4
Definition: pm_kind.F90:489
integer, parameter RK2
Definition: pm_kind.F90:511
integer, parameter 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 RKB
The scalar integer constant of intrinsic default kind, representing the Best-precision real kind supp...
Definition: pm_kind.F90:1371
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 RKH
The scalar integer constant of intrinsic default kind, representing the highest-precision real kind t...
Definition: pm_kind.F90:858
integer, parameter RK1
Definition: pm_kind.F90:522
This is the derived type for signifying distributions that are of type Univariate Normal as defined i...
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...