ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_distanceEuclid.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
68
69!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
70
72
73 use pm_kind, only: SK, IK
74 use pm_array, only: nothing, nothing_type
79
80 implicit none
81
82 character(*, SK), parameter :: MODULE_NAME = "@pm_distanceEuclid"
83
84!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
85
119 end type
120
147 type(euclid_type), parameter :: euclid = euclid_type()
148#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
149 !DIR$ ATTRIBUTES DLLEXPORT :: euclid
150#endif
151
152!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
153
187 end type
188
215 type(euclidu_type), parameter :: euclidu = euclidu_type()
216#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
217 !DIR$ ATTRIBUTES DLLEXPORT :: euclidu
218#endif
219
220!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
221
255 end type
256
283 type(euclidv_type), parameter :: euclidv = euclidv_type()
284#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
285 !DIR$ ATTRIBUTES DLLEXPORT :: euclidv
286#endif
287
288!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
289
323 end type
324
351 type(euclidsq_type), parameter :: euclidsq = euclidsq_type()
352#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
353 !DIR$ ATTRIBUTES DLLEXPORT :: euclidsq
354#endif
355
356!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
357
481
482 ! x, y, z
483
484 interface getDisEuclid
485
486 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
487
488#if RK5_ENABLED
489 pure elemental module function getDisEuclidXYZ_RK5(x, y, z) result(distance)
490#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
491 !DEC$ ATTRIBUTES DLLEXPORT :: getDisEuclidXYZ_RK5
492#endif
493 use pm_kind, only: RKG => RK5
494 real(RKG) , intent(in) :: x, y, z
495 real(RKG) :: distance
496 end function
497#endif
498
499#if RK4_ENABLED
500 pure elemental module function getDisEuclidXYZ_RK4(x, y, z) result(distance)
501#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
502 !DEC$ ATTRIBUTES DLLEXPORT :: getDisEuclidXYZ_RK4
503#endif
504 use pm_kind, only: RKG => RK4
505 real(RKG) , intent(in) :: x, y, z
506 real(RKG) :: distance
507 end function
508#endif
509
510#if RK3_ENABLED
511 PURE elemental module function getDisEuclidXYZ_RK3(x, y, z) result(distance)
512#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
513 !DEC$ ATTRIBUTES DLLEXPORT :: getDisEuclidXYZ_RK3
514#endif
515 use pm_kind, only: RKG => RK3
516 real(RKG) , intent(in) :: x, y, z
517 real(RKG) :: distance
518 end function
519#endif
520
521#if RK2_ENABLED
522 PURE elemental module function getDisEuclidXYZ_RK2(x, y, z) result(distance)
523#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
524 !DEC$ ATTRIBUTES DLLEXPORT :: getDisEuclidXYZ_RK2
525#endif
526 use pm_kind, only: RKG => RK2
527 real(RKG) , intent(in) :: x, y, z
528 real(RKG) :: distance
529 end function
530#endif
531
532#if RK1_ENABLED
533 PURE elemental module function getDisEuclidXYZ_RK1(x, y, z) result(distance)
534#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
535 !DEC$ ATTRIBUTES DLLEXPORT :: getDisEuclidXYZ_RK1
536#endif
537 use pm_kind, only: RKG => RK1
538 real(RKG) , intent(in) :: x, y, z
539 real(RKG) :: distance
540 end function
541#endif
542
543 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
544
545 end interface
546
547 ! vector, matrix
548
549 interface getDisEuclid
550
551 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
552 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
553 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
554
555 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
556
557#if RK5_ENABLED
558 PURE module function getDE_D1_XX_RK5(point, method) result(distance)
559#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
560 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D1_XX_RK5
561#endif
562 use pm_kind, only: RKG => RK5
563 real(RKG) , intent(in) , contiguous :: point(:)
564 real(RKG) :: distance
565 class(*) , intent(in) , optional :: method
566 end function
567#endif
568
569#if RK4_ENABLED
570 PURE module function getDE_D1_XX_RK4(point, method) result(distance)
571#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
572 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D1_XX_RK4
573#endif
574 use pm_kind, only: RKG => RK4
575 real(RKG) , intent(in) , contiguous :: point(:)
576 real(RKG) :: distance
577 class(*) , intent(in) , optional :: method
578 end function
579#endif
580
581#if RK3_ENABLED
582 PURE module function getDE_D1_XX_RK3(point, method) result(distance)
583#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
584 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D1_XX_RK3
585#endif
586 use pm_kind, only: RKG => RK3
587 real(RKG) , intent(in) , contiguous :: point(:)
588 real(RKG) :: distance
589 class(*) , intent(in) , optional :: method
590 end function
591#endif
592
593#if RK2_ENABLED
594 PURE module function getDE_D1_XX_RK2(point, method) result(distance)
595#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
596 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D1_XX_RK2
597#endif
598 use pm_kind, only: RKG => RK2
599 real(RKG) , intent(in) , contiguous :: point(:)
600 real(RKG) :: distance
601 class(*) , intent(in) , optional :: method
602 end function
603#endif
604
605#if RK1_ENABLED
606 PURE module function getDE_D1_XX_RK1(point, method) result(distance)
607#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
608 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D1_XX_RK1
609#endif
610 use pm_kind, only: RKG => RK1
611 real(RKG) , intent(in) , contiguous :: point(:)
612 real(RKG) :: distance
613 class(*) , intent(in) , optional :: method
614 end function
615#endif
616
617 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
618
619#if RK5_ENABLED
620 PURE module function getDE_D2_XX_RK5(point, method) result(distance)
621#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
622 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D2_XX_RK5
623#endif
624 use pm_kind, only: RKG => RK5
625 real(RKG) , intent(in) , contiguous :: point(:,:)
626 real(RKG) :: distance(size(point, 2, IK))
627 class(*) , intent(in) , optional :: method
628 end function
629#endif
630
631#if RK4_ENABLED
632 PURE module function getDE_D2_XX_RK4(point, method) result(distance)
633#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
634 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D2_XX_RK4
635#endif
636 use pm_kind, only: RKG => RK4
637 real(RKG) , intent(in) , contiguous :: point(:,:)
638 real(RKG) :: distance(size(point, 2, IK))
639 class(*) , intent(in) , optional :: method
640 end function
641#endif
642
643#if RK3_ENABLED
644 PURE module function getDE_D2_XX_RK3(point, method) result(distance)
645#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
646 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D2_XX_RK3
647#endif
648 use pm_kind, only: RKG => RK3
649 real(RKG) , intent(in) , contiguous :: point(:,:)
650 real(RKG) :: distance(size(point, 2, IK))
651 class(*) , intent(in) , optional :: method
652 end function
653#endif
654
655#if RK2_ENABLED
656 PURE module function getDE_D2_XX_RK2(point, method) result(distance)
657#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
658 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D2_XX_RK2
659#endif
660 use pm_kind, only: RKG => RK2
661 real(RKG) , intent(in) , contiguous :: point(:,:)
662 real(RKG) :: distance(size(point, 2, IK))
663 class(*) , intent(in) , optional :: method
664 end function
665#endif
666
667#if RK1_ENABLED
668 PURE module function getDE_D2_XX_RK1(point, method) result(distance)
669#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
670 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D2_XX_RK1
671#endif
672 use pm_kind, only: RKG => RK1
673 real(RKG) , intent(in) , contiguous :: point(:,:)
674 real(RKG) :: distance(size(point, 2, IK))
675 class(*) , intent(in) , optional :: method
676 end function
677#endif
678
679 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
680
681 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
682 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
683 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
684
685 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
686
687#if RK5_ENABLED
688 PURE module function getDE_D1_D1_RK5(point, ref, method) result(distance)
689#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
690 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D1_D1_RK5
691#endif
692 use pm_kind, only: RKG => RK5
693 real(RKG) , intent(in) , contiguous :: ref(:)
694 real(RKG) , intent(in) , contiguous :: point(:)
695 real(RKG) :: distance
696 class(*) , intent(in) , optional :: method
697 end function
698#endif
699
700#if RK4_ENABLED
701 PURE module function getDE_D1_D1_RK4(point, ref, method) result(distance)
702#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
703 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D1_D1_RK4
704#endif
705 use pm_kind, only: RKG => RK4
706 real(RKG) , intent(in) , contiguous :: ref(:)
707 real(RKG) , intent(in) , contiguous :: point(:)
708 real(RKG) :: distance
709 class(*) , intent(in) , optional :: method
710 end function
711#endif
712
713#if RK3_ENABLED
714 PURE module function getDE_D1_D1_RK3(point, ref, method) result(distance)
715#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
716 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D1_D1_RK3
717#endif
718 use pm_kind, only: RKG => RK3
719 real(RKG) , intent(in) , contiguous :: ref(:)
720 real(RKG) , intent(in) , contiguous :: point(:)
721 real(RKG) :: distance
722 class(*) , intent(in) , optional :: method
723 end function
724#endif
725
726#if RK2_ENABLED
727 PURE module function getDE_D1_D1_RK2(point, ref, method) result(distance)
728#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
729 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D1_D1_RK2
730#endif
731 use pm_kind, only: RKG => RK2
732 real(RKG) , intent(in) , contiguous :: ref(:)
733 real(RKG) , intent(in) , contiguous :: point(:)
734 real(RKG) :: distance
735 class(*) , intent(in) , optional :: method
736 end function
737#endif
738
739#if RK1_ENABLED
740 PURE module function getDE_D1_D1_RK1(point, ref, method) result(distance)
741#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
742 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D1_D1_RK1
743#endif
744 use pm_kind, only: RKG => RK1
745 real(RKG) , intent(in) , contiguous :: ref(:)
746 real(RKG) , intent(in) , contiguous :: point(:)
747 real(RKG) :: distance
748 class(*) , intent(in) , optional :: method
749 end function
750#endif
751
752 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
753
754#if RK5_ENABLED
755 PURE module function getDE_D1_D2_RK5(point, ref, method) result(distance)
756#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
757 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D1_D2_RK5
758#endif
759 use pm_kind, only: RKG => RK5
760 real(RKG) , intent(in) , contiguous :: ref(:,:)
761 real(RKG) , intent(in) , contiguous :: point(:)
762 real(RKG) :: distance(size(ref, 2, IK))
763 class(*) , intent(in) , optional :: method
764 end function
765#endif
766
767#if RK4_ENABLED
768 PURE module function getDE_D1_D2_RK4(point, ref, method) result(distance)
769#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
770 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D1_D2_RK4
771#endif
772 use pm_kind, only: RKG => RK4
773 real(RKG) , intent(in) , contiguous :: ref(:,:)
774 real(RKG) , intent(in) , contiguous :: point(:)
775 real(RKG) :: distance(size(ref, 2, IK))
776 class(*) , intent(in) , optional :: method
777 end function
778#endif
779
780#if RK3_ENABLED
781 PURE module function getDE_D1_D2_RK3(point, ref, method) result(distance)
782#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
783 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D1_D2_RK3
784#endif
785 use pm_kind, only: RKG => RK3
786 real(RKG) , intent(in) , contiguous :: ref(:,:)
787 real(RKG) , intent(in) , contiguous :: point(:)
788 real(RKG) :: distance(size(ref, 2, IK))
789 class(*) , intent(in) , optional :: method
790 end function
791#endif
792
793#if RK2_ENABLED
794 PURE module function getDE_D1_D2_RK2(point, ref, method) result(distance)
795#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
796 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D1_D2_RK2
797#endif
798 use pm_kind, only: RKG => RK2
799 real(RKG) , intent(in) , contiguous :: ref(:,:)
800 real(RKG) , intent(in) , contiguous :: point(:)
801 real(RKG) :: distance(size(ref, 2, IK))
802 class(*) , intent(in) , optional :: method
803 end function
804#endif
805
806#if RK1_ENABLED
807 PURE module function getDE_D1_D2_RK1(point, ref, method) result(distance)
808#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
809 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D1_D2_RK1
810#endif
811 use pm_kind, only: RKG => RK1
812 real(RKG) , intent(in) , contiguous :: ref(:,:)
813 real(RKG) , intent(in) , contiguous :: point(:)
814 real(RKG) :: distance(size(ref, 2, IK))
815 class(*) , intent(in) , optional :: method
816 end function
817#endif
818
819 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
820
821#if RK5_ENABLED
822 PURE module function getDE_D2_D1_RK5(point, ref, method) result(distance)
823#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
824 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D2_D1_RK5
825#endif
826 use pm_kind, only: RKG => RK5
827 real(RKG) , intent(in) , contiguous :: ref(:)
828 real(RKG) , intent(in) , contiguous :: point(:,:)
829 real(RKG) :: distance(size(point, 2, IK))
830 class(*) , intent(in) , optional :: method
831 end function
832#endif
833
834#if RK4_ENABLED
835 PURE module function getDE_D2_D1_RK4(point, ref, method) result(distance)
836#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
837 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D2_D1_RK4
838#endif
839 use pm_kind, only: RKG => RK4
840 real(RKG) , intent(in) , contiguous :: ref(:)
841 real(RKG) , intent(in) , contiguous :: point(:,:)
842 real(RKG) :: distance(size(point, 2, IK))
843 class(*) , intent(in) , optional :: method
844 end function
845#endif
846
847#if RK3_ENABLED
848 PURE module function getDE_D2_D1_RK3(point, ref, method) result(distance)
849#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
850 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D2_D1_RK3
851#endif
852 use pm_kind, only: RKG => RK3
853 real(RKG) , intent(in) , contiguous :: ref(:)
854 real(RKG) , intent(in) , contiguous :: point(:,:)
855 real(RKG) :: distance(size(point, 2, IK))
856 class(*) , intent(in) , optional :: method
857 end function
858#endif
859
860#if RK2_ENABLED
861 PURE module function getDE_D2_D1_RK2(point, ref, method) result(distance)
862#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
863 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D2_D1_RK2
864#endif
865 use pm_kind, only: RKG => RK2
866 real(RKG) , intent(in) , contiguous :: ref(:)
867 real(RKG) , intent(in) , contiguous :: point(:,:)
868 real(RKG) :: distance(size(point, 2, IK))
869 class(*) , intent(in) , optional :: method
870 end function
871#endif
872
873#if RK1_ENABLED
874 PURE module function getDE_D2_D1_RK1(point, ref, method) result(distance)
875#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
876 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D2_D1_RK1
877#endif
878 use pm_kind, only: RKG => RK1
879 real(RKG) , intent(in) , contiguous :: ref(:)
880 real(RKG) , intent(in) , contiguous :: point(:,:)
881 real(RKG) :: distance(size(point, 2, IK))
882 class(*) , intent(in) , optional :: method
883 end function
884#endif
885
886 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
887
888#if RK5_ENABLED
889 PURE module function getDE_D2_D2_RK5(point, ref, method) result(distance)
890#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
891 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D2_D2_RK5
892#endif
893 use pm_kind, only: RKG => RK5
894 real(RKG) , intent(in) , contiguous :: ref(:,:)
895 real(RKG) , intent(in) , contiguous :: point(:,:)
896 real(RKG) :: distance(size(point, 2, IK), size(ref, 2, IK))
897 class(*) , intent(in) , optional :: method
898 end function
899#endif
900
901#if RK4_ENABLED
902 PURE module function getDE_D2_D2_RK4(point, ref, method) result(distance)
903#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
904 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D2_D2_RK4
905#endif
906 use pm_kind, only: RKG => RK4
907 real(RKG) , intent(in) , contiguous :: ref(:,:)
908 real(RKG) , intent(in) , contiguous :: point(:,:)
909 real(RKG) :: distance(size(point, 2, IK), size(ref, 2, IK))
910 class(*) , intent(in) , optional :: method
911 end function
912#endif
913
914#if RK3_ENABLED
915 PURE module function getDE_D2_D2_RK3(point, ref, method) result(distance)
916#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
917 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D2_D2_RK3
918#endif
919 use pm_kind, only: RKG => RK3
920 real(RKG) , intent(in) , contiguous :: ref(:,:)
921 real(RKG) , intent(in) , contiguous :: point(:,:)
922 real(RKG) :: distance(size(point, 2, IK), size(ref, 2, IK))
923 class(*) , intent(in) , optional :: method
924 end function
925#endif
926
927#if RK2_ENABLED
928 PURE module function getDE_D2_D2_RK2(point, ref, method) result(distance)
929#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
930 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D2_D2_RK2
931#endif
932 use pm_kind, only: RKG => RK2
933 real(RKG) , intent(in) , contiguous :: ref(:,:)
934 real(RKG) , intent(in) , contiguous :: point(:,:)
935 real(RKG) :: distance(size(point, 2, IK), size(ref, 2, IK))
936 class(*) , intent(in) , optional :: method
937 end function
938#endif
939
940#if RK1_ENABLED
941 PURE module function getDE_D2_D2_RK1(point, ref, method) result(distance)
942#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
943 !DEC$ ATTRIBUTES DLLEXPORT :: getDE_D2_D2_RK1
944#endif
945 use pm_kind, only: RKG => RK1
946 real(RKG) , intent(in) , contiguous :: ref(:,:)
947 real(RKG) , intent(in) , contiguous :: point(:,:)
948 real(RKG) :: distance(size(point, 2, IK), size(ref, 2, IK))
949 class(*) , intent(in) , optional :: method
950 end function
951#endif
952
953 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
954
955 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
956 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
957 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
958
959 end interface
960
961!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
962
1062
1063 ! euclid
1064
1066
1067 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1068 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1069 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1070
1071 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1072
1073#if RK5_ENABLED
1074 PURE module subroutine setDE_MED_D0_D1_XX_RK5(distance, point, method)
1075#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1076 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D0_D1_XX_RK5
1077#endif
1078 use pm_kind, only: RKG => RK5
1079 real(RKG) , intent(in) , contiguous :: point(:)
1080 real(RKG) , intent(out) :: distance
1081 type(euclid_type) , intent(in) :: method
1082 end subroutine
1083#endif
1084
1085#if RK4_ENABLED
1086 PURE module subroutine setDE_MED_D0_D1_XX_RK4(distance, point, method)
1087#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1088 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D0_D1_XX_RK4
1089#endif
1090 use pm_kind, only: RKG => RK4
1091 real(RKG) , intent(in) , contiguous :: point(:)
1092 real(RKG) , intent(out) :: distance
1093 type(euclid_type) , intent(in) :: method
1094 end subroutine
1095#endif
1096
1097#if RK3_ENABLED
1098 PURE module subroutine setDE_MED_D0_D1_XX_RK3(distance, point, method)
1099#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1100 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D0_D1_XX_RK3
1101#endif
1102 use pm_kind, only: RKG => RK3
1103 real(RKG) , intent(in) , contiguous :: point(:)
1104 real(RKG) , intent(out) :: distance
1105 type(euclid_type) , intent(in) :: method
1106 end subroutine
1107#endif
1108
1109#if RK2_ENABLED
1110 PURE module subroutine setDE_MED_D0_D1_XX_RK2(distance, point, method)
1111#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1112 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D0_D1_XX_RK2
1113#endif
1114 use pm_kind, only: RKG => RK2
1115 real(RKG) , intent(in) , contiguous :: point(:)
1116 real(RKG) , intent(out) :: distance
1117 type(euclid_type) , intent(in) :: method
1118 end subroutine
1119#endif
1120
1121#if RK1_ENABLED
1122 PURE module subroutine setDE_MED_D0_D1_XX_RK1(distance, point, method)
1123#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1124 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D0_D1_XX_RK1
1125#endif
1126 use pm_kind, only: RKG => RK1
1127 real(RKG) , intent(in) , contiguous :: point(:)
1128 real(RKG) , intent(out) :: distance
1129 type(euclid_type) , intent(in) :: method
1130 end subroutine
1131#endif
1132
1133 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1134
1135#if RK5_ENABLED
1136 PURE module subroutine setDE_MED_D1_D2_XX_RK5(distance, point, method)
1137#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1138 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D1_D2_XX_RK5
1139#endif
1140 use pm_kind, only: RKG => RK5
1141 real(RKG) , intent(in) , contiguous :: point(:,:)
1142 real(RKG) , intent(out) , contiguous :: distance(:)
1143 type(euclid_type) , intent(in) :: method
1144 end subroutine
1145#endif
1146
1147#if RK4_ENABLED
1148 PURE module subroutine setDE_MED_D1_D2_XX_RK4(distance, point, method)
1149#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1150 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D1_D2_XX_RK4
1151#endif
1152 use pm_kind, only: RKG => RK4
1153 real(RKG) , intent(in) , contiguous :: point(:,:)
1154 real(RKG) , intent(out) , contiguous :: distance(:)
1155 type(euclid_type) , intent(in) :: method
1156 end subroutine
1157#endif
1158
1159#if RK3_ENABLED
1160 PURE module subroutine setDE_MED_D1_D2_XX_RK3(distance, point, method)
1161#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1162 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D1_D2_XX_RK3
1163#endif
1164 use pm_kind, only: RKG => RK3
1165 real(RKG) , intent(in) , contiguous :: point(:,:)
1166 real(RKG) , intent(out) , contiguous :: distance(:)
1167 type(euclid_type) , intent(in) :: method
1168 end subroutine
1169#endif
1170
1171#if RK2_ENABLED
1172 PURE module subroutine setDE_MED_D1_D2_XX_RK2(distance, point, method)
1173#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1174 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D1_D2_XX_RK2
1175#endif
1176 use pm_kind, only: RKG => RK2
1177 real(RKG) , intent(in) , contiguous :: point(:,:)
1178 real(RKG) , intent(out) , contiguous :: distance(:)
1179 type(euclid_type) , intent(in) :: method
1180 end subroutine
1181#endif
1182
1183#if RK1_ENABLED
1184 PURE module subroutine setDE_MED_D1_D2_XX_RK1(distance, point, method)
1185#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1186 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D1_D2_XX_RK1
1187#endif
1188 use pm_kind, only: RKG => RK1
1189 real(RKG) , intent(in) , contiguous :: point(:,:)
1190 real(RKG) , intent(out) , contiguous :: distance(:)
1191 type(euclid_type) , intent(in) :: method
1192 end subroutine
1193#endif
1194
1195 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1196
1197 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1198 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1199 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1200
1201 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1202
1203#if RK5_ENABLED
1204 PURE module subroutine setDE_MED_D0_D1_D1_RK5(distance, point, ref, method)
1205#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1206 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D0_D1_D1_RK5
1207#endif
1208 use pm_kind, only: RKG => RK5
1209 real(RKG) , intent(in) , contiguous :: ref(:)
1210 real(RKG) , intent(in) , contiguous :: point(:)
1211 real(RKG) , intent(out) :: distance
1212 type(euclid_type) , intent(in) :: method
1213 end subroutine
1214#endif
1215
1216#if RK4_ENABLED
1217 PURE module subroutine setDE_MED_D0_D1_D1_RK4(distance, point, ref, method)
1218#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1219 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D0_D1_D1_RK4
1220#endif
1221 use pm_kind, only: RKG => RK4
1222 real(RKG) , intent(in) , contiguous :: ref(:)
1223 real(RKG) , intent(in) , contiguous :: point(:)
1224 real(RKG) , intent(out) :: distance
1225 type(euclid_type) , intent(in) :: method
1226 end subroutine
1227#endif
1228
1229#if RK3_ENABLED
1230 PURE module subroutine setDE_MED_D0_D1_D1_RK3(distance, point, ref, method)
1231#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1232 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D0_D1_D1_RK3
1233#endif
1234 use pm_kind, only: RKG => RK3
1235 real(RKG) , intent(in) , contiguous :: ref(:)
1236 real(RKG) , intent(in) , contiguous :: point(:)
1237 real(RKG) , intent(out) :: distance
1238 type(euclid_type) , intent(in) :: method
1239 end subroutine
1240#endif
1241
1242#if RK2_ENABLED
1243 PURE module subroutine setDE_MED_D0_D1_D1_RK2(distance, point, ref, method)
1244#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1245 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D0_D1_D1_RK2
1246#endif
1247 use pm_kind, only: RKG => RK2
1248 real(RKG) , intent(in) , contiguous :: ref(:)
1249 real(RKG) , intent(in) , contiguous :: point(:)
1250 real(RKG) , intent(out) :: distance
1251 type(euclid_type) , intent(in) :: method
1252 end subroutine
1253#endif
1254
1255#if RK1_ENABLED
1256 PURE module subroutine setDE_MED_D0_D1_D1_RK1(distance, point, ref, method)
1257#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1258 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D0_D1_D1_RK1
1259#endif
1260 use pm_kind, only: RKG => RK1
1261 real(RKG) , intent(in) , contiguous :: ref(:)
1262 real(RKG) , intent(in) , contiguous :: point(:)
1263 real(RKG) , intent(out) :: distance
1264 type(euclid_type) , intent(in) :: method
1265 end subroutine
1266#endif
1267
1268 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1269
1270#if RK5_ENABLED
1271 PURE module subroutine setDE_MED_D1_D1_D2_RK5(distance, point, ref, method)
1272#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1273 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D1_D1_D2_RK5
1274#endif
1275 use pm_kind, only: RKG => RK5
1276 real(RKG) , intent(in) , contiguous :: ref(:,:)
1277 real(RKG) , intent(in) , contiguous :: point(:)
1278 real(RKG) , intent(out) , contiguous :: distance(:)
1279 type(euclid_type) , intent(in) :: method
1280 end subroutine
1281#endif
1282
1283#if RK4_ENABLED
1284 PURE module subroutine setDE_MED_D1_D1_D2_RK4(distance, point, ref, method)
1285#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1286 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D1_D1_D2_RK4
1287#endif
1288 use pm_kind, only: RKG => RK4
1289 real(RKG) , intent(in) , contiguous :: ref(:,:)
1290 real(RKG) , intent(in) , contiguous :: point(:)
1291 real(RKG) , intent(out) , contiguous :: distance(:)
1292 type(euclid_type) , intent(in) :: method
1293 end subroutine
1294#endif
1295
1296#if RK3_ENABLED
1297 PURE module subroutine setDE_MED_D1_D1_D2_RK3(distance, point, ref, method)
1298#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1299 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D1_D1_D2_RK3
1300#endif
1301 use pm_kind, only: RKG => RK3
1302 real(RKG) , intent(in) , contiguous :: ref(:,:)
1303 real(RKG) , intent(in) , contiguous :: point(:)
1304 real(RKG) , intent(out) , contiguous :: distance(:)
1305 type(euclid_type) , intent(in) :: method
1306 end subroutine
1307#endif
1308
1309#if RK2_ENABLED
1310 PURE module subroutine setDE_MED_D1_D1_D2_RK2(distance, point, ref, method)
1311#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1312 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D1_D1_D2_RK2
1313#endif
1314 use pm_kind, only: RKG => RK2
1315 real(RKG) , intent(in) , contiguous :: ref(:,:)
1316 real(RKG) , intent(in) , contiguous :: point(:)
1317 real(RKG) , intent(out) , contiguous :: distance(:)
1318 type(euclid_type) , intent(in) :: method
1319 end subroutine
1320#endif
1321
1322#if RK1_ENABLED
1323 PURE module subroutine setDE_MED_D1_D1_D2_RK1(distance, point, ref, method)
1324#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1325 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D1_D1_D2_RK1
1326#endif
1327 use pm_kind, only: RKG => RK1
1328 real(RKG) , intent(in) , contiguous :: ref(:,:)
1329 real(RKG) , intent(in) , contiguous :: point(:)
1330 real(RKG) , intent(out) , contiguous :: distance(:)
1331 type(euclid_type) , intent(in) :: method
1332 end subroutine
1333#endif
1334
1335 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1336
1337#if RK5_ENABLED
1338 PURE module subroutine setDE_MED_D1_D2_D1_RK5(distance, point, ref, method)
1339#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1340 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D1_D2_D1_RK5
1341#endif
1342 use pm_kind, only: RKG => RK5
1343 real(RKG) , intent(in) , contiguous :: ref(:)
1344 real(RKG) , intent(in) , contiguous :: point(:,:)
1345 real(RKG) , intent(out) , contiguous :: distance(:)
1346 type(euclid_type) , intent(in) :: method
1347 end subroutine
1348#endif
1349
1350#if RK4_ENABLED
1351 PURE module subroutine setDE_MED_D1_D2_D1_RK4(distance, point, ref, method)
1352#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1353 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D1_D2_D1_RK4
1354#endif
1355 use pm_kind, only: RKG => RK4
1356 real(RKG) , intent(in) , contiguous :: ref(:)
1357 real(RKG) , intent(in) , contiguous :: point(:,:)
1358 real(RKG) , intent(out) , contiguous :: distance(:)
1359 type(euclid_type) , intent(in) :: method
1360 end subroutine
1361#endif
1362
1363#if RK3_ENABLED
1364 PURE module subroutine setDE_MED_D1_D2_D1_RK3(distance, point, ref, method)
1365#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1366 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D1_D2_D1_RK3
1367#endif
1368 use pm_kind, only: RKG => RK3
1369 real(RKG) , intent(in) , contiguous :: ref(:)
1370 real(RKG) , intent(in) , contiguous :: point(:,:)
1371 real(RKG) , intent(out) , contiguous :: distance(:)
1372 type(euclid_type) , intent(in) :: method
1373 end subroutine
1374#endif
1375
1376#if RK2_ENABLED
1377 PURE module subroutine setDE_MED_D1_D2_D1_RK2(distance, point, ref, method)
1378#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1379 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D1_D2_D1_RK2
1380#endif
1381 use pm_kind, only: RKG => RK2
1382 real(RKG) , intent(in) , contiguous :: ref(:)
1383 real(RKG) , intent(in) , contiguous :: point(:,:)
1384 real(RKG) , intent(out) , contiguous :: distance(:)
1385 type(euclid_type) , intent(in) :: method
1386 end subroutine
1387#endif
1388
1389#if RK1_ENABLED
1390 PURE module subroutine setDE_MED_D1_D2_D1_RK1(distance, point, ref, method)
1391#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1392 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D1_D2_D1_RK1
1393#endif
1394 use pm_kind, only: RKG => RK1
1395 real(RKG) , intent(in) , contiguous :: ref(:)
1396 real(RKG) , intent(in) , contiguous :: point(:,:)
1397 real(RKG) , intent(out) , contiguous :: distance(:)
1398 type(euclid_type) , intent(in) :: method
1399 end subroutine
1400#endif
1401
1402 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1403
1404#if RK5_ENABLED
1405 PURE module subroutine setDE_MED_D2_D2_D2_RK5(distance, point, ref, method)
1406#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1407 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D2_D2_D2_RK5
1408#endif
1409 use pm_kind, only: RKG => RK5
1410 real(RKG) , intent(in) , contiguous :: ref(:,:)
1411 real(RKG) , intent(in) , contiguous :: point(:,:)
1412 real(RKG) , intent(out) , contiguous :: distance(:,:)
1413 type(euclid_type) , intent(in) :: method
1414 end subroutine
1415#endif
1416
1417#if RK4_ENABLED
1418 PURE module subroutine setDE_MED_D2_D2_D2_RK4(distance, point, ref, method)
1419#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1420 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D2_D2_D2_RK4
1421#endif
1422 use pm_kind, only: RKG => RK4
1423 real(RKG) , intent(in) , contiguous :: ref(:,:)
1424 real(RKG) , intent(in) , contiguous :: point(:,:)
1425 real(RKG) , intent(out) , contiguous :: distance(:,:)
1426 type(euclid_type) , intent(in) :: method
1427 end subroutine
1428#endif
1429
1430#if RK3_ENABLED
1431 PURE module subroutine setDE_MED_D2_D2_D2_RK3(distance, point, ref, method)
1432#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1433 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D2_D2_D2_RK3
1434#endif
1435 use pm_kind, only: RKG => RK3
1436 real(RKG) , intent(in) , contiguous :: ref(:,:)
1437 real(RKG) , intent(in) , contiguous :: point(:,:)
1438 real(RKG) , intent(out) , contiguous :: distance(:,:)
1439 type(euclid_type) , intent(in) :: method
1440 end subroutine
1441#endif
1442
1443#if RK2_ENABLED
1444 PURE module subroutine setDE_MED_D2_D2_D2_RK2(distance, point, ref, method)
1445#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1446 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D2_D2_D2_RK2
1447#endif
1448 use pm_kind, only: RKG => RK2
1449 real(RKG) , intent(in) , contiguous :: ref(:,:)
1450 real(RKG) , intent(in) , contiguous :: point(:,:)
1451 real(RKG) , intent(out) , contiguous :: distance(:,:)
1452 type(euclid_type) , intent(in) :: method
1453 end subroutine
1454#endif
1455
1456#if RK1_ENABLED
1457 PURE module subroutine setDE_MED_D2_D2_D2_RK1(distance, point, ref, method)
1458#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1459 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D2_D2_D2_RK1
1460#endif
1461 use pm_kind, only: RKG => RK1
1462 real(RKG) , intent(in) , contiguous :: ref(:,:)
1463 real(RKG) , intent(in) , contiguous :: point(:,:)
1464 real(RKG) , intent(out) , contiguous :: distance(:,:)
1465 type(euclid_type) , intent(in) :: method
1466 end subroutine
1467#endif
1468
1469 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1470
1471 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1472 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1473 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1474
1475#if RK5_ENABLED
1476 PURE module subroutine setDE_MED_D2_D1_D1_RK5(distance, point, ref, method)
1477#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1478 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D2_D1_D1_RK5
1479#endif
1480 use pm_kind, only: RKG => RK5
1481 real(RKG) , intent(in) , contiguous :: ref(:)
1482 real(RKG) , intent(in) , contiguous :: point(:)
1483 real(RKG) , intent(out) , contiguous :: distance(:,:)
1484 type(euclid_type) , intent(in) :: method
1485 end subroutine
1486#endif
1487
1488#if RK4_ENABLED
1489 PURE module subroutine setDE_MED_D2_D1_D1_RK4(distance, point, ref, method)
1490#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1491 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D2_D1_D1_RK4
1492#endif
1493 use pm_kind, only: RKG => RK4
1494 real(RKG) , intent(in) , contiguous :: ref(:)
1495 real(RKG) , intent(in) , contiguous :: point(:)
1496 real(RKG) , intent(out) , contiguous :: distance(:,:)
1497 type(euclid_type) , intent(in) :: method
1498 end subroutine
1499#endif
1500
1501#if RK3_ENABLED
1502 PURE module subroutine setDE_MED_D2_D1_D1_RK3(distance, point, ref, method)
1503#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1504 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D2_D1_D1_RK3
1505#endif
1506 use pm_kind, only: RKG => RK3
1507 real(RKG) , intent(in) , contiguous :: ref(:)
1508 real(RKG) , intent(in) , contiguous :: point(:)
1509 real(RKG) , intent(out) , contiguous :: distance(:,:)
1510 type(euclid_type) , intent(in) :: method
1511 end subroutine
1512#endif
1513
1514#if RK2_ENABLED
1515 PURE module subroutine setDE_MED_D2_D1_D1_RK2(distance, point, ref, method)
1516#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1517 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D2_D1_D1_RK2
1518#endif
1519 use pm_kind, only: RKG => RK2
1520 real(RKG) , intent(in) , contiguous :: ref(:)
1521 real(RKG) , intent(in) , contiguous :: point(:)
1522 real(RKG) , intent(out) , contiguous :: distance(:,:)
1523 type(euclid_type) , intent(in) :: method
1524 end subroutine
1525#endif
1526
1527#if RK1_ENABLED
1528 PURE module subroutine setDE_MED_D2_D1_D1_RK1(distance, point, ref, method)
1529#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1530 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MED_D2_D1_D1_RK1
1531#endif
1532 use pm_kind, only: RKG => RK1
1533 real(RKG) , intent(in) , contiguous :: ref(:)
1534 real(RKG) , intent(in) , contiguous :: point(:)
1535 real(RKG) , intent(out) , contiguous :: distance(:,:)
1536 type(euclid_type) , intent(in) :: method
1537 end subroutine
1538#endif
1539
1540 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1541
1542 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1543 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1544 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1545
1546 end interface
1547
1548 ! euclidu
1549
1550 interface setDisEuclid
1551
1552 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1553 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1554 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1555
1556 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1557
1558#if RK5_ENABLED
1559 PURE module subroutine setDE_MEU_D0_D1_XX_RK5(distance, point, method)
1560#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1561 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D0_D1_XX_RK5
1562#endif
1563 use pm_kind, only: RKG => RK5
1564 real(RKG) , intent(in) , contiguous :: point(:)
1565 real(RKG) , intent(out) :: distance
1566 type(euclidu_type) , intent(in) :: method
1567 end subroutine
1568#endif
1569
1570#if RK4_ENABLED
1571 PURE module subroutine setDE_MEU_D0_D1_XX_RK4(distance, point, method)
1572#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1573 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D0_D1_XX_RK4
1574#endif
1575 use pm_kind, only: RKG => RK4
1576 real(RKG) , intent(in) , contiguous :: point(:)
1577 real(RKG) , intent(out) :: distance
1578 type(euclidu_type) , intent(in) :: method
1579 end subroutine
1580#endif
1581
1582#if RK3_ENABLED
1583 PURE module subroutine setDE_MEU_D0_D1_XX_RK3(distance, point, method)
1584#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1585 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D0_D1_XX_RK3
1586#endif
1587 use pm_kind, only: RKG => RK3
1588 real(RKG) , intent(in) , contiguous :: point(:)
1589 real(RKG) , intent(out) :: distance
1590 type(euclidu_type) , intent(in) :: method
1591 end subroutine
1592#endif
1593
1594#if RK2_ENABLED
1595 PURE module subroutine setDE_MEU_D0_D1_XX_RK2(distance, point, method)
1596#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1597 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D0_D1_XX_RK2
1598#endif
1599 use pm_kind, only: RKG => RK2
1600 real(RKG) , intent(in) , contiguous :: point(:)
1601 real(RKG) , intent(out) :: distance
1602 type(euclidu_type) , intent(in) :: method
1603 end subroutine
1604#endif
1605
1606#if RK1_ENABLED
1607 PURE module subroutine setDE_MEU_D0_D1_XX_RK1(distance, point, method)
1608#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1609 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D0_D1_XX_RK1
1610#endif
1611 use pm_kind, only: RKG => RK1
1612 real(RKG) , intent(in) , contiguous :: point(:)
1613 real(RKG) , intent(out) :: distance
1614 type(euclidu_type) , intent(in) :: method
1615 end subroutine
1616#endif
1617
1618 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1619
1620#if RK5_ENABLED
1621 PURE module subroutine setDE_MEU_D1_D2_XX_RK5(distance, point, method)
1622#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1623 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D1_D2_XX_RK5
1624#endif
1625 use pm_kind, only: RKG => RK5
1626 real(RKG) , intent(in) , contiguous :: point(:,:)
1627 real(RKG) , intent(out) , contiguous :: distance(:)
1628 type(euclidu_type) , intent(in) :: method
1629 end subroutine
1630#endif
1631
1632#if RK4_ENABLED
1633 PURE module subroutine setDE_MEU_D1_D2_XX_RK4(distance, point, method)
1634#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1635 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D1_D2_XX_RK4
1636#endif
1637 use pm_kind, only: RKG => RK4
1638 real(RKG) , intent(in) , contiguous :: point(:,:)
1639 real(RKG) , intent(out) , contiguous :: distance(:)
1640 type(euclidu_type) , intent(in) :: method
1641 end subroutine
1642#endif
1643
1644#if RK3_ENABLED
1645 PURE module subroutine setDE_MEU_D1_D2_XX_RK3(distance, point, method)
1646#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1647 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D1_D2_XX_RK3
1648#endif
1649 use pm_kind, only: RKG => RK3
1650 real(RKG) , intent(in) , contiguous :: point(:,:)
1651 real(RKG) , intent(out) , contiguous :: distance(:)
1652 type(euclidu_type) , intent(in) :: method
1653 end subroutine
1654#endif
1655
1656#if RK2_ENABLED
1657 PURE module subroutine setDE_MEU_D1_D2_XX_RK2(distance, point, method)
1658#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1659 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D1_D2_XX_RK2
1660#endif
1661 use pm_kind, only: RKG => RK2
1662 real(RKG) , intent(in) , contiguous :: point(:,:)
1663 real(RKG) , intent(out) , contiguous :: distance(:)
1664 type(euclidu_type) , intent(in) :: method
1665 end subroutine
1666#endif
1667
1668#if RK1_ENABLED
1669 PURE module subroutine setDE_MEU_D1_D2_XX_RK1(distance, point, method)
1670#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1671 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D1_D2_XX_RK1
1672#endif
1673 use pm_kind, only: RKG => RK1
1674 real(RKG) , intent(in) , contiguous :: point(:,:)
1675 real(RKG) , intent(out) , contiguous :: distance(:)
1676 type(euclidu_type) , intent(in) :: method
1677 end subroutine
1678#endif
1679
1680 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1681
1682 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1683 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1684 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1685
1686 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1687
1688#if RK5_ENABLED
1689 PURE module subroutine setDE_MEU_D0_D1_D1_RK5(distance, point, ref, method)
1690#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1691 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D0_D1_D1_RK5
1692#endif
1693 use pm_kind, only: RKG => RK5
1694 real(RKG) , intent(in) , contiguous :: ref(:)
1695 real(RKG) , intent(in) , contiguous :: point(:)
1696 real(RKG) , intent(out) :: distance
1697 type(euclidu_type) , intent(in) :: method
1698 end subroutine
1699#endif
1700
1701#if RK4_ENABLED
1702 PURE module subroutine setDE_MEU_D0_D1_D1_RK4(distance, point, ref, method)
1703#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1704 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D0_D1_D1_RK4
1705#endif
1706 use pm_kind, only: RKG => RK4
1707 real(RKG) , intent(in) , contiguous :: ref(:)
1708 real(RKG) , intent(in) , contiguous :: point(:)
1709 real(RKG) , intent(out) :: distance
1710 type(euclidu_type) , intent(in) :: method
1711 end subroutine
1712#endif
1713
1714#if RK3_ENABLED
1715 PURE module subroutine setDE_MEU_D0_D1_D1_RK3(distance, point, ref, method)
1716#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1717 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D0_D1_D1_RK3
1718#endif
1719 use pm_kind, only: RKG => RK3
1720 real(RKG) , intent(in) , contiguous :: ref(:)
1721 real(RKG) , intent(in) , contiguous :: point(:)
1722 real(RKG) , intent(out) :: distance
1723 type(euclidu_type) , intent(in) :: method
1724 end subroutine
1725#endif
1726
1727#if RK2_ENABLED
1728 PURE module subroutine setDE_MEU_D0_D1_D1_RK2(distance, point, ref, method)
1729#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1730 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D0_D1_D1_RK2
1731#endif
1732 use pm_kind, only: RKG => RK2
1733 real(RKG) , intent(in) , contiguous :: ref(:)
1734 real(RKG) , intent(in) , contiguous :: point(:)
1735 real(RKG) , intent(out) :: distance
1736 type(euclidu_type) , intent(in) :: method
1737 end subroutine
1738#endif
1739
1740#if RK1_ENABLED
1741 PURE module subroutine setDE_MEU_D0_D1_D1_RK1(distance, point, ref, method)
1742#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1743 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D0_D1_D1_RK1
1744#endif
1745 use pm_kind, only: RKG => RK1
1746 real(RKG) , intent(in) , contiguous :: ref(:)
1747 real(RKG) , intent(in) , contiguous :: point(:)
1748 real(RKG) , intent(out) :: distance
1749 type(euclidu_type) , intent(in) :: method
1750 end subroutine
1751#endif
1752
1753 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1754
1755#if RK5_ENABLED
1756 PURE module subroutine setDE_MEU_D1_D1_D2_RK5(distance, point, ref, method)
1757#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1758 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D1_D1_D2_RK5
1759#endif
1760 use pm_kind, only: RKG => RK5
1761 real(RKG) , intent(in) , contiguous :: ref(:,:)
1762 real(RKG) , intent(in) , contiguous :: point(:)
1763 real(RKG) , intent(out) , contiguous :: distance(:)
1764 type(euclidu_type) , intent(in) :: method
1765 end subroutine
1766#endif
1767
1768#if RK4_ENABLED
1769 PURE module subroutine setDE_MEU_D1_D1_D2_RK4(distance, point, ref, method)
1770#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1771 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D1_D1_D2_RK4
1772#endif
1773 use pm_kind, only: RKG => RK4
1774 real(RKG) , intent(in) , contiguous :: ref(:,:)
1775 real(RKG) , intent(in) , contiguous :: point(:)
1776 real(RKG) , intent(out) , contiguous :: distance(:)
1777 type(euclidu_type) , intent(in) :: method
1778 end subroutine
1779#endif
1780
1781#if RK3_ENABLED
1782 PURE module subroutine setDE_MEU_D1_D1_D2_RK3(distance, point, ref, method)
1783#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1784 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D1_D1_D2_RK3
1785#endif
1786 use pm_kind, only: RKG => RK3
1787 real(RKG) , intent(in) , contiguous :: ref(:,:)
1788 real(RKG) , intent(in) , contiguous :: point(:)
1789 real(RKG) , intent(out) , contiguous :: distance(:)
1790 type(euclidu_type) , intent(in) :: method
1791 end subroutine
1792#endif
1793
1794#if RK2_ENABLED
1795 PURE module subroutine setDE_MEU_D1_D1_D2_RK2(distance, point, ref, method)
1796#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1797 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D1_D1_D2_RK2
1798#endif
1799 use pm_kind, only: RKG => RK2
1800 real(RKG) , intent(in) , contiguous :: ref(:,:)
1801 real(RKG) , intent(in) , contiguous :: point(:)
1802 real(RKG) , intent(out) , contiguous :: distance(:)
1803 type(euclidu_type) , intent(in) :: method
1804 end subroutine
1805#endif
1806
1807#if RK1_ENABLED
1808 PURE module subroutine setDE_MEU_D1_D1_D2_RK1(distance, point, ref, method)
1809#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1810 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D1_D1_D2_RK1
1811#endif
1812 use pm_kind, only: RKG => RK1
1813 real(RKG) , intent(in) , contiguous :: ref(:,:)
1814 real(RKG) , intent(in) , contiguous :: point(:)
1815 real(RKG) , intent(out) , contiguous :: distance(:)
1816 type(euclidu_type) , intent(in) :: method
1817 end subroutine
1818#endif
1819
1820 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1821
1822#if RK5_ENABLED
1823 PURE module subroutine setDE_MEU_D1_D2_D1_RK5(distance, point, ref, method)
1824#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1825 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D1_D2_D1_RK5
1826#endif
1827 use pm_kind, only: RKG => RK5
1828 real(RKG) , intent(in) , contiguous :: ref(:)
1829 real(RKG) , intent(in) , contiguous :: point(:,:)
1830 real(RKG) , intent(out) , contiguous :: distance(:)
1831 type(euclidu_type) , intent(in) :: method
1832 end subroutine
1833#endif
1834
1835#if RK4_ENABLED
1836 PURE module subroutine setDE_MEU_D1_D2_D1_RK4(distance, point, ref, method)
1837#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1838 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D1_D2_D1_RK4
1839#endif
1840 use pm_kind, only: RKG => RK4
1841 real(RKG) , intent(in) , contiguous :: ref(:)
1842 real(RKG) , intent(in) , contiguous :: point(:,:)
1843 real(RKG) , intent(out) , contiguous :: distance(:)
1844 type(euclidu_type) , intent(in) :: method
1845 end subroutine
1846#endif
1847
1848#if RK3_ENABLED
1849 PURE module subroutine setDE_MEU_D1_D2_D1_RK3(distance, point, ref, method)
1850#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1851 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D1_D2_D1_RK3
1852#endif
1853 use pm_kind, only: RKG => RK3
1854 real(RKG) , intent(in) , contiguous :: ref(:)
1855 real(RKG) , intent(in) , contiguous :: point(:,:)
1856 real(RKG) , intent(out) , contiguous :: distance(:)
1857 type(euclidu_type) , intent(in) :: method
1858 end subroutine
1859#endif
1860
1861#if RK2_ENABLED
1862 PURE module subroutine setDE_MEU_D1_D2_D1_RK2(distance, point, ref, method)
1863#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1864 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D1_D2_D1_RK2
1865#endif
1866 use pm_kind, only: RKG => RK2
1867 real(RKG) , intent(in) , contiguous :: ref(:)
1868 real(RKG) , intent(in) , contiguous :: point(:,:)
1869 real(RKG) , intent(out) , contiguous :: distance(:)
1870 type(euclidu_type) , intent(in) :: method
1871 end subroutine
1872#endif
1873
1874#if RK1_ENABLED
1875 PURE module subroutine setDE_MEU_D1_D2_D1_RK1(distance, point, ref, method)
1876#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1877 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D1_D2_D1_RK1
1878#endif
1879 use pm_kind, only: RKG => RK1
1880 real(RKG) , intent(in) , contiguous :: ref(:)
1881 real(RKG) , intent(in) , contiguous :: point(:,:)
1882 real(RKG) , intent(out) , contiguous :: distance(:)
1883 type(euclidu_type) , intent(in) :: method
1884 end subroutine
1885#endif
1886
1887 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1888
1889#if RK5_ENABLED
1890 PURE module subroutine setDE_MEU_D2_D2_D2_RK5(distance, point, ref, method)
1891#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1892 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D2_D2_D2_RK5
1893#endif
1894 use pm_kind, only: RKG => RK5
1895 real(RKG) , intent(in) , contiguous :: ref(:,:)
1896 real(RKG) , intent(in) , contiguous :: point(:,:)
1897 real(RKG) , intent(out) , contiguous :: distance(:,:)
1898 type(euclidu_type) , intent(in) :: method
1899 end subroutine
1900#endif
1901
1902#if RK4_ENABLED
1903 PURE module subroutine setDE_MEU_D2_D2_D2_RK4(distance, point, ref, method)
1904#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1905 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D2_D2_D2_RK4
1906#endif
1907 use pm_kind, only: RKG => RK4
1908 real(RKG) , intent(in) , contiguous :: ref(:,:)
1909 real(RKG) , intent(in) , contiguous :: point(:,:)
1910 real(RKG) , intent(out) , contiguous :: distance(:,:)
1911 type(euclidu_type) , intent(in) :: method
1912 end subroutine
1913#endif
1914
1915#if RK3_ENABLED
1916 PURE module subroutine setDE_MEU_D2_D2_D2_RK3(distance, point, ref, method)
1917#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1918 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D2_D2_D2_RK3
1919#endif
1920 use pm_kind, only: RKG => RK3
1921 real(RKG) , intent(in) , contiguous :: ref(:,:)
1922 real(RKG) , intent(in) , contiguous :: point(:,:)
1923 real(RKG) , intent(out) , contiguous :: distance(:,:)
1924 type(euclidu_type) , intent(in) :: method
1925 end subroutine
1926#endif
1927
1928#if RK2_ENABLED
1929 PURE module subroutine setDE_MEU_D2_D2_D2_RK2(distance, point, ref, method)
1930#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1931 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D2_D2_D2_RK2
1932#endif
1933 use pm_kind, only: RKG => RK2
1934 real(RKG) , intent(in) , contiguous :: ref(:,:)
1935 real(RKG) , intent(in) , contiguous :: point(:,:)
1936 real(RKG) , intent(out) , contiguous :: distance(:,:)
1937 type(euclidu_type) , intent(in) :: method
1938 end subroutine
1939#endif
1940
1941#if RK1_ENABLED
1942 PURE module subroutine setDE_MEU_D2_D2_D2_RK1(distance, point, ref, method)
1943#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1944 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D2_D2_D2_RK1
1945#endif
1946 use pm_kind, only: RKG => RK1
1947 real(RKG) , intent(in) , contiguous :: ref(:,:)
1948 real(RKG) , intent(in) , contiguous :: point(:,:)
1949 real(RKG) , intent(out) , contiguous :: distance(:,:)
1950 type(euclidu_type) , intent(in) :: method
1951 end subroutine
1952#endif
1953
1954 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1955
1956 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1957 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1958 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1959
1960#if RK5_ENABLED
1961 PURE module subroutine setDE_MEU_D2_D1_D1_RK5(distance, point, ref, method)
1962#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1963 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D2_D1_D1_RK5
1964#endif
1965 use pm_kind, only: RKG => RK5
1966 real(RKG) , intent(in) , contiguous :: ref(:)
1967 real(RKG) , intent(in) , contiguous :: point(:)
1968 real(RKG) , intent(out) , contiguous :: distance(:,:)
1969 type(euclidu_type) , intent(in) :: method
1970 end subroutine
1971#endif
1972
1973#if RK4_ENABLED
1974 PURE module subroutine setDE_MEU_D2_D1_D1_RK4(distance, point, ref, method)
1975#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1976 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D2_D1_D1_RK4
1977#endif
1978 use pm_kind, only: RKG => RK4
1979 real(RKG) , intent(in) , contiguous :: ref(:)
1980 real(RKG) , intent(in) , contiguous :: point(:)
1981 real(RKG) , intent(out) , contiguous :: distance(:,:)
1982 type(euclidu_type) , intent(in) :: method
1983 end subroutine
1984#endif
1985
1986#if RK3_ENABLED
1987 PURE module subroutine setDE_MEU_D2_D1_D1_RK3(distance, point, ref, method)
1988#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1989 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D2_D1_D1_RK3
1990#endif
1991 use pm_kind, only: RKG => RK3
1992 real(RKG) , intent(in) , contiguous :: ref(:)
1993 real(RKG) , intent(in) , contiguous :: point(:)
1994 real(RKG) , intent(out) , contiguous :: distance(:,:)
1995 type(euclidu_type) , intent(in) :: method
1996 end subroutine
1997#endif
1998
1999#if RK2_ENABLED
2000 PURE module subroutine setDE_MEU_D2_D1_D1_RK2(distance, point, ref, method)
2001#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2002 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D2_D1_D1_RK2
2003#endif
2004 use pm_kind, only: RKG => RK2
2005 real(RKG) , intent(in) , contiguous :: ref(:)
2006 real(RKG) , intent(in) , contiguous :: point(:)
2007 real(RKG) , intent(out) , contiguous :: distance(:,:)
2008 type(euclidu_type) , intent(in) :: method
2009 end subroutine
2010#endif
2011
2012#if RK1_ENABLED
2013 PURE module subroutine setDE_MEU_D2_D1_D1_RK1(distance, point, ref, method)
2014#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2015 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEU_D2_D1_D1_RK1
2016#endif
2017 use pm_kind, only: RKG => RK1
2018 real(RKG) , intent(in) , contiguous :: ref(:)
2019 real(RKG) , intent(in) , contiguous :: point(:)
2020 real(RKG) , intent(out) , contiguous :: distance(:,:)
2021 type(euclidu_type) , intent(in) :: method
2022 end subroutine
2023#endif
2024
2025 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2026
2027 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2028 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2029 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2030
2031 end interface
2032
2033 ! euclidv
2034
2035 interface setDisEuclid
2036
2037 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2038 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2039 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2040
2041 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2042
2043#if RK5_ENABLED
2044 PURE module subroutine setDE_MEV_D0_D1_XX_RK5(distance, point, method)
2045#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2046 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D0_D1_XX_RK5
2047#endif
2048 use pm_kind, only: RKG => RK5
2049 real(RKG) , intent(in) , contiguous :: point(:)
2050 real(RKG) , intent(out) :: distance
2051 type(euclidv_type) , intent(in) :: method
2052 end subroutine
2053#endif
2054
2055#if RK4_ENABLED
2056 PURE module subroutine setDE_MEV_D0_D1_XX_RK4(distance, point, method)
2057#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2058 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D0_D1_XX_RK4
2059#endif
2060 use pm_kind, only: RKG => RK4
2061 real(RKG) , intent(in) , contiguous :: point(:)
2062 real(RKG) , intent(out) :: distance
2063 type(euclidv_type) , intent(in) :: method
2064 end subroutine
2065#endif
2066
2067#if RK3_ENABLED
2068 PURE module subroutine setDE_MEV_D0_D1_XX_RK3(distance, point, method)
2069#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2070 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D0_D1_XX_RK3
2071#endif
2072 use pm_kind, only: RKG => RK3
2073 real(RKG) , intent(in) , contiguous :: point(:)
2074 real(RKG) , intent(out) :: distance
2075 type(euclidv_type) , intent(in) :: method
2076 end subroutine
2077#endif
2078
2079#if RK2_ENABLED
2080 PURE module subroutine setDE_MEV_D0_D1_XX_RK2(distance, point, method)
2081#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2082 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D0_D1_XX_RK2
2083#endif
2084 use pm_kind, only: RKG => RK2
2085 real(RKG) , intent(in) , contiguous :: point(:)
2086 real(RKG) , intent(out) :: distance
2087 type(euclidv_type) , intent(in) :: method
2088 end subroutine
2089#endif
2090
2091#if RK1_ENABLED
2092 PURE module subroutine setDE_MEV_D0_D1_XX_RK1(distance, point, method)
2093#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2094 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D0_D1_XX_RK1
2095#endif
2096 use pm_kind, only: RKG => RK1
2097 real(RKG) , intent(in) , contiguous :: point(:)
2098 real(RKG) , intent(out) :: distance
2099 type(euclidv_type) , intent(in) :: method
2100 end subroutine
2101#endif
2102
2103 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2104
2105#if RK5_ENABLED
2106 PURE module subroutine setDE_MEV_D1_D2_XX_RK5(distance, point, method)
2107#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2108 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D1_D2_XX_RK5
2109#endif
2110 use pm_kind, only: RKG => RK5
2111 real(RKG) , intent(in) , contiguous :: point(:,:)
2112 real(RKG) , intent(out) , contiguous :: distance(:)
2113 type(euclidv_type) , intent(in) :: method
2114 end subroutine
2115#endif
2116
2117#if RK4_ENABLED
2118 PURE module subroutine setDE_MEV_D1_D2_XX_RK4(distance, point, method)
2119#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2120 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D1_D2_XX_RK4
2121#endif
2122 use pm_kind, only: RKG => RK4
2123 real(RKG) , intent(in) , contiguous :: point(:,:)
2124 real(RKG) , intent(out) , contiguous :: distance(:)
2125 type(euclidv_type) , intent(in) :: method
2126 end subroutine
2127#endif
2128
2129#if RK3_ENABLED
2130 PURE module subroutine setDE_MEV_D1_D2_XX_RK3(distance, point, method)
2131#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2132 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D1_D2_XX_RK3
2133#endif
2134 use pm_kind, only: RKG => RK3
2135 real(RKG) , intent(in) , contiguous :: point(:,:)
2136 real(RKG) , intent(out) , contiguous :: distance(:)
2137 type(euclidv_type) , intent(in) :: method
2138 end subroutine
2139#endif
2140
2141#if RK2_ENABLED
2142 PURE module subroutine setDE_MEV_D1_D2_XX_RK2(distance, point, method)
2143#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2144 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D1_D2_XX_RK2
2145#endif
2146 use pm_kind, only: RKG => RK2
2147 real(RKG) , intent(in) , contiguous :: point(:,:)
2148 real(RKG) , intent(out) , contiguous :: distance(:)
2149 type(euclidv_type) , intent(in) :: method
2150 end subroutine
2151#endif
2152
2153#if RK1_ENABLED
2154 PURE module subroutine setDE_MEV_D1_D2_XX_RK1(distance, point, method)
2155#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2156 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D1_D2_XX_RK1
2157#endif
2158 use pm_kind, only: RKG => RK1
2159 real(RKG) , intent(in) , contiguous :: point(:,:)
2160 real(RKG) , intent(out) , contiguous :: distance(:)
2161 type(euclidv_type) , intent(in) :: method
2162 end subroutine
2163#endif
2164
2165 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2166
2167 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2168 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2169 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2170
2171 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2172
2173#if RK5_ENABLED
2174 PURE module subroutine setDE_MEV_D0_D1_D1_RK5(distance, point, ref, method)
2175#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2176 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D0_D1_D1_RK5
2177#endif
2178 use pm_kind, only: RKG => RK5
2179 real(RKG) , intent(in) , contiguous :: ref(:)
2180 real(RKG) , intent(in) , contiguous :: point(:)
2181 real(RKG) , intent(out) :: distance
2182 type(euclidv_type) , intent(in) :: method
2183 end subroutine
2184#endif
2185
2186#if RK4_ENABLED
2187 PURE module subroutine setDE_MEV_D0_D1_D1_RK4(distance, point, ref, method)
2188#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2189 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D0_D1_D1_RK4
2190#endif
2191 use pm_kind, only: RKG => RK4
2192 real(RKG) , intent(in) , contiguous :: ref(:)
2193 real(RKG) , intent(in) , contiguous :: point(:)
2194 real(RKG) , intent(out) :: distance
2195 type(euclidv_type) , intent(in) :: method
2196 end subroutine
2197#endif
2198
2199#if RK3_ENABLED
2200 PURE module subroutine setDE_MEV_D0_D1_D1_RK3(distance, point, ref, method)
2201#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2202 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D0_D1_D1_RK3
2203#endif
2204 use pm_kind, only: RKG => RK3
2205 real(RKG) , intent(in) , contiguous :: ref(:)
2206 real(RKG) , intent(in) , contiguous :: point(:)
2207 real(RKG) , intent(out) :: distance
2208 type(euclidv_type) , intent(in) :: method
2209 end subroutine
2210#endif
2211
2212#if RK2_ENABLED
2213 PURE module subroutine setDE_MEV_D0_D1_D1_RK2(distance, point, ref, method)
2214#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2215 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D0_D1_D1_RK2
2216#endif
2217 use pm_kind, only: RKG => RK2
2218 real(RKG) , intent(in) , contiguous :: ref(:)
2219 real(RKG) , intent(in) , contiguous :: point(:)
2220 real(RKG) , intent(out) :: distance
2221 type(euclidv_type) , intent(in) :: method
2222 end subroutine
2223#endif
2224
2225#if RK1_ENABLED
2226 PURE module subroutine setDE_MEV_D0_D1_D1_RK1(distance, point, ref, method)
2227#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2228 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D0_D1_D1_RK1
2229#endif
2230 use pm_kind, only: RKG => RK1
2231 real(RKG) , intent(in) , contiguous :: ref(:)
2232 real(RKG) , intent(in) , contiguous :: point(:)
2233 real(RKG) , intent(out) :: distance
2234 type(euclidv_type) , intent(in) :: method
2235 end subroutine
2236#endif
2237
2238 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2239
2240#if RK5_ENABLED
2241 PURE module subroutine setDE_MEV_D1_D1_D2_RK5(distance, point, ref, method)
2242#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2243 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D1_D1_D2_RK5
2244#endif
2245 use pm_kind, only: RKG => RK5
2246 real(RKG) , intent(in) , contiguous :: ref(:,:)
2247 real(RKG) , intent(in) , contiguous :: point(:)
2248 real(RKG) , intent(out) , contiguous :: distance(:)
2249 type(euclidv_type) , intent(in) :: method
2250 end subroutine
2251#endif
2252
2253#if RK4_ENABLED
2254 PURE module subroutine setDE_MEV_D1_D1_D2_RK4(distance, point, ref, method)
2255#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2256 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D1_D1_D2_RK4
2257#endif
2258 use pm_kind, only: RKG => RK4
2259 real(RKG) , intent(in) , contiguous :: ref(:,:)
2260 real(RKG) , intent(in) , contiguous :: point(:)
2261 real(RKG) , intent(out) , contiguous :: distance(:)
2262 type(euclidv_type) , intent(in) :: method
2263 end subroutine
2264#endif
2265
2266#if RK3_ENABLED
2267 PURE module subroutine setDE_MEV_D1_D1_D2_RK3(distance, point, ref, method)
2268#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2269 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D1_D1_D2_RK3
2270#endif
2271 use pm_kind, only: RKG => RK3
2272 real(RKG) , intent(in) , contiguous :: ref(:,:)
2273 real(RKG) , intent(in) , contiguous :: point(:)
2274 real(RKG) , intent(out) , contiguous :: distance(:)
2275 type(euclidv_type) , intent(in) :: method
2276 end subroutine
2277#endif
2278
2279#if RK2_ENABLED
2280 PURE module subroutine setDE_MEV_D1_D1_D2_RK2(distance, point, ref, method)
2281#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2282 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D1_D1_D2_RK2
2283#endif
2284 use pm_kind, only: RKG => RK2
2285 real(RKG) , intent(in) , contiguous :: ref(:,:)
2286 real(RKG) , intent(in) , contiguous :: point(:)
2287 real(RKG) , intent(out) , contiguous :: distance(:)
2288 type(euclidv_type) , intent(in) :: method
2289 end subroutine
2290#endif
2291
2292#if RK1_ENABLED
2293 PURE module subroutine setDE_MEV_D1_D1_D2_RK1(distance, point, ref, method)
2294#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2295 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D1_D1_D2_RK1
2296#endif
2297 use pm_kind, only: RKG => RK1
2298 real(RKG) , intent(in) , contiguous :: ref(:,:)
2299 real(RKG) , intent(in) , contiguous :: point(:)
2300 real(RKG) , intent(out) , contiguous :: distance(:)
2301 type(euclidv_type) , intent(in) :: method
2302 end subroutine
2303#endif
2304
2305 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2306
2307#if RK5_ENABLED
2308 PURE module subroutine setDE_MEV_D1_D2_D1_RK5(distance, point, ref, method)
2309#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2310 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D1_D2_D1_RK5
2311#endif
2312 use pm_kind, only: RKG => RK5
2313 real(RKG) , intent(in) , contiguous :: ref(:)
2314 real(RKG) , intent(in) , contiguous :: point(:,:)
2315 real(RKG) , intent(out) , contiguous :: distance(:)
2316 type(euclidv_type) , intent(in) :: method
2317 end subroutine
2318#endif
2319
2320#if RK4_ENABLED
2321 PURE module subroutine setDE_MEV_D1_D2_D1_RK4(distance, point, ref, method)
2322#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2323 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D1_D2_D1_RK4
2324#endif
2325 use pm_kind, only: RKG => RK4
2326 real(RKG) , intent(in) , contiguous :: ref(:)
2327 real(RKG) , intent(in) , contiguous :: point(:,:)
2328 real(RKG) , intent(out) , contiguous :: distance(:)
2329 type(euclidv_type) , intent(in) :: method
2330 end subroutine
2331#endif
2332
2333#if RK3_ENABLED
2334 PURE module subroutine setDE_MEV_D1_D2_D1_RK3(distance, point, ref, method)
2335#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2336 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D1_D2_D1_RK3
2337#endif
2338 use pm_kind, only: RKG => RK3
2339 real(RKG) , intent(in) , contiguous :: ref(:)
2340 real(RKG) , intent(in) , contiguous :: point(:,:)
2341 real(RKG) , intent(out) , contiguous :: distance(:)
2342 type(euclidv_type) , intent(in) :: method
2343 end subroutine
2344#endif
2345
2346#if RK2_ENABLED
2347 PURE module subroutine setDE_MEV_D1_D2_D1_RK2(distance, point, ref, method)
2348#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2349 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D1_D2_D1_RK2
2350#endif
2351 use pm_kind, only: RKG => RK2
2352 real(RKG) , intent(in) , contiguous :: ref(:)
2353 real(RKG) , intent(in) , contiguous :: point(:,:)
2354 real(RKG) , intent(out) , contiguous :: distance(:)
2355 type(euclidv_type) , intent(in) :: method
2356 end subroutine
2357#endif
2358
2359#if RK1_ENABLED
2360 PURE module subroutine setDE_MEV_D1_D2_D1_RK1(distance, point, ref, method)
2361#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2362 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D1_D2_D1_RK1
2363#endif
2364 use pm_kind, only: RKG => RK1
2365 real(RKG) , intent(in) , contiguous :: ref(:)
2366 real(RKG) , intent(in) , contiguous :: point(:,:)
2367 real(RKG) , intent(out) , contiguous :: distance(:)
2368 type(euclidv_type) , intent(in) :: method
2369 end subroutine
2370#endif
2371
2372 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2373
2374#if RK5_ENABLED
2375 PURE module subroutine setDE_MEV_D2_D2_D2_RK5(distance, point, ref, method)
2376#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2377 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D2_D2_D2_RK5
2378#endif
2379 use pm_kind, only: RKG => RK5
2380 real(RKG) , intent(in) , contiguous :: ref(:,:)
2381 real(RKG) , intent(in) , contiguous :: point(:,:)
2382 real(RKG) , intent(out) , contiguous :: distance(:,:)
2383 type(euclidv_type) , intent(in) :: method
2384 end subroutine
2385#endif
2386
2387#if RK4_ENABLED
2388 PURE module subroutine setDE_MEV_D2_D2_D2_RK4(distance, point, ref, method)
2389#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2390 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D2_D2_D2_RK4
2391#endif
2392 use pm_kind, only: RKG => RK4
2393 real(RKG) , intent(in) , contiguous :: ref(:,:)
2394 real(RKG) , intent(in) , contiguous :: point(:,:)
2395 real(RKG) , intent(out) , contiguous :: distance(:,:)
2396 type(euclidv_type) , intent(in) :: method
2397 end subroutine
2398#endif
2399
2400#if RK3_ENABLED
2401 PURE module subroutine setDE_MEV_D2_D2_D2_RK3(distance, point, ref, method)
2402#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2403 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D2_D2_D2_RK3
2404#endif
2405 use pm_kind, only: RKG => RK3
2406 real(RKG) , intent(in) , contiguous :: ref(:,:)
2407 real(RKG) , intent(in) , contiguous :: point(:,:)
2408 real(RKG) , intent(out) , contiguous :: distance(:,:)
2409 type(euclidv_type) , intent(in) :: method
2410 end subroutine
2411#endif
2412
2413#if RK2_ENABLED
2414 PURE module subroutine setDE_MEV_D2_D2_D2_RK2(distance, point, ref, method)
2415#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2416 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D2_D2_D2_RK2
2417#endif
2418 use pm_kind, only: RKG => RK2
2419 real(RKG) , intent(in) , contiguous :: ref(:,:)
2420 real(RKG) , intent(in) , contiguous :: point(:,:)
2421 real(RKG) , intent(out) , contiguous :: distance(:,:)
2422 type(euclidv_type) , intent(in) :: method
2423 end subroutine
2424#endif
2425
2426#if RK1_ENABLED
2427 PURE module subroutine setDE_MEV_D2_D2_D2_RK1(distance, point, ref, method)
2428#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2429 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D2_D2_D2_RK1
2430#endif
2431 use pm_kind, only: RKG => RK1
2432 real(RKG) , intent(in) , contiguous :: ref(:,:)
2433 real(RKG) , intent(in) , contiguous :: point(:,:)
2434 real(RKG) , intent(out) , contiguous :: distance(:,:)
2435 type(euclidv_type) , intent(in) :: method
2436 end subroutine
2437#endif
2438
2439 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2440
2441 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2442 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2443 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2444
2445#if RK5_ENABLED
2446 PURE module subroutine setDE_MEV_D2_D1_D1_RK5(distance, point, ref, method)
2447#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2448 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D2_D1_D1_RK5
2449#endif
2450 use pm_kind, only: RKG => RK5
2451 real(RKG) , intent(in) , contiguous :: ref(:)
2452 real(RKG) , intent(in) , contiguous :: point(:)
2453 real(RKG) , intent(out) , contiguous :: distance(:,:)
2454 type(euclidv_type) , intent(in) :: method
2455 end subroutine
2456#endif
2457
2458#if RK4_ENABLED
2459 PURE module subroutine setDE_MEV_D2_D1_D1_RK4(distance, point, ref, method)
2460#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2461 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D2_D1_D1_RK4
2462#endif
2463 use pm_kind, only: RKG => RK4
2464 real(RKG) , intent(in) , contiguous :: ref(:)
2465 real(RKG) , intent(in) , contiguous :: point(:)
2466 real(RKG) , intent(out) , contiguous :: distance(:,:)
2467 type(euclidv_type) , intent(in) :: method
2468 end subroutine
2469#endif
2470
2471#if RK3_ENABLED
2472 PURE module subroutine setDE_MEV_D2_D1_D1_RK3(distance, point, ref, method)
2473#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2474 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D2_D1_D1_RK3
2475#endif
2476 use pm_kind, only: RKG => RK3
2477 real(RKG) , intent(in) , contiguous :: ref(:)
2478 real(RKG) , intent(in) , contiguous :: point(:)
2479 real(RKG) , intent(out) , contiguous :: distance(:,:)
2480 type(euclidv_type) , intent(in) :: method
2481 end subroutine
2482#endif
2483
2484#if RK2_ENABLED
2485 PURE module subroutine setDE_MEV_D2_D1_D1_RK2(distance, point, ref, method)
2486#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2487 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D2_D1_D1_RK2
2488#endif
2489 use pm_kind, only: RKG => RK2
2490 real(RKG) , intent(in) , contiguous :: ref(:)
2491 real(RKG) , intent(in) , contiguous :: point(:)
2492 real(RKG) , intent(out) , contiguous :: distance(:,:)
2493 type(euclidv_type) , intent(in) :: method
2494 end subroutine
2495#endif
2496
2497#if RK1_ENABLED
2498 PURE module subroutine setDE_MEV_D2_D1_D1_RK1(distance, point, ref, method)
2499#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2500 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEV_D2_D1_D1_RK1
2501#endif
2502 use pm_kind, only: RKG => RK1
2503 real(RKG) , intent(in) , contiguous :: ref(:)
2504 real(RKG) , intent(in) , contiguous :: point(:)
2505 real(RKG) , intent(out) , contiguous :: distance(:,:)
2506 type(euclidv_type) , intent(in) :: method
2507 end subroutine
2508#endif
2509
2510 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2511
2512 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2513 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2514 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2515
2516 end interface
2517
2518 ! euclidsq
2519
2520 interface setDisEuclid
2521
2522 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2523 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2524 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2525
2526 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2527
2528#if RK5_ENABLED
2529 PURE module subroutine setDE_MEQ_D0_D1_XX_RK5(distance, point, method)
2530#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2531 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D0_D1_XX_RK5
2532#endif
2533 use pm_kind, only: RKG => RK5
2534 real(RKG) , intent(in) , contiguous :: point(:)
2535 real(RKG) , intent(out) :: distance
2536 type(euclidsq_type) , intent(in) :: method
2537 end subroutine
2538#endif
2539
2540#if RK4_ENABLED
2541 PURE module subroutine setDE_MEQ_D0_D1_XX_RK4(distance, point, method)
2542#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2543 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D0_D1_XX_RK4
2544#endif
2545 use pm_kind, only: RKG => RK4
2546 real(RKG) , intent(in) , contiguous :: point(:)
2547 real(RKG) , intent(out) :: distance
2548 type(euclidsq_type) , intent(in) :: method
2549 end subroutine
2550#endif
2551
2552#if RK3_ENABLED
2553 PURE module subroutine setDE_MEQ_D0_D1_XX_RK3(distance, point, method)
2554#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2555 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D0_D1_XX_RK3
2556#endif
2557 use pm_kind, only: RKG => RK3
2558 real(RKG) , intent(in) , contiguous :: point(:)
2559 real(RKG) , intent(out) :: distance
2560 type(euclidsq_type) , intent(in) :: method
2561 end subroutine
2562#endif
2563
2564#if RK2_ENABLED
2565 PURE module subroutine setDE_MEQ_D0_D1_XX_RK2(distance, point, method)
2566#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2567 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D0_D1_XX_RK2
2568#endif
2569 use pm_kind, only: RKG => RK2
2570 real(RKG) , intent(in) , contiguous :: point(:)
2571 real(RKG) , intent(out) :: distance
2572 type(euclidsq_type) , intent(in) :: method
2573 end subroutine
2574#endif
2575
2576#if RK1_ENABLED
2577 PURE module subroutine setDE_MEQ_D0_D1_XX_RK1(distance, point, method)
2578#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2579 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D0_D1_XX_RK1
2580#endif
2581 use pm_kind, only: RKG => RK1
2582 real(RKG) , intent(in) , contiguous :: point(:)
2583 real(RKG) , intent(out) :: distance
2584 type(euclidsq_type) , intent(in) :: method
2585 end subroutine
2586#endif
2587
2588 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2589
2590#if RK5_ENABLED
2591 PURE module subroutine setDE_MEQ_D1_D2_XX_RK5(distance, point, method)
2592#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2593 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D1_D2_XX_RK5
2594#endif
2595 use pm_kind, only: RKG => RK5
2596 real(RKG) , intent(in) , contiguous :: point(:,:)
2597 real(RKG) , intent(out) , contiguous :: distance(:)
2598 type(euclidsq_type) , intent(in) :: method
2599 end subroutine
2600#endif
2601
2602#if RK4_ENABLED
2603 PURE module subroutine setDE_MEQ_D1_D2_XX_RK4(distance, point, method)
2604#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2605 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D1_D2_XX_RK4
2606#endif
2607 use pm_kind, only: RKG => RK4
2608 real(RKG) , intent(in) , contiguous :: point(:,:)
2609 real(RKG) , intent(out) , contiguous :: distance(:)
2610 type(euclidsq_type) , intent(in) :: method
2611 end subroutine
2612#endif
2613
2614#if RK3_ENABLED
2615 PURE module subroutine setDE_MEQ_D1_D2_XX_RK3(distance, point, method)
2616#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2617 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D1_D2_XX_RK3
2618#endif
2619 use pm_kind, only: RKG => RK3
2620 real(RKG) , intent(in) , contiguous :: point(:,:)
2621 real(RKG) , intent(out) , contiguous :: distance(:)
2622 type(euclidsq_type) , intent(in) :: method
2623 end subroutine
2624#endif
2625
2626#if RK2_ENABLED
2627 PURE module subroutine setDE_MEQ_D1_D2_XX_RK2(distance, point, method)
2628#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2629 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D1_D2_XX_RK2
2630#endif
2631 use pm_kind, only: RKG => RK2
2632 real(RKG) , intent(in) , contiguous :: point(:,:)
2633 real(RKG) , intent(out) , contiguous :: distance(:)
2634 type(euclidsq_type) , intent(in) :: method
2635 end subroutine
2636#endif
2637
2638#if RK1_ENABLED
2639 PURE module subroutine setDE_MEQ_D1_D2_XX_RK1(distance, point, method)
2640#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2641 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D1_D2_XX_RK1
2642#endif
2643 use pm_kind, only: RKG => RK1
2644 real(RKG) , intent(in) , contiguous :: point(:,:)
2645 real(RKG) , intent(out) , contiguous :: distance(:)
2646 type(euclidsq_type) , intent(in) :: method
2647 end subroutine
2648#endif
2649
2650 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2651
2652 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2653 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2654 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2655
2656 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2657
2658#if RK5_ENABLED
2659 PURE module subroutine setDE_MEQ_D0_D1_D1_RK5(distance, point, ref, method)
2660#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2661 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D0_D1_D1_RK5
2662#endif
2663 use pm_kind, only: RKG => RK5
2664 real(RKG) , intent(in) , contiguous :: ref(:)
2665 real(RKG) , intent(in) , contiguous :: point(:)
2666 real(RKG) , intent(out) :: distance
2667 type(euclidsq_type) , intent(in) :: method
2668 end subroutine
2669#endif
2670
2671#if RK4_ENABLED
2672 PURE module subroutine setDE_MEQ_D0_D1_D1_RK4(distance, point, ref, method)
2673#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2674 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D0_D1_D1_RK4
2675#endif
2676 use pm_kind, only: RKG => RK4
2677 real(RKG) , intent(in) , contiguous :: ref(:)
2678 real(RKG) , intent(in) , contiguous :: point(:)
2679 real(RKG) , intent(out) :: distance
2680 type(euclidsq_type) , intent(in) :: method
2681 end subroutine
2682#endif
2683
2684#if RK3_ENABLED
2685 PURE module subroutine setDE_MEQ_D0_D1_D1_RK3(distance, point, ref, method)
2686#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2687 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D0_D1_D1_RK3
2688#endif
2689 use pm_kind, only: RKG => RK3
2690 real(RKG) , intent(in) , contiguous :: ref(:)
2691 real(RKG) , intent(in) , contiguous :: point(:)
2692 real(RKG) , intent(out) :: distance
2693 type(euclidsq_type) , intent(in) :: method
2694 end subroutine
2695#endif
2696
2697#if RK2_ENABLED
2698 PURE module subroutine setDE_MEQ_D0_D1_D1_RK2(distance, point, ref, method)
2699#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2700 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D0_D1_D1_RK2
2701#endif
2702 use pm_kind, only: RKG => RK2
2703 real(RKG) , intent(in) , contiguous :: ref(:)
2704 real(RKG) , intent(in) , contiguous :: point(:)
2705 real(RKG) , intent(out) :: distance
2706 type(euclidsq_type) , intent(in) :: method
2707 end subroutine
2708#endif
2709
2710#if RK1_ENABLED
2711 PURE module subroutine setDE_MEQ_D0_D1_D1_RK1(distance, point, ref, method)
2712#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2713 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D0_D1_D1_RK1
2714#endif
2715 use pm_kind, only: RKG => RK1
2716 real(RKG) , intent(in) , contiguous :: ref(:)
2717 real(RKG) , intent(in) , contiguous :: point(:)
2718 real(RKG) , intent(out) :: distance
2719 type(euclidsq_type) , intent(in) :: method
2720 end subroutine
2721#endif
2722
2723 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2724
2725#if RK5_ENABLED
2726 PURE module subroutine setDE_MEQ_D1_D1_D2_RK5(distance, point, ref, method)
2727#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2728 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D1_D1_D2_RK5
2729#endif
2730 use pm_kind, only: RKG => RK5
2731 real(RKG) , intent(in) , contiguous :: ref(:,:)
2732 real(RKG) , intent(in) , contiguous :: point(:)
2733 real(RKG) , intent(out) , contiguous :: distance(:)
2734 type(euclidsq_type) , intent(in) :: method
2735 end subroutine
2736#endif
2737
2738#if RK4_ENABLED
2739 PURE module subroutine setDE_MEQ_D1_D1_D2_RK4(distance, point, ref, method)
2740#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2741 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D1_D1_D2_RK4
2742#endif
2743 use pm_kind, only: RKG => RK4
2744 real(RKG) , intent(in) , contiguous :: ref(:,:)
2745 real(RKG) , intent(in) , contiguous :: point(:)
2746 real(RKG) , intent(out) , contiguous :: distance(:)
2747 type(euclidsq_type) , intent(in) :: method
2748 end subroutine
2749#endif
2750
2751#if RK3_ENABLED
2752 PURE module subroutine setDE_MEQ_D1_D1_D2_RK3(distance, point, ref, method)
2753#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2754 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D1_D1_D2_RK3
2755#endif
2756 use pm_kind, only: RKG => RK3
2757 real(RKG) , intent(in) , contiguous :: ref(:,:)
2758 real(RKG) , intent(in) , contiguous :: point(:)
2759 real(RKG) , intent(out) , contiguous :: distance(:)
2760 type(euclidsq_type) , intent(in) :: method
2761 end subroutine
2762#endif
2763
2764#if RK2_ENABLED
2765 PURE module subroutine setDE_MEQ_D1_D1_D2_RK2(distance, point, ref, method)
2766#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2767 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D1_D1_D2_RK2
2768#endif
2769 use pm_kind, only: RKG => RK2
2770 real(RKG) , intent(in) , contiguous :: ref(:,:)
2771 real(RKG) , intent(in) , contiguous :: point(:)
2772 real(RKG) , intent(out) , contiguous :: distance(:)
2773 type(euclidsq_type) , intent(in) :: method
2774 end subroutine
2775#endif
2776
2777#if RK1_ENABLED
2778 PURE module subroutine setDE_MEQ_D1_D1_D2_RK1(distance, point, ref, method)
2779#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2780 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D1_D1_D2_RK1
2781#endif
2782 use pm_kind, only: RKG => RK1
2783 real(RKG) , intent(in) , contiguous :: ref(:,:)
2784 real(RKG) , intent(in) , contiguous :: point(:)
2785 real(RKG) , intent(out) , contiguous :: distance(:)
2786 type(euclidsq_type) , intent(in) :: method
2787 end subroutine
2788#endif
2789
2790 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2791
2792#if RK5_ENABLED
2793 PURE module subroutine setDE_MEQ_D1_D2_D1_RK5(distance, point, ref, method)
2794#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2795 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D1_D2_D1_RK5
2796#endif
2797 use pm_kind, only: RKG => RK5
2798 real(RKG) , intent(in) , contiguous :: ref(:)
2799 real(RKG) , intent(in) , contiguous :: point(:,:)
2800 real(RKG) , intent(out) , contiguous :: distance(:)
2801 type(euclidsq_type) , intent(in) :: method
2802 end subroutine
2803#endif
2804
2805#if RK4_ENABLED
2806 PURE module subroutine setDE_MEQ_D1_D2_D1_RK4(distance, point, ref, method)
2807#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2808 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D1_D2_D1_RK4
2809#endif
2810 use pm_kind, only: RKG => RK4
2811 real(RKG) , intent(in) , contiguous :: ref(:)
2812 real(RKG) , intent(in) , contiguous :: point(:,:)
2813 real(RKG) , intent(out) , contiguous :: distance(:)
2814 type(euclidsq_type) , intent(in) :: method
2815 end subroutine
2816#endif
2817
2818#if RK3_ENABLED
2819 PURE module subroutine setDE_MEQ_D1_D2_D1_RK3(distance, point, ref, method)
2820#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2821 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D1_D2_D1_RK3
2822#endif
2823 use pm_kind, only: RKG => RK3
2824 real(RKG) , intent(in) , contiguous :: ref(:)
2825 real(RKG) , intent(in) , contiguous :: point(:,:)
2826 real(RKG) , intent(out) , contiguous :: distance(:)
2827 type(euclidsq_type) , intent(in) :: method
2828 end subroutine
2829#endif
2830
2831#if RK2_ENABLED
2832 PURE module subroutine setDE_MEQ_D1_D2_D1_RK2(distance, point, ref, method)
2833#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2834 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D1_D2_D1_RK2
2835#endif
2836 use pm_kind, only: RKG => RK2
2837 real(RKG) , intent(in) , contiguous :: ref(:)
2838 real(RKG) , intent(in) , contiguous :: point(:,:)
2839 real(RKG) , intent(out) , contiguous :: distance(:)
2840 type(euclidsq_type) , intent(in) :: method
2841 end subroutine
2842#endif
2843
2844#if RK1_ENABLED
2845 PURE module subroutine setDE_MEQ_D1_D2_D1_RK1(distance, point, ref, method)
2846#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2847 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D1_D2_D1_RK1
2848#endif
2849 use pm_kind, only: RKG => RK1
2850 real(RKG) , intent(in) , contiguous :: ref(:)
2851 real(RKG) , intent(in) , contiguous :: point(:,:)
2852 real(RKG) , intent(out) , contiguous :: distance(:)
2853 type(euclidsq_type) , intent(in) :: method
2854 end subroutine
2855#endif
2856
2857 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2858
2859#if RK5_ENABLED
2860 PURE module subroutine setDE_MEQ_D2_D2_D2_RK5(distance, point, ref, method)
2861#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2862 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D2_D2_D2_RK5
2863#endif
2864 use pm_kind, only: RKG => RK5
2865 real(RKG) , intent(in) , contiguous :: ref(:,:)
2866 real(RKG) , intent(in) , contiguous :: point(:,:)
2867 real(RKG) , intent(out) , contiguous :: distance(:,:)
2868 type(euclidsq_type) , intent(in) :: method
2869 end subroutine
2870#endif
2871
2872#if RK4_ENABLED
2873 PURE module subroutine setDE_MEQ_D2_D2_D2_RK4(distance, point, ref, method)
2874#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2875 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D2_D2_D2_RK4
2876#endif
2877 use pm_kind, only: RKG => RK4
2878 real(RKG) , intent(in) , contiguous :: ref(:,:)
2879 real(RKG) , intent(in) , contiguous :: point(:,:)
2880 real(RKG) , intent(out) , contiguous :: distance(:,:)
2881 type(euclidsq_type) , intent(in) :: method
2882 end subroutine
2883#endif
2884
2885#if RK3_ENABLED
2886 PURE module subroutine setDE_MEQ_D2_D2_D2_RK3(distance, point, ref, method)
2887#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2888 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D2_D2_D2_RK3
2889#endif
2890 use pm_kind, only: RKG => RK3
2891 real(RKG) , intent(in) , contiguous :: ref(:,:)
2892 real(RKG) , intent(in) , contiguous :: point(:,:)
2893 real(RKG) , intent(out) , contiguous :: distance(:,:)
2894 type(euclidsq_type) , intent(in) :: method
2895 end subroutine
2896#endif
2897
2898#if RK2_ENABLED
2899 PURE module subroutine setDE_MEQ_D2_D2_D2_RK2(distance, point, ref, method)
2900#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2901 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D2_D2_D2_RK2
2902#endif
2903 use pm_kind, only: RKG => RK2
2904 real(RKG) , intent(in) , contiguous :: ref(:,:)
2905 real(RKG) , intent(in) , contiguous :: point(:,:)
2906 real(RKG) , intent(out) , contiguous :: distance(:,:)
2907 type(euclidsq_type) , intent(in) :: method
2908 end subroutine
2909#endif
2910
2911#if RK1_ENABLED
2912 PURE module subroutine setDE_MEQ_D2_D2_D2_RK1(distance, point, ref, method)
2913#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2914 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D2_D2_D2_RK1
2915#endif
2916 use pm_kind, only: RKG => RK1
2917 real(RKG) , intent(in) , contiguous :: ref(:,:)
2918 real(RKG) , intent(in) , contiguous :: point(:,:)
2919 real(RKG) , intent(out) , contiguous :: distance(:,:)
2920 type(euclidsq_type) , intent(in) :: method
2921 end subroutine
2922#endif
2923
2924 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2925
2926 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2927 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2928 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2929
2930#if RK5_ENABLED
2931 PURE module subroutine setDE_MEQ_D2_D1_D1_RK5(distance, point, ref, method)
2932#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2933 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D2_D1_D1_RK5
2934#endif
2935 use pm_kind, only: RKG => RK5
2936 real(RKG) , intent(in) , contiguous :: ref(:)
2937 real(RKG) , intent(in) , contiguous :: point(:)
2938 real(RKG) , intent(out) , contiguous :: distance(:,:)
2939 type(euclidsq_type) , intent(in) :: method
2940 end subroutine
2941#endif
2942
2943#if RK4_ENABLED
2944 PURE module subroutine setDE_MEQ_D2_D1_D1_RK4(distance, point, ref, method)
2945#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2946 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D2_D1_D1_RK4
2947#endif
2948 use pm_kind, only: RKG => RK4
2949 real(RKG) , intent(in) , contiguous :: ref(:)
2950 real(RKG) , intent(in) , contiguous :: point(:)
2951 real(RKG) , intent(out) , contiguous :: distance(:,:)
2952 type(euclidsq_type) , intent(in) :: method
2953 end subroutine
2954#endif
2955
2956#if RK3_ENABLED
2957 PURE module subroutine setDE_MEQ_D2_D1_D1_RK3(distance, point, ref, method)
2958#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2959 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D2_D1_D1_RK3
2960#endif
2961 use pm_kind, only: RKG => RK3
2962 real(RKG) , intent(in) , contiguous :: ref(:)
2963 real(RKG) , intent(in) , contiguous :: point(:)
2964 real(RKG) , intent(out) , contiguous :: distance(:,:)
2965 type(euclidsq_type) , intent(in) :: method
2966 end subroutine
2967#endif
2968
2969#if RK2_ENABLED
2970 PURE module subroutine setDE_MEQ_D2_D1_D1_RK2(distance, point, ref, method)
2971#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2972 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D2_D1_D1_RK2
2973#endif
2974 use pm_kind, only: RKG => RK2
2975 real(RKG) , intent(in) , contiguous :: ref(:)
2976 real(RKG) , intent(in) , contiguous :: point(:)
2977 real(RKG) , intent(out) , contiguous :: distance(:,:)
2978 type(euclidsq_type) , intent(in) :: method
2979 end subroutine
2980#endif
2981
2982#if RK1_ENABLED
2983 PURE module subroutine setDE_MEQ_D2_D1_D1_RK1(distance, point, ref, method)
2984#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2985 !DEC$ ATTRIBUTES DLLEXPORT :: setDE_MEQ_D2_D1_D1_RK1
2986#endif
2987 use pm_kind, only: RKG => RK1
2988 real(RKG) , intent(in) , contiguous :: ref(:)
2989 real(RKG) , intent(in) , contiguous :: point(:)
2990 real(RKG) , intent(out) , contiguous :: distance(:,:)
2991 type(euclidsq_type) , intent(in) :: method
2992 end subroutine
2993#endif
2994
2995 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2996
2997 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2998 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2999 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3000
3001 end interface
3002
3003!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3004
3107
3108 ! rdpack
3109
3111
3112 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3113 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3114 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3115
3116 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3117
3118#if RK5_ENABLED
3119 PURE module function getDME_RDP_FUL_RK5(point, method) result(distance)
3120#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3121 !DEC$ ATTRIBUTES DLLEXPORT :: getDME_RDP_FUL_RK5
3122#endif
3123 use pm_kind, only: RKG => RK5
3124 real(RKG) , intent(in) , contiguous :: point(:,:)
3125 real(RKG) :: distance(size(point, 2, IK), size(point, 2, IK))
3126 class(*) , intent(in) , optional :: method
3127 end function
3128#endif
3129
3130#if RK4_ENABLED
3131 PURE module function getDME_RDP_FUL_RK4(point, method) result(distance)
3132#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3133 !DEC$ ATTRIBUTES DLLEXPORT :: getDME_RDP_FUL_RK4
3134#endif
3135 use pm_kind, only: RKG => RK4
3136 real(RKG) , intent(in) , contiguous :: point(:,:)
3137 real(RKG) :: distance(size(point, 2, IK), size(point, 2, IK))
3138 class(*) , intent(in) , optional :: method
3139 end function
3140#endif
3141
3142#if RK3_ENABLED
3143 PURE module function getDME_RDP_FUL_RK3(point, method) result(distance)
3144#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3145 !DEC$ ATTRIBUTES DLLEXPORT :: getDME_RDP_FUL_RK3
3146#endif
3147 use pm_kind, only: RKG => RK3
3148 real(RKG) , intent(in) , contiguous :: point(:,:)
3149 real(RKG) :: distance(size(point, 2, IK), size(point, 2, IK))
3150 class(*) , intent(in) , optional :: method
3151 end function
3152#endif
3153
3154#if RK2_ENABLED
3155 PURE module function getDME_RDP_FUL_RK2(point, method) result(distance)
3156#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3157 !DEC$ ATTRIBUTES DLLEXPORT :: getDME_RDP_FUL_RK2
3158#endif
3159 use pm_kind, only: RKG => RK2
3160 real(RKG) , intent(in) , contiguous :: point(:,:)
3161 real(RKG) :: distance(size(point, 2, IK), size(point, 2, IK))
3162 class(*) , intent(in) , optional :: method
3163 end function
3164#endif
3165
3166#if RK1_ENABLED
3167 PURE module function getDME_RDP_FUL_RK1(point, method) result(distance)
3168#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3169 !DEC$ ATTRIBUTES DLLEXPORT :: getDME_RDP_FUL_RK1
3170#endif
3171 use pm_kind, only: RKG => RK1
3172 real(RKG) , intent(in) , contiguous :: point(:,:)
3173 real(RKG) :: distance(size(point, 2, IK), size(point, 2, IK))
3174 class(*) , intent(in) , optional :: method
3175 end function
3176#endif
3177
3178 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3179
3180#if RK5_ENABLED
3181 PURE module function getDME_RDP_ULD_RK5(pack, subset, point, method) result(distance)
3182#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3183 !DEC$ ATTRIBUTES DLLEXPORT :: getDME_RDP_ULD_RK5
3184#endif
3185 use pm_kind, only: RKG => RK5
3186 real(RKG) , intent(in) , contiguous :: point(:,:)
3187 real(RKG) :: distance(size(point, 2, IK), size(point, 2, IK))
3188 class(*) , intent(in) , optional :: method
3189 type(uppLowDia_type), intent(in) :: subset
3190 type(rdpack_type) , intent(in) :: pack
3191 end function
3192#endif
3193
3194#if RK4_ENABLED
3195 PURE module function getDME_RDP_ULD_RK4(pack, subset, point, method) result(distance)
3196#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3197 !DEC$ ATTRIBUTES DLLEXPORT :: getDME_RDP_ULD_RK4
3198#endif
3199 use pm_kind, only: RKG => RK4
3200 real(RKG) , intent(in) , contiguous :: point(:,:)
3201 real(RKG) :: distance(size(point, 2, IK), size(point, 2, IK))
3202 class(*) , intent(in) , optional :: method
3203 type(uppLowDia_type), intent(in) :: subset
3204 type(rdpack_type) , intent(in) :: pack
3205 end function
3206#endif
3207
3208#if RK3_ENABLED
3209 PURE module function getDME_RDP_ULD_RK3(pack, subset, point, method) result(distance)
3210#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3211 !DEC$ ATTRIBUTES DLLEXPORT :: getDME_RDP_ULD_RK3
3212#endif
3213 use pm_kind, only: RKG => RK3
3214 real(RKG) , intent(in) , contiguous :: point(:,:)
3215 real(RKG) :: distance(size(point, 2, IK), size(point, 2, IK))
3216 class(*) , intent(in) , optional :: method
3217 type(uppLowDia_type), intent(in) :: subset
3218 type(rdpack_type) , intent(in) :: pack
3219 end function
3220#endif
3221
3222#if RK2_ENABLED
3223 PURE module function getDME_RDP_ULD_RK2(pack, subset, point, method) result(distance)
3224#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3225 !DEC$ ATTRIBUTES DLLEXPORT :: getDME_RDP_ULD_RK2
3226#endif
3227 use pm_kind, only: RKG => RK2
3228 real(RKG) , intent(in) , contiguous :: point(:,:)
3229 real(RKG) :: distance(size(point, 2, IK), size(point, 2, IK))
3230 class(*) , intent(in) , optional :: method
3231 type(uppLowDia_type), intent(in) :: subset
3232 type(rdpack_type) , intent(in) :: pack
3233 end function
3234#endif
3235
3236#if RK1_ENABLED
3237 PURE module function getDME_RDP_ULD_RK1(pack, subset, point, method) result(distance)
3238#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3239 !DEC$ ATTRIBUTES DLLEXPORT :: getDME_RDP_ULD_RK1
3240#endif
3241 use pm_kind, only: RKG => RK1
3242 real(RKG) , intent(in) , contiguous :: point(:,:)
3243 real(RKG) :: distance(size(point, 2, IK), size(point, 2, IK))
3244 class(*) , intent(in) , optional :: method
3245 type(uppLowDia_type), intent(in) :: subset
3246 type(rdpack_type) , intent(in) :: pack
3247 end function
3248#endif
3249
3250 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3251
3252#if RK5_ENABLED
3253 PURE module function getDME_RDP_ULX_RK5(pack, subset, point, method) result(distance)
3254#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3255 !DEC$ ATTRIBUTES DLLEXPORT :: getDME_RDP_ULX_RK5
3256#endif
3257 use pm_kind, only: RKG => RK5
3258 real(RKG) , intent(in) , contiguous :: point(:,:)
3259 real(RKG) :: distance(size(point, 2, IK) - 1, size(point, 2, IK))
3260 class(*) , intent(in) , optional :: method
3261 type(uppLow_type) , intent(in) :: subset
3262 type(rdpack_type) , intent(in) :: pack
3263 end function
3264#endif
3265
3266#if RK4_ENABLED
3267 PURE module function getDME_RDP_ULX_RK4(pack, subset, point, method) result(distance)
3268#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3269 !DEC$ ATTRIBUTES DLLEXPORT :: getDME_RDP_ULX_RK4
3270#endif
3271 use pm_kind, only: RKG => RK4
3272 real(RKG) , intent(in) , contiguous :: point(:,:)
3273 real(RKG) :: distance(size(point, 2, IK) - 1, size(point, 2, IK))
3274 class(*) , intent(in) , optional :: method
3275 type(uppLow_type) , intent(in) :: subset
3276 type(rdpack_type) , intent(in) :: pack
3277 end function
3278#endif
3279
3280#if RK3_ENABLED
3281 PURE module function getDME_RDP_ULX_RK3(pack, subset, point, method) result(distance)
3282#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3283 !DEC$ ATTRIBUTES DLLEXPORT :: getDME_RDP_ULX_RK3
3284#endif
3285 use pm_kind, only: RKG => RK3
3286 real(RKG) , intent(in) , contiguous :: point(:,:)
3287 real(RKG) :: distance(size(point, 2, IK) - 1, size(point, 2, IK))
3288 class(*) , intent(in) , optional :: method
3289 type(uppLow_type) , intent(in) :: subset
3290 type(rdpack_type) , intent(in) :: pack
3291 end function
3292#endif
3293
3294#if RK2_ENABLED
3295 PURE module function getDME_RDP_ULX_RK2(pack, subset, point, method) result(distance)
3296#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3297 !DEC$ ATTRIBUTES DLLEXPORT :: getDME_RDP_ULX_RK2
3298#endif
3299 use pm_kind, only: RKG => RK2
3300 real(RKG) , intent(in) , contiguous :: point(:,:)
3301 real(RKG) :: distance(size(point, 2, IK) - 1, size(point, 2, IK))
3302 class(*) , intent(in) , optional :: method
3303 type(uppLow_type) , intent(in) :: subset
3304 type(rdpack_type) , intent(in) :: pack
3305 end function
3306#endif
3307
3308#if RK1_ENABLED
3309 PURE module function getDME_RDP_ULX_RK1(pack, subset, point, method) result(distance)
3310#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3311 !DEC$ ATTRIBUTES DLLEXPORT :: getDME_RDP_ULX_RK1
3312#endif
3313 use pm_kind, only: RKG => RK1
3314 real(RKG) , intent(in) , contiguous :: point(:,:)
3315 real(RKG) :: distance(size(point, 2, IK) - 1, size(point, 2, IK))
3316 class(*) , intent(in) , optional :: method
3317 type(uppLow_type) , intent(in) :: subset
3318 type(rdpack_type) , intent(in) :: pack
3319 end function
3320#endif
3321
3322 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3323
3324 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3325 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3326 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3327
3328 end interface
3329
3330!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3331
3342 ! <li> the constant [lfpack](@ref pm_matrixPack::lfpack) or an object of type [lfpack_type](@ref pm_matrixSubset::lfpack_type),
3343 ! implying the use of Linear Full Packing format for the output matrix.<br>
3344 ! This means that the output matrix must be contiguous vector of appropriate size.<br>
3345 ! On output, `distance` will be a **dense** ([linear contiguous packed](@ref pm_matrixPack::lfpack_type))
3346 ! vector containing the pairwise distances of the points in `point` from itself,
3347 ! corresponding to lower triangle of symmetric square matrix of pairwise distances of `point` from itself.<br>
3348 ! By definition, the diagonal elements of the square distance matrix are zeros and not included in the output dense vector.<br>
3349 ! The following figure illustrates the storage layout for the dense vector format compared to the corresponding symmetric square distance matrix.<br>
3350 ! \image html pm_distanceEuclid@dense.png width=500
3370 ! <li> the constant [uppDia](@ref pm_matrixSubset::uppDia) or an object of type [uppDia_type](@ref pm_matrixSubset::uppDia_type),
3371 ! implying that only the upper-diagonal subset of the distance matrix must be returned.<br>
3372 ! <li> the constant [lowDia](@ref pm_matrixSubset::lowDia) or an object of type [lowDia_type](@ref pm_matrixSubset::lowDia_type),
3373 ! implying that only the lower-diagonal subset of the distance matrix must be returned.<br>
3374 ! <li> the constant [upp](@ref pm_matrixSubset::upp) or an object of type [upp_type](@ref pm_matrixSubset::upp_type),
3375 ! implying that only the upper-diagonal subset of the distance matrix must be returned.<br>
3376 ! <li> the constant [low](@ref pm_matrixSubset::low) or an object of type [low_type](@ref pm_matrixSubset::low_type),
3377 ! implying that only the lower-diagonal subset of the distance matrix must be returned.<br>
3446
3447 ! rdpack, euclid
3448
3450
3451 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3452 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3453 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3454
3455 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3456
3457#if RK5_ENABLED
3458 PURE module subroutine setDME_MED_RDP_ULD_RK5(distance, pack, subset, point, method)
3459#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3460 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MED_RDP_ULD_RK5
3461#endif
3462 use pm_kind, only: RKG => RK5
3463 real(RKG) , intent(in) , contiguous :: point(:,:)
3464 real(RKG) , intent(out) , contiguous :: distance(:,:)
3465 type(euclid_type) , intent(in) :: method
3466 type(uppLowDia_type), intent(in) :: subset
3467 type(rdpack_type) , intent(in) :: pack
3468 end subroutine
3469#endif
3470
3471#if RK4_ENABLED
3472 PURE module subroutine setDME_MED_RDP_ULD_RK4(distance, pack, subset, point, method)
3473#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3474 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MED_RDP_ULD_RK4
3475#endif
3476 use pm_kind, only: RKG => RK4
3477 real(RKG) , intent(in) , contiguous :: point(:,:)
3478 real(RKG) , intent(out) , contiguous :: distance(:,:)
3479 type(euclid_type) , intent(in) :: method
3480 type(uppLowDia_type), intent(in) :: subset
3481 type(rdpack_type) , intent(in) :: pack
3482 end subroutine
3483#endif
3484
3485#if RK3_ENABLED
3486 PURE module subroutine setDME_MED_RDP_ULD_RK3(distance, pack, subset, point, method)
3487#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3488 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MED_RDP_ULD_RK3
3489#endif
3490 use pm_kind, only: RKG => RK3
3491 real(RKG) , intent(in) , contiguous :: point(:,:)
3492 real(RKG) , intent(out) , contiguous :: distance(:,:)
3493 type(euclid_type) , intent(in) :: method
3494 type(uppLowDia_type), intent(in) :: subset
3495 type(rdpack_type) , intent(in) :: pack
3496 end subroutine
3497#endif
3498
3499#if RK2_ENABLED
3500 PURE module subroutine setDME_MED_RDP_ULD_RK2(distance, pack, subset, point, method)
3501#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3502 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MED_RDP_ULD_RK2
3503#endif
3504 use pm_kind, only: RKG => RK2
3505 real(RKG) , intent(in) , contiguous :: point(:,:)
3506 real(RKG) , intent(out) , contiguous :: distance(:,:)
3507 type(euclid_type) , intent(in) :: method
3508 type(uppLowDia_type), intent(in) :: subset
3509 type(rdpack_type) , intent(in) :: pack
3510 end subroutine
3511#endif
3512
3513#if RK1_ENABLED
3514 PURE module subroutine setDME_MED_RDP_ULD_RK1(distance, pack, subset, point, method)
3515#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3516 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MED_RDP_ULD_RK1
3517#endif
3518 use pm_kind, only: RKG => RK1
3519 real(RKG) , intent(in) , contiguous :: point(:,:)
3520 real(RKG) , intent(out) , contiguous :: distance(:,:)
3521 type(euclid_type) , intent(in) :: method
3522 type(uppLowDia_type), intent(in) :: subset
3523 type(rdpack_type) , intent(in) :: pack
3524 end subroutine
3525#endif
3526
3527 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3528
3529#if RK5_ENABLED
3530 PURE module subroutine setDME_MED_RDP_ULX_RK5(distance, pack, subset, point, method)
3531#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3532 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MED_RDP_ULX_RK5
3533#endif
3534 use pm_kind, only: RKG => RK5
3535 real(RKG) , intent(in) , contiguous :: point(:,:)
3536 real(RKG) , intent(out) , contiguous :: distance(:,:)
3537 type(euclid_type) , intent(in) :: method
3538 type(uppLow_type) , intent(in) :: subset
3539 type(rdpack_type) , intent(in) :: pack
3540 end subroutine
3541#endif
3542
3543#if RK4_ENABLED
3544 PURE module subroutine setDME_MED_RDP_ULX_RK4(distance, pack, subset, point, method)
3545#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3546 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MED_RDP_ULX_RK4
3547#endif
3548 use pm_kind, only: RKG => RK4
3549 real(RKG) , intent(in) , contiguous :: point(:,:)
3550 real(RKG) , intent(out) , contiguous :: distance(:,:)
3551 type(euclid_type) , intent(in) :: method
3552 type(uppLow_type) , intent(in) :: subset
3553 type(rdpack_type) , intent(in) :: pack
3554 end subroutine
3555#endif
3556
3557#if RK3_ENABLED
3558 PURE module subroutine setDME_MED_RDP_ULX_RK3(distance, pack, subset, point, method)
3559#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3560 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MED_RDP_ULX_RK3
3561#endif
3562 use pm_kind, only: RKG => RK3
3563 real(RKG) , intent(in) , contiguous :: point(:,:)
3564 real(RKG) , intent(out) , contiguous :: distance(:,:)
3565 type(euclid_type) , intent(in) :: method
3566 type(uppLow_type) , intent(in) :: subset
3567 type(rdpack_type) , intent(in) :: pack
3568 end subroutine
3569#endif
3570
3571#if RK2_ENABLED
3572 PURE module subroutine setDME_MED_RDP_ULX_RK2(distance, pack, subset, point, method)
3573#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3574 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MED_RDP_ULX_RK2
3575#endif
3576 use pm_kind, only: RKG => RK2
3577 real(RKG) , intent(in) , contiguous :: point(:,:)
3578 real(RKG) , intent(out) , contiguous :: distance(:,:)
3579 type(euclid_type) , intent(in) :: method
3580 type(uppLow_type) , intent(in) :: subset
3581 type(rdpack_type) , intent(in) :: pack
3582 end subroutine
3583#endif
3584
3585#if RK1_ENABLED
3586 PURE module subroutine setDME_MED_RDP_ULX_RK1(distance, pack, subset, point, method)
3587#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3588 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MED_RDP_ULX_RK1
3589#endif
3590 use pm_kind, only: RKG => RK1
3591 real(RKG) , intent(in) , contiguous :: point(:,:)
3592 real(RKG) , intent(out) , contiguous :: distance(:,:)
3593 type(euclid_type) , intent(in) :: method
3594 type(uppLow_type) , intent(in) :: subset
3595 type(rdpack_type) , intent(in) :: pack
3596 end subroutine
3597#endif
3598
3599 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3600
3601 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3602 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3603 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3604
3605 end interface
3606
3607 ! rdpack, euclidu
3608
3609 interface setDisMatEuclid
3610
3611 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3612 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3613 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3614
3615 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3616
3617#if RK5_ENABLED
3618 PURE module subroutine setDME_MEU_RDP_ULD_RK5(distance, pack, subset, point, method)
3619#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3620 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MEU_RDP_ULD_RK5
3621#endif
3622 use pm_kind, only: RKG => RK5
3623 real(RKG) , intent(in) , contiguous :: point(:,:)
3624 real(RKG) , intent(out) , contiguous :: distance(:,:)
3625 type(euclidu_type) , intent(in) :: method
3626 type(uppLowDia_type), intent(in) :: subset
3627 type(rdpack_type) , intent(in) :: pack
3628 end subroutine
3629#endif
3630
3631#if RK4_ENABLED
3632 PURE module subroutine setDME_MEU_RDP_ULD_RK4(distance, pack, subset, point, method)
3633#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3634 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MEU_RDP_ULD_RK4
3635#endif
3636 use pm_kind, only: RKG => RK4
3637 real(RKG) , intent(in) , contiguous :: point(:,:)
3638 real(RKG) , intent(out) , contiguous :: distance(:,:)
3639 type(euclidu_type) , intent(in) :: method
3640 type(uppLowDia_type), intent(in) :: subset
3641 type(rdpack_type) , intent(in) :: pack
3642 end subroutine
3643#endif
3644
3645#if RK3_ENABLED
3646 PURE module subroutine setDME_MEU_RDP_ULD_RK3(distance, pack, subset, point, method)
3647#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3648 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MEU_RDP_ULD_RK3
3649#endif
3650 use pm_kind, only: RKG => RK3
3651 real(RKG) , intent(in) , contiguous :: point(:,:)
3652 real(RKG) , intent(out) , contiguous :: distance(:,:)
3653 type(euclidu_type) , intent(in) :: method
3654 type(uppLowDia_type), intent(in) :: subset
3655 type(rdpack_type) , intent(in) :: pack
3656 end subroutine
3657#endif
3658
3659#if RK2_ENABLED
3660 PURE module subroutine setDME_MEU_RDP_ULD_RK2(distance, pack, subset, point, method)
3661#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3662 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MEU_RDP_ULD_RK2
3663#endif
3664 use pm_kind, only: RKG => RK2
3665 real(RKG) , intent(in) , contiguous :: point(:,:)
3666 real(RKG) , intent(out) , contiguous :: distance(:,:)
3667 type(euclidu_type) , intent(in) :: method
3668 type(uppLowDia_type), intent(in) :: subset
3669 type(rdpack_type) , intent(in) :: pack
3670 end subroutine
3671#endif
3672
3673#if RK1_ENABLED
3674 PURE module subroutine setDME_MEU_RDP_ULD_RK1(distance, pack, subset, point, method)
3675#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3676 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MEU_RDP_ULD_RK1
3677#endif
3678 use pm_kind, only: RKG => RK1
3679 real(RKG) , intent(in) , contiguous :: point(:,:)
3680 real(RKG) , intent(out) , contiguous :: distance(:,:)
3681 type(euclidu_type) , intent(in) :: method
3682 type(uppLowDia_type), intent(in) :: subset
3683 type(rdpack_type) , intent(in) :: pack
3684 end subroutine
3685#endif
3686
3687 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3688
3689#if RK5_ENABLED
3690 PURE module subroutine setDME_MEU_RDP_ULX_RK5(distance, pack, subset, point, method)
3691#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3692 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MEU_RDP_ULX_RK5
3693#endif
3694 use pm_kind, only: RKG => RK5
3695 real(RKG) , intent(in) , contiguous :: point(:,:)
3696 real(RKG) , intent(out) , contiguous :: distance(:,:)
3697 type(euclidu_type) , intent(in) :: method
3698 type(uppLow_type) , intent(in) :: subset
3699 type(rdpack_type) , intent(in) :: pack
3700 end subroutine
3701#endif
3702
3703#if RK4_ENABLED
3704 PURE module subroutine setDME_MEU_RDP_ULX_RK4(distance, pack, subset, point, method)
3705#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3706 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MEU_RDP_ULX_RK4
3707#endif
3708 use pm_kind, only: RKG => RK4
3709 real(RKG) , intent(in) , contiguous :: point(:,:)
3710 real(RKG) , intent(out) , contiguous :: distance(:,:)
3711 type(euclidu_type) , intent(in) :: method
3712 type(uppLow_type) , intent(in) :: subset
3713 type(rdpack_type) , intent(in) :: pack
3714 end subroutine
3715#endif
3716
3717#if RK3_ENABLED
3718 PURE module subroutine setDME_MEU_RDP_ULX_RK3(distance, pack, subset, point, method)
3719#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3720 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MEU_RDP_ULX_RK3
3721#endif
3722 use pm_kind, only: RKG => RK3
3723 real(RKG) , intent(in) , contiguous :: point(:,:)
3724 real(RKG) , intent(out) , contiguous :: distance(:,:)
3725 type(euclidu_type) , intent(in) :: method
3726 type(uppLow_type) , intent(in) :: subset
3727 type(rdpack_type) , intent(in) :: pack
3728 end subroutine
3729#endif
3730
3731#if RK2_ENABLED
3732 PURE module subroutine setDME_MEU_RDP_ULX_RK2(distance, pack, subset, point, method)
3733#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3734 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MEU_RDP_ULX_RK2
3735#endif
3736 use pm_kind, only: RKG => RK2
3737 real(RKG) , intent(in) , contiguous :: point(:,:)
3738 real(RKG) , intent(out) , contiguous :: distance(:,:)
3739 type(euclidu_type) , intent(in) :: method
3740 type(uppLow_type) , intent(in) :: subset
3741 type(rdpack_type) , intent(in) :: pack
3742 end subroutine
3743#endif
3744
3745#if RK1_ENABLED
3746 PURE module subroutine setDME_MEU_RDP_ULX_RK1(distance, pack, subset, point, method)
3747#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3748 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MEU_RDP_ULX_RK1
3749#endif
3750 use pm_kind, only: RKG => RK1
3751 real(RKG) , intent(in) , contiguous :: point(:,:)
3752 real(RKG) , intent(out) , contiguous :: distance(:,:)
3753 type(euclidu_type) , intent(in) :: method
3754 type(uppLow_type) , intent(in) :: subset
3755 type(rdpack_type) , intent(in) :: pack
3756 end subroutine
3757#endif
3758
3759 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3760
3761 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3762 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3763 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3764
3765 end interface
3766
3767 ! rdpack, euclidsq
3768
3769 interface setDisMatEuclid
3770
3771 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3772 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3773 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3774
3775 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3776
3777#if RK5_ENABLED
3778 PURE module subroutine setDME_MEQ_RDP_ULD_RK5(distance, pack, subset, point, method)
3779#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3780 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MEQ_RDP_ULD_RK5
3781#endif
3782 use pm_kind, only: RKG => RK5
3783 real(RKG) , intent(in) , contiguous :: point(:,:)
3784 real(RKG) , intent(out) , contiguous :: distance(:,:)
3785 type(euclidsq_type) , intent(in) :: method
3786 type(uppLowDia_type), intent(in) :: subset
3787 type(rdpack_type) , intent(in) :: pack
3788 end subroutine
3789#endif
3790
3791#if RK4_ENABLED
3792 PURE module subroutine setDME_MEQ_RDP_ULD_RK4(distance, pack, subset, point, method)
3793#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3794 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MEQ_RDP_ULD_RK4
3795#endif
3796 use pm_kind, only: RKG => RK4
3797 real(RKG) , intent(in) , contiguous :: point(:,:)
3798 real(RKG) , intent(out) , contiguous :: distance(:,:)
3799 type(euclidsq_type) , intent(in) :: method
3800 type(uppLowDia_type), intent(in) :: subset
3801 type(rdpack_type) , intent(in) :: pack
3802 end subroutine
3803#endif
3804
3805#if RK3_ENABLED
3806 PURE module subroutine setDME_MEQ_RDP_ULD_RK3(distance, pack, subset, point, method)
3807#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3808 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MEQ_RDP_ULD_RK3
3809#endif
3810 use pm_kind, only: RKG => RK3
3811 real(RKG) , intent(in) , contiguous :: point(:,:)
3812 real(RKG) , intent(out) , contiguous :: distance(:,:)
3813 type(euclidsq_type) , intent(in) :: method
3814 type(uppLowDia_type), intent(in) :: subset
3815 type(rdpack_type) , intent(in) :: pack
3816 end subroutine
3817#endif
3818
3819#if RK2_ENABLED
3820 PURE module subroutine setDME_MEQ_RDP_ULD_RK2(distance, pack, subset, point, method)
3821#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3822 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MEQ_RDP_ULD_RK2
3823#endif
3824 use pm_kind, only: RKG => RK2
3825 real(RKG) , intent(in) , contiguous :: point(:,:)
3826 real(RKG) , intent(out) , contiguous :: distance(:,:)
3827 type(euclidsq_type) , intent(in) :: method
3828 type(uppLowDia_type), intent(in) :: subset
3829 type(rdpack_type) , intent(in) :: pack
3830 end subroutine
3831#endif
3832
3833#if RK1_ENABLED
3834 PURE module subroutine setDME_MEQ_RDP_ULD_RK1(distance, pack, subset, point, method)
3835#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3836 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MEQ_RDP_ULD_RK1
3837#endif
3838 use pm_kind, only: RKG => RK1
3839 real(RKG) , intent(in) , contiguous :: point(:,:)
3840 real(RKG) , intent(out) , contiguous :: distance(:,:)
3841 type(euclidsq_type) , intent(in) :: method
3842 type(uppLowDia_type), intent(in) :: subset
3843 type(rdpack_type) , intent(in) :: pack
3844 end subroutine
3845#endif
3846
3847 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3848
3849#if RK5_ENABLED
3850 PURE module subroutine setDME_MEQ_RDP_ULX_RK5(distance, pack, subset, point, method)
3851#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3852 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MEQ_RDP_ULX_RK5
3853#endif
3854 use pm_kind, only: RKG => RK5
3855 real(RKG) , intent(in) , contiguous :: point(:,:)
3856 real(RKG) , intent(out) , contiguous :: distance(:,:)
3857 type(euclidsq_type) , intent(in) :: method
3858 type(uppLow_type) , intent(in) :: subset
3859 type(rdpack_type) , intent(in) :: pack
3860 end subroutine
3861#endif
3862
3863#if RK4_ENABLED
3864 PURE module subroutine setDME_MEQ_RDP_ULX_RK4(distance, pack, subset, point, method)
3865#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3866 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MEQ_RDP_ULX_RK4
3867#endif
3868 use pm_kind, only: RKG => RK4
3869 real(RKG) , intent(in) , contiguous :: point(:,:)
3870 real(RKG) , intent(out) , contiguous :: distance(:,:)
3871 type(euclidsq_type) , intent(in) :: method
3872 type(uppLow_type) , intent(in) :: subset
3873 type(rdpack_type) , intent(in) :: pack
3874 end subroutine
3875#endif
3876
3877#if RK3_ENABLED
3878 PURE module subroutine setDME_MEQ_RDP_ULX_RK3(distance, pack, subset, point, method)
3879#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3880 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MEQ_RDP_ULX_RK3
3881#endif
3882 use pm_kind, only: RKG => RK3
3883 real(RKG) , intent(in) , contiguous :: point(:,:)
3884 real(RKG) , intent(out) , contiguous :: distance(:,:)
3885 type(euclidsq_type) , intent(in) :: method
3886 type(uppLow_type) , intent(in) :: subset
3887 type(rdpack_type) , intent(in) :: pack
3888 end subroutine
3889#endif
3890
3891#if RK2_ENABLED
3892 PURE module subroutine setDME_MEQ_RDP_ULX_RK2(distance, pack, subset, point, method)
3893#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3894 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MEQ_RDP_ULX_RK2
3895#endif
3896 use pm_kind, only: RKG => RK2
3897 real(RKG) , intent(in) , contiguous :: point(:,:)
3898 real(RKG) , intent(out) , contiguous :: distance(:,:)
3899 type(euclidsq_type) , intent(in) :: method
3900 type(uppLow_type) , intent(in) :: subset
3901 type(rdpack_type) , intent(in) :: pack
3902 end subroutine
3903#endif
3904
3905#if RK1_ENABLED
3906 PURE module subroutine setDME_MEQ_RDP_ULX_RK1(distance, pack, subset, point, method)
3907#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3908 !DEC$ ATTRIBUTES DLLEXPORT :: setDME_MEQ_RDP_ULX_RK1
3909#endif
3910 use pm_kind, only: RKG => RK1
3911 real(RKG) , intent(in) , contiguous :: point(:,:)
3912 real(RKG) , intent(out) , contiguous :: distance(:,:)
3913 type(euclidsq_type) , intent(in) :: method
3914 type(uppLow_type) , intent(in) :: subset
3915 type(rdpack_type) , intent(in) :: pack
3916 end subroutine
3917#endif
3918
3919 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3920
3921 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3922 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3923 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3924
3925 end interface
3926
3927!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3928
3929end module pm_distanceEuclid
Generate and return the (squared) Euclidean distance of a (set of) point(s) in ndim-dimensions from a...
Return the full or a subset of the Euclidean (squared) distance matrix of the input set of npnt point...
Generate and return the (squared) Euclidean distance of a (set of) point(s) in ndim-dimensions from a...
Return the full or a subset of the Euclidean (squared) distance matrix of the input set of npnt point...
This module contains abstract and concrete derived types that are required for compile-time resolutio...
Definition: pm_array.F90:44
character(*, SK), parameter MODULE_NAME
Definition: pm_array.F90:50
type(nothing_type), parameter nothing
This is a scalar parameter object of type nothing_type that is exclusively used to request no action ...
Definition: pm_array.F90:167
This module contains procedures and generic interfaces for computing the Euclidean norm of a single p...
type(euclidu_type), parameter euclidu
This is a scalar parameter object of type euclidu_typethat is exclusively used to request unsafe meth...
type(euclid_type), parameter euclid
This is a scalar parameter object of type euclid_type that is exclusively used to request safe method...
type(euclidv_type), parameter euclidv
This is a scalar parameter object of type euclidv_typethat is exclusively used to request computing E...
type(euclidsq_type), parameter euclidsq
This is a scalar parameter object of type euclidsq_typethat is exclusively used to request computing ...
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 IK
The default integer kind in the ParaMonte library: int32 in Fortran, c_int32_t in C-Fortran Interoper...
Definition: pm_kind.F90:540
integer, parameter SK
The default character kind in the ParaMonte library: kind("a") in Fortran, c_char in C-Fortran Intero...
Definition: pm_kind.F90:539
integer, parameter RK1
Definition: pm_kind.F90:522
This module contains abstract and concrete derived types that are required for compile-time resolutio...
type(rdpack_type), parameter rdpack
This is an object instance of class rdpack_type that is exclusively used to signify Rectangular Spars...
type(lfpack_type), parameter lfpack
This is an object instance of class lfpack_type that is exclusively used to signify Linear Full conti...
This module contains abstract and concrete derived types that are required for compile-time resolutio...
type(uppLowDia_type), parameter uppLowDia
This is a scalar parameter object of type uppLowDia_type that is exclusively used to request full dia...
type(uppLow_type), parameter uppLow
This is a scalar parameter object of type uppLow_type that is exclusively used to request upper-lower...
This is a concrete derived type whose instances are exclusively used to request no action on a given ...
Definition: pm_array.F90:132
This is a concrete derived type whose instances are exclusively used to request safe method of comput...
This is a concrete derived type whose instances are exclusively used to request computing Euclidean s...
This is a concrete derived type whose instances are exclusively used to request unsafe method of comp...
This is a concrete derived type whose instances are exclusively used to request computing Euclidean v...
This is a concrete derived type whose instances are exclusively used to signify Linear Full contiguou...
This is a concrete derived type whose instances are exclusively used to signify Rectangular Sparse (o...
This is a concrete derived type whose instances are exclusively used to request full diagonal and upp...
This is a concrete derived type whose instances are exclusively used to request upper-lower triangula...