ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_arrayRank.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
132
133! \copydetails pm_arrayRank
134
135!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
136
138
139 use pm_kind, only: SK, IK, LK
140
141 implicit none
142
143 character(*,SK), parameter :: MODULE_NAME = "@pm_arrayRank"
144
145!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
146
172 type, abstract :: rank_type
173 end type
174
175!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
176
208 type, extends(rank_type) :: dense_type
209 end type
210
235 type(dense_type), parameter :: dense = dense_type()
236
237!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
238
270 type, extends(rank_type) :: ordinal_type
271 end type
272
297 type(ordinal_type), parameter :: ordinal = ordinal_type()
298
299!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
300
332 type, extends(rank_type) :: modified_type
333 end type
334
359 type(modified_type), parameter :: modified = modified_type()
360
361!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
362
394 type, extends(rank_type) :: standard_type
395 end type
396
421 type(standard_type), parameter :: standard = standard_type()
422
423!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
424
456 type, extends(rank_type) :: fractional_type
457 end type
458
484
485!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
486
626 interface getRankDense
627
628 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
629 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
630 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
631
632 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
633
634#if SK5_ENABLED
635 module function getRankDenseDefCom_D0_SK5(array) result(rank)
636#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
637 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D0_SK5
638#endif
639 use pm_kind, only: TKR => IK, SKG => SK5
640 character(*,SKG) , intent(in) :: array
641 integer(TKR) :: rank(len(array, IK))
642 end function
643#endif
644
645#if SK4_ENABLED
646 module function getRankDenseDefCom_D0_SK4(array) result(rank)
647#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
648 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D0_SK4
649#endif
650 use pm_kind, only: TKR => IK, SKG => SK4
651 character(*,SKG) , intent(in) :: array
652 integer(TKR) :: rank(len(array, IK))
653 end function
654#endif
655
656#if SK3_ENABLED
657 module function getRankDenseDefCom_D0_SK3(array) result(rank)
658#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
659 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D0_SK3
660#endif
661 use pm_kind, only: TKR => IK, SKG => SK3
662 character(*,SKG) , intent(in) :: array
663 integer(TKR) :: rank(len(array, IK))
664 end function
665#endif
666
667#if SK2_ENABLED
668 module function getRankDenseDefCom_D0_SK2(array) result(rank)
669#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
670 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D0_SK2
671#endif
672 use pm_kind, only: TKR => IK, SKG => SK2
673 character(*,SKG) , intent(in) :: array
674 integer(TKR) :: rank(len(array, IK))
675 end function
676#endif
677
678#if SK1_ENABLED
679 module function getRankDenseDefCom_D0_SK1(array) result(rank)
680#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
681 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D0_SK1
682#endif
683 use pm_kind, only: TKR => IK, SKG => SK1
684 character(*,SKG) , intent(in) :: array
685 integer(TKR) :: rank(len(array, IK))
686 end function
687#endif
688
689 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
690
691#if SK5_ENABLED
692 module function getRankDenseDefCom_D1_SK5(array) result(rank)
693#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
694 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_SK5
695#endif
696 use pm_kind, only: TKR => IK, SKG => SK5
697 character(*,SKG) , intent(in) , contiguous :: array(:)
698 integer(TKR) :: rank(size(array, kind = IK))
699 end function
700#endif
701
702#if SK4_ENABLED
703 module function getRankDenseDefCom_D1_SK4(array) result(rank)
704#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
705 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_SK4
706#endif
707 use pm_kind, only: TKR => IK, SKG => SK4
708 character(*,SKG) , intent(in) , contiguous :: array(:)
709 integer(TKR) :: rank(size(array, kind = IK))
710 end function
711#endif
712
713#if SK3_ENABLED
714 module function getRankDenseDefCom_D1_SK3(array) result(rank)
715#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
716 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_SK3
717#endif
718 use pm_kind, only: TKR => IK, SKG => SK3
719 character(*,SKG) , intent(in) , contiguous :: array(:)
720 integer(TKR) :: rank(size(array, kind = IK))
721 end function
722#endif
723
724#if SK2_ENABLED
725 module function getRankDenseDefCom_D1_SK2(array) result(rank)
726#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
727 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_SK2
728#endif
729 use pm_kind, only: TKR => IK, SKG => SK2
730 character(*,SKG) , intent(in) , contiguous :: array(:)
731 integer(TKR) :: rank(size(array, kind = IK))
732 end function
733#endif
734
735#if SK1_ENABLED
736 module function getRankDenseDefCom_D1_SK1(array) result(rank)
737#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
738 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_SK1
739#endif
740 use pm_kind, only: TKR => IK, SKG => SK1
741 character(*,SKG) , intent(in) , contiguous :: array(:)
742 integer(TKR) :: rank(size(array, kind = IK))
743 end function
744#endif
745
746 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
747
748#if IK5_ENABLED
749 module function getRankDenseDefCom_D1_IK5(array) result(rank)
750#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
751 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_IK5
752#endif
753 use pm_kind, only: TKR => IK, IKG => IK5
754 integer(IKG) , intent(in) , contiguous :: array(:)
755 integer(TKR) :: rank(size(array, kind = IK))
756 end function
757#endif
758
759#if IK4_ENABLED
760 module function getRankDenseDefCom_D1_IK4(array) result(rank)
761#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
762 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_IK4
763#endif
764 use pm_kind, only: TKR => IK, IKG => IK4
765 integer(IKG) , intent(in) , contiguous :: array(:)
766 integer(TKR) :: rank(size(array, kind = IK))
767 end function
768#endif
769
770#if IK3_ENABLED
771 module function getRankDenseDefCom_D1_IK3(array) result(rank)
772#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
773 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_IK3
774#endif
775 use pm_kind, only: TKR => IK, IKG => IK3
776 integer(IKG) , intent(in) , contiguous :: array(:)
777 integer(TKR) :: rank(size(array, kind = IK))
778 end function
779#endif
780
781#if IK2_ENABLED
782 module function getRankDenseDefCom_D1_IK2(array) result(rank)
783#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
784 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_IK2
785#endif
786 use pm_kind, only: TKR => IK, IKG => IK2
787 integer(IKG) , intent(in) , contiguous :: array(:)
788 integer(TKR) :: rank(size(array, kind = IK))
789 end function
790#endif
791
792#if IK1_ENABLED
793 module function getRankDenseDefCom_D1_IK1(array) result(rank)
794#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
795 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_IK1
796#endif
797 use pm_kind, only: TKR => IK, IKG => IK1
798 integer(IKG) , intent(in) , contiguous :: array(:)
799 integer(TKR) :: rank(size(array, kind = IK))
800 end function
801#endif
802
803 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
804
805#if LK5_ENABLED
806 module function getRankDenseDefCom_D1_LK5(array) result(rank)
807#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
808 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_LK5
809#endif
810 use pm_kind, only: TKR => IK, LKG => LK5
811 logical(LKG) , intent(in) , contiguous :: array(:)
812 integer(TKR) :: rank(size(array, kind = IK))
813 end function
814#endif
815
816#if LK4_ENABLED
817 module function getRankDenseDefCom_D1_LK4(array) result(rank)
818#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
819 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_LK4
820#endif
821 use pm_kind, only: TKR => IK, LKG => LK4
822 logical(LKG) , intent(in) , contiguous :: array(:)
823 integer(TKR) :: rank(size(array, kind = IK))
824 end function
825#endif
826
827#if LK3_ENABLED
828 module function getRankDenseDefCom_D1_LK3(array) result(rank)
829#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
830 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_LK3
831#endif
832 use pm_kind, only: TKR => IK, LKG => LK3
833 logical(LKG) , intent(in) , contiguous :: array(:)
834 integer(TKR) :: rank(size(array, kind = IK))
835 end function
836#endif
837
838#if LK2_ENABLED
839 module function getRankDenseDefCom_D1_LK2(array) result(rank)
840#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
841 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_LK2
842#endif
843 use pm_kind, only: TKR => IK, LKG => LK2
844 logical(LKG) , intent(in) , contiguous :: array(:)
845 integer(TKR) :: rank(size(array, kind = IK))
846 end function
847#endif
848
849#if LK1_ENABLED
850 module function getRankDenseDefCom_D1_LK1(array) result(rank)
851#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
852 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_LK1
853#endif
854 use pm_kind, only: TKR => IK, LKG => LK1
855 logical(LKG) , intent(in) , contiguous :: array(:)
856 integer(TKR) :: rank(size(array, kind = IK))
857 end function
858#endif
859
860 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
861
862#if CK5_ENABLED
863 module function getRankDenseDefCom_D1_CK5(array) result(rank)
864#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
865 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_CK5
866#endif
867 use pm_kind, only: TKR => IK, CKG => CK5
868 complex(CKG) , intent(in) , contiguous :: array(:)
869 integer(TKR) :: rank(size(array, kind = IK))
870 end function
871#endif
872
873#if CK4_ENABLED
874 module function getRankDenseDefCom_D1_CK4(array) result(rank)
875#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
876 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_CK4
877#endif
878 use pm_kind, only: TKR => IK, CKG => CK4
879 complex(CKG) , intent(in) , contiguous :: array(:)
880 integer(TKR) :: rank(size(array, kind = IK))
881 end function
882#endif
883
884#if CK3_ENABLED
885 module function getRankDenseDefCom_D1_CK3(array) result(rank)
886#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
887 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_CK3
888#endif
889 use pm_kind, only: TKR => IK, CKG => CK3
890 complex(CKG) , intent(in) , contiguous :: array(:)
891 integer(TKR) :: rank(size(array, kind = IK))
892 end function
893#endif
894
895#if CK2_ENABLED
896 module function getRankDenseDefCom_D1_CK2(array) result(rank)
897#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
898 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_CK2
899#endif
900 use pm_kind, only: TKR => IK, CKG => CK2
901 complex(CKG) , intent(in) , contiguous :: array(:)
902 integer(TKR) :: rank(size(array, kind = IK))
903 end function
904#endif
905
906#if CK1_ENABLED
907 module function getRankDenseDefCom_D1_CK1(array) result(rank)
908#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
909 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_CK1
910#endif
911 use pm_kind, only: TKR => IK, CKG => CK1
912 complex(CKG) , intent(in) , contiguous :: array(:)
913 integer(TKR) :: rank(size(array, kind = IK))
914 end function
915#endif
916
917 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
918
919#if RK5_ENABLED
920 module function getRankDenseDefCom_D1_RK5(array) result(rank)
921#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
922 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_RK5
923#endif
924 use pm_kind, only: TKR => IK, RKG => RK5
925 real(RKG) , intent(in) , contiguous :: array(:)
926 integer(TKR) :: rank(size(array, kind = IK))
927 end function
928#endif
929
930#if RK4_ENABLED
931 module function getRankDenseDefCom_D1_RK4(array) result(rank)
932#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
933 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_RK4
934#endif
935 use pm_kind, only: TKR => IK, RKG => RK4
936 real(RKG) , intent(in) , contiguous :: array(:)
937 integer(TKR) :: rank(size(array, kind = IK))
938 end function
939#endif
940
941#if RK3_ENABLED
942 module function getRankDenseDefCom_D1_RK3(array) result(rank)
943#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
944 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_RK3
945#endif
946 use pm_kind, only: TKR => IK, RKG => RK3
947 real(RKG) , intent(in) , contiguous :: array(:)
948 integer(TKR) :: rank(size(array, kind = IK))
949 end function
950#endif
951
952#if RK2_ENABLED
953 module function getRankDenseDefCom_D1_RK2(array) result(rank)
954#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
955 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_RK2
956#endif
957 use pm_kind, only: TKR => IK, RKG => RK2
958 real(RKG) , intent(in) , contiguous :: array(:)
959 integer(TKR) :: rank(size(array, kind = IK))
960 end function
961#endif
962
963#if RK1_ENABLED
964 module function getRankDenseDefCom_D1_RK1(array) result(rank)
965#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
966 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_RK1
967#endif
968 use pm_kind, only: TKR => IK, RKG => RK1
969 real(RKG) , intent(in) , contiguous :: array(:)
970 integer(TKR) :: rank(size(array, kind = IK))
971 end function
972#endif
973
974 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
975
976#if PDT_ENABLED
977
978#if SK5_ENABLED
979 module function getRankDenseDefCom_D1_PSSK5(array) result(rank)
980#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
981 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_PSSK5
982#endif
983 use pm_kind, only: TKR => IK, SKG => SK5
984 use pm_container, only: css_pdt
985 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
986 integer(TKR) :: rank(size(array, kind = IK))
987 end function
988#endif
989
990#if SK4_ENABLED
991 module function getRankDenseDefCom_D1_PSSK4(array) result(rank)
992#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
993 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_PSSK4
994#endif
995 use pm_kind, only: TKR => IK, SKG => SK4
996 use pm_container, only: css_pdt
997 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
998 integer(TKR) :: rank(size(array, kind = IK))
999 end function
1000#endif
1001
1002#if SK3_ENABLED
1003 module function getRankDenseDefCom_D1_PSSK3(array) result(rank)
1004#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1005 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_PSSK3
1006#endif
1007 use pm_kind, only: TKR => IK, SKG => SK3
1008 use pm_container, only: css_pdt
1009 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
1010 integer(TKR) :: rank(size(array, kind = IK))
1011 end function
1012#endif
1013
1014#if SK2_ENABLED
1015 module function getRankDenseDefCom_D1_PSSK2(array) result(rank)
1016#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1017 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_PSSK2
1018#endif
1019 use pm_kind, only: TKR => IK, SKG => SK2
1020 use pm_container, only: css_pdt
1021 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
1022 integer(TKR) :: rank(size(array, kind = IK))
1023 end function
1024#endif
1025
1026#if SK1_ENABLED
1027 module function getRankDenseDefCom_D1_PSSK1(array) result(rank)
1028#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1029 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_PSSK1
1030#endif
1031 use pm_kind, only: TKR => IK, SKG => SK1
1032 use pm_container, only: css_pdt
1033 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
1034 integer(TKR) :: rank(size(array, kind = IK))
1035 end function
1036#endif
1037
1038#endif
1039!PDT_ENABLED
1040
1041 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1042
1043 module function getRankDenseDefCom_D1_BSSK(array) result(rank)
1044#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1045 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_BSSK
1046#endif
1047 use pm_kind, only: TKR => IK, SKG => SK
1048 use pm_container, only: css_type
1049 type(css_type) , intent(in) , contiguous :: array(:)
1050 integer(TKR) :: rank(size(array, kind = IK))
1051 end function
1052
1053 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1054
1055 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1056 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1057 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1058
1059 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1060
1061#if SK5_ENABLED
1062 module function getRankDenseCusCom_D0_SK5(array, isSorted) result(rank)
1063#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1064 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D0_SK5
1065#endif
1066 use pm_kind, only: TKR => IK, SKG => SK5
1067 character(*,SKG) , intent(in) :: array
1068 procedure(logical(LK)) :: isSorted
1069 integer(TKR) :: rank(len(array, IK))
1070 end function
1071#endif
1072
1073#if SK4_ENABLED
1074 module function getRankDenseCusCom_D0_SK4(array, isSorted) result(rank)
1075#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1076 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D0_SK4
1077#endif
1078 use pm_kind, only: TKR => IK, SKG => SK4
1079 character(*,SKG) , intent(in) :: array
1080 procedure(logical(LK)) :: isSorted
1081 integer(TKR) :: rank(len(array, IK))
1082 end function
1083#endif
1084
1085#if SK3_ENABLED
1086 module function getRankDenseCusCom_D0_SK3(array, isSorted) result(rank)
1087#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1088 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D0_SK3
1089#endif
1090 use pm_kind, only: TKR => IK, SKG => SK3
1091 character(*,SKG) , intent(in) :: array
1092 procedure(logical(LK)) :: isSorted
1093 integer(TKR) :: rank(len(array, IK))
1094 end function
1095#endif
1096
1097#if SK2_ENABLED
1098 module function getRankDenseCusCom_D0_SK2(array, isSorted) result(rank)
1099#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1100 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D0_SK2
1101#endif
1102 use pm_kind, only: TKR => IK, SKG => SK2
1103 character(*,SKG) , intent(in) :: array
1104 procedure(logical(LK)) :: isSorted
1105 integer(TKR) :: rank(len(array, IK))
1106 end function
1107#endif
1108
1109#if SK1_ENABLED
1110 module function getRankDenseCusCom_D0_SK1(array, isSorted) result(rank)
1111#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1112 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D0_SK1
1113#endif
1114 use pm_kind, only: TKR => IK, SKG => SK1
1115 character(*,SKG) , intent(in) :: array
1116 procedure(logical(LK)) :: isSorted
1117 integer(TKR) :: rank(len(array, IK))
1118 end function
1119#endif
1120
1121 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1122
1123#if SK5_ENABLED
1124 module function getRankDenseCusCom_D1_SK5(array, isSorted) result(rank)
1125#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1126 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_SK5
1127#endif
1128 use pm_kind, only: TKR => IK, SKG => SK5
1129 character(*,SKG) , intent(in) , contiguous :: array(:)
1130 procedure(logical(LK)) :: isSorted
1131 integer(TKR) :: rank(size(array, kind = IK))
1132 end function
1133#endif
1134
1135#if SK4_ENABLED
1136 module function getRankDenseCusCom_D1_SK4(array, isSorted) result(rank)
1137#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1138 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_SK4
1139#endif
1140 use pm_kind, only: TKR => IK, SKG => SK4
1141 character(*,SKG) , intent(in) , contiguous :: array(:)
1142 procedure(logical(LK)) :: isSorted
1143 integer(TKR) :: rank(size(array, kind = IK))
1144 end function
1145#endif
1146
1147#if SK3_ENABLED
1148 module function getRankDenseCusCom_D1_SK3(array, isSorted) result(rank)
1149#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1150 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_SK3
1151#endif
1152 use pm_kind, only: TKR => IK, SKG => SK3
1153 character(*,SKG) , intent(in) , contiguous :: array(:)
1154 procedure(logical(LK)) :: isSorted
1155 integer(TKR) :: rank(size(array, kind = IK))
1156 end function
1157#endif
1158
1159#if SK2_ENABLED
1160 module function getRankDenseCusCom_D1_SK2(array, isSorted) result(rank)
1161#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1162 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_SK2
1163#endif
1164 use pm_kind, only: TKR => IK, SKG => SK2
1165 character(*,SKG) , intent(in) , contiguous :: array(:)
1166 procedure(logical(LK)) :: isSorted
1167 integer(TKR) :: rank(size(array, kind = IK))
1168 end function
1169#endif
1170
1171#if SK1_ENABLED
1172 module function getRankDenseCusCom_D1_SK1(array, isSorted) result(rank)
1173#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1174 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_SK1
1175#endif
1176 use pm_kind, only: TKR => IK, SKG => SK1
1177 character(*,SKG) , intent(in) , contiguous :: array(:)
1178 procedure(logical(LK)) :: isSorted
1179 integer(TKR) :: rank(size(array, kind = IK))
1180 end function
1181#endif
1182
1183 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1184
1185#if IK5_ENABLED
1186 module function getRankDenseCusCom_D1_IK5(array, isSorted) result(rank)
1187#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1188 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_IK5
1189#endif
1190 use pm_kind, only: TKR => IK, IKG => IK5
1191 integer(IKG) , intent(in) , contiguous :: array(:)
1192 procedure(logical(LK)) :: isSorted
1193 integer(TKR) :: rank(size(array, kind = IK))
1194 end function
1195#endif
1196
1197#if IK4_ENABLED
1198 module function getRankDenseCusCom_D1_IK4(array, isSorted) result(rank)
1199#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1200 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_IK4
1201#endif
1202 use pm_kind, only: TKR => IK, IKG => IK4
1203 integer(IKG) , intent(in) , contiguous :: array(:)
1204 procedure(logical(LK)) :: isSorted
1205 integer(TKR) :: rank(size(array, kind = IK))
1206 end function
1207#endif
1208
1209#if IK3_ENABLED
1210 module function getRankDenseCusCom_D1_IK3(array, isSorted) result(rank)
1211#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1212 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_IK3
1213#endif
1214 use pm_kind, only: TKR => IK, IKG => IK3
1215 integer(IKG) , intent(in) , contiguous :: array(:)
1216 procedure(logical(LK)) :: isSorted
1217 integer(TKR) :: rank(size(array, kind = IK))
1218 end function
1219#endif
1220
1221#if IK2_ENABLED
1222 module function getRankDenseCusCom_D1_IK2(array, isSorted) result(rank)
1223#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1224 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_IK2
1225#endif
1226 use pm_kind, only: TKR => IK, IKG => IK2
1227 integer(IKG) , intent(in) , contiguous :: array(:)
1228 procedure(logical(LK)) :: isSorted
1229 integer(TKR) :: rank(size(array, kind = IK))
1230 end function
1231#endif
1232
1233#if IK1_ENABLED
1234 module function getRankDenseCusCom_D1_IK1(array, isSorted) result(rank)
1235#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1236 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_IK1
1237#endif
1238 use pm_kind, only: TKR => IK, IKG => IK1
1239 integer(IKG) , intent(in) , contiguous :: array(:)
1240 procedure(logical(LK)) :: isSorted
1241 integer(TKR) :: rank(size(array, kind = IK))
1242 end function
1243#endif
1244
1245 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1246
1247#if LK5_ENABLED
1248 module function getRankDenseCusCom_D1_LK5(array, isSorted) result(rank)
1249#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1250 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_LK5
1251#endif
1252 use pm_kind, only: TKR => IK, LKG => LK5
1253 logical(LKG) , intent(in) , contiguous :: array(:)
1254 procedure(logical(LK)) :: isSorted
1255 integer(TKR) :: rank(size(array, kind = IK))
1256 end function
1257#endif
1258
1259#if LK4_ENABLED
1260 module function getRankDenseCusCom_D1_LK4(array, isSorted) result(rank)
1261#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1262 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_LK4
1263#endif
1264 use pm_kind, only: TKR => IK, LKG => LK4
1265 logical(LKG) , intent(in) , contiguous :: array(:)
1266 procedure(logical(LK)) :: isSorted
1267 integer(TKR) :: rank(size(array, kind = IK))
1268 end function
1269#endif
1270
1271#if LK3_ENABLED
1272 module function getRankDenseCusCom_D1_LK3(array, isSorted) result(rank)
1273#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1274 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_LK3
1275#endif
1276 use pm_kind, only: TKR => IK, LKG => LK3
1277 logical(LKG) , intent(in) , contiguous :: array(:)
1278 procedure(logical(LK)) :: isSorted
1279 integer(TKR) :: rank(size(array, kind = IK))
1280 end function
1281#endif
1282
1283#if LK2_ENABLED
1284 module function getRankDenseCusCom_D1_LK2(array, isSorted) result(rank)
1285#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1286 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_LK2
1287#endif
1288 use pm_kind, only: TKR => IK, LKG => LK2
1289 logical(LKG) , intent(in) , contiguous :: array(:)
1290 procedure(logical(LK)) :: isSorted
1291 integer(TKR) :: rank(size(array, kind = IK))
1292 end function
1293#endif
1294
1295#if LK1_ENABLED
1296 module function getRankDenseCusCom_D1_LK1(array, isSorted) result(rank)
1297#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1298 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_LK1
1299#endif
1300 use pm_kind, only: TKR => IK, LKG => LK1
1301 logical(LKG) , intent(in) , contiguous :: array(:)
1302 procedure(logical(LK)) :: isSorted
1303 integer(TKR) :: rank(size(array, kind = IK))
1304 end function
1305#endif
1306
1307 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1308
1309#if CK5_ENABLED
1310 module function getRankDenseCusCom_D1_CK5(array, isSorted) result(rank)
1311#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1312 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_CK5
1313#endif
1314 use pm_kind, only: TKR => IK, CKG => CK5
1315 complex(CKG) , intent(in) , contiguous :: array(:)
1316 procedure(logical(LK)) :: isSorted
1317 integer(TKR) :: rank(size(array, kind = IK))
1318 end function
1319#endif
1320
1321#if CK4_ENABLED
1322 module function getRankDenseCusCom_D1_CK4(array, isSorted) result(rank)
1323#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1324 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_CK4
1325#endif
1326 use pm_kind, only: TKR => IK, CKG => CK4
1327 complex(CKG) , intent(in) , contiguous :: array(:)
1328 procedure(logical(LK)) :: isSorted
1329 integer(TKR) :: rank(size(array, kind = IK))
1330 end function
1331#endif
1332
1333#if CK3_ENABLED
1334 module function getRankDenseCusCom_D1_CK3(array, isSorted) result(rank)
1335#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1336 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_CK3
1337#endif
1338 use pm_kind, only: TKR => IK, CKG => CK3
1339 complex(CKG) , intent(in) , contiguous :: array(:)
1340 procedure(logical(LK)) :: isSorted
1341 integer(TKR) :: rank(size(array, kind = IK))
1342 end function
1343#endif
1344
1345#if CK2_ENABLED
1346 module function getRankDenseCusCom_D1_CK2(array, isSorted) result(rank)
1347#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1348 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_CK2
1349#endif
1350 use pm_kind, only: TKR => IK, CKG => CK2
1351 complex(CKG) , intent(in) , contiguous :: array(:)
1352 procedure(logical(LK)) :: isSorted
1353 integer(TKR) :: rank(size(array, kind = IK))
1354 end function
1355#endif
1356
1357#if CK1_ENABLED
1358 module function getRankDenseCusCom_D1_CK1(array, isSorted) result(rank)
1359#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1360 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_CK1
1361#endif
1362 use pm_kind, only: TKR => IK, CKG => CK1
1363 complex(CKG) , intent(in) , contiguous :: array(:)
1364 procedure(logical(LK)) :: isSorted
1365 integer(TKR) :: rank(size(array, kind = IK))
1366 end function
1367#endif
1368
1369 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1370
1371#if RK5_ENABLED
1372 module function getRankDenseCusCom_D1_RK5(array, isSorted) result(rank)
1373#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1374 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_RK5
1375#endif
1376 use pm_kind, only: TKR => IK, RKG => RK5
1377 real(RKG) , intent(in) , contiguous :: array(:)
1378 procedure(logical(LK)) :: isSorted
1379 integer(TKR) :: rank(size(array, kind = IK))
1380 end function
1381#endif
1382
1383#if RK4_ENABLED
1384 module function getRankDenseCusCom_D1_RK4(array, isSorted) result(rank)
1385#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1386 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_RK4
1387#endif
1388 use pm_kind, only: TKR => IK, RKG => RK4
1389 real(RKG) , intent(in) , contiguous :: array(:)
1390 procedure(logical(LK)) :: isSorted
1391 integer(TKR) :: rank(size(array, kind = IK))
1392 end function
1393#endif
1394
1395#if RK3_ENABLED
1396 module function getRankDenseCusCom_D1_RK3(array, isSorted) result(rank)
1397#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1398 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_RK3
1399#endif
1400 use pm_kind, only: TKR => IK, RKG => RK3
1401 real(RKG) , intent(in) , contiguous :: array(:)
1402 procedure(logical(LK)) :: isSorted
1403 integer(TKR) :: rank(size(array, kind = IK))
1404 end function
1405#endif
1406
1407#if RK2_ENABLED
1408 module function getRankDenseCusCom_D1_RK2(array, isSorted) result(rank)
1409#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1410 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_RK2
1411#endif
1412 use pm_kind, only: TKR => IK, RKG => RK2
1413 real(RKG) , intent(in) , contiguous :: array(:)
1414 procedure(logical(LK)) :: isSorted
1415 integer(TKR) :: rank(size(array, kind = IK))
1416 end function
1417#endif
1418
1419#if RK1_ENABLED
1420 module function getRankDenseCusCom_D1_RK1(array, isSorted) result(rank)
1421#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1422 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_RK1
1423#endif
1424 use pm_kind, only: TKR => IK, RKG => RK1
1425 real(RKG) , intent(in) , contiguous :: array(:)
1426 procedure(logical(LK)) :: isSorted
1427 integer(TKR) :: rank(size(array, kind = IK))
1428 end function
1429#endif
1430
1431 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1432
1433#if PDT_ENABLED
1434
1435#if SK5_ENABLED
1436 module function getRankDenseCusCom_D1_PSSK5(array, isSorted) result(rank)
1437#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1438 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_PSSK5
1439#endif
1440 use pm_kind, only: TKR => IK, SKG => SK5
1441 use pm_container, only: css_pdt
1442 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
1443 procedure(logical(LK)) :: isSorted
1444 integer(TKR) :: rank(size(array, kind = IK))
1445 end function
1446#endif
1447
1448#if SK4_ENABLED
1449 module function getRankDenseCusCom_D1_PSSK4(array, isSorted) result(rank)
1450#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1451 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_PSSK4
1452#endif
1453 use pm_kind, only: TKR => IK, SKG => SK4
1454 use pm_container, only: css_pdt
1455 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
1456 procedure(logical(LK)) :: isSorted
1457 integer(TKR) :: rank(size(array, kind = IK))
1458 end function
1459#endif
1460
1461#if SK3_ENABLED
1462 module function getRankDenseCusCom_D1_PSSK3(array, isSorted) result(rank)
1463#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1464 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_PSSK3
1465#endif
1466 use pm_kind, only: TKR => IK, SKG => SK3
1467 use pm_container, only: css_pdt
1468 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
1469 procedure(logical(LK)) :: isSorted
1470 integer(TKR) :: rank(size(array, kind = IK))
1471 end function
1472#endif
1473
1474#if SK2_ENABLED
1475 module function getRankDenseCusCom_D1_PSSK2(array, isSorted) result(rank)
1476#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1477 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_PSSK2
1478#endif
1479 use pm_kind, only: TKR => IK, SKG => SK2
1480 use pm_container, only: css_pdt
1481 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
1482 procedure(logical(LK)) :: isSorted
1483 integer(TKR) :: rank(size(array, kind = IK))
1484 end function
1485#endif
1486
1487#if SK1_ENABLED
1488 module function getRankDenseCusCom_D1_PSSK1(array, isSorted) result(rank)
1489#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1490 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_PSSK1
1491#endif
1492 use pm_kind, only: TKR => IK, SKG => SK1
1493 use pm_container, only: css_pdt
1494 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
1495 integer(TKR) :: rank(size(array, kind = IK))
1496 procedure(logical(LK)) :: isSorted
1497 end function
1498#endif
1499
1500#endif
1501!PDT_ENABLED
1502
1503 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1504
1505 module function getRankDenseCusCom_D1_BSSK(array, isSorted) result(rank)
1506#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1507 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_BSSK
1508#endif
1509 use pm_kind, only: TKR => IK, SKG => SK
1510 use pm_container, only: css_type
1511 type(css_type) , intent(in) , contiguous :: array(:)
1512 procedure(logical(LK)) :: isSorted
1513 integer(TKR) :: rank(size(array, kind = IK))
1514 end function
1515
1516 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1517
1518 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1519 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1520 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1521
1522 end interface
1523
1524!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1525
1666
1667 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1668 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1669 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1670
1671 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1672
1673#if SK5_ENABLED
1674 PURE module subroutine setRankDenseDefCom_D0_SK5(rank, array)
1675#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1676 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D0_SK5
1677#endif
1678 use pm_kind, only: TKR => IK, SKG => SK5
1679 character(*,SKG) , intent(in) :: array
1680 integer(TKR) , intent(out) , contiguous :: rank(:)
1681 end subroutine
1682#endif
1683
1684#if SK4_ENABLED
1685 PURE module subroutine setRankDenseDefCom_D0_SK4(rank, array)
1686#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1687 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D0_SK4
1688#endif
1689 use pm_kind, only: TKR => IK, SKG => SK4
1690 character(*,SKG) , intent(in) :: array
1691 integer(TKR) , intent(out) , contiguous :: rank(:)
1692 end subroutine
1693#endif
1694
1695#if SK3_ENABLED
1696 PURE module subroutine setRankDenseDefCom_D0_SK3(rank, array)
1697#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1698 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D0_SK3
1699#endif
1700 use pm_kind, only: TKR => IK, SKG => SK3
1701 character(*,SKG) , intent(in) :: array
1702 integer(TKR) , intent(out) , contiguous :: rank(:)
1703 end subroutine
1704#endif
1705
1706#if SK2_ENABLED
1707 PURE module subroutine setRankDenseDefCom_D0_SK2(rank, array)
1708#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1709 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D0_SK2
1710#endif
1711 use pm_kind, only: TKR => IK, SKG => SK2
1712 character(*,SKG) , intent(in) :: array
1713 integer(TKR) , intent(out) , contiguous :: rank(:)
1714 end subroutine
1715#endif
1716
1717#if SK1_ENABLED
1718 PURE module subroutine setRankDenseDefCom_D0_SK1(rank, array)
1719#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1720 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D0_SK1
1721#endif
1722 use pm_kind, only: TKR => IK, SKG => SK1
1723 character(*,SKG) , intent(in) :: array
1724 integer(TKR) , intent(out) , contiguous :: rank(:)
1725 end subroutine
1726#endif
1727
1728 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1729
1730#if SK5_ENABLED
1731 PURE module subroutine setRankDenseDefCom_D1_SK5(rank, array)
1732#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1733 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_SK5
1734#endif
1735 use pm_kind, only: TKR => IK, SKG => SK5
1736 character(*,SKG) , intent(in) , contiguous :: array(:)
1737 integer(TKR) , intent(out) , contiguous :: rank(:)
1738 end subroutine
1739#endif
1740
1741#if SK4_ENABLED
1742 PURE module subroutine setRankDenseDefCom_D1_SK4(rank, array)
1743#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1744 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_SK4
1745#endif
1746 use pm_kind, only: TKR => IK, SKG => SK4
1747 character(*,SKG) , intent(in) , contiguous :: array(:)
1748 integer(TKR) , intent(out) , contiguous :: rank(:)
1749 end subroutine
1750#endif
1751
1752#if SK3_ENABLED
1753 PURE module subroutine setRankDenseDefCom_D1_SK3(rank, array)
1754#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1755 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_SK3
1756#endif
1757 use pm_kind, only: TKR => IK, SKG => SK3
1758 character(*,SKG) , intent(in) , contiguous :: array(:)
1759 integer(TKR) , intent(out) , contiguous :: rank(:)
1760 end subroutine
1761#endif
1762
1763#if SK2_ENABLED
1764 PURE module subroutine setRankDenseDefCom_D1_SK2(rank, array)
1765#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1766 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_SK2
1767#endif
1768 use pm_kind, only: TKR => IK, SKG => SK2
1769 character(*,SKG) , intent(in) , contiguous :: array(:)
1770 integer(TKR) , intent(out) , contiguous :: rank(:)
1771 end subroutine
1772#endif
1773
1774#if SK1_ENABLED
1775 PURE module subroutine setRankDenseDefCom_D1_SK1(rank, array)
1776#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1777 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_SK1
1778#endif
1779 use pm_kind, only: TKR => IK, SKG => SK1
1780 character(*,SKG) , intent(in) , contiguous :: array(:)
1781 integer(TKR) , intent(out) , contiguous :: rank(:)
1782 end subroutine
1783#endif
1784
1785 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1786
1787#if IK5_ENABLED
1788 PURE module subroutine setRankDenseDefCom_D1_IK5(rank, array)
1789#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1790 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_IK5
1791#endif
1792 use pm_kind, only: TKR => IK, IKG => IK5
1793 integer(IKG) , intent(in) , contiguous :: array(:)
1794 integer(TKR) , intent(out) , contiguous :: rank(:)
1795 end subroutine
1796#endif
1797
1798#if IK4_ENABLED
1799 PURE module subroutine setRankDenseDefCom_D1_IK4(rank, array)
1800#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1801 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_IK4
1802#endif
1803 use pm_kind, only: TKR => IK, IKG => IK4
1804 integer(IKG) , intent(in) , contiguous :: array(:)
1805 integer(TKR) , intent(out) , contiguous :: rank(:)
1806 end subroutine
1807#endif
1808
1809#if IK3_ENABLED
1810 PURE module subroutine setRankDenseDefCom_D1_IK3(rank, array)
1811#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1812 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_IK3
1813#endif
1814 use pm_kind, only: TKR => IK, IKG => IK3
1815 integer(IKG) , intent(in) , contiguous :: array(:)
1816 integer(TKR) , intent(out) , contiguous :: rank(:)
1817 end subroutine
1818#endif
1819
1820#if IK2_ENABLED
1821 PURE module subroutine setRankDenseDefCom_D1_IK2(rank, array)
1822#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1823 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_IK2
1824#endif
1825 use pm_kind, only: TKR => IK, IKG => IK2
1826 integer(IKG) , intent(in) , contiguous :: array(:)
1827 integer(TKR) , intent(out) , contiguous :: rank(:)
1828 end subroutine
1829#endif
1830
1831#if IK1_ENABLED
1832 PURE module subroutine setRankDenseDefCom_D1_IK1(rank, array)
1833#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1834 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_IK1
1835#endif
1836 use pm_kind, only: TKR => IK, IKG => IK1
1837 integer(IKG) , intent(in) , contiguous :: array(:)
1838 integer(TKR) , intent(out) , contiguous :: rank(:)
1839 end subroutine
1840#endif
1841
1842 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1843
1844#if LK5_ENABLED
1845 PURE module subroutine setRankDenseDefCom_D1_LK5(rank, array)
1846#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1847 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_LK5
1848#endif
1849 use pm_kind, only: TKR => IK, LKG => LK5
1850 logical(LKG) , intent(in) , contiguous :: array(:)
1851 integer(TKR) , intent(out) , contiguous :: rank(:)
1852 end subroutine
1853#endif
1854
1855#if LK4_ENABLED
1856 PURE module subroutine setRankDenseDefCom_D1_LK4(rank, array)
1857#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1858 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_LK4
1859#endif
1860 use pm_kind, only: TKR => IK, LKG => LK4
1861 logical(LKG) , intent(in) , contiguous :: array(:)
1862 integer(TKR) , intent(out) , contiguous :: rank(:)
1863 end subroutine
1864#endif
1865
1866#if LK3_ENABLED
1867 PURE module subroutine setRankDenseDefCom_D1_LK3(rank, array)
1868#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1869 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_LK3
1870#endif
1871 use pm_kind, only: TKR => IK, LKG => LK3
1872 logical(LKG) , intent(in) , contiguous :: array(:)
1873 integer(TKR) , intent(out) , contiguous :: rank(:)
1874 end subroutine
1875#endif
1876
1877#if LK2_ENABLED
1878 PURE module subroutine setRankDenseDefCom_D1_LK2(rank, array)
1879#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1880 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_LK2
1881#endif
1882 use pm_kind, only: TKR => IK, LKG => LK2
1883 logical(LKG) , intent(in) , contiguous :: array(:)
1884 integer(TKR) , intent(out) , contiguous :: rank(:)
1885 end subroutine
1886#endif
1887
1888#if LK1_ENABLED
1889 PURE module subroutine setRankDenseDefCom_D1_LK1(rank, array)
1890#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1891 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_LK1
1892#endif
1893 use pm_kind, only: TKR => IK, LKG => LK1
1894 logical(LKG) , intent(in) , contiguous :: array(:)
1895 integer(TKR) , intent(out) , contiguous :: rank(:)
1896 end subroutine
1897#endif
1898
1899 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1900
1901#if CK5_ENABLED
1902 PURE module subroutine setRankDenseDefCom_D1_CK5(rank, array)
1903#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1904 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_CK5
1905#endif
1906 use pm_kind, only: TKR => IK, CKG => CK5
1907 complex(CKG) , intent(in) , contiguous :: array(:)
1908 integer(TKR) , intent(out) , contiguous :: rank(:)
1909 end subroutine
1910#endif
1911
1912#if CK4_ENABLED
1913 PURE module subroutine setRankDenseDefCom_D1_CK4(rank, array)
1914#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1915 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_CK4
1916#endif
1917 use pm_kind, only: TKR => IK, CKG => CK4
1918 complex(CKG) , intent(in) , contiguous :: array(:)
1919 integer(TKR) , intent(out) , contiguous :: rank(:)
1920 end subroutine
1921#endif
1922
1923#if CK3_ENABLED
1924 PURE module subroutine setRankDenseDefCom_D1_CK3(rank, array)
1925#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1926 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_CK3
1927#endif
1928 use pm_kind, only: TKR => IK, CKG => CK3
1929 complex(CKG) , intent(in) , contiguous :: array(:)
1930 integer(TKR) , intent(out) , contiguous :: rank(:)
1931 end subroutine
1932#endif
1933
1934#if CK2_ENABLED
1935 PURE module subroutine setRankDenseDefCom_D1_CK2(rank, array)
1936#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1937 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_CK2
1938#endif
1939 use pm_kind, only: TKR => IK, CKG => CK2
1940 complex(CKG) , intent(in) , contiguous :: array(:)
1941 integer(TKR) , intent(out) , contiguous :: rank(:)
1942 end subroutine
1943#endif
1944
1945#if CK1_ENABLED
1946 PURE module subroutine setRankDenseDefCom_D1_CK1(rank, array)
1947#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1948 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_CK1
1949#endif
1950 use pm_kind, only: TKR => IK, CKG => CK1
1951 complex(CKG) , intent(in) , contiguous :: array(:)
1952 integer(TKR) , intent(out) , contiguous :: rank(:)
1953 end subroutine
1954#endif
1955
1956 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1957
1958#if RK5_ENABLED
1959 PURE module subroutine setRankDenseDefCom_D1_RK5(rank, array)
1960#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1961 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_RK5
1962#endif
1963 use pm_kind, only: TKR => IK, RKG => RK5
1964 real(RKG) , intent(in) , contiguous :: array(:)
1965 integer(TKR) , intent(out) , contiguous :: rank(:)
1966 end subroutine
1967#endif
1968
1969#if RK4_ENABLED
1970 PURE module subroutine setRankDenseDefCom_D1_RK4(rank, array)
1971#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1972 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_RK4
1973#endif
1974 use pm_kind, only: TKR => IK, RKG => RK4
1975 real(RKG) , intent(in) , contiguous :: array(:)
1976 integer(TKR) , intent(out) , contiguous :: rank(:)
1977 end subroutine
1978#endif
1979
1980#if RK3_ENABLED
1981 PURE module subroutine setRankDenseDefCom_D1_RK3(rank, array)
1982#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1983 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_RK3
1984#endif
1985 use pm_kind, only: TKR => IK, RKG => RK3
1986 real(RKG) , intent(in) , contiguous :: array(:)
1987 integer(TKR) , intent(out) , contiguous :: rank(:)
1988 end subroutine
1989#endif
1990
1991#if RK2_ENABLED
1992 PURE module subroutine setRankDenseDefCom_D1_RK2(rank, array)
1993#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1994 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_RK2
1995#endif
1996 use pm_kind, only: TKR => IK, RKG => RK2
1997 real(RKG) , intent(in) , contiguous :: array(:)
1998 integer(TKR) , intent(out) , contiguous :: rank(:)
1999 end subroutine
2000#endif
2001
2002#if RK1_ENABLED
2003 PURE module subroutine setRankDenseDefCom_D1_RK1(rank, array)
2004#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2005 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_RK1
2006#endif
2007 use pm_kind, only: TKR => IK, RKG => RK1
2008 real(RKG) , intent(in) , contiguous :: array(:)
2009 integer(TKR) , intent(out) , contiguous :: rank(:)
2010 end subroutine
2011#endif
2012
2013 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2014
2015#if PDT_ENABLED
2016
2017#if SK5_ENABLED
2018 PURE module subroutine setRankDenseDefCom_D1_PSSK5(rank, array)
2019#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2020 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_PSSK5
2021#endif
2022 use pm_kind, only: TKR => IK, SKG => SK5
2023 use pm_container, only: css_pdt
2024 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
2025 integer(TKR) , intent(out) , contiguous :: rank(:)
2026 end subroutine
2027#endif
2028
2029#if SK4_ENABLED
2030 PURE module subroutine setRankDenseDefCom_D1_PSSK4(rank, array)
2031#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2032 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_PSSK4
2033#endif
2034 use pm_kind, only: TKR => IK, SKG => SK4
2035 use pm_container, only: css_pdt
2036 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
2037 integer(TKR) , intent(out) , contiguous :: rank(:)
2038 end subroutine
2039#endif
2040
2041#if SK3_ENABLED
2042 PURE module subroutine setRankDenseDefCom_D1_PSSK3(rank, array)
2043#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2044 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_PSSK3
2045#endif
2046 use pm_kind, only: TKR => IK, SKG => SK3
2047 use pm_container, only: css_pdt
2048 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
2049 integer(TKR) , intent(out) , contiguous :: rank(:)
2050 end subroutine
2051#endif
2052
2053#if SK2_ENABLED
2054 PURE module subroutine setRankDenseDefCom_D1_PSSK2(rank, array)
2055#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2056 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_PSSK2
2057#endif
2058 use pm_kind, only: TKR => IK, SKG => SK2
2059 use pm_container, only: css_pdt
2060 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
2061 integer(TKR) , intent(out) , contiguous :: rank(:)
2062 end subroutine
2063#endif
2064
2065#if SK1_ENABLED
2066 PURE module subroutine setRankDenseDefCom_D1_PSSK1(rank, array)
2067#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2068 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_PSSK1
2069#endif
2070 use pm_kind, only: TKR => IK, SKG => SK1
2071 use pm_container, only: css_pdt
2072 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
2073 integer(TKR) , intent(out) , contiguous :: rank(:)
2074 end subroutine
2075#endif
2076
2077#endif
2078!PDT_ENABLED
2079
2080 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2081
2082 PURE module subroutine setRankDenseDefCom_D1_BSSK(rank, array)
2083#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2084 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_BSSK
2085#endif
2086 use pm_kind, only: TKR => IK, SKG => SK
2087 use pm_container, only: css_type
2088 type(css_type) , intent(in) , contiguous :: array(:)
2089 integer(TKR) , intent(out) , contiguous :: rank(:)
2090 end subroutine
2091
2092 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2093
2094 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2095 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2096 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2097
2098 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2099
2100#if SK5_ENABLED
2101 module subroutine setRankDenseCusCom_D0_SK5(rank, array, isSorted)
2102#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2103 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D0_SK5
2104#endif
2105 use pm_kind, only: TKR => IK, SKG => SK5
2106 character(*,SKG) , intent(in) :: array
2107 integer(TKR) , intent(out) , contiguous :: rank(:)
2108 procedure(logical(LK)) :: isSorted
2109 end subroutine
2110#endif
2111
2112#if SK4_ENABLED
2113 module subroutine setRankDenseCusCom_D0_SK4(rank, array, isSorted)
2114#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2115 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D0_SK4
2116#endif
2117 use pm_kind, only: TKR => IK, SKG => SK4
2118 character(*,SKG) , intent(in) :: array
2119 integer(TKR) , intent(out) , contiguous :: rank(:)
2120 procedure(logical(LK)) :: isSorted
2121 end subroutine
2122#endif
2123
2124#if SK3_ENABLED
2125 module subroutine setRankDenseCusCom_D0_SK3(rank, array, isSorted)
2126#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2127 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D0_SK3
2128#endif
2129 use pm_kind, only: TKR => IK, SKG => SK3
2130 character(*,SKG) , intent(in) :: array
2131 integer(TKR) , intent(out) , contiguous :: rank(:)
2132 procedure(logical(LK)) :: isSorted
2133 end subroutine
2134#endif
2135
2136#if SK2_ENABLED
2137 module subroutine setRankDenseCusCom_D0_SK2(rank, array, isSorted)
2138#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2139 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D0_SK2
2140#endif
2141 use pm_kind, only: TKR => IK, SKG => SK2
2142 character(*,SKG) , intent(in) :: array
2143 integer(TKR) , intent(out) , contiguous :: rank(:)
2144 procedure(logical(LK)) :: isSorted
2145 end subroutine
2146#endif
2147
2148#if SK1_ENABLED
2149 module subroutine setRankDenseCusCom_D0_SK1(rank, array, isSorted)
2150#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2151 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D0_SK1
2152#endif
2153 use pm_kind, only: TKR => IK, SKG => SK1
2154 character(*,SKG) , intent(in) :: array
2155 integer(TKR) , intent(out) , contiguous :: rank(:)
2156 procedure(logical(LK)) :: isSorted
2157 end subroutine
2158#endif
2159
2160 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2161
2162#if SK5_ENABLED
2163 module subroutine setRankDenseCusCom_D1_SK5(rank, array, isSorted)
2164#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2165 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_SK5
2166#endif
2167 use pm_kind, only: TKR => IK, SKG => SK5
2168 character(*,SKG) , intent(in) , contiguous :: array(:)
2169 integer(TKR) , intent(out) , contiguous :: rank(:)
2170 procedure(logical(LK)) :: isSorted
2171 end subroutine
2172#endif
2173
2174#if SK4_ENABLED
2175 module subroutine setRankDenseCusCom_D1_SK4(rank, array, isSorted)
2176#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2177 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_SK4
2178#endif
2179 use pm_kind, only: TKR => IK, SKG => SK4
2180 character(*,SKG) , intent(in) , contiguous :: array(:)
2181 integer(TKR) , intent(out) , contiguous :: rank(:)
2182 procedure(logical(LK)) :: isSorted
2183 end subroutine
2184#endif
2185
2186#if SK3_ENABLED
2187 module subroutine setRankDenseCusCom_D1_SK3(rank, array, isSorted)
2188#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2189 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_SK3
2190#endif
2191 use pm_kind, only: TKR => IK, SKG => SK3
2192 character(*,SKG) , intent(in) , contiguous :: array(:)
2193 integer(TKR) , intent(out) , contiguous :: rank(:)
2194 procedure(logical(LK)) :: isSorted
2195 end subroutine
2196#endif
2197
2198#if SK2_ENABLED
2199 module subroutine setRankDenseCusCom_D1_SK2(rank, array, isSorted)
2200#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2201 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_SK2
2202#endif
2203 use pm_kind, only: TKR => IK, SKG => SK2
2204 character(*,SKG) , intent(in) , contiguous :: array(:)
2205 integer(TKR) , intent(out) , contiguous :: rank(:)
2206 procedure(logical(LK)) :: isSorted
2207 end subroutine
2208#endif
2209
2210#if SK1_ENABLED
2211 module subroutine setRankDenseCusCom_D1_SK1(rank, array, isSorted)
2212#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2213 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_SK1
2214#endif
2215 use pm_kind, only: TKR => IK, SKG => SK1
2216 character(*,SKG) , intent(in) , contiguous :: array(:)
2217 integer(TKR) , intent(out) , contiguous :: rank(:)
2218 procedure(logical(LK)) :: isSorted
2219 end subroutine
2220#endif
2221
2222 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2223
2224#if IK5_ENABLED
2225 module subroutine setRankDenseCusCom_D1_IK5(rank, array, isSorted)
2226#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2227 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_IK5
2228#endif
2229 use pm_kind, only: TKR => IK, IKG => IK5
2230 integer(IKG) , intent(in) , contiguous :: array(:)
2231 integer(TKR) , intent(out) , contiguous :: rank(:)
2232 procedure(logical(LK)) :: isSorted
2233 end subroutine
2234#endif
2235
2236#if IK4_ENABLED
2237 module subroutine setRankDenseCusCom_D1_IK4(rank, array, isSorted)
2238#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2239 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_IK4
2240#endif
2241 use pm_kind, only: TKR => IK, IKG => IK4
2242 integer(IKG) , intent(in) , contiguous :: array(:)
2243 integer(TKR) , intent(out) , contiguous :: rank(:)
2244 procedure(logical(LK)) :: isSorted
2245 end subroutine
2246#endif
2247
2248#if IK3_ENABLED
2249 module subroutine setRankDenseCusCom_D1_IK3(rank, array, isSorted)
2250#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2251 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_IK3
2252#endif
2253 use pm_kind, only: TKR => IK, IKG => IK3
2254 integer(IKG) , intent(in) , contiguous :: array(:)
2255 integer(TKR) , intent(out) , contiguous :: rank(:)
2256 procedure(logical(LK)) :: isSorted
2257 end subroutine
2258#endif
2259
2260#if IK2_ENABLED
2261 module subroutine setRankDenseCusCom_D1_IK2(rank, array, isSorted)
2262#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2263 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_IK2
2264#endif
2265 use pm_kind, only: TKR => IK, IKG => IK2
2266 integer(IKG) , intent(in) , contiguous :: array(:)
2267 integer(TKR) , intent(out) , contiguous :: rank(:)
2268 procedure(logical(LK)) :: isSorted
2269 end subroutine
2270#endif
2271
2272#if IK1_ENABLED
2273 module subroutine setRankDenseCusCom_D1_IK1(rank, array, isSorted)
2274#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2275 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_IK1
2276#endif
2277 use pm_kind, only: TKR => IK, IKG => IK1
2278 integer(IKG) , intent(in) , contiguous :: array(:)
2279 integer(TKR) , intent(out) , contiguous :: rank(:)
2280 procedure(logical(LK)) :: isSorted
2281 end subroutine
2282#endif
2283
2284 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2285
2286#if LK5_ENABLED
2287 module subroutine setRankDenseCusCom_D1_LK5(rank, array, isSorted)
2288#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2289 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_LK5
2290#endif
2291 use pm_kind, only: TKR => IK, LKG => LK5
2292 logical(LKG) , intent(in) , contiguous :: array(:)
2293 integer(TKR) , intent(out) , contiguous :: rank(:)
2294 procedure(logical(LK)) :: isSorted
2295 end subroutine
2296#endif
2297
2298#if LK4_ENABLED
2299 module subroutine setRankDenseCusCom_D1_LK4(rank, array, isSorted)
2300#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2301 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_LK4
2302#endif
2303 use pm_kind, only: TKR => IK, LKG => LK4
2304 logical(LKG) , intent(in) , contiguous :: array(:)
2305 integer(TKR) , intent(out) , contiguous :: rank(:)
2306 procedure(logical(LK)) :: isSorted
2307 end subroutine
2308#endif
2309
2310#if LK3_ENABLED
2311 module subroutine setRankDenseCusCom_D1_LK3(rank, array, isSorted)
2312#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2313 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_LK3
2314#endif
2315 use pm_kind, only: TKR => IK, LKG => LK3
2316 logical(LKG) , intent(in) , contiguous :: array(:)
2317 integer(TKR) , intent(out) , contiguous :: rank(:)
2318 procedure(logical(LK)) :: isSorted
2319 end subroutine
2320#endif
2321
2322#if LK2_ENABLED
2323 module subroutine setRankDenseCusCom_D1_LK2(rank, array, isSorted)
2324#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2325 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_LK2
2326#endif
2327 use pm_kind, only: TKR => IK, LKG => LK2
2328 logical(LKG) , intent(in) , contiguous :: array(:)
2329 integer(TKR) , intent(out) , contiguous :: rank(:)
2330 procedure(logical(LK)) :: isSorted
2331 end subroutine
2332#endif
2333
2334#if LK1_ENABLED
2335 module subroutine setRankDenseCusCom_D1_LK1(rank, array, isSorted)
2336#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2337 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_LK1
2338#endif
2339 use pm_kind, only: TKR => IK, LKG => LK1
2340 logical(LKG) , intent(in) , contiguous :: array(:)
2341 integer(TKR) , intent(out) , contiguous :: rank(:)
2342 procedure(logical(LK)) :: isSorted
2343 end subroutine
2344#endif
2345
2346 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2347
2348#if CK5_ENABLED
2349 module subroutine setRankDenseCusCom_D1_CK5(rank, array, isSorted)
2350#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2351 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_CK5
2352#endif
2353 use pm_kind, only: TKR => IK, CKG => CK5
2354 complex(CKG) , intent(in) , contiguous :: array(:)
2355 integer(TKR) , intent(out) , contiguous :: rank(:)
2356 procedure(logical(LK)) :: isSorted
2357 end subroutine
2358#endif
2359
2360#if CK4_ENABLED
2361 module subroutine setRankDenseCusCom_D1_CK4(rank, array, isSorted)
2362#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2363 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_CK4
2364#endif
2365 use pm_kind, only: TKR => IK, CKG => CK4
2366 complex(CKG) , intent(in) , contiguous :: array(:)
2367 integer(TKR) , intent(out) , contiguous :: rank(:)
2368 procedure(logical(LK)) :: isSorted
2369 end subroutine
2370#endif
2371
2372#if CK3_ENABLED
2373 module subroutine setRankDenseCusCom_D1_CK3(rank, array, isSorted)
2374#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2375 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_CK3
2376#endif
2377 use pm_kind, only: TKR => IK, CKG => CK3
2378 complex(CKG) , intent(in) , contiguous :: array(:)
2379 integer(TKR) , intent(out) , contiguous :: rank(:)
2380 procedure(logical(LK)) :: isSorted
2381 end subroutine
2382#endif
2383
2384#if CK2_ENABLED
2385 module subroutine setRankDenseCusCom_D1_CK2(rank, array, isSorted)
2386#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2387 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_CK2
2388#endif
2389 use pm_kind, only: TKR => IK, CKG => CK2
2390 complex(CKG) , intent(in) , contiguous :: array(:)
2391 integer(TKR) , intent(out) , contiguous :: rank(:)
2392 procedure(logical(LK)) :: isSorted
2393 end subroutine
2394#endif
2395
2396#if CK1_ENABLED
2397 module subroutine setRankDenseCusCom_D1_CK1(rank, array, isSorted)
2398#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2399 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_CK1
2400#endif
2401 use pm_kind, only: TKR => IK, CKG => CK1
2402 complex(CKG) , intent(in) , contiguous :: array(:)
2403 integer(TKR) , intent(out) , contiguous :: rank(:)
2404 procedure(logical(LK)) :: isSorted
2405 end subroutine
2406#endif
2407
2408 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2409
2410#if RK5_ENABLED
2411 module subroutine setRankDenseCusCom_D1_RK5(rank, array, isSorted)
2412#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2413 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_RK5
2414#endif
2415 use pm_kind, only: TKR => IK, RKG => RK5
2416 real(RKG) , intent(in) , contiguous :: array(:)
2417 integer(TKR) , intent(out) , contiguous :: rank(:)
2418 procedure(logical(LK)) :: isSorted
2419 end subroutine
2420#endif
2421
2422#if RK4_ENABLED
2423 module subroutine setRankDenseCusCom_D1_RK4(rank, array, isSorted)
2424#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2425 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_RK4
2426#endif
2427 use pm_kind, only: TKR => IK, RKG => RK4
2428 real(RKG) , intent(in) , contiguous :: array(:)
2429 integer(TKR) , intent(out) , contiguous :: rank(:)
2430 procedure(logical(LK)) :: isSorted
2431 end subroutine
2432#endif
2433
2434#if RK3_ENABLED
2435 module subroutine setRankDenseCusCom_D1_RK3(rank, array, isSorted)
2436#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2437 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_RK3
2438#endif
2439 use pm_kind, only: TKR => IK, RKG => RK3
2440 real(RKG) , intent(in) , contiguous :: array(:)
2441 integer(TKR) , intent(out) , contiguous :: rank(:)
2442 procedure(logical(LK)) :: isSorted
2443 end subroutine
2444#endif
2445
2446#if RK2_ENABLED
2447 module subroutine setRankDenseCusCom_D1_RK2(rank, array, isSorted)
2448#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2449 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_RK2
2450#endif
2451 use pm_kind, only: TKR => IK, RKG => RK2
2452 real(RKG) , intent(in) , contiguous :: array(:)
2453 integer(TKR) , intent(out) , contiguous :: rank(:)
2454 procedure(logical(LK)) :: isSorted
2455 end subroutine
2456#endif
2457
2458#if RK1_ENABLED
2459 module subroutine setRankDenseCusCom_D1_RK1(rank, array, isSorted)
2460#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2461 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_RK1
2462#endif
2463 use pm_kind, only: TKR => IK, RKG => RK1
2464 real(RKG) , intent(in) , contiguous :: array(:)
2465 integer(TKR) , intent(out) , contiguous :: rank(:)
2466 procedure(logical(LK)) :: isSorted
2467 end subroutine
2468#endif
2469
2470 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2471
2472#if PDT_ENABLED
2473
2474#if SK5_ENABLED
2475 module subroutine setRankDenseCusCom_D1_PSSK5(rank, array, isSorted)
2476#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2477 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_PSSK5
2478#endif
2479 use pm_kind, only: TKR => IK, SKG => SK5
2480 use pm_container, only: css_pdt
2481 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
2482 integer(TKR) , intent(out) , contiguous :: rank(:)
2483 procedure(logical(LK)) :: isSorted
2484 end subroutine
2485#endif
2486
2487#if SK4_ENABLED
2488 module subroutine setRankDenseCusCom_D1_PSSK4(rank, array, isSorted)
2489#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2490 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_PSSK4
2491#endif
2492 use pm_kind, only: TKR => IK, SKG => SK4
2493 use pm_container, only: css_pdt
2494 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
2495 integer(TKR) , intent(out) , contiguous :: rank(:)
2496 procedure(logical(LK)) :: isSorted
2497 end subroutine
2498#endif
2499
2500#if SK3_ENABLED
2501 module subroutine setRankDenseCusCom_D1_PSSK3(rank, array, isSorted)
2502#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2503 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_PSSK3
2504#endif
2505 use pm_kind, only: TKR => IK, SKG => SK3
2506 use pm_container, only: css_pdt
2507 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
2508 integer(TKR) , intent(out) , contiguous :: rank(:)
2509 procedure(logical(LK)) :: isSorted
2510 end subroutine
2511#endif
2512
2513#if SK2_ENABLED
2514 module subroutine setRankDenseCusCom_D1_PSSK2(rank, array, isSorted)
2515#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2516 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_PSSK2
2517#endif
2518 use pm_kind, only: TKR => IK, SKG => SK2
2519 use pm_container, only: css_pdt
2520 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
2521 integer(TKR) , intent(out) , contiguous :: rank(:)
2522 procedure(logical(LK)) :: isSorted
2523 end subroutine
2524#endif
2525
2526#if SK1_ENABLED
2527 module subroutine setRankDenseCusCom_D1_PSSK1(rank, array, isSorted)
2528#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2529 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_PSSK1
2530#endif
2531 use pm_kind, only: TKR => IK, SKG => SK1
2532 use pm_container, only: css_pdt
2533 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
2534 integer(TKR) , intent(out) , contiguous :: rank(:)
2535 procedure(logical(LK)) :: isSorted
2536 end subroutine
2537#endif
2538
2539#endif
2540!PDT_ENABLED
2541
2542 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2543
2544 module subroutine setRankDenseCusCom_D1_BSSK(rank, array, isSorted)
2545#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2546 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_BSSK
2547#endif
2548 use pm_kind, only: TKR => IK, SKG => SK
2549 use pm_container, only: css_type
2550 type(css_type) , intent(in) , contiguous :: array(:)
2551 integer(TKR) , intent(out) , contiguous :: rank(:)
2552 procedure(logical(LK)) :: isSorted
2553 end subroutine
2554
2555 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2556
2557 end interface
2558
2559!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2560
2707
2708 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2709 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2710 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2711
2712 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2713
2714#if SK5_ENABLED
2715 module function getRankFractionalDefCom_D0_SK5(array) result(rank)
2716#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2717 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D0_SK5
2718#endif
2719 use pm_kind, only: TKR => RK, SKG => SK5
2720 character(*,SKG) , intent(in) :: array
2721 real(TKR) :: rank(len(array, IK))
2722 end function
2723#endif
2724
2725#if SK4_ENABLED
2726 module function getRankFractionalDefCom_D0_SK4(array) result(rank)
2727#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2728 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D0_SK4
2729#endif
2730 use pm_kind, only: TKR => RK, SKG => SK4
2731 character(*,SKG) , intent(in) :: array
2732 real(TKR) :: rank(len(array, IK))
2733 end function
2734#endif
2735
2736#if SK3_ENABLED
2737 module function getRankFractionalDefCom_D0_SK3(array) result(rank)
2738#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2739 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D0_SK3
2740#endif
2741 use pm_kind, only: TKR => RK, SKG => SK3
2742 character(*,SKG) , intent(in) :: array
2743 real(TKR) :: rank(len(array, IK))
2744 end function
2745#endif
2746
2747#if SK2_ENABLED
2748 module function getRankFractionalDefCom_D0_SK2(array) result(rank)
2749#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2750 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D0_SK2
2751#endif
2752 use pm_kind, only: TKR => RK, SKG => SK2
2753 character(*,SKG) , intent(in) :: array
2754 real(TKR) :: rank(len(array, IK))
2755 end function
2756#endif
2757
2758#if SK1_ENABLED
2759 module function getRankFractionalDefCom_D0_SK1(array) result(rank)
2760#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2761 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D0_SK1
2762#endif
2763 use pm_kind, only: TKR => RK, SKG => SK1
2764 character(*,SKG) , intent(in) :: array
2765 real(TKR) :: rank(len(array, IK))
2766 end function
2767#endif
2768
2769 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2770
2771#if SK5_ENABLED
2772 module function getRankFractionalDefCom_D1_SK5(array) result(rank)
2773#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2774 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_SK5
2775#endif
2776 use pm_kind, only: TKR => RK, SKG => SK5
2777 character(*,SKG) , intent(in) , contiguous :: array(:)
2778 real(TKR) :: rank(size(array, kind = IK))
2779 end function
2780#endif
2781
2782#if SK4_ENABLED
2783 module function getRankFractionalDefCom_D1_SK4(array) result(rank)
2784#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2785 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_SK4
2786#endif
2787 use pm_kind, only: TKR => RK, SKG => SK4
2788 character(*,SKG) , intent(in) , contiguous :: array(:)
2789 real(TKR) :: rank(size(array, kind = IK))
2790 end function
2791#endif
2792
2793#if SK3_ENABLED
2794 module function getRankFractionalDefCom_D1_SK3(array) result(rank)
2795#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2796 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_SK3
2797#endif
2798 use pm_kind, only: TKR => RK, SKG => SK3
2799 character(*,SKG) , intent(in) , contiguous :: array(:)
2800 real(TKR) :: rank(size(array, kind = IK))
2801 end function
2802#endif
2803
2804#if SK2_ENABLED
2805 module function getRankFractionalDefCom_D1_SK2(array) result(rank)
2806#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2807 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_SK2
2808#endif
2809 use pm_kind, only: TKR => RK, SKG => SK2
2810 character(*,SKG) , intent(in) , contiguous :: array(:)
2811 real(TKR) :: rank(size(array, kind = IK))
2812 end function
2813#endif
2814
2815#if SK1_ENABLED
2816 module function getRankFractionalDefCom_D1_SK1(array) result(rank)
2817#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2818 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_SK1
2819#endif
2820 use pm_kind, only: TKR => RK, SKG => SK1
2821 character(*,SKG) , intent(in) , contiguous :: array(:)
2822 real(TKR) :: rank(size(array, kind = IK))
2823 end function
2824#endif
2825
2826 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2827
2828#if IK5_ENABLED
2829 module function getRankFractionalDefCom_D1_IK5(array) result(rank)
2830#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2831 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_IK5
2832#endif
2833 use pm_kind, only: TKR => RK, IKG => IK5
2834 integer(IKG) , intent(in) , contiguous :: array(:)
2835 real(TKR) :: rank(size(array, kind = IK))
2836 end function
2837#endif
2838
2839#if IK4_ENABLED
2840 module function getRankFractionalDefCom_D1_IK4(array) result(rank)
2841#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2842 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_IK4
2843#endif
2844 use pm_kind, only: TKR => RK, IKG => IK4
2845 integer(IKG) , intent(in) , contiguous :: array(:)
2846 real(TKR) :: rank(size(array, kind = IK))
2847 end function
2848#endif
2849
2850#if IK3_ENABLED
2851 module function getRankFractionalDefCom_D1_IK3(array) result(rank)
2852#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2853 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_IK3
2854#endif
2855 use pm_kind, only: TKR => RK, IKG => IK3
2856 integer(IKG) , intent(in) , contiguous :: array(:)
2857 real(TKR) :: rank(size(array, kind = IK))
2858 end function
2859#endif
2860
2861#if IK2_ENABLED
2862 module function getRankFractionalDefCom_D1_IK2(array) result(rank)
2863#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2864 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_IK2
2865#endif
2866 use pm_kind, only: TKR => RK, IKG => IK2
2867 integer(IKG) , intent(in) , contiguous :: array(:)
2868 real(TKR) :: rank(size(array, kind = IK))
2869 end function
2870#endif
2871
2872#if IK1_ENABLED
2873 module function getRankFractionalDefCom_D1_IK1(array) result(rank)
2874#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2875 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_IK1
2876#endif
2877 use pm_kind, only: TKR => RK, IKG => IK1
2878 integer(IKG) , intent(in) , contiguous :: array(:)
2879 real(TKR) :: rank(size(array, kind = IK))
2880 end function
2881#endif
2882
2883 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2884
2885#if LK5_ENABLED
2886 module function getRankFractionalDefCom_D1_LK5(array) result(rank)
2887#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2888 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_LK5
2889#endif
2890 use pm_kind, only: TKR => RK, LKG => LK5
2891 logical(LKG) , intent(in) , contiguous :: array(:)
2892 real(TKR) :: rank(size(array, kind = IK))
2893 end function
2894#endif
2895
2896#if LK4_ENABLED
2897 module function getRankFractionalDefCom_D1_LK4(array) result(rank)
2898#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2899 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_LK4
2900#endif
2901 use pm_kind, only: TKR => RK, LKG => LK4
2902 logical(LKG) , intent(in) , contiguous :: array(:)
2903 real(TKR) :: rank(size(array, kind = IK))
2904 end function
2905#endif
2906
2907#if LK3_ENABLED
2908 module function getRankFractionalDefCom_D1_LK3(array) result(rank)
2909#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2910 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_LK3
2911#endif
2912 use pm_kind, only: TKR => RK, LKG => LK3
2913 logical(LKG) , intent(in) , contiguous :: array(:)
2914 real(TKR) :: rank(size(array, kind = IK))
2915 end function
2916#endif
2917
2918#if LK2_ENABLED
2919 module function getRankFractionalDefCom_D1_LK2(array) result(rank)
2920#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2921 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_LK2
2922#endif
2923 use pm_kind, only: TKR => RK, LKG => LK2
2924 logical(LKG) , intent(in) , contiguous :: array(:)
2925 real(TKR) :: rank(size(array, kind = IK))
2926 end function
2927#endif
2928
2929#if LK1_ENABLED
2930 module function getRankFractionalDefCom_D1_LK1(array) result(rank)
2931#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2932 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_LK1
2933#endif
2934 use pm_kind, only: TKR => RK, LKG => LK1
2935 logical(LKG) , intent(in) , contiguous :: array(:)
2936 real(TKR) :: rank(size(array, kind = IK))
2937 end function
2938#endif
2939
2940 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2941
2942#if CK5_ENABLED
2943 module function getRankFractionalDefCom_D1_CK5(array) result(rank)
2944#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2945 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_CK5
2946#endif
2947 use pm_kind, only: TKR => RK, CKG => CK5
2948 complex(CKG) , intent(in) , contiguous :: array(:)
2949 real(TKR) :: rank(size(array, kind = IK))
2950 end function
2951#endif
2952
2953#if CK4_ENABLED
2954 module function getRankFractionalDefCom_D1_CK4(array) result(rank)
2955#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2956 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_CK4
2957#endif
2958 use pm_kind, only: TKR => RK, CKG => CK4
2959 complex(CKG) , intent(in) , contiguous :: array(:)
2960 real(TKR) :: rank(size(array, kind = IK))
2961 end function
2962#endif
2963
2964#if CK3_ENABLED
2965 module function getRankFractionalDefCom_D1_CK3(array) result(rank)
2966#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2967 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_CK3
2968#endif
2969 use pm_kind, only: TKR => RK, CKG => CK3
2970 complex(CKG) , intent(in) , contiguous :: array(:)
2971 real(TKR) :: rank(size(array, kind = IK))
2972 end function
2973#endif
2974
2975#if CK2_ENABLED
2976 module function getRankFractionalDefCom_D1_CK2(array) result(rank)
2977#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2978 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_CK2
2979#endif
2980 use pm_kind, only: TKR => RK, CKG => CK2
2981 complex(CKG) , intent(in) , contiguous :: array(:)
2982 real(TKR) :: rank(size(array, kind = IK))
2983 end function
2984#endif
2985
2986#if CK1_ENABLED
2987 module function getRankFractionalDefCom_D1_CK1(array) result(rank)
2988#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2989 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_CK1
2990#endif
2991 use pm_kind, only: TKR => RK, CKG => CK1
2992 complex(CKG) , intent(in) , contiguous :: array(:)
2993 real(TKR) :: rank(size(array, kind = IK))
2994 end function
2995#endif
2996
2997 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2998
2999#if RK5_ENABLED
3000 module function getRankFractionalDefCom_D1_RK5(array) result(rank)
3001#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3002 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_RK5
3003#endif
3004 use pm_kind, only: TKR => RK, RKG => RK5
3005 real(RKG) , intent(in) , contiguous :: array(:)
3006 real(TKR) :: rank(size(array, kind = IK))
3007 end function
3008#endif
3009
3010#if RK4_ENABLED
3011 module function getRankFractionalDefCom_D1_RK4(array) result(rank)
3012#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3013 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_RK4
3014#endif
3015 use pm_kind, only: TKR => RK, RKG => RK4
3016 real(RKG) , intent(in) , contiguous :: array(:)
3017 real(TKR) :: rank(size(array, kind = IK))
3018 end function
3019#endif
3020
3021#if RK3_ENABLED
3022 module function getRankFractionalDefCom_D1_RK3(array) result(rank)
3023#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3024 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_RK3
3025#endif
3026 use pm_kind, only: TKR => RK, RKG => RK3
3027 real(RKG) , intent(in) , contiguous :: array(:)
3028 real(TKR) :: rank(size(array, kind = IK))
3029 end function
3030#endif
3031
3032#if RK2_ENABLED
3033 module function getRankFractionalDefCom_D1_RK2(array) result(rank)
3034#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3035 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_RK2
3036#endif
3037 use pm_kind, only: TKR => RK, RKG => RK2
3038 real(RKG) , intent(in) , contiguous :: array(:)
3039 real(TKR) :: rank(size(array, kind = IK))
3040 end function
3041#endif
3042
3043#if RK1_ENABLED
3044 module function getRankFractionalDefCom_D1_RK1(array) result(rank)
3045#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3046 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_RK1
3047#endif
3048 use pm_kind, only: TKR => RK, RKG => RK1
3049 real(RKG) , intent(in) , contiguous :: array(:)
3050 real(TKR) :: rank(size(array, kind = IK))
3051 end function
3052#endif
3053
3054 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3055
3056#if PDT_ENABLED
3057
3058#if SK5_ENABLED
3059 module function getRankFractionalDefCom_D1_PSSK5(array) result(rank)
3060#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3061 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_PSSK5
3062#endif
3063 use pm_kind, only: TKR => RK, SKG => SK5
3064 use pm_container, only: css_pdt
3065 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
3066 real(TKR) :: rank(size(array, kind = IK))
3067 end function
3068#endif
3069
3070#if SK4_ENABLED
3071 module function getRankFractionalDefCom_D1_PSSK4(array) result(rank)
3072#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3073 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_PSSK4
3074#endif
3075 use pm_kind, only: TKR => RK, SKG => SK4
3076 use pm_container, only: css_pdt
3077 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
3078 real(TKR) :: rank(size(array, kind = IK))
3079 end function
3080#endif
3081
3082#if SK3_ENABLED
3083 module function getRankFractionalDefCom_D1_PSSK3(array) result(rank)
3084#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3085 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_PSSK3
3086#endif
3087 use pm_kind, only: TKR => RK, SKG => SK3
3088 use pm_container, only: css_pdt
3089 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
3090 real(TKR) :: rank(size(array, kind = IK))
3091 end function
3092#endif
3093
3094#if SK2_ENABLED
3095 module function getRankFractionalDefCom_D1_PSSK2(array) result(rank)
3096#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3097 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_PSSK2
3098#endif
3099 use pm_kind, only: TKR => RK, SKG => SK2
3100 use pm_container, only: css_pdt
3101 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
3102 real(TKR) :: rank(size(array, kind = IK))
3103 end function
3104#endif
3105
3106#if SK1_ENABLED
3107 module function getRankFractionalDefCom_D1_PSSK1(array) result(rank)
3108#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3109 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_PSSK1
3110#endif
3111 use pm_kind, only: TKR => RK, SKG => SK1
3112 use pm_container, only: css_pdt
3113 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
3114 real(TKR) :: rank(size(array, kind = IK))
3115 end function
3116#endif
3117
3118#endif
3119!PDT_ENABLED
3120
3121 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3122
3123 module function getRankFractionalDefCom_D1_BSSK(array) result(rank)
3124#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3125 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_BSSK
3126#endif
3127 use pm_kind, only: TKR => RK, SKG => SK
3128 use pm_container, only: css_type
3129 type(css_type) , intent(in) , contiguous :: array(:)
3130 real(TKR) :: rank(size(array, kind = IK))
3131 end function
3132
3133 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3134
3135 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3136 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3137 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3138
3139 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3140
3141#if SK5_ENABLED
3142 module function getRankFractionalCusCom_D0_SK5(array, isSorted) result(rank)
3143#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3144 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D0_SK5
3145#endif
3146 use pm_kind, only: TKR => RK, SKG => SK5
3147 character(*,SKG) , intent(in) :: array
3148 procedure(logical(LK)) :: isSorted
3149 real(TKR) :: rank(len(array, IK))
3150 end function
3151#endif
3152
3153#if SK4_ENABLED
3154 module function getRankFractionalCusCom_D0_SK4(array, isSorted) result(rank)
3155#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3156 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D0_SK4
3157#endif
3158 use pm_kind, only: TKR => RK, SKG => SK4
3159 character(*,SKG) , intent(in) :: array
3160 procedure(logical(LK)) :: isSorted
3161 real(TKR) :: rank(len(array, IK))
3162 end function
3163#endif
3164
3165#if SK3_ENABLED
3166 module function getRankFractionalCusCom_D0_SK3(array, isSorted) result(rank)
3167#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3168 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D0_SK3
3169#endif
3170 use pm_kind, only: TKR => RK, SKG => SK3
3171 character(*,SKG) , intent(in) :: array
3172 procedure(logical(LK)) :: isSorted
3173 real(TKR) :: rank(len(array, IK))
3174 end function
3175#endif
3176
3177#if SK2_ENABLED
3178 module function getRankFractionalCusCom_D0_SK2(array, isSorted) result(rank)
3179#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3180 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D0_SK2
3181#endif
3182 use pm_kind, only: TKR => RK, SKG => SK2
3183 character(*,SKG) , intent(in) :: array
3184 procedure(logical(LK)) :: isSorted
3185 real(TKR) :: rank(len(array, IK))
3186 end function
3187#endif
3188
3189#if SK1_ENABLED
3190 module function getRankFractionalCusCom_D0_SK1(array, isSorted) result(rank)
3191#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3192 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D0_SK1
3193#endif
3194 use pm_kind, only: TKR => RK, SKG => SK1
3195 character(*,SKG) , intent(in) :: array
3196 procedure(logical(LK)) :: isSorted
3197 real(TKR) :: rank(len(array, IK))
3198 end function
3199#endif
3200
3201 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3202
3203#if SK5_ENABLED
3204 module function getRankFractionalCusCom_D1_SK5(array, isSorted) result(rank)
3205#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3206 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_SK5
3207#endif
3208 use pm_kind, only: TKR => RK, SKG => SK5
3209 character(*,SKG) , intent(in) , contiguous :: array(:)
3210 procedure(logical(LK)) :: isSorted
3211 real(TKR) :: rank(size(array, kind = IK))
3212 end function
3213#endif
3214
3215#if SK4_ENABLED
3216 module function getRankFractionalCusCom_D1_SK4(array, isSorted) result(rank)
3217#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3218 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_SK4
3219#endif
3220 use pm_kind, only: TKR => RK, SKG => SK4
3221 character(*,SKG) , intent(in) , contiguous :: array(:)
3222 procedure(logical(LK)) :: isSorted
3223 real(TKR) :: rank(size(array, kind = IK))
3224 end function
3225#endif
3226
3227#if SK3_ENABLED
3228 module function getRankFractionalCusCom_D1_SK3(array, isSorted) result(rank)
3229#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3230 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_SK3
3231#endif
3232 use pm_kind, only: TKR => RK, SKG => SK3
3233 character(*,SKG) , intent(in) , contiguous :: array(:)
3234 procedure(logical(LK)) :: isSorted
3235 real(TKR) :: rank(size(array, kind = IK))
3236 end function
3237#endif
3238
3239#if SK2_ENABLED
3240 module function getRankFractionalCusCom_D1_SK2(array, isSorted) result(rank)
3241#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3242 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_SK2
3243#endif
3244 use pm_kind, only: TKR => RK, SKG => SK2
3245 character(*,SKG) , intent(in) , contiguous :: array(:)
3246 procedure(logical(LK)) :: isSorted
3247 real(TKR) :: rank(size(array, kind = IK))
3248 end function
3249#endif
3250
3251#if SK1_ENABLED
3252 module function getRankFractionalCusCom_D1_SK1(array, isSorted) result(rank)
3253#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3254 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_SK1
3255#endif
3256 use pm_kind, only: TKR => RK, SKG => SK1
3257 character(*,SKG) , intent(in) , contiguous :: array(:)
3258 procedure(logical(LK)) :: isSorted
3259 real(TKR) :: rank(size(array, kind = IK))
3260 end function
3261#endif
3262
3263 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3264
3265#if IK5_ENABLED
3266 module function getRankFractionalCusCom_D1_IK5(array, isSorted) result(rank)
3267#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3268 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_IK5
3269#endif
3270 use pm_kind, only: TKR => RK, IKG => IK5
3271 integer(IKG) , intent(in) , contiguous :: array(:)
3272 procedure(logical(LK)) :: isSorted
3273 real(TKR) :: rank(size(array, kind = IK))
3274 end function
3275#endif
3276
3277#if IK4_ENABLED
3278 module function getRankFractionalCusCom_D1_IK4(array, isSorted) result(rank)
3279#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3280 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_IK4
3281#endif
3282 use pm_kind, only: TKR => RK, IKG => IK4
3283 integer(IKG) , intent(in) , contiguous :: array(:)
3284 procedure(logical(LK)) :: isSorted
3285 real(TKR) :: rank(size(array, kind = IK))
3286 end function
3287#endif
3288
3289#if IK3_ENABLED
3290 module function getRankFractionalCusCom_D1_IK3(array, isSorted) result(rank)
3291#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3292 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_IK3
3293#endif
3294 use pm_kind, only: TKR => RK, IKG => IK3
3295 integer(IKG) , intent(in) , contiguous :: array(:)
3296 procedure(logical(LK)) :: isSorted
3297 real(TKR) :: rank(size(array, kind = IK))
3298 end function
3299#endif
3300
3301#if IK2_ENABLED
3302 module function getRankFractionalCusCom_D1_IK2(array, isSorted) result(rank)
3303#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3304 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_IK2
3305#endif
3306 use pm_kind, only: TKR => RK, IKG => IK2
3307 integer(IKG) , intent(in) , contiguous :: array(:)
3308 procedure(logical(LK)) :: isSorted
3309 real(TKR) :: rank(size(array, kind = IK))
3310 end function
3311#endif
3312
3313#if IK1_ENABLED
3314 module function getRankFractionalCusCom_D1_IK1(array, isSorted) result(rank)
3315#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3316 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_IK1
3317#endif
3318 use pm_kind, only: TKR => RK, IKG => IK1
3319 integer(IKG) , intent(in) , contiguous :: array(:)
3320 procedure(logical(LK)) :: isSorted
3321 real(TKR) :: rank(size(array, kind = IK))
3322 end function
3323#endif
3324
3325 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3326
3327#if LK5_ENABLED
3328 module function getRankFractionalCusCom_D1_LK5(array, isSorted) result(rank)
3329#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3330 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_LK5
3331#endif
3332 use pm_kind, only: TKR => RK, LKG => LK5
3333 logical(LKG) , intent(in) , contiguous :: array(:)
3334 procedure(logical(LK)) :: isSorted
3335 real(TKR) :: rank(size(array, kind = IK))
3336 end function
3337#endif
3338
3339#if LK4_ENABLED
3340 module function getRankFractionalCusCom_D1_LK4(array, isSorted) result(rank)
3341#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3342 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_LK4
3343#endif
3344 use pm_kind, only: TKR => RK, LKG => LK4
3345 logical(LKG) , intent(in) , contiguous :: array(:)
3346 procedure(logical(LK)) :: isSorted
3347 real(TKR) :: rank(size(array, kind = IK))
3348 end function
3349#endif
3350
3351#if LK3_ENABLED
3352 module function getRankFractionalCusCom_D1_LK3(array, isSorted) result(rank)
3353#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3354 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_LK3
3355#endif
3356 use pm_kind, only: TKR => RK, LKG => LK3
3357 logical(LKG) , intent(in) , contiguous :: array(:)
3358 procedure(logical(LK)) :: isSorted
3359 real(TKR) :: rank(size(array, kind = IK))
3360 end function
3361#endif
3362
3363#if LK2_ENABLED
3364 module function getRankFractionalCusCom_D1_LK2(array, isSorted) result(rank)
3365#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3366 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_LK2
3367#endif
3368 use pm_kind, only: TKR => RK, LKG => LK2
3369 logical(LKG) , intent(in) , contiguous :: array(:)
3370 procedure(logical(LK)) :: isSorted
3371 real(TKR) :: rank(size(array, kind = IK))
3372 end function
3373#endif
3374
3375#if LK1_ENABLED
3376 module function getRankFractionalCusCom_D1_LK1(array, isSorted) result(rank)
3377#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3378 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_LK1
3379#endif
3380 use pm_kind, only: TKR => RK, LKG => LK1
3381 logical(LKG) , intent(in) , contiguous :: array(:)
3382 procedure(logical(LK)) :: isSorted
3383 real(TKR) :: rank(size(array, kind = IK))
3384 end function
3385#endif
3386
3387 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3388
3389#if CK5_ENABLED
3390 module function getRankFractionalCusCom_D1_CK5(array, isSorted) result(rank)
3391#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3392 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_CK5
3393#endif
3394 use pm_kind, only: TKR => RK, CKG => CK5
3395 complex(CKG) , intent(in) , contiguous :: array(:)
3396 procedure(logical(LK)) :: isSorted
3397 real(TKR) :: rank(size(array, kind = IK))
3398 end function
3399#endif
3400
3401#if CK4_ENABLED
3402 module function getRankFractionalCusCom_D1_CK4(array, isSorted) result(rank)
3403#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3404 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_CK4
3405#endif
3406 use pm_kind, only: TKR => RK, CKG => CK4
3407 complex(CKG) , intent(in) , contiguous :: array(:)
3408 procedure(logical(LK)) :: isSorted
3409 real(TKR) :: rank(size(array, kind = IK))
3410 end function
3411#endif
3412
3413#if CK3_ENABLED
3414 module function getRankFractionalCusCom_D1_CK3(array, isSorted) result(rank)
3415#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3416 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_CK3
3417#endif
3418 use pm_kind, only: TKR => RK, CKG => CK3
3419 complex(CKG) , intent(in) , contiguous :: array(:)
3420 procedure(logical(LK)) :: isSorted
3421 real(TKR) :: rank(size(array, kind = IK))
3422 end function
3423#endif
3424
3425#if CK2_ENABLED
3426 module function getRankFractionalCusCom_D1_CK2(array, isSorted) result(rank)
3427#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3428 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_CK2
3429#endif
3430 use pm_kind, only: TKR => RK, CKG => CK2
3431 complex(CKG) , intent(in) , contiguous :: array(:)
3432 procedure(logical(LK)) :: isSorted
3433 real(TKR) :: rank(size(array, kind = IK))
3434 end function
3435#endif
3436
3437#if CK1_ENABLED
3438 module function getRankFractionalCusCom_D1_CK1(array, isSorted) result(rank)
3439#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3440 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_CK1
3441#endif
3442 use pm_kind, only: TKR => RK, CKG => CK1
3443 complex(CKG) , intent(in) , contiguous :: array(:)
3444 procedure(logical(LK)) :: isSorted
3445 real(TKR) :: rank(size(array, kind = IK))
3446 end function
3447#endif
3448
3449 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3450
3451#if RK5_ENABLED
3452 module function getRankFractionalCusCom_D1_RK5(array, isSorted) result(rank)
3453#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3454 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_RK5
3455#endif
3456 use pm_kind, only: TKR => RK, RKG => RK5
3457 real(RKG) , intent(in) , contiguous :: array(:)
3458 procedure(logical(LK)) :: isSorted
3459 real(TKR) :: rank(size(array, kind = IK))
3460 end function
3461#endif
3462
3463#if RK4_ENABLED
3464 module function getRankFractionalCusCom_D1_RK4(array, isSorted) result(rank)
3465#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3466 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_RK4
3467#endif
3468 use pm_kind, only: TKR => RK, RKG => RK4
3469 real(RKG) , intent(in) , contiguous :: array(:)
3470 procedure(logical(LK)) :: isSorted
3471 real(TKR) :: rank(size(array, kind = IK))
3472 end function
3473#endif
3474
3475#if RK3_ENABLED
3476 module function getRankFractionalCusCom_D1_RK3(array, isSorted) result(rank)
3477#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3478 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_RK3
3479#endif
3480 use pm_kind, only: TKR => RK, RKG => RK3
3481 real(RKG) , intent(in) , contiguous :: array(:)
3482 procedure(logical(LK)) :: isSorted
3483 real(TKR) :: rank(size(array, kind = IK))
3484 end function
3485#endif
3486
3487#if RK2_ENABLED
3488 module function getRankFractionalCusCom_D1_RK2(array, isSorted) result(rank)
3489#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3490 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_RK2
3491#endif
3492 use pm_kind, only: TKR => RK, RKG => RK2
3493 real(RKG) , intent(in) , contiguous :: array(:)
3494 procedure(logical(LK)) :: isSorted
3495 real(TKR) :: rank(size(array, kind = IK))
3496 end function
3497#endif
3498
3499#if RK1_ENABLED
3500 module function getRankFractionalCusCom_D1_RK1(array, isSorted) result(rank)
3501#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3502 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_RK1
3503#endif
3504 use pm_kind, only: TKR => RK, RKG => RK1
3505 real(RKG) , intent(in) , contiguous :: array(:)
3506 procedure(logical(LK)) :: isSorted
3507 real(TKR) :: rank(size(array, kind = IK))
3508 end function
3509#endif
3510
3511 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3512
3513#if PDT_ENABLED
3514
3515#if SK5_ENABLED
3516 module function getRankFractionalCusCom_D1_PSSK5(array, isSorted) result(rank)
3517#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3518 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_PSSK5
3519#endif
3520 use pm_kind, only: TKR => RK, SKG => SK5
3521 use pm_container, only: css_pdt
3522 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
3523 procedure(logical(LK)) :: isSorted
3524 real(TKR) :: rank(size(array, kind = IK))
3525 end function
3526#endif
3527
3528#if SK4_ENABLED
3529 module function getRankFractionalCusCom_D1_PSSK4(array, isSorted) result(rank)
3530#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3531 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_PSSK4
3532#endif
3533 use pm_kind, only: TKR => RK, SKG => SK4
3534 use pm_container, only: css_pdt
3535 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
3536 procedure(logical(LK)) :: isSorted
3537 real(TKR) :: rank(size(array, kind = IK))
3538 end function
3539#endif
3540
3541#if SK3_ENABLED
3542 module function getRankFractionalCusCom_D1_PSSK3(array, isSorted) result(rank)
3543#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3544 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_PSSK3
3545#endif
3546 use pm_kind, only: TKR => RK, SKG => SK3
3547 use pm_container, only: css_pdt
3548 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
3549 procedure(logical(LK)) :: isSorted
3550 real(TKR) :: rank(size(array, kind = IK))
3551 end function
3552#endif
3553
3554#if SK2_ENABLED
3555 module function getRankFractionalCusCom_D1_PSSK2(array, isSorted) result(rank)
3556#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3557 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_PSSK2
3558#endif
3559 use pm_kind, only: TKR => RK, SKG => SK2
3560 use pm_container, only: css_pdt
3561 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
3562 procedure(logical(LK)) :: isSorted
3563 real(TKR) :: rank(size(array, kind = IK))
3564 end function
3565#endif
3566
3567#if SK1_ENABLED
3568 module function getRankFractionalCusCom_D1_PSSK1(array, isSorted) result(rank)
3569#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3570 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_PSSK1
3571#endif
3572 use pm_kind, only: TKR => RK, SKG => SK1
3573 use pm_container, only: css_pdt
3574 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
3575 real(TKR) :: rank(size(array, kind = IK))
3576 procedure(logical(LK)) :: isSorted
3577 end function
3578#endif
3579
3580#endif
3581!PDT_ENABLED
3582
3583 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3584
3585 module function getRankFractionalCusCom_D1_BSSK(array, isSorted) result(rank)
3586#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3587 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_BSSK
3588#endif
3589 use pm_kind, only: TKR => RK, SKG => SK
3590 use pm_container, only: css_type
3591 type(css_type) , intent(in) , contiguous :: array(:)
3592 procedure(logical(LK)) :: isSorted
3593 real(TKR) :: rank(size(array, kind = IK))
3594 end function
3595
3596 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3597
3598 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3599 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3600 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3601
3602 end interface
3603
3604!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3605
3752
3753 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3754 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3755 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3756
3757 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3758
3759#if SK5_ENABLED
3760 PURE module subroutine setRankFractionalDefCom_D0_SK5(rank, array)
3761#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3762 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D0_SK5
3763#endif
3764 use pm_kind, only: TKR => RK, SKG => SK5
3765 character(*,SKG) , intent(in) :: array
3766 real(TKR) , intent(out) , contiguous :: rank(:)
3767 end subroutine
3768#endif
3769
3770#if SK4_ENABLED
3771 PURE module subroutine setRankFractionalDefCom_D0_SK4(rank, array)
3772#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3773 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D0_SK4
3774#endif
3775 use pm_kind, only: TKR => RK, SKG => SK4
3776 character(*,SKG) , intent(in) :: array
3777 real(TKR) , intent(out) , contiguous :: rank(:)
3778 end subroutine
3779#endif
3780
3781#if SK3_ENABLED
3782 PURE module subroutine setRankFractionalDefCom_D0_SK3(rank, array)
3783#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3784 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D0_SK3
3785#endif
3786 use pm_kind, only: TKR => RK, SKG => SK3
3787 character(*,SKG) , intent(in) :: array
3788 real(TKR) , intent(out) , contiguous :: rank(:)
3789 end subroutine
3790#endif
3791
3792#if SK2_ENABLED
3793 PURE module subroutine setRankFractionalDefCom_D0_SK2(rank, array)
3794#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3795 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D0_SK2
3796#endif
3797 use pm_kind, only: TKR => RK, SKG => SK2
3798 character(*,SKG) , intent(in) :: array
3799 real(TKR) , intent(out) , contiguous :: rank(:)
3800 end subroutine
3801#endif
3802
3803#if SK1_ENABLED
3804 PURE module subroutine setRankFractionalDefCom_D0_SK1(rank, array)
3805#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3806 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D0_SK1
3807#endif
3808 use pm_kind, only: TKR => RK, SKG => SK1
3809 character(*,SKG) , intent(in) :: array
3810 real(TKR) , intent(out) , contiguous :: rank(:)
3811 end subroutine
3812#endif
3813
3814 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3815
3816#if SK5_ENABLED
3817 PURE module subroutine setRankFractionalDefCom_D1_SK5(rank, array)
3818#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3819 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_SK5
3820#endif
3821 use pm_kind, only: TKR => RK, SKG => SK5
3822 character(*,SKG) , intent(in) , contiguous :: array(:)
3823 real(TKR) , intent(out) , contiguous :: rank(:)
3824 end subroutine
3825#endif
3826
3827#if SK4_ENABLED
3828 PURE module subroutine setRankFractionalDefCom_D1_SK4(rank, array)
3829#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3830 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_SK4
3831#endif
3832 use pm_kind, only: TKR => RK, SKG => SK4
3833 character(*,SKG) , intent(in) , contiguous :: array(:)
3834 real(TKR) , intent(out) , contiguous :: rank(:)
3835 end subroutine
3836#endif
3837
3838#if SK3_ENABLED
3839 PURE module subroutine setRankFractionalDefCom_D1_SK3(rank, array)
3840#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3841 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_SK3
3842#endif
3843 use pm_kind, only: TKR => RK, SKG => SK3
3844 character(*,SKG) , intent(in) , contiguous :: array(:)
3845 real(TKR) , intent(out) , contiguous :: rank(:)
3846 end subroutine
3847#endif
3848
3849#if SK2_ENABLED
3850 PURE module subroutine setRankFractionalDefCom_D1_SK2(rank, array)
3851#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3852 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_SK2
3853#endif
3854 use pm_kind, only: TKR => RK, SKG => SK2
3855 character(*,SKG) , intent(in) , contiguous :: array(:)
3856 real(TKR) , intent(out) , contiguous :: rank(:)
3857 end subroutine
3858#endif
3859
3860#if SK1_ENABLED
3861 PURE module subroutine setRankFractionalDefCom_D1_SK1(rank, array)
3862#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3863 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_SK1
3864#endif
3865 use pm_kind, only: TKR => RK, SKG => SK1
3866 character(*,SKG) , intent(in) , contiguous :: array(:)
3867 real(TKR) , intent(out) , contiguous :: rank(:)
3868 end subroutine
3869#endif
3870
3871 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3872
3873#if IK5_ENABLED
3874 PURE module subroutine setRankFractionalDefCom_D1_IK5(rank, array)
3875#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3876 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_IK5
3877#endif
3878 use pm_kind, only: TKR => RK, IKG => IK5
3879 integer(IKG) , intent(in) , contiguous :: array(:)
3880 real(TKR) , intent(out) , contiguous :: rank(:)
3881 end subroutine
3882#endif
3883
3884#if IK4_ENABLED
3885 PURE module subroutine setRankFractionalDefCom_D1_IK4(rank, array)
3886#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3887 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_IK4
3888#endif
3889 use pm_kind, only: TKR => RK, IKG => IK4
3890 integer(IKG) , intent(in) , contiguous :: array(:)
3891 real(TKR) , intent(out) , contiguous :: rank(:)
3892 end subroutine
3893#endif
3894
3895#if IK3_ENABLED
3896 PURE module subroutine setRankFractionalDefCom_D1_IK3(rank, array)
3897#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3898 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_IK3
3899#endif
3900 use pm_kind, only: TKR => RK, IKG => IK3
3901 integer(IKG) , intent(in) , contiguous :: array(:)
3902 real(TKR) , intent(out) , contiguous :: rank(:)
3903 end subroutine
3904#endif
3905
3906#if IK2_ENABLED
3907 PURE module subroutine setRankFractionalDefCom_D1_IK2(rank, array)
3908#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3909 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_IK2
3910#endif
3911 use pm_kind, only: TKR => RK, IKG => IK2
3912 integer(IKG) , intent(in) , contiguous :: array(:)
3913 real(TKR) , intent(out) , contiguous :: rank(:)
3914 end subroutine
3915#endif
3916
3917#if IK1_ENABLED
3918 PURE module subroutine setRankFractionalDefCom_D1_IK1(rank, array)
3919#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3920 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_IK1
3921#endif
3922 use pm_kind, only: TKR => RK, IKG => IK1
3923 integer(IKG) , intent(in) , contiguous :: array(:)
3924 real(TKR) , intent(out) , contiguous :: rank(:)
3925 end subroutine
3926#endif
3927
3928 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3929
3930#if LK5_ENABLED
3931 PURE module subroutine setRankFractionalDefCom_D1_LK5(rank, array)
3932#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3933 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_LK5
3934#endif
3935 use pm_kind, only: TKR => RK, LKG => LK5
3936 logical(LKG) , intent(in) , contiguous :: array(:)
3937 real(TKR) , intent(out) , contiguous :: rank(:)
3938 end subroutine
3939#endif
3940
3941#if LK4_ENABLED
3942 PURE module subroutine setRankFractionalDefCom_D1_LK4(rank, array)
3943#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3944 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_LK4
3945#endif
3946 use pm_kind, only: TKR => RK, LKG => LK4
3947 logical(LKG) , intent(in) , contiguous :: array(:)
3948 real(TKR) , intent(out) , contiguous :: rank(:)
3949 end subroutine
3950#endif
3951
3952#if LK3_ENABLED
3953 PURE module subroutine setRankFractionalDefCom_D1_LK3(rank, array)
3954#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3955 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_LK3
3956#endif
3957 use pm_kind, only: TKR => RK, LKG => LK3
3958 logical(LKG) , intent(in) , contiguous :: array(:)
3959 real(TKR) , intent(out) , contiguous :: rank(:)
3960 end subroutine
3961#endif
3962
3963#if LK2_ENABLED
3964 PURE module subroutine setRankFractionalDefCom_D1_LK2(rank, array)
3965#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3966 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_LK2
3967#endif
3968 use pm_kind, only: TKR => RK, LKG => LK2
3969 logical(LKG) , intent(in) , contiguous :: array(:)
3970 real(TKR) , intent(out) , contiguous :: rank(:)
3971 end subroutine
3972#endif
3973
3974#if LK1_ENABLED
3975 PURE module subroutine setRankFractionalDefCom_D1_LK1(rank, array)
3976#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3977 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_LK1
3978#endif
3979 use pm_kind, only: TKR => RK, LKG => LK1
3980 logical(LKG) , intent(in) , contiguous :: array(:)
3981 real(TKR) , intent(out) , contiguous :: rank(:)
3982 end subroutine
3983#endif
3984
3985 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3986
3987#if CK5_ENABLED
3988 PURE module subroutine setRankFractionalDefCom_D1_CK5(rank, array)
3989#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3990 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_CK5
3991#endif
3992 use pm_kind, only: TKR => RK, CKG => CK5
3993 complex(CKG) , intent(in) , contiguous :: array(:)
3994 real(TKR) , intent(out) , contiguous :: rank(:)
3995 end subroutine
3996#endif
3997
3998#if CK4_ENABLED
3999 PURE module subroutine setRankFractionalDefCom_D1_CK4(rank, array)
4000#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4001 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_CK4
4002#endif
4003 use pm_kind, only: TKR => RK, CKG => CK4
4004 complex(CKG) , intent(in) , contiguous :: array(:)
4005 real(TKR) , intent(out) , contiguous :: rank(:)
4006 end subroutine
4007#endif
4008
4009#if CK3_ENABLED
4010 PURE module subroutine setRankFractionalDefCom_D1_CK3(rank, array)
4011#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4012 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_CK3
4013#endif
4014 use pm_kind, only: TKR => RK, CKG => CK3
4015 complex(CKG) , intent(in) , contiguous :: array(:)
4016 real(TKR) , intent(out) , contiguous :: rank(:)
4017 end subroutine
4018#endif
4019
4020#if CK2_ENABLED
4021 PURE module subroutine setRankFractionalDefCom_D1_CK2(rank, array)
4022#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4023 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_CK2
4024#endif
4025 use pm_kind, only: TKR => RK, CKG => CK2
4026 complex(CKG) , intent(in) , contiguous :: array(:)
4027 real(TKR) , intent(out) , contiguous :: rank(:)
4028 end subroutine
4029#endif
4030
4031#if CK1_ENABLED
4032 PURE module subroutine setRankFractionalDefCom_D1_CK1(rank, array)
4033#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4034 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_CK1
4035#endif
4036 use pm_kind, only: TKR => RK, CKG => CK1
4037 complex(CKG) , intent(in) , contiguous :: array(:)
4038 real(TKR) , intent(out) , contiguous :: rank(:)
4039 end subroutine
4040#endif
4041
4042 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4043
4044#if RK5_ENABLED
4045 PURE module subroutine setRankFractionalDefCom_D1_RK5(rank, array)
4046#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4047 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_RK5
4048#endif
4049 use pm_kind, only: TKR => RK, RKG => RK5
4050 real(RKG) , intent(in) , contiguous :: array(:)
4051 real(TKR) , intent(out) , contiguous :: rank(:)
4052 end subroutine
4053#endif
4054
4055#if RK4_ENABLED
4056 PURE module subroutine setRankFractionalDefCom_D1_RK4(rank, array)
4057#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4058 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_RK4
4059#endif
4060 use pm_kind, only: TKR => RK, RKG => RK4
4061 real(RKG) , intent(in) , contiguous :: array(:)
4062 real(TKR) , intent(out) , contiguous :: rank(:)
4063 end subroutine
4064#endif
4065
4066#if RK3_ENABLED
4067 PURE module subroutine setRankFractionalDefCom_D1_RK3(rank, array)
4068#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4069 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_RK3
4070#endif
4071 use pm_kind, only: TKR => RK, RKG => RK3
4072 real(RKG) , intent(in) , contiguous :: array(:)
4073 real(TKR) , intent(out) , contiguous :: rank(:)
4074 end subroutine
4075#endif
4076
4077#if RK2_ENABLED
4078 PURE module subroutine setRankFractionalDefCom_D1_RK2(rank, array)
4079#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4080 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_RK2
4081#endif
4082 use pm_kind, only: TKR => RK, RKG => RK2
4083 real(RKG) , intent(in) , contiguous :: array(:)
4084 real(TKR) , intent(out) , contiguous :: rank(:)
4085 end subroutine
4086#endif
4087
4088#if RK1_ENABLED
4089 PURE module subroutine setRankFractionalDefCom_D1_RK1(rank, array)
4090#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4091 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_RK1
4092#endif
4093 use pm_kind, only: TKR => RK, RKG => RK1
4094 real(RKG) , intent(in) , contiguous :: array(:)
4095 real(TKR) , intent(out) , contiguous :: rank(:)
4096 end subroutine
4097#endif
4098
4099 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4100
4101#if PDT_ENABLED
4102
4103#if SK5_ENABLED
4104 PURE module subroutine setRankFractionalDefCom_D1_PSSK5(rank, array)
4105#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4106 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_PSSK5
4107#endif
4108 use pm_kind, only: TKR => RK, SKG => SK5
4109 use pm_container, only: css_pdt
4110 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
4111 real(TKR) , intent(out) , contiguous :: rank(:)
4112 end subroutine
4113#endif
4114
4115#if SK4_ENABLED
4116 PURE module subroutine setRankFractionalDefCom_D1_PSSK4(rank, array)
4117#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4118 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_PSSK4
4119#endif
4120 use pm_kind, only: TKR => RK, SKG => SK4
4121 use pm_container, only: css_pdt
4122 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
4123 real(TKR) , intent(out) , contiguous :: rank(:)
4124 end subroutine
4125#endif
4126
4127#if SK3_ENABLED
4128 PURE module subroutine setRankFractionalDefCom_D1_PSSK3(rank, array)
4129#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4130 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_PSSK3
4131#endif
4132 use pm_kind, only: TKR => RK, SKG => SK3
4133 use pm_container, only: css_pdt
4134 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
4135 real(TKR) , intent(out) , contiguous :: rank(:)
4136 end subroutine
4137#endif
4138
4139#if SK2_ENABLED
4140 PURE module subroutine setRankFractionalDefCom_D1_PSSK2(rank, array)
4141#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4142 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_PSSK2
4143#endif
4144 use pm_kind, only: TKR => RK, SKG => SK2
4145 use pm_container, only: css_pdt
4146 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
4147 real(TKR) , intent(out) , contiguous :: rank(:)
4148 end subroutine
4149#endif
4150
4151#if SK1_ENABLED
4152 PURE module subroutine setRankFractionalDefCom_D1_PSSK1(rank, array)
4153#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4154 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_PSSK1
4155#endif
4156 use pm_kind, only: TKR => RK, SKG => SK1
4157 use pm_container, only: css_pdt
4158 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
4159 real(TKR) , intent(out) , contiguous :: rank(:)
4160 end subroutine
4161#endif
4162
4163#endif
4164!PDT_ENABLED
4165
4166 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4167
4168 PURE module subroutine setRankFractionalDefCom_D1_BSSK(rank, array)
4169#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4170 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_BSSK
4171#endif
4172 use pm_kind, only: TKR => RK, SKG => SK
4173 use pm_container, only: css_type
4174 type(css_type) , intent(in) , contiguous :: array(:)
4175 real(TKR) , intent(out) , contiguous :: rank(:)
4176 end subroutine
4177
4178 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4179
4180 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4181 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4182 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4183
4184 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4185
4186#if SK5_ENABLED
4187 module subroutine setRankFractionalCusCom_D0_SK5(rank, array, isSorted)
4188#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4189 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D0_SK5
4190#endif
4191 use pm_kind, only: TKR => RK, SKG => SK5
4192 character(*,SKG) , intent(in) :: array
4193 real(TKR) , intent(out) , contiguous :: rank(:)
4194 procedure(logical(LK)) :: isSorted
4195 end subroutine
4196#endif
4197
4198#if SK4_ENABLED
4199 module subroutine setRankFractionalCusCom_D0_SK4(rank, array, isSorted)
4200#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4201 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D0_SK4
4202#endif
4203 use pm_kind, only: TKR => RK, SKG => SK4
4204 character(*,SKG) , intent(in) :: array
4205 real(TKR) , intent(out) , contiguous :: rank(:)
4206 procedure(logical(LK)) :: isSorted
4207 end subroutine
4208#endif
4209
4210#if SK3_ENABLED
4211 module subroutine setRankFractionalCusCom_D0_SK3(rank, array, isSorted)
4212#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4213 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D0_SK3
4214#endif
4215 use pm_kind, only: TKR => RK, SKG => SK3
4216 character(*,SKG) , intent(in) :: array
4217 real(TKR) , intent(out) , contiguous :: rank(:)
4218 procedure(logical(LK)) :: isSorted
4219 end subroutine
4220#endif
4221
4222#if SK2_ENABLED
4223 module subroutine setRankFractionalCusCom_D0_SK2(rank, array, isSorted)
4224#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4225 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D0_SK2
4226#endif
4227 use pm_kind, only: TKR => RK, SKG => SK2
4228 character(*,SKG) , intent(in) :: array
4229 real(TKR) , intent(out) , contiguous :: rank(:)
4230 procedure(logical(LK)) :: isSorted
4231 end subroutine
4232#endif
4233
4234#if SK1_ENABLED
4235 module subroutine setRankFractionalCusCom_D0_SK1(rank, array, isSorted)
4236#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4237 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D0_SK1
4238#endif
4239 use pm_kind, only: TKR => RK, SKG => SK1
4240 character(*,SKG) , intent(in) :: array
4241 real(TKR) , intent(out) , contiguous :: rank(:)
4242 procedure(logical(LK)) :: isSorted
4243 end subroutine
4244#endif
4245
4246 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4247
4248#if SK5_ENABLED
4249 module subroutine setRankFractionalCusCom_D1_SK5(rank, array, isSorted)
4250#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4251 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_SK5
4252#endif
4253 use pm_kind, only: TKR => RK, SKG => SK5
4254 character(*,SKG) , intent(in) , contiguous :: array(:)
4255 real(TKR) , intent(out) , contiguous :: rank(:)
4256 procedure(logical(LK)) :: isSorted
4257 end subroutine
4258#endif
4259
4260#if SK4_ENABLED
4261 module subroutine setRankFractionalCusCom_D1_SK4(rank, array, isSorted)
4262#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4263 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_SK4
4264#endif
4265 use pm_kind, only: TKR => RK, SKG => SK4
4266 character(*,SKG) , intent(in) , contiguous :: array(:)
4267 real(TKR) , intent(out) , contiguous :: rank(:)
4268 procedure(logical(LK)) :: isSorted
4269 end subroutine
4270#endif
4271
4272#if SK3_ENABLED
4273 module subroutine setRankFractionalCusCom_D1_SK3(rank, array, isSorted)
4274#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4275 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_SK3
4276#endif
4277 use pm_kind, only: TKR => RK, SKG => SK3
4278 character(*,SKG) , intent(in) , contiguous :: array(:)
4279 real(TKR) , intent(out) , contiguous :: rank(:)
4280 procedure(logical(LK)) :: isSorted
4281 end subroutine
4282#endif
4283
4284#if SK2_ENABLED
4285 module subroutine setRankFractionalCusCom_D1_SK2(rank, array, isSorted)
4286#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4287 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_SK2
4288#endif
4289 use pm_kind, only: TKR => RK, SKG => SK2
4290 character(*,SKG) , intent(in) , contiguous :: array(:)
4291 real(TKR) , intent(out) , contiguous :: rank(:)
4292 procedure(logical(LK)) :: isSorted
4293 end subroutine
4294#endif
4295
4296#if SK1_ENABLED
4297 module subroutine setRankFractionalCusCom_D1_SK1(rank, array, isSorted)
4298#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4299 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_SK1
4300#endif
4301 use pm_kind, only: TKR => RK, SKG => SK1
4302 character(*,SKG) , intent(in) , contiguous :: array(:)
4303 real(TKR) , intent(out) , contiguous :: rank(:)
4304 procedure(logical(LK)) :: isSorted
4305 end subroutine
4306#endif
4307
4308 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4309
4310#if IK5_ENABLED
4311 module subroutine setRankFractionalCusCom_D1_IK5(rank, array, isSorted)
4312#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4313 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_IK5
4314#endif
4315 use pm_kind, only: TKR => RK, IKG => IK5
4316 integer(IKG) , intent(in) , contiguous :: array(:)
4317 real(TKR) , intent(out) , contiguous :: rank(:)
4318 procedure(logical(LK)) :: isSorted
4319 end subroutine
4320#endif
4321
4322#if IK4_ENABLED
4323 module subroutine setRankFractionalCusCom_D1_IK4(rank, array, isSorted)
4324#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4325 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_IK4
4326#endif
4327 use pm_kind, only: TKR => RK, IKG => IK4
4328 integer(IKG) , intent(in) , contiguous :: array(:)
4329 real(TKR) , intent(out) , contiguous :: rank(:)
4330 procedure(logical(LK)) :: isSorted
4331 end subroutine
4332#endif
4333
4334#if IK3_ENABLED
4335 module subroutine setRankFractionalCusCom_D1_IK3(rank, array, isSorted)
4336#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4337 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_IK3
4338#endif
4339 use pm_kind, only: TKR => RK, IKG => IK3
4340 integer(IKG) , intent(in) , contiguous :: array(:)
4341 real(TKR) , intent(out) , contiguous :: rank(:)
4342 procedure(logical(LK)) :: isSorted
4343 end subroutine
4344#endif
4345
4346#if IK2_ENABLED
4347 module subroutine setRankFractionalCusCom_D1_IK2(rank, array, isSorted)
4348#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4349 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_IK2
4350#endif
4351 use pm_kind, only: TKR => RK, IKG => IK2
4352 integer(IKG) , intent(in) , contiguous :: array(:)
4353 real(TKR) , intent(out) , contiguous :: rank(:)
4354 procedure(logical(LK)) :: isSorted
4355 end subroutine
4356#endif
4357
4358#if IK1_ENABLED
4359 module subroutine setRankFractionalCusCom_D1_IK1(rank, array, isSorted)
4360#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4361 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_IK1
4362#endif
4363 use pm_kind, only: TKR => RK, IKG => IK1
4364 integer(IKG) , intent(in) , contiguous :: array(:)
4365 real(TKR) , intent(out) , contiguous :: rank(:)
4366 procedure(logical(LK)) :: isSorted
4367 end subroutine
4368#endif
4369
4370 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4371
4372#if LK5_ENABLED
4373 module subroutine setRankFractionalCusCom_D1_LK5(rank, array, isSorted)
4374#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4375 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_LK5
4376#endif
4377 use pm_kind, only: TKR => RK, LKG => LK5
4378 logical(LKG) , intent(in) , contiguous :: array(:)
4379 real(TKR) , intent(out) , contiguous :: rank(:)
4380 procedure(logical(LK)) :: isSorted
4381 end subroutine
4382#endif
4383
4384#if LK4_ENABLED
4385 module subroutine setRankFractionalCusCom_D1_LK4(rank, array, isSorted)
4386#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4387 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_LK4
4388#endif
4389 use pm_kind, only: TKR => RK, LKG => LK4
4390 logical(LKG) , intent(in) , contiguous :: array(:)
4391 real(TKR) , intent(out) , contiguous :: rank(:)
4392 procedure(logical(LK)) :: isSorted
4393 end subroutine
4394#endif
4395
4396#if LK3_ENABLED
4397 module subroutine setRankFractionalCusCom_D1_LK3(rank, array, isSorted)
4398#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4399 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_LK3
4400#endif
4401 use pm_kind, only: TKR => RK, LKG => LK3
4402 logical(LKG) , intent(in) , contiguous :: array(:)
4403 real(TKR) , intent(out) , contiguous :: rank(:)
4404 procedure(logical(LK)) :: isSorted
4405 end subroutine
4406#endif
4407
4408#if LK2_ENABLED
4409 module subroutine setRankFractionalCusCom_D1_LK2(rank, array, isSorted)
4410#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4411 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_LK2
4412#endif
4413 use pm_kind, only: TKR => RK, LKG => LK2
4414 logical(LKG) , intent(in) , contiguous :: array(:)
4415 real(TKR) , intent(out) , contiguous :: rank(:)
4416 procedure(logical(LK)) :: isSorted
4417 end subroutine
4418#endif
4419
4420#if LK1_ENABLED
4421 module subroutine setRankFractionalCusCom_D1_LK1(rank, array, isSorted)
4422#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4423 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_LK1
4424#endif
4425 use pm_kind, only: TKR => RK, LKG => LK1
4426 logical(LKG) , intent(in) , contiguous :: array(:)
4427 real(TKR) , intent(out) , contiguous :: rank(:)
4428 procedure(logical(LK)) :: isSorted
4429 end subroutine
4430#endif
4431
4432 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4433
4434#if CK5_ENABLED
4435 module subroutine setRankFractionalCusCom_D1_CK5(rank, array, isSorted)
4436#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4437 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_CK5
4438#endif
4439 use pm_kind, only: TKR => RK, CKG => CK5
4440 complex(CKG) , intent(in) , contiguous :: array(:)
4441 real(TKR) , intent(out) , contiguous :: rank(:)
4442 procedure(logical(LK)) :: isSorted
4443 end subroutine
4444#endif
4445
4446#if CK4_ENABLED
4447 module subroutine setRankFractionalCusCom_D1_CK4(rank, array, isSorted)
4448#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4449 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_CK4
4450#endif
4451 use pm_kind, only: TKR => RK, CKG => CK4
4452 complex(CKG) , intent(in) , contiguous :: array(:)
4453 real(TKR) , intent(out) , contiguous :: rank(:)
4454 procedure(logical(LK)) :: isSorted
4455 end subroutine
4456#endif
4457
4458#if CK3_ENABLED
4459 module subroutine setRankFractionalCusCom_D1_CK3(rank, array, isSorted)
4460#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4461 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_CK3
4462#endif
4463 use pm_kind, only: TKR => RK, CKG => CK3
4464 complex(CKG) , intent(in) , contiguous :: array(:)
4465 real(TKR) , intent(out) , contiguous :: rank(:)
4466 procedure(logical(LK)) :: isSorted
4467 end subroutine
4468#endif
4469
4470#if CK2_ENABLED
4471 module subroutine setRankFractionalCusCom_D1_CK2(rank, array, isSorted)
4472#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4473 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_CK2
4474#endif
4475 use pm_kind, only: TKR => RK, CKG => CK2
4476 complex(CKG) , intent(in) , contiguous :: array(:)
4477 real(TKR) , intent(out) , contiguous :: rank(:)
4478 procedure(logical(LK)) :: isSorted
4479 end subroutine
4480#endif
4481
4482#if CK1_ENABLED
4483 module subroutine setRankFractionalCusCom_D1_CK1(rank, array, isSorted)
4484#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4485 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_CK1
4486#endif
4487 use pm_kind, only: TKR => RK, CKG => CK1
4488 complex(CKG) , intent(in) , contiguous :: array(:)
4489 real(TKR) , intent(out) , contiguous :: rank(:)
4490 procedure(logical(LK)) :: isSorted
4491 end subroutine
4492#endif
4493
4494 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4495
4496#if RK5_ENABLED
4497 module subroutine setRankFractionalCusCom_D1_RK5(rank, array, isSorted)
4498#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4499 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_RK5
4500#endif
4501 use pm_kind, only: TKR => RK, RKG => RK5
4502 real(RKG) , intent(in) , contiguous :: array(:)
4503 real(TKR) , intent(out) , contiguous :: rank(:)
4504 procedure(logical(LK)) :: isSorted
4505 end subroutine
4506#endif
4507
4508#if RK4_ENABLED
4509 module subroutine setRankFractionalCusCom_D1_RK4(rank, array, isSorted)
4510#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4511 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_RK4
4512#endif
4513 use pm_kind, only: TKR => RK, RKG => RK4
4514 real(RKG) , intent(in) , contiguous :: array(:)
4515 real(TKR) , intent(out) , contiguous :: rank(:)
4516 procedure(logical(LK)) :: isSorted
4517 end subroutine
4518#endif
4519
4520#if RK3_ENABLED
4521 module subroutine setRankFractionalCusCom_D1_RK3(rank, array, isSorted)
4522#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4523 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_RK3
4524#endif
4525 use pm_kind, only: TKR => RK, RKG => RK3
4526 real(RKG) , intent(in) , contiguous :: array(:)
4527 real(TKR) , intent(out) , contiguous :: rank(:)
4528 procedure(logical(LK)) :: isSorted
4529 end subroutine
4530#endif
4531
4532#if RK2_ENABLED
4533 module subroutine setRankFractionalCusCom_D1_RK2(rank, array, isSorted)
4534#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4535 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_RK2
4536#endif
4537 use pm_kind, only: TKR => RK, RKG => RK2
4538 real(RKG) , intent(in) , contiguous :: array(:)
4539 real(TKR) , intent(out) , contiguous :: rank(:)
4540 procedure(logical(LK)) :: isSorted
4541 end subroutine
4542#endif
4543
4544#if RK1_ENABLED
4545 module subroutine setRankFractionalCusCom_D1_RK1(rank, array, isSorted)
4546#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4547 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_RK1
4548#endif
4549 use pm_kind, only: TKR => RK, RKG => RK1
4550 real(RKG) , intent(in) , contiguous :: array(:)
4551 real(TKR) , intent(out) , contiguous :: rank(:)
4552 procedure(logical(LK)) :: isSorted
4553 end subroutine
4554#endif
4555
4556 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4557
4558#if PDT_ENABLED
4559
4560#if SK5_ENABLED
4561 module subroutine setRankFractionalCusCom_D1_PSSK5(rank, array, isSorted)
4562#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4563 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_PSSK5
4564#endif
4565 use pm_kind, only: TKR => RK, SKG => SK5
4566 use pm_container, only: css_pdt
4567 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
4568 real(TKR) , intent(out) , contiguous :: rank(:)
4569 procedure(logical(LK)) :: isSorted
4570 end subroutine
4571#endif
4572
4573#if SK4_ENABLED
4574 module subroutine setRankFractionalCusCom_D1_PSSK4(rank, array, isSorted)
4575#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4576 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_PSSK4
4577#endif
4578 use pm_kind, only: TKR => RK, SKG => SK4
4579 use pm_container, only: css_pdt
4580 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
4581 real(TKR) , intent(out) , contiguous :: rank(:)
4582 procedure(logical(LK)) :: isSorted
4583 end subroutine
4584#endif
4585
4586#if SK3_ENABLED
4587 module subroutine setRankFractionalCusCom_D1_PSSK3(rank, array, isSorted)
4588#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4589 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_PSSK3
4590#endif
4591 use pm_kind, only: TKR => RK, SKG => SK3
4592 use pm_container, only: css_pdt
4593 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
4594 real(TKR) , intent(out) , contiguous :: rank(:)
4595 procedure(logical(LK)) :: isSorted
4596 end subroutine
4597#endif
4598
4599#if SK2_ENABLED
4600 module subroutine setRankFractionalCusCom_D1_PSSK2(rank, array, isSorted)
4601#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4602 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_PSSK2
4603#endif
4604 use pm_kind, only: TKR => RK, SKG => SK2
4605 use pm_container, only: css_pdt
4606 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
4607 real(TKR) , intent(out) , contiguous :: rank(:)
4608 procedure(logical(LK)) :: isSorted
4609 end subroutine
4610#endif
4611
4612#if SK1_ENABLED
4613 module subroutine setRankFractionalCusCom_D1_PSSK1(rank, array, isSorted)
4614#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4615 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_PSSK1
4616#endif
4617 use pm_kind, only: TKR => RK, SKG => SK1
4618 use pm_container, only: css_pdt
4619 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
4620 real(TKR) , intent(out) , contiguous :: rank(:)
4621 procedure(logical(LK)) :: isSorted
4622 end subroutine
4623#endif
4624
4625#endif
4626!PDT_ENABLED
4627
4628 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4629
4630 module subroutine setRankFractionalCusCom_D1_BSSK(rank, array, isSorted)
4631#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4632 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_BSSK
4633#endif
4634 use pm_kind, only: TKR => RK, SKG => SK
4635 use pm_container, only: css_type
4636 type(css_type) , intent(in) , contiguous :: array(:)
4637 real(TKR) , intent(out) , contiguous :: rank(:)
4638 procedure(logical(LK)) :: isSorted
4639 end subroutine
4640
4641 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4642
4643 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4644 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4645 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4646
4647 end interface
4648
4649!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4650
4800
4801 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4802 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4803 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4804
4805 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4806
4807#if SK5_ENABLED
4808 module function getRankModifiedDefCom_D0_SK5(array) result(rank)
4809#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4810 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D0_SK5
4811#endif
4812 use pm_kind, only: TKR => IK, SKG => SK5
4813 character(*,SKG) , intent(in) :: array
4814 integer(TKR) :: rank(len(array, IK))
4815 end function
4816#endif
4817
4818#if SK4_ENABLED
4819 module function getRankModifiedDefCom_D0_SK4(array) result(rank)
4820#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4821 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D0_SK4
4822#endif
4823 use pm_kind, only: TKR => IK, SKG => SK4
4824 character(*,SKG) , intent(in) :: array
4825 integer(TKR) :: rank(len(array, IK))
4826 end function
4827#endif
4828
4829#if SK3_ENABLED
4830 module function getRankModifiedDefCom_D0_SK3(array) result(rank)
4831#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4832 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D0_SK3
4833#endif
4834 use pm_kind, only: TKR => IK, SKG => SK3
4835 character(*,SKG) , intent(in) :: array
4836 integer(TKR) :: rank(len(array, IK))
4837 end function
4838#endif
4839
4840#if SK2_ENABLED
4841 module function getRankModifiedDefCom_D0_SK2(array) result(rank)
4842#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4843 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D0_SK2
4844#endif
4845 use pm_kind, only: TKR => IK, SKG => SK2
4846 character(*,SKG) , intent(in) :: array
4847 integer(TKR) :: rank(len(array, IK))
4848 end function
4849#endif
4850
4851#if SK1_ENABLED
4852 module function getRankModifiedDefCom_D0_SK1(array) result(rank)
4853#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4854 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D0_SK1
4855#endif
4856 use pm_kind, only: TKR => IK, SKG => SK1
4857 character(*,SKG) , intent(in) :: array
4858 integer(TKR) :: rank(len(array, IK))
4859 end function
4860#endif
4861
4862 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4863
4864#if SK5_ENABLED
4865 module function getRankModifiedDefCom_D1_SK5(array) result(rank)
4866#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4867 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_SK5
4868#endif
4869 use pm_kind, only: TKR => IK, SKG => SK5
4870 character(*,SKG) , intent(in) , contiguous :: array(:)
4871 integer(TKR) :: rank(size(array, kind = IK))
4872 end function
4873#endif
4874
4875#if SK4_ENABLED
4876 module function getRankModifiedDefCom_D1_SK4(array) result(rank)
4877#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4878 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_SK4
4879#endif
4880 use pm_kind, only: TKR => IK, SKG => SK4
4881 character(*,SKG) , intent(in) , contiguous :: array(:)
4882 integer(TKR) :: rank(size(array, kind = IK))
4883 end function
4884#endif
4885
4886#if SK3_ENABLED
4887 module function getRankModifiedDefCom_D1_SK3(array) result(rank)
4888#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4889 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_SK3
4890#endif
4891 use pm_kind, only: TKR => IK, SKG => SK3
4892 character(*,SKG) , intent(in) , contiguous :: array(:)
4893 integer(TKR) :: rank(size(array, kind = IK))
4894 end function
4895#endif
4896
4897#if SK2_ENABLED
4898 module function getRankModifiedDefCom_D1_SK2(array) result(rank)
4899#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4900 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_SK2
4901#endif
4902 use pm_kind, only: TKR => IK, SKG => SK2
4903 character(*,SKG) , intent(in) , contiguous :: array(:)
4904 integer(TKR) :: rank(size(array, kind = IK))
4905 end function
4906#endif
4907
4908#if SK1_ENABLED
4909 module function getRankModifiedDefCom_D1_SK1(array) result(rank)
4910#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4911 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_SK1
4912#endif
4913 use pm_kind, only: TKR => IK, SKG => SK1
4914 character(*,SKG) , intent(in) , contiguous :: array(:)
4915 integer(TKR) :: rank(size(array, kind = IK))
4916 end function
4917#endif
4918
4919 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4920
4921#if IK5_ENABLED
4922 module function getRankModifiedDefCom_D1_IK5(array) result(rank)
4923#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4924 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_IK5
4925#endif
4926 use pm_kind, only: TKR => IK, IKG => IK5
4927 integer(IKG) , intent(in) , contiguous :: array(:)
4928 integer(TKR) :: rank(size(array, kind = IK))
4929 end function
4930#endif
4931
4932#if IK4_ENABLED
4933 module function getRankModifiedDefCom_D1_IK4(array) result(rank)
4934#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4935 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_IK4
4936#endif
4937 use pm_kind, only: TKR => IK, IKG => IK4
4938 integer(IKG) , intent(in) , contiguous :: array(:)
4939 integer(TKR) :: rank(size(array, kind = IK))
4940 end function
4941#endif
4942
4943#if IK3_ENABLED
4944 module function getRankModifiedDefCom_D1_IK3(array) result(rank)
4945#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4946 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_IK3
4947#endif
4948 use pm_kind, only: TKR => IK, IKG => IK3
4949 integer(IKG) , intent(in) , contiguous :: array(:)
4950 integer(TKR) :: rank(size(array, kind = IK))
4951 end function
4952#endif
4953
4954#if IK2_ENABLED
4955 module function getRankModifiedDefCom_D1_IK2(array) result(rank)
4956#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4957 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_IK2
4958#endif
4959 use pm_kind, only: TKR => IK, IKG => IK2
4960 integer(IKG) , intent(in) , contiguous :: array(:)
4961 integer(TKR) :: rank(size(array, kind = IK))
4962 end function
4963#endif
4964
4965#if IK1_ENABLED
4966 module function getRankModifiedDefCom_D1_IK1(array) result(rank)
4967#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4968 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_IK1
4969#endif
4970 use pm_kind, only: TKR => IK, IKG => IK1
4971 integer(IKG) , intent(in) , contiguous :: array(:)
4972 integer(TKR) :: rank(size(array, kind = IK))
4973 end function
4974#endif
4975
4976 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4977
4978#if LK5_ENABLED
4979 module function getRankModifiedDefCom_D1_LK5(array) result(rank)
4980#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4981 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_LK5
4982#endif
4983 use pm_kind, only: TKR => IK, LKG => LK5
4984 logical(LKG) , intent(in) , contiguous :: array(:)
4985 integer(TKR) :: rank(size(array, kind = IK))
4986 end function
4987#endif
4988
4989#if LK4_ENABLED
4990 module function getRankModifiedDefCom_D1_LK4(array) result(rank)
4991#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4992 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_LK4
4993#endif
4994 use pm_kind, only: TKR => IK, LKG => LK4
4995 logical(LKG) , intent(in) , contiguous :: array(:)
4996 integer(TKR) :: rank(size(array, kind = IK))
4997 end function
4998#endif
4999
5000#if LK3_ENABLED
5001 module function getRankModifiedDefCom_D1_LK3(array) result(rank)
5002#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5003 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_LK3
5004#endif
5005 use pm_kind, only: TKR => IK, LKG => LK3
5006 logical(LKG) , intent(in) , contiguous :: array(:)
5007 integer(TKR) :: rank(size(array, kind = IK))
5008 end function
5009#endif
5010
5011#if LK2_ENABLED
5012 module function getRankModifiedDefCom_D1_LK2(array) result(rank)
5013#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5014 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_LK2
5015#endif
5016 use pm_kind, only: TKR => IK, LKG => LK2
5017 logical(LKG) , intent(in) , contiguous :: array(:)
5018 integer(TKR) :: rank(size(array, kind = IK))
5019 end function
5020#endif
5021
5022#if LK1_ENABLED
5023 module function getRankModifiedDefCom_D1_LK1(array) result(rank)
5024#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5025 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_LK1
5026#endif
5027 use pm_kind, only: TKR => IK, LKG => LK1
5028 logical(LKG) , intent(in) , contiguous :: array(:)
5029 integer(TKR) :: rank(size(array, kind = IK))
5030 end function
5031#endif
5032
5033 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5034
5035#if CK5_ENABLED
5036 module function getRankModifiedDefCom_D1_CK5(array) result(rank)
5037#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5038 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_CK5
5039#endif
5040 use pm_kind, only: TKR => IK, CKG => CK5
5041 complex(CKG) , intent(in) , contiguous :: array(:)
5042 integer(TKR) :: rank(size(array, kind = IK))
5043 end function
5044#endif
5045
5046#if CK4_ENABLED
5047 module function getRankModifiedDefCom_D1_CK4(array) result(rank)
5048#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5049 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_CK4
5050#endif
5051 use pm_kind, only: TKR => IK, CKG => CK4
5052 complex(CKG) , intent(in) , contiguous :: array(:)
5053 integer(TKR) :: rank(size(array, kind = IK))
5054 end function
5055#endif
5056
5057#if CK3_ENABLED
5058 module function getRankModifiedDefCom_D1_CK3(array) result(rank)
5059#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5060 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_CK3
5061#endif
5062 use pm_kind, only: TKR => IK, CKG => CK3
5063 complex(CKG) , intent(in) , contiguous :: array(:)
5064 integer(TKR) :: rank(size(array, kind = IK))
5065 end function
5066#endif
5067
5068#if CK2_ENABLED
5069 module function getRankModifiedDefCom_D1_CK2(array) result(rank)
5070#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5071 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_CK2
5072#endif
5073 use pm_kind, only: TKR => IK, CKG => CK2
5074 complex(CKG) , intent(in) , contiguous :: array(:)
5075 integer(TKR) :: rank(size(array, kind = IK))
5076 end function
5077#endif
5078
5079#if CK1_ENABLED
5080 module function getRankModifiedDefCom_D1_CK1(array) result(rank)
5081#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5082 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_CK1
5083#endif
5084 use pm_kind, only: TKR => IK, CKG => CK1
5085 complex(CKG) , intent(in) , contiguous :: array(:)
5086 integer(TKR) :: rank(size(array, kind = IK))
5087 end function
5088#endif
5089
5090 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5091
5092#if RK5_ENABLED
5093 module function getRankModifiedDefCom_D1_RK5(array) result(rank)
5094#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5095 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_RK5
5096#endif
5097 use pm_kind, only: TKR => IK, RKG => RK5
5098 real(RKG) , intent(in) , contiguous :: array(:)
5099 integer(TKR) :: rank(size(array, kind = IK))
5100 end function
5101#endif
5102
5103#if RK4_ENABLED
5104 module function getRankModifiedDefCom_D1_RK4(array) result(rank)
5105#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5106 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_RK4
5107#endif
5108 use pm_kind, only: TKR => IK, RKG => RK4
5109 real(RKG) , intent(in) , contiguous :: array(:)
5110 integer(TKR) :: rank(size(array, kind = IK))
5111 end function
5112#endif
5113
5114#if RK3_ENABLED
5115 module function getRankModifiedDefCom_D1_RK3(array) result(rank)
5116#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5117 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_RK3
5118#endif
5119 use pm_kind, only: TKR => IK, RKG => RK3
5120 real(RKG) , intent(in) , contiguous :: array(:)
5121 integer(TKR) :: rank(size(array, kind = IK))
5122 end function
5123#endif
5124
5125#if RK2_ENABLED
5126 module function getRankModifiedDefCom_D1_RK2(array) result(rank)
5127#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5128 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_RK2
5129#endif
5130 use pm_kind, only: TKR => IK, RKG => RK2
5131 real(RKG) , intent(in) , contiguous :: array(:)
5132 integer(TKR) :: rank(size(array, kind = IK))
5133 end function
5134#endif
5135
5136#if RK1_ENABLED
5137 module function getRankModifiedDefCom_D1_RK1(array) result(rank)
5138#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5139 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_RK1
5140#endif
5141 use pm_kind, only: TKR => IK, RKG => RK1
5142 real(RKG) , intent(in) , contiguous :: array(:)
5143 integer(TKR) :: rank(size(array, kind = IK))
5144 end function
5145#endif
5146
5147 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5148
5149#if PDT_ENABLED
5150
5151#if SK5_ENABLED
5152 module function getRankModifiedDefCom_D1_PSSK5(array) result(rank)
5153#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5154 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_PSSK5
5155#endif
5156 use pm_kind, only: TKR => IK, SKG => SK5
5157 use pm_container, only: css_pdt
5158 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
5159 integer(TKR) :: rank(size(array, kind = IK))
5160 end function
5161#endif
5162
5163#if SK4_ENABLED
5164 module function getRankModifiedDefCom_D1_PSSK4(array) result(rank)
5165#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5166 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_PSSK4
5167#endif
5168 use pm_kind, only: TKR => IK, SKG => SK4
5169 use pm_container, only: css_pdt
5170 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
5171 integer(TKR) :: rank(size(array, kind = IK))
5172 end function
5173#endif
5174
5175#if SK3_ENABLED
5176 module function getRankModifiedDefCom_D1_PSSK3(array) result(rank)
5177#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5178 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_PSSK3
5179#endif
5180 use pm_kind, only: TKR => IK, SKG => SK3
5181 use pm_container, only: css_pdt
5182 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
5183 integer(TKR) :: rank(size(array, kind = IK))
5184 end function
5185#endif
5186
5187#if SK2_ENABLED
5188 module function getRankModifiedDefCom_D1_PSSK2(array) result(rank)
5189#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5190 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_PSSK2
5191#endif
5192 use pm_kind, only: TKR => IK, SKG => SK2
5193 use pm_container, only: css_pdt
5194 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
5195 integer(TKR) :: rank(size(array, kind = IK))
5196 end function
5197#endif
5198
5199#if SK1_ENABLED
5200 module function getRankModifiedDefCom_D1_PSSK1(array) result(rank)
5201#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5202 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_PSSK1
5203#endif
5204 use pm_kind, only: TKR => IK, SKG => SK1
5205 use pm_container, only: css_pdt
5206 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
5207 integer(TKR) :: rank(size(array, kind = IK))
5208 end function
5209#endif
5210
5211#endif
5212!PDT_ENABLED
5213
5214 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5215
5216 module function getRankModifiedDefCom_D1_BSSK(array) result(rank)
5217#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5218 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_BSSK
5219#endif
5220 use pm_kind, only: TKR => IK, SKG => SK
5221 use pm_container, only: css_type
5222 type(css_type) , intent(in) , contiguous :: array(:)
5223 integer(TKR) :: rank(size(array, kind = IK))
5224 end function
5225
5226 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5227
5228 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5229 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5230 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5231
5232 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5233
5234#if SK5_ENABLED
5235 module function getRankModifiedCusCom_D0_SK5(array, isSorted) result(rank)
5236#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5237 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D0_SK5
5238#endif
5239 use pm_kind, only: TKR => IK, SKG => SK5
5240 character(*,SKG) , intent(in) :: array
5241 procedure(logical(LK)) :: isSorted
5242 integer(TKR) :: rank(len(array, IK))
5243 end function
5244#endif
5245
5246#if SK4_ENABLED
5247 module function getRankModifiedCusCom_D0_SK4(array, isSorted) result(rank)
5248#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5249 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D0_SK4
5250#endif
5251 use pm_kind, only: TKR => IK, SKG => SK4
5252 character(*,SKG) , intent(in) :: array
5253 procedure(logical(LK)) :: isSorted
5254 integer(TKR) :: rank(len(array, IK))
5255 end function
5256#endif
5257
5258#if SK3_ENABLED
5259 module function getRankModifiedCusCom_D0_SK3(array, isSorted) result(rank)
5260#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5261 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D0_SK3
5262#endif
5263 use pm_kind, only: TKR => IK, SKG => SK3
5264 character(*,SKG) , intent(in) :: array
5265 procedure(logical(LK)) :: isSorted
5266 integer(TKR) :: rank(len(array, IK))
5267 end function
5268#endif
5269
5270#if SK2_ENABLED
5271 module function getRankModifiedCusCom_D0_SK2(array, isSorted) result(rank)
5272#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5273 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D0_SK2
5274#endif
5275 use pm_kind, only: TKR => IK, SKG => SK2
5276 character(*,SKG) , intent(in) :: array
5277 procedure(logical(LK)) :: isSorted
5278 integer(TKR) :: rank(len(array, IK))
5279 end function
5280#endif
5281
5282#if SK1_ENABLED
5283 module function getRankModifiedCusCom_D0_SK1(array, isSorted) result(rank)
5284#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5285 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D0_SK1
5286#endif
5287 use pm_kind, only: TKR => IK, SKG => SK1
5288 character(*,SKG) , intent(in) :: array
5289 procedure(logical(LK)) :: isSorted
5290 integer(TKR) :: rank(len(array, IK))
5291 end function
5292#endif
5293
5294 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5295
5296#if SK5_ENABLED
5297 module function getRankModifiedCusCom_D1_SK5(array, isSorted) result(rank)
5298#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5299 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_SK5
5300#endif
5301 use pm_kind, only: TKR => IK, SKG => SK5
5302 character(*,SKG) , intent(in) , contiguous :: array(:)
5303 procedure(logical(LK)) :: isSorted
5304 integer(TKR) :: rank(size(array, kind = IK))
5305 end function
5306#endif
5307
5308#if SK4_ENABLED
5309 module function getRankModifiedCusCom_D1_SK4(array, isSorted) result(rank)
5310#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5311 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_SK4
5312#endif
5313 use pm_kind, only: TKR => IK, SKG => SK4
5314 character(*,SKG) , intent(in) , contiguous :: array(:)
5315 procedure(logical(LK)) :: isSorted
5316 integer(TKR) :: rank(size(array, kind = IK))
5317 end function
5318#endif
5319
5320#if SK3_ENABLED
5321 module function getRankModifiedCusCom_D1_SK3(array, isSorted) result(rank)
5322#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5323 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_SK3
5324#endif
5325 use pm_kind, only: TKR => IK, SKG => SK3
5326 character(*,SKG) , intent(in) , contiguous :: array(:)
5327 procedure(logical(LK)) :: isSorted
5328 integer(TKR) :: rank(size(array, kind = IK))
5329 end function
5330#endif
5331
5332#if SK2_ENABLED
5333 module function getRankModifiedCusCom_D1_SK2(array, isSorted) result(rank)
5334#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5335 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_SK2
5336#endif
5337 use pm_kind, only: TKR => IK, SKG => SK2
5338 character(*,SKG) , intent(in) , contiguous :: array(:)
5339 procedure(logical(LK)) :: isSorted
5340 integer(TKR) :: rank(size(array, kind = IK))
5341 end function
5342#endif
5343
5344#if SK1_ENABLED
5345 module function getRankModifiedCusCom_D1_SK1(array, isSorted) result(rank)
5346#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5347 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_SK1
5348#endif
5349 use pm_kind, only: TKR => IK, SKG => SK1
5350 character(*,SKG) , intent(in) , contiguous :: array(:)
5351 procedure(logical(LK)) :: isSorted
5352 integer(TKR) :: rank(size(array, kind = IK))
5353 end function
5354#endif
5355
5356 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5357
5358#if IK5_ENABLED
5359 module function getRankModifiedCusCom_D1_IK5(array, isSorted) result(rank)
5360#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5361 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_IK5
5362#endif
5363 use pm_kind, only: TKR => IK, IKG => IK5
5364 integer(IKG) , intent(in) , contiguous :: array(:)
5365 procedure(logical(LK)) :: isSorted
5366 integer(TKR) :: rank(size(array, kind = IK))
5367 end function
5368#endif
5369
5370#if IK4_ENABLED
5371 module function getRankModifiedCusCom_D1_IK4(array, isSorted) result(rank)
5372#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5373 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_IK4
5374#endif
5375 use pm_kind, only: TKR => IK, IKG => IK4
5376 integer(IKG) , intent(in) , contiguous :: array(:)
5377 procedure(logical(LK)) :: isSorted
5378 integer(TKR) :: rank(size(array, kind = IK))
5379 end function
5380#endif
5381
5382#if IK3_ENABLED
5383 module function getRankModifiedCusCom_D1_IK3(array, isSorted) result(rank)
5384#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5385 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_IK3
5386#endif
5387 use pm_kind, only: TKR => IK, IKG => IK3
5388 integer(IKG) , intent(in) , contiguous :: array(:)
5389 procedure(logical(LK)) :: isSorted
5390 integer(TKR) :: rank(size(array, kind = IK))
5391 end function
5392#endif
5393
5394#if IK2_ENABLED
5395 module function getRankModifiedCusCom_D1_IK2(array, isSorted) result(rank)
5396#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5397 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_IK2
5398#endif
5399 use pm_kind, only: TKR => IK, IKG => IK2
5400 integer(IKG) , intent(in) , contiguous :: array(:)
5401 procedure(logical(LK)) :: isSorted
5402 integer(TKR) :: rank(size(array, kind = IK))
5403 end function
5404#endif
5405
5406#if IK1_ENABLED
5407 module function getRankModifiedCusCom_D1_IK1(array, isSorted) result(rank)
5408#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5409 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_IK1
5410#endif
5411 use pm_kind, only: TKR => IK, IKG => IK1
5412 integer(IKG) , intent(in) , contiguous :: array(:)
5413 procedure(logical(LK)) :: isSorted
5414 integer(TKR) :: rank(size(array, kind = IK))
5415 end function
5416#endif
5417
5418 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5419
5420#if LK5_ENABLED
5421 module function getRankModifiedCusCom_D1_LK5(array, isSorted) result(rank)
5422#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5423 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_LK5
5424#endif
5425 use pm_kind, only: TKR => IK, LKG => LK5
5426 logical(LKG) , intent(in) , contiguous :: array(:)
5427 procedure(logical(LK)) :: isSorted
5428 integer(TKR) :: rank(size(array, kind = IK))
5429 end function
5430#endif
5431
5432#if LK4_ENABLED
5433 module function getRankModifiedCusCom_D1_LK4(array, isSorted) result(rank)
5434#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5435 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_LK4
5436#endif
5437 use pm_kind, only: TKR => IK, LKG => LK4
5438 logical(LKG) , intent(in) , contiguous :: array(:)
5439 procedure(logical(LK)) :: isSorted
5440 integer(TKR) :: rank(size(array, kind = IK))
5441 end function
5442#endif
5443
5444#if LK3_ENABLED
5445 module function getRankModifiedCusCom_D1_LK3(array, isSorted) result(rank)
5446#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5447 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_LK3
5448#endif