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
5449 use pm_kind, only: TKR => IK, LKG => LK3
5450 logical(LKG) , intent(in) , contiguous :: array(:)
5451 procedure(logical(LK)) :: isSorted
5452 integer(TKR) :: rank(size(array, kind = IK))
5453 end function
5454#endif
5455
5456#if LK2_ENABLED
5457 module function getRankModifiedCusCom_D1_LK2(array, isSorted) result(rank)
5458#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5459 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_LK2
5460#endif
5461 use pm_kind, only: TKR => IK, LKG => LK2
5462 logical(LKG) , intent(in) , contiguous :: array(:)
5463 procedure(logical(LK)) :: isSorted
5464 integer(TKR) :: rank(size(array, kind = IK))
5465 end function
5466#endif
5467
5468#if LK1_ENABLED
5469 module function getRankModifiedCusCom_D1_LK1(array, isSorted) result(rank)
5470#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5471 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_LK1
5472#endif
5473 use pm_kind, only: TKR => IK, LKG => LK1
5474 logical(LKG) , intent(in) , contiguous :: array(:)
5475 procedure(logical(LK)) :: isSorted
5476 integer(TKR) :: rank(size(array, kind = IK))
5477 end function
5478#endif
5479
5480 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5481
5482#if CK5_ENABLED
5483 module function getRankModifiedCusCom_D1_CK5(array, isSorted) result(rank)
5484#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5485 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_CK5
5486#endif
5487 use pm_kind, only: TKR => IK, CKG => CK5
5488 complex(CKG) , intent(in) , contiguous :: array(:)
5489 procedure(logical(LK)) :: isSorted
5490 integer(TKR) :: rank(size(array, kind = IK))
5491 end function
5492#endif
5493
5494#if CK4_ENABLED
5495 module function getRankModifiedCusCom_D1_CK4(array, isSorted) result(rank)
5496#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5497 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_CK4
5498#endif
5499 use pm_kind, only: TKR => IK, CKG => CK4
5500 complex(CKG) , intent(in) , contiguous :: array(:)
5501 procedure(logical(LK)) :: isSorted
5502 integer(TKR) :: rank(size(array, kind = IK))
5503 end function
5504#endif
5505
5506#if CK3_ENABLED
5507 module function getRankModifiedCusCom_D1_CK3(array, isSorted) result(rank)
5508#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5509 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_CK3
5510#endif
5511 use pm_kind, only: TKR => IK, CKG => CK3
5512 complex(CKG) , intent(in) , contiguous :: array(:)
5513 procedure(logical(LK)) :: isSorted
5514 integer(TKR) :: rank(size(array, kind = IK))
5515 end function
5516#endif
5517
5518#if CK2_ENABLED
5519 module function getRankModifiedCusCom_D1_CK2(array, isSorted) result(rank)
5520#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5521 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_CK2
5522#endif
5523 use pm_kind, only: TKR => IK, CKG => CK2
5524 complex(CKG) , intent(in) , contiguous :: array(:)
5525 procedure(logical(LK)) :: isSorted
5526 integer(TKR) :: rank(size(array, kind = IK))
5527 end function
5528#endif
5529
5530#if CK1_ENABLED
5531 module function getRankModifiedCusCom_D1_CK1(array, isSorted) result(rank)
5532#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5533 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_CK1
5534#endif
5535 use pm_kind, only: TKR => IK, CKG => CK1
5536 complex(CKG) , intent(in) , contiguous :: array(:)
5537 procedure(logical(LK)) :: isSorted
5538 integer(TKR) :: rank(size(array, kind = IK))
5539 end function
5540#endif
5541
5542 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5543
5544#if RK5_ENABLED
5545 module function getRankModifiedCusCom_D1_RK5(array, isSorted) result(rank)
5546#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5547 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_RK5
5548#endif
5549 use pm_kind, only: TKR => IK, RKG => RK5
5550 real(RKG) , intent(in) , contiguous :: array(:)
5551 procedure(logical(LK)) :: isSorted
5552 integer(TKR) :: rank(size(array, kind = IK))
5553 end function
5554#endif
5555
5556#if RK4_ENABLED
5557 module function getRankModifiedCusCom_D1_RK4(array, isSorted) result(rank)
5558#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5559 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_RK4
5560#endif
5561 use pm_kind, only: TKR => IK, RKG => RK4
5562 real(RKG) , intent(in) , contiguous :: array(:)
5563 procedure(logical(LK)) :: isSorted
5564 integer(TKR) :: rank(size(array, kind = IK))
5565 end function
5566#endif
5567
5568#if RK3_ENABLED
5569 module function getRankModifiedCusCom_D1_RK3(array, isSorted) result(rank)
5570#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5571 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_RK3
5572#endif
5573 use pm_kind, only: TKR => IK, RKG => RK3
5574 real(RKG) , intent(in) , contiguous :: array(:)
5575 procedure(logical(LK)) :: isSorted
5576 integer(TKR) :: rank(size(array, kind = IK))
5577 end function
5578#endif
5579
5580#if RK2_ENABLED
5581 module function getRankModifiedCusCom_D1_RK2(array, isSorted) result(rank)
5582#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5583 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_RK2
5584#endif
5585 use pm_kind, only: TKR => IK, RKG => RK2
5586 real(RKG) , intent(in) , contiguous :: array(:)
5587 procedure(logical(LK)) :: isSorted
5588 integer(TKR) :: rank(size(array, kind = IK))
5589 end function
5590#endif
5591
5592#if RK1_ENABLED
5593 module function getRankModifiedCusCom_D1_RK1(array, isSorted) result(rank)
5594#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5595 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_RK1
5596#endif
5597 use pm_kind, only: TKR => IK, RKG => RK1
5598 real(RKG) , intent(in) , contiguous :: array(:)
5599 procedure(logical(LK)) :: isSorted
5600 integer(TKR) :: rank(size(array, kind = IK))
5601 end function
5602#endif
5603
5604 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5605
5606#if PDT_ENABLED
5607
5608#if SK5_ENABLED
5609 module function getRankModifiedCusCom_D1_PSSK5(array, isSorted) result(rank)
5610#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5611 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_PSSK5
5612#endif
5613 use pm_kind, only: TKR => IK, SKG => SK5
5614 use pm_container, only: css_pdt
5615 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
5616 procedure(logical(LK)) :: isSorted
5617 integer(TKR) :: rank(size(array, kind = IK))
5618 end function
5619#endif
5620
5621#if SK4_ENABLED
5622 module function getRankModifiedCusCom_D1_PSSK4(array, isSorted) result(rank)
5623#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5624 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_PSSK4
5625#endif
5626 use pm_kind, only: TKR => IK, SKG => SK4
5627 use pm_container, only: css_pdt
5628 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
5629 procedure(logical(LK)) :: isSorted
5630 integer(TKR) :: rank(size(array, kind = IK))
5631 end function
5632#endif
5633
5634#if SK3_ENABLED
5635 module function getRankModifiedCusCom_D1_PSSK3(array, isSorted) result(rank)
5636#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5637 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_PSSK3
5638#endif
5639 use pm_kind, only: TKR => IK, SKG => SK3
5640 use pm_container, only: css_pdt
5641 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
5642 procedure(logical(LK)) :: isSorted
5643 integer(TKR) :: rank(size(array, kind = IK))
5644 end function
5645#endif
5646
5647#if SK2_ENABLED
5648 module function getRankModifiedCusCom_D1_PSSK2(array, isSorted) result(rank)
5649#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5650 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_PSSK2
5651#endif
5652 use pm_kind, only: TKR => IK, SKG => SK2
5653 use pm_container, only: css_pdt
5654 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
5655 procedure(logical(LK)) :: isSorted
5656 integer(TKR) :: rank(size(array, kind = IK))
5657 end function
5658#endif
5659
5660#if SK1_ENABLED
5661 module function getRankModifiedCusCom_D1_PSSK1(array, isSorted) result(rank)
5662#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5663 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_PSSK1
5664#endif
5665 use pm_kind, only: TKR => IK, SKG => SK1
5666 use pm_container, only: css_pdt
5667 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
5668 integer(TKR) :: rank(size(array, kind = IK))
5669 procedure(logical(LK)) :: isSorted
5670 end function
5671#endif
5672
5673#endif
5674!PDT_ENABLED
5675
5676 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5677
5678 module function getRankModifiedCusCom_D1_BSSK(array, isSorted) result(rank)
5679#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5680 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_BSSK
5681#endif
5682 use pm_kind, only: TKR => IK, SKG => SK
5683 use pm_container, only: css_type
5684 type(css_type) , intent(in) , contiguous :: array(:)
5685 procedure(logical(LK)) :: isSorted
5686 integer(TKR) :: rank(size(array, kind = IK))
5687 end function
5688
5689 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5690
5691 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5692 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5693 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5694
5695 end interface
5696
5697!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5698
5842
5843 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5844 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5845 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5846
5847 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5848
5849#if SK5_ENABLED
5850 PURE module subroutine setRankModifiedDefCom_D0_SK5(rank, array)
5851#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5852 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D0_SK5
5853#endif
5854 use pm_kind, only: TKR => IK, SKG => SK5
5855 character(*,SKG) , intent(in) :: array
5856 integer(TKR) , intent(out) , contiguous :: rank(:)
5857 end subroutine
5858#endif
5859
5860#if SK4_ENABLED
5861 PURE module subroutine setRankModifiedDefCom_D0_SK4(rank, array)
5862#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5863 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D0_SK4
5864#endif
5865 use pm_kind, only: TKR => IK, SKG => SK4
5866 character(*,SKG) , intent(in) :: array
5867 integer(TKR) , intent(out) , contiguous :: rank(:)
5868 end subroutine
5869#endif
5870
5871#if SK3_ENABLED
5872 PURE module subroutine setRankModifiedDefCom_D0_SK3(rank, array)
5873#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5874 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D0_SK3
5875#endif
5876 use pm_kind, only: TKR => IK, SKG => SK3
5877 character(*,SKG) , intent(in) :: array
5878 integer(TKR) , intent(out) , contiguous :: rank(:)
5879 end subroutine
5880#endif
5881
5882#if SK2_ENABLED
5883 PURE module subroutine setRankModifiedDefCom_D0_SK2(rank, array)
5884#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5885 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D0_SK2
5886#endif
5887 use pm_kind, only: TKR => IK, SKG => SK2
5888 character(*,SKG) , intent(in) :: array
5889 integer(TKR) , intent(out) , contiguous :: rank(:)
5890 end subroutine
5891#endif
5892
5893#if SK1_ENABLED
5894 PURE module subroutine setRankModifiedDefCom_D0_SK1(rank, array)
5895#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5896 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D0_SK1
5897#endif
5898 use pm_kind, only: TKR => IK, SKG => SK1
5899 character(*,SKG) , intent(in) :: array
5900 integer(TKR) , intent(out) , contiguous :: rank(:)
5901 end subroutine
5902#endif
5903
5904 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5905
5906#if SK5_ENABLED
5907 PURE module subroutine setRankModifiedDefCom_D1_SK5(rank, array)
5908#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5909 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_SK5
5910#endif
5911 use pm_kind, only: TKR => IK, SKG => SK5
5912 character(*,SKG) , intent(in) , contiguous :: array(:)
5913 integer(TKR) , intent(out) , contiguous :: rank(:)
5914 end subroutine
5915#endif
5916
5917#if SK4_ENABLED
5918 PURE module subroutine setRankModifiedDefCom_D1_SK4(rank, array)
5919#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5920 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_SK4
5921#endif
5922 use pm_kind, only: TKR => IK, SKG => SK4
5923 character(*,SKG) , intent(in) , contiguous :: array(:)
5924 integer(TKR) , intent(out) , contiguous :: rank(:)
5925 end subroutine
5926#endif
5927
5928#if SK3_ENABLED
5929 PURE module subroutine setRankModifiedDefCom_D1_SK3(rank, array)
5930#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5931 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_SK3
5932#endif
5933 use pm_kind, only: TKR => IK, SKG => SK3
5934 character(*,SKG) , intent(in) , contiguous :: array(:)
5935 integer(TKR) , intent(out) , contiguous :: rank(:)
5936 end subroutine
5937#endif
5938
5939#if SK2_ENABLED
5940 PURE module subroutine setRankModifiedDefCom_D1_SK2(rank, array)
5941#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5942 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_SK2
5943#endif
5944 use pm_kind, only: TKR => IK, SKG => SK2
5945 character(*,SKG) , intent(in) , contiguous :: array(:)
5946 integer(TKR) , intent(out) , contiguous :: rank(:)
5947 end subroutine
5948#endif
5949
5950#if SK1_ENABLED
5951 PURE module subroutine setRankModifiedDefCom_D1_SK1(rank, array)
5952#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5953 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_SK1
5954#endif
5955 use pm_kind, only: TKR => IK, SKG => SK1
5956 character(*,SKG) , intent(in) , contiguous :: array(:)
5957 integer(TKR) , intent(out) , contiguous :: rank(:)
5958 end subroutine
5959#endif
5960
5961 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5962
5963#if IK5_ENABLED
5964 PURE module subroutine setRankModifiedDefCom_D1_IK5(rank, array)
5965#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5966 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_IK5
5967#endif
5968 use pm_kind, only: TKR => IK, IKG => IK5
5969 integer(IKG) , intent(in) , contiguous :: array(:)
5970 integer(TKR) , intent(out) , contiguous :: rank(:)
5971 end subroutine
5972#endif
5973
5974#if IK4_ENABLED
5975 PURE module subroutine setRankModifiedDefCom_D1_IK4(rank, array)
5976#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5977 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_IK4
5978#endif
5979 use pm_kind, only: TKR => IK, IKG => IK4
5980 integer(IKG) , intent(in) , contiguous :: array(:)
5981 integer(TKR) , intent(out) , contiguous :: rank(:)
5982 end subroutine
5983#endif
5984
5985#if IK3_ENABLED
5986 PURE module subroutine setRankModifiedDefCom_D1_IK3(rank, array)
5987#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5988 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_IK3
5989#endif
5990 use pm_kind, only: TKR => IK, IKG => IK3
5991 integer(IKG) , intent(in) , contiguous :: array(:)
5992 integer(TKR) , intent(out) , contiguous :: rank(:)
5993 end subroutine
5994#endif
5995
5996#if IK2_ENABLED
5997 PURE module subroutine setRankModifiedDefCom_D1_IK2(rank, array)
5998#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5999 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_IK2
6000#endif
6001 use pm_kind, only: TKR => IK, IKG => IK2
6002 integer(IKG) , intent(in) , contiguous :: array(:)
6003 integer(TKR) , intent(out) , contiguous :: rank(:)
6004 end subroutine
6005#endif
6006
6007#if IK1_ENABLED
6008 PURE module subroutine setRankModifiedDefCom_D1_IK1(rank, array)
6009#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6010 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_IK1
6011#endif
6012 use pm_kind, only: TKR => IK, IKG => IK1
6013 integer(IKG) , intent(in) , contiguous :: array(:)
6014 integer(TKR) , intent(out) , contiguous :: rank(:)
6015 end subroutine
6016#endif
6017
6018 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6019
6020#if LK5_ENABLED
6021 PURE module subroutine setRankModifiedDefCom_D1_LK5(rank, array)
6022#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6023 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_LK5
6024#endif
6025 use pm_kind, only: TKR => IK, LKG => LK5
6026 logical(LKG) , intent(in) , contiguous :: array(:)
6027 integer(TKR) , intent(out) , contiguous :: rank(:)
6028 end subroutine
6029#endif
6030
6031#if LK4_ENABLED
6032 PURE module subroutine setRankModifiedDefCom_D1_LK4(rank, array)
6033#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6034 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_LK4
6035#endif
6036 use pm_kind, only: TKR => IK, LKG => LK4
6037 logical(LKG) , intent(in) , contiguous :: array(:)
6038 integer(TKR) , intent(out) , contiguous :: rank(:)
6039 end subroutine
6040#endif
6041
6042#if LK3_ENABLED
6043 PURE module subroutine setRankModifiedDefCom_D1_LK3(rank, array)
6044#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6045 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_LK3
6046#endif
6047 use pm_kind, only: TKR => IK, LKG => LK3
6048 logical(LKG) , intent(in) , contiguous :: array(:)
6049 integer(TKR) , intent(out) , contiguous :: rank(:)
6050 end subroutine
6051#endif
6052
6053#if LK2_ENABLED
6054 PURE module subroutine setRankModifiedDefCom_D1_LK2(rank, array)
6055#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6056 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_LK2
6057#endif
6058 use pm_kind, only: TKR => IK, LKG => LK2
6059 logical(LKG) , intent(in) , contiguous :: array(:)
6060 integer(TKR) , intent(out) , contiguous :: rank(:)
6061 end subroutine
6062#endif
6063
6064#if LK1_ENABLED
6065 PURE module subroutine setRankModifiedDefCom_D1_LK1(rank, array)
6066#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6067 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_LK1
6068#endif
6069 use pm_kind, only: TKR => IK, LKG => LK1
6070 logical(LKG) , intent(in) , contiguous :: array(:)
6071 integer(TKR) , intent(out) , contiguous :: rank(:)
6072 end subroutine
6073#endif
6074
6075 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6076
6077#if CK5_ENABLED
6078 PURE module subroutine setRankModifiedDefCom_D1_CK5(rank, array)
6079#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6080 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_CK5
6081#endif
6082 use pm_kind, only: TKR => IK, CKG => CK5
6083 complex(CKG) , intent(in) , contiguous :: array(:)
6084 integer(TKR) , intent(out) , contiguous :: rank(:)
6085 end subroutine
6086#endif
6087
6088#if CK4_ENABLED
6089 PURE module subroutine setRankModifiedDefCom_D1_CK4(rank, array)
6090#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6091 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_CK4
6092#endif
6093 use pm_kind, only: TKR => IK, CKG => CK4
6094 complex(CKG) , intent(in) , contiguous :: array(:)
6095 integer(TKR) , intent(out) , contiguous :: rank(:)
6096 end subroutine
6097#endif
6098
6099#if CK3_ENABLED
6100 PURE module subroutine setRankModifiedDefCom_D1_CK3(rank, array)
6101#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6102 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_CK3
6103#endif
6104 use pm_kind, only: TKR => IK, CKG => CK3
6105 complex(CKG) , intent(in) , contiguous :: array(:)
6106 integer(TKR) , intent(out) , contiguous :: rank(:)
6107 end subroutine
6108#endif
6109
6110#if CK2_ENABLED
6111 PURE module subroutine setRankModifiedDefCom_D1_CK2(rank, array)
6112#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6113 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_CK2
6114#endif
6115 use pm_kind, only: TKR => IK, CKG => CK2
6116 complex(CKG) , intent(in) , contiguous :: array(:)
6117 integer(TKR) , intent(out) , contiguous :: rank(:)
6118 end subroutine
6119#endif
6120
6121#if CK1_ENABLED
6122 PURE module subroutine setRankModifiedDefCom_D1_CK1(rank, array)
6123#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6124 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_CK1
6125#endif
6126 use pm_kind, only: TKR => IK, CKG => CK1
6127 complex(CKG) , intent(in) , contiguous :: array(:)
6128 integer(TKR) , intent(out) , contiguous :: rank(:)
6129 end subroutine
6130#endif
6131
6132 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6133
6134#if RK5_ENABLED
6135 PURE module subroutine setRankModifiedDefCom_D1_RK5(rank, array)
6136#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6137 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_RK5
6138#endif
6139 use pm_kind, only: TKR => IK, RKG => RK5
6140 real(RKG) , intent(in) , contiguous :: array(:)
6141 integer(TKR) , intent(out) , contiguous :: rank(:)
6142 end subroutine
6143#endif
6144
6145#if RK4_ENABLED
6146 PURE module subroutine setRankModifiedDefCom_D1_RK4(rank, array)
6147#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6148 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_RK4
6149#endif
6150 use pm_kind, only: TKR => IK, RKG => RK4
6151 real(RKG) , intent(in) , contiguous :: array(:)
6152 integer(TKR) , intent(out) , contiguous :: rank(:)
6153 end subroutine
6154#endif
6155
6156#if RK3_ENABLED
6157 PURE module subroutine setRankModifiedDefCom_D1_RK3(rank, array)
6158#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6159 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_RK3
6160#endif
6161 use pm_kind, only: TKR => IK, RKG => RK3
6162 real(RKG) , intent(in) , contiguous :: array(:)
6163 integer(TKR) , intent(out) , contiguous :: rank(:)
6164 end subroutine
6165#endif
6166
6167#if RK2_ENABLED
6168 PURE module subroutine setRankModifiedDefCom_D1_RK2(rank, array)
6169#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6170 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_RK2
6171#endif
6172 use pm_kind, only: TKR => IK, RKG => RK2
6173 real(RKG) , intent(in) , contiguous :: array(:)
6174 integer(TKR) , intent(out) , contiguous :: rank(:)
6175 end subroutine
6176#endif
6177
6178#if RK1_ENABLED
6179 PURE module subroutine setRankModifiedDefCom_D1_RK1(rank, array)
6180#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6181 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_RK1
6182#endif
6183 use pm_kind, only: TKR => IK, RKG => RK1
6184 real(RKG) , intent(in) , contiguous :: array(:)
6185 integer(TKR) , intent(out) , contiguous :: rank(:)
6186 end subroutine
6187#endif
6188
6189 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6190
6191#if PDT_ENABLED
6192
6193#if SK5_ENABLED
6194 PURE module subroutine setRankModifiedDefCom_D1_PSSK5(rank, array)
6195#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6196 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_PSSK5
6197#endif
6198 use pm_kind, only: TKR => IK, SKG => SK5
6199 use pm_container, only: css_pdt
6200 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
6201 integer(TKR) , intent(out) , contiguous :: rank(:)
6202 end subroutine
6203#endif
6204
6205#if SK4_ENABLED
6206 PURE module subroutine setRankModifiedDefCom_D1_PSSK4(rank, array)
6207#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6208 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_PSSK4
6209#endif
6210 use pm_kind, only: TKR => IK, SKG => SK4
6211 use pm_container, only: css_pdt
6212 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
6213 integer(TKR) , intent(out) , contiguous :: rank(:)
6214 end subroutine
6215#endif
6216
6217#if SK3_ENABLED
6218 PURE module subroutine setRankModifiedDefCom_D1_PSSK3(rank, array)
6219#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6220 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_PSSK3
6221#endif
6222 use pm_kind, only: TKR => IK, SKG => SK3
6223 use pm_container, only: css_pdt
6224 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
6225 integer(TKR) , intent(out) , contiguous :: rank(:)
6226 end subroutine
6227#endif
6228
6229#if SK2_ENABLED
6230 PURE module subroutine setRankModifiedDefCom_D1_PSSK2(rank, array)
6231#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6232 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_PSSK2
6233#endif
6234 use pm_kind, only: TKR => IK, SKG => SK2
6235 use pm_container, only: css_pdt
6236 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
6237 integer(TKR) , intent(out) , contiguous :: rank(:)
6238 end subroutine
6239#endif
6240
6241#if SK1_ENABLED
6242 PURE module subroutine setRankModifiedDefCom_D1_PSSK1(rank, array)
6243#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6244 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_PSSK1
6245#endif
6246 use pm_kind, only: TKR => IK, SKG => SK1
6247 use pm_container, only: css_pdt
6248 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
6249 integer(TKR) , intent(out) , contiguous :: rank(:)
6250 end subroutine
6251#endif
6252
6253#endif
6254!PDT_ENABLED
6255
6256 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6257
6258 PURE module subroutine setRankModifiedDefCom_D1_BSSK(rank, array)
6259#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6260 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_BSSK
6261#endif
6262 use pm_kind, only: TKR => IK, SKG => SK
6263 use pm_container, only: css_type
6264 type(css_type) , intent(in) , contiguous :: array(:)
6265 integer(TKR) , intent(out) , contiguous :: rank(:)
6266 end subroutine
6267
6268 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6269
6270 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6271 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6272 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6273
6274 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6275
6276#if SK5_ENABLED
6277 module subroutine setRankModifiedCusCom_D0_SK5(rank, array, isSorted)
6278#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6279 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D0_SK5
6280#endif
6281 use pm_kind, only: TKR => IK, SKG => SK5
6282 character(*,SKG) , intent(in) :: array
6283 integer(TKR) , intent(out) , contiguous :: rank(:)
6284 procedure(logical(LK)) :: isSorted
6285 end subroutine
6286#endif
6287
6288#if SK4_ENABLED
6289 module subroutine setRankModifiedCusCom_D0_SK4(rank, array, isSorted)
6290#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6291 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D0_SK4
6292#endif
6293 use pm_kind, only: TKR => IK, SKG => SK4
6294 character(*,SKG) , intent(in) :: array
6295 integer(TKR) , intent(out) , contiguous :: rank(:)
6296 procedure(logical(LK)) :: isSorted
6297 end subroutine
6298#endif
6299
6300#if SK3_ENABLED
6301 module subroutine setRankModifiedCusCom_D0_SK3(rank, array, isSorted)
6302#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6303 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D0_SK3
6304#endif
6305 use pm_kind, only: TKR => IK, SKG => SK3
6306 character(*,SKG) , intent(in) :: array
6307 integer(TKR) , intent(out) , contiguous :: rank(:)
6308 procedure(logical(LK)) :: isSorted
6309 end subroutine
6310#endif
6311
6312#if SK2_ENABLED
6313 module subroutine setRankModifiedCusCom_D0_SK2(rank, array, isSorted)
6314#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6315 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D0_SK2
6316#endif
6317 use pm_kind, only: TKR => IK, SKG => SK2
6318 character(*,SKG) , intent(in) :: array
6319 integer(TKR) , intent(out) , contiguous :: rank(:)
6320 procedure(logical(LK)) :: isSorted
6321 end subroutine
6322#endif
6323
6324#if SK1_ENABLED
6325 module subroutine setRankModifiedCusCom_D0_SK1(rank, array, isSorted)
6326#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6327 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D0_SK1
6328#endif
6329 use pm_kind, only: TKR => IK, SKG => SK1
6330 character(*,SKG) , intent(in) :: array
6331 integer(TKR) , intent(out) , contiguous :: rank(:)
6332 procedure(logical(LK)) :: isSorted
6333 end subroutine
6334#endif
6335
6336 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6337
6338#if SK5_ENABLED
6339 module subroutine setRankModifiedCusCom_D1_SK5(rank, array, isSorted)
6340#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6341 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_SK5
6342#endif
6343 use pm_kind, only: TKR => IK, SKG => SK5
6344 character(*,SKG) , intent(in) , contiguous :: array(:)
6345 integer(TKR) , intent(out) , contiguous :: rank(:)
6346 procedure(logical(LK)) :: isSorted
6347 end subroutine
6348#endif
6349
6350#if SK4_ENABLED
6351 module subroutine setRankModifiedCusCom_D1_SK4(rank, array, isSorted)
6352#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6353 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_SK4
6354#endif
6355 use pm_kind, only: TKR => IK, SKG => SK4
6356 character(*,SKG) , intent(in) , contiguous :: array(:)
6357 integer(TKR) , intent(out) , contiguous :: rank(:)
6358 procedure(logical(LK)) :: isSorted
6359 end subroutine
6360#endif
6361
6362#if SK3_ENABLED
6363 module subroutine setRankModifiedCusCom_D1_SK3(rank, array, isSorted)
6364#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6365 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_SK3
6366#endif
6367 use pm_kind, only: TKR => IK, SKG => SK3
6368 character(*,SKG) , intent(in) , contiguous :: array(:)
6369 integer(TKR) , intent(out) , contiguous :: rank(:)
6370 procedure(logical(LK)) :: isSorted
6371 end subroutine
6372#endif
6373
6374#if SK2_ENABLED
6375 module subroutine setRankModifiedCusCom_D1_SK2(rank, array, isSorted)
6376#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6377 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_SK2
6378#endif
6379 use pm_kind, only: TKR => IK, SKG => SK2
6380 character(*,SKG) , intent(in) , contiguous :: array(:)
6381 integer(TKR) , intent(out) , contiguous :: rank(:)
6382 procedure(logical(LK)) :: isSorted
6383 end subroutine
6384#endif
6385
6386#if SK1_ENABLED
6387 module subroutine setRankModifiedCusCom_D1_SK1(rank, array, isSorted)
6388#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6389 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_SK1
6390#endif
6391 use pm_kind, only: TKR => IK, SKG => SK1
6392 character(*,SKG) , intent(in) , contiguous :: array(:)
6393 integer(TKR) , intent(out) , contiguous :: rank(:)
6394 procedure(logical(LK)) :: isSorted
6395 end subroutine
6396#endif
6397
6398 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6399
6400#if IK5_ENABLED
6401 module subroutine setRankModifiedCusCom_D1_IK5(rank, array, isSorted)
6402#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6403 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_IK5
6404#endif
6405 use pm_kind, only: TKR => IK, IKG => IK5
6406 integer(IKG) , intent(in) , contiguous :: array(:)
6407 integer(TKR) , intent(out) , contiguous :: rank(:)
6408 procedure(logical(LK)) :: isSorted
6409 end subroutine
6410#endif
6411
6412#if IK4_ENABLED
6413 module subroutine setRankModifiedCusCom_D1_IK4(rank, array, isSorted)
6414#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6415 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_IK4
6416#endif
6417 use pm_kind, only: TKR => IK, IKG => IK4
6418 integer(IKG) , intent(in) , contiguous :: array(:)
6419 integer(TKR) , intent(out) , contiguous :: rank(:)
6420 procedure(logical(LK)) :: isSorted
6421 end subroutine
6422#endif
6423
6424#if IK3_ENABLED
6425 module subroutine setRankModifiedCusCom_D1_IK3(rank, array, isSorted)
6426#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6427 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_IK3
6428#endif
6429 use pm_kind, only: TKR => IK, IKG => IK3
6430 integer(IKG) , intent(in) , contiguous :: array(:)
6431 integer(TKR) , intent(out) , contiguous :: rank(:)
6432 procedure(logical(LK)) :: isSorted
6433 end subroutine
6434#endif
6435
6436#if IK2_ENABLED
6437 module subroutine setRankModifiedCusCom_D1_IK2(rank, array, isSorted)
6438#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6439 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_IK2
6440#endif
6441 use pm_kind, only: TKR => IK, IKG => IK2
6442 integer(IKG) , intent(in) , contiguous :: array(:)
6443 integer(TKR) , intent(out) , contiguous :: rank(:)
6444 procedure(logical(LK)) :: isSorted
6445 end subroutine
6446#endif
6447
6448#if IK1_ENABLED
6449 module subroutine setRankModifiedCusCom_D1_IK1(rank, array, isSorted)
6450#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6451 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_IK1
6452#endif
6453 use pm_kind, only: TKR => IK, IKG => IK1
6454 integer(IKG) , intent(in) , contiguous :: array(:)
6455 integer(TKR) , intent(out) , contiguous :: rank(:)
6456 procedure(logical(LK)) :: isSorted
6457 end subroutine
6458#endif
6459
6460 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6461
6462#if LK5_ENABLED
6463 module subroutine setRankModifiedCusCom_D1_LK5(rank, array, isSorted)
6464#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6465 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_LK5
6466#endif
6467 use pm_kind, only: TKR => IK, LKG => LK5
6468 logical(LKG) , intent(in) , contiguous :: array(:)
6469 integer(TKR) , intent(out) , contiguous :: rank(:)
6470 procedure(logical(LK)) :: isSorted
6471 end subroutine
6472#endif
6473
6474#if LK4_ENABLED
6475 module subroutine setRankModifiedCusCom_D1_LK4(rank, array, isSorted)
6476#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6477 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_LK4
6478#endif
6479 use pm_kind, only: TKR => IK, LKG => LK4
6480 logical(LKG) , intent(in) , contiguous :: array(:)
6481 integer(TKR) , intent(out) , contiguous :: rank(:)
6482 procedure(logical(LK)) :: isSorted
6483 end subroutine
6484#endif
6485
6486#if LK3_ENABLED
6487 module subroutine setRankModifiedCusCom_D1_LK3(rank, array, isSorted)
6488#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6489 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_LK3
6490#endif
6491 use pm_kind, only: TKR => IK, LKG => LK3
6492 logical(LKG) , intent(in) , contiguous :: array(:)
6493 integer(TKR) , intent(out) , contiguous :: rank(:)
6494 procedure(logical(LK)) :: isSorted
6495 end subroutine
6496#endif
6497
6498#if LK2_ENABLED
6499 module subroutine setRankModifiedCusCom_D1_LK2(rank, array, isSorted)
6500#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6501 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_LK2
6502#endif
6503 use pm_kind, only: TKR => IK, LKG => LK2
6504 logical(LKG) , intent(in) , contiguous :: array(:)
6505 integer(TKR) , intent(out) , contiguous :: rank(:)
6506 procedure(logical(LK)) :: isSorted
6507 end subroutine
6508#endif
6509
6510#if LK1_ENABLED
6511 module subroutine setRankModifiedCusCom_D1_LK1(rank, array, isSorted)
6512#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6513 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_LK1
6514#endif
6515 use pm_kind, only: TKR => IK, LKG => LK1
6516 logical(LKG) , intent(in) , contiguous :: array(:)
6517 integer(TKR) , intent(out) , contiguous :: rank(:)
6518 procedure(logical(LK)) :: isSorted
6519 end subroutine
6520#endif
6521
6522 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6523
6524#if CK5_ENABLED
6525 module subroutine setRankModifiedCusCom_D1_CK5(rank, array, isSorted)
6526#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6527 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_CK5
6528#endif
6529 use pm_kind, only: TKR => IK, CKG => CK5
6530 complex(CKG) , intent(in) , contiguous :: array(:)
6531 integer(TKR) , intent(out) , contiguous :: rank(:)
6532 procedure(logical(LK)) :: isSorted
6533 end subroutine
6534#endif
6535
6536#if CK4_ENABLED
6537 module subroutine setRankModifiedCusCom_D1_CK4(rank, array, isSorted)
6538#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6539 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_CK4
6540#endif
6541 use pm_kind, only: TKR => IK, CKG => CK4
6542 complex(CKG) , intent(in) , contiguous :: array(:)
6543 integer(TKR) , intent(out) , contiguous :: rank(:)
6544 procedure(logical(LK)) :: isSorted
6545 end subroutine
6546#endif
6547
6548#if CK3_ENABLED
6549 module subroutine setRankModifiedCusCom_D1_CK3(rank, array, isSorted)
6550#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6551 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_CK3
6552#endif
6553 use pm_kind, only: TKR => IK, CKG => CK3
6554 complex(CKG) , intent(in) , contiguous :: array(:)
6555 integer(TKR) , intent(out) , contiguous :: rank(:)
6556 procedure(logical(LK)) :: isSorted
6557 end subroutine
6558#endif
6559
6560#if CK2_ENABLED
6561 module subroutine setRankModifiedCusCom_D1_CK2(rank, array, isSorted)
6562#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6563 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_CK2
6564#endif
6565 use pm_kind, only: TKR => IK, CKG => CK2
6566 complex(CKG) , intent(in) , contiguous :: array(:)
6567 integer(TKR) , intent(out) , contiguous :: rank(:)
6568 procedure(logical(LK)) :: isSorted
6569 end subroutine
6570#endif
6571
6572#if CK1_ENABLED
6573 module subroutine setRankModifiedCusCom_D1_CK1(rank, array, isSorted)
6574#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6575 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_CK1
6576#endif
6577 use pm_kind, only: TKR => IK, CKG => CK1
6578 complex(CKG) , intent(in) , contiguous :: array(:)
6579 integer(TKR) , intent(out) , contiguous :: rank(:)
6580 procedure(logical(LK)) :: isSorted
6581 end subroutine
6582#endif
6583
6584 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6585
6586#if RK5_ENABLED
6587 module subroutine setRankModifiedCusCom_D1_RK5(rank, array, isSorted)
6588#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6589 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_RK5
6590#endif
6591 use pm_kind, only: TKR => IK, RKG => RK5
6592 real(RKG) , intent(in) , contiguous :: array(:)
6593 integer(TKR) , intent(out) , contiguous :: rank(:)
6594 procedure(logical(LK)) :: isSorted
6595 end subroutine
6596#endif
6597
6598#if RK4_ENABLED
6599 module subroutine setRankModifiedCusCom_D1_RK4(rank, array, isSorted)
6600#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6601 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_RK4
6602#endif
6603 use pm_kind, only: TKR => IK, RKG => RK4
6604 real(RKG) , intent(in) , contiguous :: array(:)
6605 integer(TKR) , intent(out) , contiguous :: rank(:)
6606 procedure(logical(LK)) :: isSorted
6607 end subroutine
6608#endif
6609
6610#if RK3_ENABLED
6611 module subroutine setRankModifiedCusCom_D1_RK3(rank, array, isSorted)
6612#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6613 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_RK3
6614#endif
6615 use pm_kind, only: TKR => IK, RKG => RK3
6616 real(RKG) , intent(in) , contiguous :: array(:)
6617 integer(TKR) , intent(out) , contiguous :: rank(:)
6618 procedure(logical(LK)) :: isSorted
6619 end subroutine
6620#endif
6621
6622#if RK2_ENABLED
6623 module subroutine setRankModifiedCusCom_D1_RK2(rank, array, isSorted)
6624#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6625 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_RK2
6626#endif
6627 use pm_kind, only: TKR => IK, RKG => RK2
6628 real(RKG) , intent(in) , contiguous :: array(:)
6629 integer(TKR) , intent(out) , contiguous :: rank(:)
6630 procedure(logical(LK)) :: isSorted
6631 end subroutine
6632#endif
6633
6634#if RK1_ENABLED
6635 module subroutine setRankModifiedCusCom_D1_RK1(rank, array, isSorted)
6636#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6637 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_RK1
6638#endif
6639 use pm_kind, only: TKR => IK, RKG => RK1
6640 real(RKG) , intent(in) , contiguous :: array(:)
6641 integer(TKR) , intent(out) , contiguous :: rank(:)
6642 procedure(logical(LK)) :: isSorted
6643 end subroutine
6644#endif
6645
6646 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6647
6648#if PDT_ENABLED
6649
6650#if SK5_ENABLED
6651 module subroutine setRankModifiedCusCom_D1_PSSK5(rank, array, isSorted)
6652#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6653 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_PSSK5
6654#endif
6655 use pm_kind, only: TKR => IK, SKG => SK5
6656 use pm_container, only: css_pdt
6657 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
6658 integer(TKR) , intent(out) , contiguous :: rank(:)
6659 procedure(logical(LK)) :: isSorted
6660 end subroutine
6661#endif
6662
6663#if SK4_ENABLED
6664 module subroutine setRankModifiedCusCom_D1_PSSK4(rank, array, isSorted)
6665#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6666 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_PSSK4
6667#endif
6668 use pm_kind, only: TKR => IK, SKG => SK4
6669 use pm_container, only: css_pdt
6670 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
6671 integer(TKR) , intent(out) , contiguous :: rank(:)
6672 procedure(logical(LK)) :: isSorted
6673 end subroutine
6674#endif
6675
6676#if SK3_ENABLED
6677 module subroutine setRankModifiedCusCom_D1_PSSK3(rank, array, isSorted)
6678#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6679 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_PSSK3
6680#endif
6681 use pm_kind, only: TKR => IK, SKG => SK3
6682 use pm_container, only: css_pdt
6683 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
6684 integer(TKR) , intent(out) , contiguous :: rank(:)
6685 procedure(logical(LK)) :: isSorted
6686 end subroutine
6687#endif
6688
6689#if SK2_ENABLED
6690 module subroutine setRankModifiedCusCom_D1_PSSK2(rank, array, isSorted)
6691#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6692 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_PSSK2
6693#endif
6694 use pm_kind, only: TKR => IK, SKG => SK2
6695 use pm_container, only: css_pdt
6696 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
6697 integer(TKR) , intent(out) , contiguous :: rank(:)
6698 procedure(logical(LK)) :: isSorted
6699 end subroutine
6700#endif
6701
6702#if SK1_ENABLED
6703 module subroutine setRankModifiedCusCom_D1_PSSK1(rank, array, isSorted)
6704#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6705 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_PSSK1
6706#endif
6707 use pm_kind, only: TKR => IK, SKG => SK1
6708 use pm_container, only: css_pdt
6709 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
6710 integer(TKR) , intent(out) , contiguous :: rank(:)
6711 procedure(logical(LK)) :: isSorted
6712 end subroutine
6713#endif
6714
6715#endif
6716!PDT_ENABLED
6717
6718 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6719
6720 module subroutine setRankModifiedCusCom_D1_BSSK(rank, array, isSorted)
6721#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6722 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_BSSK
6723#endif
6724 use pm_kind, only: TKR => IK, SKG => SK
6725 use pm_container, only: css_type
6726 type(css_type) , intent(in) , contiguous :: array(:)
6727 integer(TKR) , intent(out) , contiguous :: rank(:)
6728 procedure(logical(LK)) :: isSorted
6729 end subroutine
6730
6731 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6732
6733 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6734 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6735 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6736
6737 end interface
6738
6739!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6740
6880
6881 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6882 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6883 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6884
6885 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6886
6887#if SK5_ENABLED
6888 module function getRankOrdinalDefCom_D0_SK5(array) result(rank)
6889#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6890 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D0_SK5
6891#endif
6892 use pm_kind, only: TKR => IK, SKG => SK5
6893 character(*,SKG) , intent(in) :: array
6894 integer(TKR) :: rank(len(array, IK))
6895 end function
6896#endif
6897
6898#if SK4_ENABLED
6899 module function getRankOrdinalDefCom_D0_SK4(array) result(rank)
6900#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6901 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D0_SK4
6902#endif
6903 use pm_kind, only: TKR => IK, SKG => SK4
6904 character(*,SKG) , intent(in) :: array
6905 integer(TKR) :: rank(len(array, IK))
6906 end function
6907#endif
6908
6909#if SK3_ENABLED
6910 module function getRankOrdinalDefCom_D0_SK3(array) result(rank)
6911#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6912 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D0_SK3
6913#endif
6914 use pm_kind, only: TKR => IK, SKG => SK3
6915 character(*,SKG) , intent(in) :: array
6916 integer(TKR) :: rank(len(array, IK))
6917 end function
6918#endif
6919
6920#if SK2_ENABLED
6921 module function getRankOrdinalDefCom_D0_SK2(array) result(rank)
6922#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6923 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D0_SK2
6924#endif
6925 use pm_kind, only: TKR => IK, SKG => SK2
6926 character(*,SKG) , intent(in) :: array
6927 integer(TKR) :: rank(len(array, IK))
6928 end function
6929#endif
6930
6931#if SK1_ENABLED
6932 module function getRankOrdinalDefCom_D0_SK1(array) result(rank)
6933#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6934 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D0_SK1
6935#endif
6936 use pm_kind, only: TKR => IK, SKG => SK1
6937 character(*,SKG) , intent(in) :: array
6938 integer(TKR) :: rank(len(array, IK))
6939 end function
6940#endif
6941
6942 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6943
6944#if SK5_ENABLED
6945 module function getRankOrdinalDefCom_D1_SK5(array) result(rank)
6946#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6947 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_SK5
6948#endif
6949 use pm_kind, only: TKR => IK, SKG => SK5
6950 character(*,SKG) , intent(in) , contiguous :: array(:)
6951 integer(TKR) :: rank(size(array, kind = IK))
6952 end function
6953#endif
6954
6955#if SK4_ENABLED
6956 module function getRankOrdinalDefCom_D1_SK4(array) result(rank)
6957#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6958 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_SK4
6959#endif
6960 use pm_kind, only: TKR => IK, SKG => SK4
6961 character(*,SKG) , intent(in) , contiguous :: array(:)
6962 integer(TKR) :: rank(size(array, kind = IK))
6963 end function
6964#endif
6965
6966#if SK3_ENABLED
6967 module function getRankOrdinalDefCom_D1_SK3(array) result(rank)
6968#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6969 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_SK3
6970#endif
6971 use pm_kind, only: TKR => IK, SKG => SK3
6972 character(*,SKG) , intent(in) , contiguous :: array(:)
6973 integer(TKR) :: rank(size(array, kind = IK))
6974 end function
6975#endif
6976
6977#if SK2_ENABLED
6978 module function getRankOrdinalDefCom_D1_SK2(array) result(rank)
6979#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6980 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_SK2
6981#endif
6982 use pm_kind, only: TKR => IK, SKG => SK2
6983 character(*,SKG) , intent(in) , contiguous :: array(:)
6984 integer(TKR) :: rank(size(array, kind = IK))
6985 end function
6986#endif
6987
6988#if SK1_ENABLED
6989 module function getRankOrdinalDefCom_D1_SK1(array) result(rank)
6990#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6991 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_SK1
6992#endif
6993 use pm_kind, only: TKR => IK, SKG => SK1
6994 character(*,SKG) , intent(in) , contiguous :: array(:)
6995 integer(TKR) :: rank(size(array, kind = IK))
6996 end function
6997#endif
6998
6999 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7000
7001#if IK5_ENABLED
7002 module function getRankOrdinalDefCom_D1_IK5(array) result(rank)
7003#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7004 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_IK5
7005#endif
7006 use pm_kind, only: TKR => IK, IKG => IK5
7007 integer(IKG) , intent(in) , contiguous :: array(:)
7008 integer(TKR) :: rank(size(array, kind = IK))
7009 end function
7010#endif
7011
7012#if IK4_ENABLED
7013 module function getRankOrdinalDefCom_D1_IK4(array) result(rank)
7014#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7015 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_IK4
7016#endif
7017 use pm_kind, only: TKR => IK, IKG => IK4
7018 integer(IKG) , intent(in) , contiguous :: array(:)
7019 integer(TKR) :: rank(size(array, kind = IK))
7020 end function
7021#endif
7022
7023#if IK3_ENABLED
7024 module function getRankOrdinalDefCom_D1_IK3(array) result(rank)
7025#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7026 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_IK3
7027#endif
7028 use pm_kind, only: TKR => IK, IKG => IK3
7029 integer(IKG) , intent(in) , contiguous :: array(:)
7030 integer(TKR) :: rank(size(array, kind = IK))
7031 end function
7032#endif
7033
7034#if IK2_ENABLED
7035 module function getRankOrdinalDefCom_D1_IK2(array) result(rank)
7036#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7037 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_IK2
7038#endif
7039 use pm_kind, only: TKR => IK, IKG => IK2
7040 integer(IKG) , intent(in) , contiguous :: array(:)
7041 integer(TKR) :: rank(size(array, kind = IK))
7042 end function
7043#endif
7044
7045#if IK1_ENABLED
7046 module function getRankOrdinalDefCom_D1_IK1(array) result(rank)
7047#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7048 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_IK1
7049#endif
7050 use pm_kind, only: TKR => IK, IKG => IK1
7051 integer(IKG) , intent(in) , contiguous :: array(:)
7052 integer(TKR) :: rank(size(array, kind = IK))
7053 end function
7054#endif
7055
7056 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7057
7058#if LK5_ENABLED
7059 module function getRankOrdinalDefCom_D1_LK5(array) result(rank)
7060#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7061 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_LK5
7062#endif
7063 use pm_kind, only: TKR => IK, LKG => LK5
7064 logical(LKG) , intent(in) , contiguous :: array(:)
7065 integer(TKR) :: rank(size(array, kind = IK))
7066 end function
7067#endif
7068
7069#if LK4_ENABLED
7070 module function getRankOrdinalDefCom_D1_LK4(array) result(rank)
7071#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7072 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_LK4
7073#endif
7074 use pm_kind, only: TKR => IK, LKG => LK4
7075 logical(LKG) , intent(in) , contiguous :: array(:)
7076 integer(TKR) :: rank(size(array, kind = IK))
7077 end function
7078#endif
7079
7080#if LK3_ENABLED
7081 module function getRankOrdinalDefCom_D1_LK3(array) result(rank)
7082#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7083 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_LK3
7084#endif
7085 use pm_kind, only: TKR => IK, LKG => LK3
7086 logical(LKG) , intent(in) , contiguous :: array(:)
7087 integer(TKR) :: rank(size(array, kind = IK))
7088 end function
7089#endif
7090
7091#if LK2_ENABLED
7092 module function getRankOrdinalDefCom_D1_LK2(array) result(rank)
7093#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7094 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_LK2
7095#endif
7096 use pm_kind, only: TKR => IK, LKG => LK2
7097 logical(LKG) , intent(in) , contiguous :: array(:)
7098 integer(TKR) :: rank(size(array, kind = IK))
7099 end function
7100#endif
7101
7102#if LK1_ENABLED
7103 module function getRankOrdinalDefCom_D1_LK1(array) result(rank)
7104#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7105 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_LK1
7106#endif
7107 use pm_kind, only: TKR => IK, LKG => LK1
7108 logical(LKG) , intent(in) , contiguous :: array(:)
7109 integer(TKR) :: rank(size(array, kind = IK))
7110 end function
7111#endif
7112
7113 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7114
7115#if CK5_ENABLED
7116 module function getRankOrdinalDefCom_D1_CK5(array) result(rank)
7117#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7118 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_CK5
7119#endif
7120 use pm_kind, only: TKR => IK, CKG => CK5
7121 complex(CKG) , intent(in) , contiguous :: array(:)
7122 integer(TKR) :: rank(size(array, kind = IK))
7123 end function
7124#endif
7125
7126#if CK4_ENABLED
7127 module function getRankOrdinalDefCom_D1_CK4(array) result(rank)
7128#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7129 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_CK4
7130#endif
7131 use pm_kind, only: TKR => IK, CKG => CK4
7132 complex(CKG) , intent(in) , contiguous :: array(:)
7133 integer(TKR) :: rank(size(array, kind = IK))
7134 end function
7135#endif
7136
7137#if CK3_ENABLED
7138 module function getRankOrdinalDefCom_D1_CK3(array) result(rank)
7139#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7140 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_CK3
7141#endif
7142 use pm_kind, only: TKR => IK, CKG => CK3
7143 complex(CKG) , intent(in) , contiguous :: array(:)
7144 integer(TKR) :: rank(size(array, kind = IK))
7145 end function
7146#endif
7147
7148#if CK2_ENABLED
7149 module function getRankOrdinalDefCom_D1_CK2(array) result(rank)
7150#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7151 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_CK2
7152#endif
7153 use pm_kind, only: TKR => IK, CKG => CK2
7154 complex(CKG) , intent(in) , contiguous :: array(:)
7155 integer(TKR) :: rank(size(array, kind = IK))
7156 end function
7157#endif
7158
7159#if CK1_ENABLED
7160 module function getRankOrdinalDefCom_D1_CK1(array) result(rank)
7161#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7162 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_CK1
7163#endif
7164 use pm_kind, only: TKR => IK, CKG => CK1
7165 complex(CKG) , intent(in) , contiguous :: array(:)
7166 integer(TKR) :: rank(size(array, kind = IK))
7167 end function
7168#endif
7169
7170 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7171
7172#if RK5_ENABLED
7173 module function getRankOrdinalDefCom_D1_RK5(array) result(rank)
7174#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7175 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_RK5
7176#endif
7177 use pm_kind, only: TKR => IK, RKG => RK5
7178 real(RKG) , intent(in) , contiguous :: array(:)
7179 integer(TKR) :: rank(size(array, kind = IK))
7180 end function
7181#endif
7182
7183#if RK4_ENABLED
7184 module function getRankOrdinalDefCom_D1_RK4(array) result(rank)
7185#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7186 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_RK4
7187#endif
7188 use pm_kind, only: TKR => IK, RKG => RK4
7189 real(RKG) , intent(in) , contiguous :: array(:)
7190 integer(TKR) :: rank(size(array, kind = IK))
7191 end function
7192#endif
7193
7194#if RK3_ENABLED
7195 module function getRankOrdinalDefCom_D1_RK3(array) result(rank)
7196#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7197 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_RK3
7198#endif
7199 use pm_kind, only: TKR => IK, RKG => RK3
7200 real(RKG) , intent(in) , contiguous :: array(:)
7201 integer(TKR) :: rank(size(array, kind = IK))
7202 end function
7203#endif
7204
7205#if RK2_ENABLED
7206 module function getRankOrdinalDefCom_D1_RK2(array) result(rank)
7207#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7208 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_RK2
7209#endif
7210 use pm_kind, only: TKR => IK, RKG => RK2
7211 real(RKG) , intent(in) , contiguous :: array(:)
7212 integer(TKR) :: rank(size(array, kind = IK))
7213 end function
7214#endif
7215
7216#if RK1_ENABLED
7217 module function getRankOrdinalDefCom_D1_RK1(array) result(rank)
7218#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7219 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_RK1
7220#endif
7221 use pm_kind, only: TKR => IK, RKG => RK1
7222 real(RKG) , intent(in) , contiguous :: array(:)
7223 integer(TKR) :: rank(size(array, kind = IK))
7224 end function
7225#endif
7226
7227 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7228
7229#if PDT_ENABLED
7230
7231#if SK5_ENABLED
7232 module function getRankOrdinalDefCom_D1_PSSK5(array) result(rank)
7233#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7234 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_PSSK5
7235#endif
7236 use pm_kind, only: TKR => IK, SKG => SK5
7237 use pm_container, only: css_pdt
7238 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
7239 integer(TKR) :: rank(size(array, kind = IK))
7240 end function
7241#endif
7242
7243#if SK4_ENABLED
7244 module function getRankOrdinalDefCom_D1_PSSK4(array) result(rank)
7245#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7246 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_PSSK4
7247#endif
7248 use pm_kind, only: TKR => IK, SKG => SK4
7249 use pm_container, only: css_pdt
7250 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
7251 integer(TKR) :: rank(size(array, kind = IK))
7252 end function
7253#endif
7254
7255#if SK3_ENABLED
7256 module function getRankOrdinalDefCom_D1_PSSK3(array) result(rank)
7257#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7258 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_PSSK3
7259#endif
7260 use pm_kind, only: TKR => IK, SKG => SK3
7261 use pm_container, only: css_pdt
7262 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
7263 integer(TKR) :: rank(size(array, kind = IK))
7264 end function
7265#endif
7266
7267#if SK2_ENABLED
7268 module function getRankOrdinalDefCom_D1_PSSK2(array) result(rank)
7269#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7270 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_PSSK2
7271#endif
7272 use pm_kind, only: TKR => IK, SKG => SK2
7273 use pm_container, only: css_pdt
7274 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
7275 integer(TKR) :: rank(size(array, kind = IK))
7276 end function
7277#endif
7278
7279#if SK1_ENABLED
7280 module function getRankOrdinalDefCom_D1_PSSK1(array) result(rank)
7281#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7282 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_PSSK1
7283#endif
7284 use pm_kind, only: TKR => IK, SKG => SK1
7285 use pm_container, only: css_pdt
7286 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
7287 integer(TKR) :: rank(size(array, kind = IK))
7288 end function
7289#endif
7290
7291#endif
7292!PDT_ENABLED
7293
7294 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7295
7296 module function getRankOrdinalDefCom_D1_BSSK(array) result(rank)
7297#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7298 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_BSSK
7299#endif
7300 use pm_kind, only: TKR => IK, SKG => SK
7301 use pm_container, only: css_type
7302 type(css_type) , intent(in) , contiguous :: array(:)
7303 integer(TKR) :: rank(size(array, kind = IK))
7304 end function
7305
7306 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7307
7308 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7309 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7310 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7311
7312 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7313
7314#if SK5_ENABLED
7315 module function getRankOrdinalCusCom_D0_SK5(array, isSorted) result(rank)
7316#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7317 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D0_SK5
7318#endif
7319 use pm_kind, only: TKR => IK, SKG => SK5
7320 character(*,SKG) , intent(in) :: array
7321 procedure(logical(LK)) :: isSorted
7322 integer(TKR) :: rank(len(array, IK))
7323 end function
7324#endif
7325
7326#if SK4_ENABLED
7327 module function getRankOrdinalCusCom_D0_SK4(array, isSorted) result(rank)
7328#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7329 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D0_SK4
7330#endif
7331 use pm_kind, only: TKR => IK, SKG => SK4
7332 character(*,SKG) , intent(in) :: array
7333 procedure(logical(LK)) :: isSorted
7334 integer(TKR) :: rank(len(array, IK))
7335 end function
7336#endif
7337
7338#if SK3_ENABLED
7339 module function getRankOrdinalCusCom_D0_SK3(array, isSorted) result(rank)
7340#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7341 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D0_SK3
7342#endif
7343 use pm_kind, only: TKR => IK, SKG => SK3
7344 character(*,SKG) , intent(in) :: array
7345 procedure(logical(LK)) :: isSorted
7346 integer(TKR) :: rank(len(array, IK))
7347 end function
7348#endif
7349
7350#if SK2_ENABLED
7351 module function getRankOrdinalCusCom_D0_SK2(array, isSorted) result(rank)
7352#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7353 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D0_SK2
7354#endif
7355 use pm_kind, only: TKR => IK, SKG => SK2
7356 character(*,SKG) , intent(in) :: array
7357 procedure(logical(LK)) :: isSorted
7358 integer(TKR) :: rank(len(array, IK))
7359 end function
7360#endif
7361
7362#if SK1_ENABLED
7363 module function getRankOrdinalCusCom_D0_SK1(array, isSorted) result(rank)
7364#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7365 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D0_SK1
7366#endif
7367 use pm_kind, only: TKR => IK, SKG => SK1
7368 character(*,SKG) , intent(in) :: array
7369 procedure(logical(LK)) :: isSorted
7370 integer(TKR) :: rank(len(array, IK))
7371 end function
7372#endif
7373
7374 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7375
7376#if SK5_ENABLED
7377 module function getRankOrdinalCusCom_D1_SK5(array, isSorted) result(rank)
7378#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7379 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_SK5
7380#endif
7381 use pm_kind, only: TKR => IK, SKG => SK5
7382 character(*,SKG) , intent(in) , contiguous :: array(:)
7383 procedure(logical(LK)) :: isSorted
7384 integer(TKR) :: rank(size(array, kind = IK))
7385 end function
7386#endif
7387
7388#if SK4_ENABLED
7389 module function getRankOrdinalCusCom_D1_SK4(array, isSorted) result(rank)
7390#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7391 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_SK4
7392#endif
7393 use pm_kind, only: TKR => IK, SKG => SK4
7394 character(*,SKG) , intent(in) , contiguous :: array(:)
7395 procedure(logical(LK)) :: isSorted
7396 integer(TKR) :: rank(size(array, kind = IK))
7397 end function
7398#endif
7399
7400#if SK3_ENABLED
7401 module function getRankOrdinalCusCom_D1_SK3(array, isSorted) result(rank)
7402#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7403 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_SK3
7404#endif
7405 use pm_kind, only: TKR => IK, SKG => SK3
7406 character(*,SKG) , intent(in) , contiguous :: array(:)
7407 procedure(logical(LK)) :: isSorted
7408 integer(TKR) :: rank(size(array, kind = IK))
7409 end function
7410#endif
7411
7412#if SK2_ENABLED
7413 module function getRankOrdinalCusCom_D1_SK2(array, isSorted) result(rank)
7414#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7415 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_SK2
7416#endif
7417 use pm_kind, only: TKR => IK, SKG => SK2
7418 character(*,SKG) , intent(in) , contiguous :: array(:)
7419 procedure(logical(LK)) :: isSorted
7420 integer(TKR) :: rank(size(array, kind = IK))
7421 end function
7422#endif
7423
7424#if SK1_ENABLED
7425 module function getRankOrdinalCusCom_D1_SK1(array, isSorted) result(rank)
7426#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7427 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_SK1
7428#endif
7429 use pm_kind, only: TKR => IK, SKG => SK1
7430 character(*,SKG) , intent(in) , contiguous :: array(:)
7431 procedure(logical(LK)) :: isSorted
7432 integer(TKR) :: rank(size(array, kind = IK))
7433 end function
7434#endif
7435
7436 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7437
7438#if IK5_ENABLED
7439 module function getRankOrdinalCusCom_D1_IK5(array, isSorted) result(rank)
7440#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7441 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_IK5
7442#endif
7443 use pm_kind, only: TKR => IK, IKG => IK5
7444 integer(IKG) , intent(in) , contiguous :: array(:)
7445 procedure(logical(LK)) :: isSorted
7446 integer(TKR) :: rank(size(array, kind = IK))
7447 end function
7448#endif
7449
7450#if IK4_ENABLED
7451 module function getRankOrdinalCusCom_D1_IK4(array, isSorted) result(rank)
7452#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7453 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_IK4
7454#endif
7455 use pm_kind, only: TKR => IK, IKG => IK4
7456 integer(IKG) , intent(in) , contiguous :: array(:)
7457 procedure(logical(LK)) :: isSorted
7458 integer(TKR) :: rank(size(array, kind = IK))
7459 end function
7460#endif
7461
7462#if IK3_ENABLED
7463 module function getRankOrdinalCusCom_D1_IK3(array, isSorted) result(rank)
7464#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7465 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_IK3
7466#endif
7467 use pm_kind, only: TKR => IK, IKG => IK3
7468 integer(IKG) , intent(in) , contiguous :: array(:)
7469 procedure(logical(LK)) :: isSorted
7470 integer(TKR) :: rank(size(array, kind = IK))
7471 end function
7472#endif
7473
7474#if IK2_ENABLED
7475 module function getRankOrdinalCusCom_D1_IK2(array, isSorted) result(rank)
7476#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7477 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_IK2
7478#endif
7479 use pm_kind, only: TKR => IK, IKG => IK2
7480 integer(IKG) , intent(in) , contiguous :: array(:)
7481 procedure(logical(LK)) :: isSorted
7482 integer(TKR) :: rank(size(array, kind = IK))
7483 end function
7484#endif
7485
7486#if IK1_ENABLED
7487 module function getRankOrdinalCusCom_D1_IK1(array, isSorted) result(rank)
7488#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7489 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_IK1
7490#endif
7491 use pm_kind, only: TKR => IK, IKG => IK1
7492 integer(IKG) , intent(in) , contiguous :: array(:)
7493 procedure(logical(LK)) :: isSorted
7494 integer(TKR) :: rank(size(array, kind = IK))
7495 end function
7496#endif
7497
7498 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7499
7500#if LK5_ENABLED
7501 module function getRankOrdinalCusCom_D1_LK5(array, isSorted) result(rank)
7502#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7503 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_LK5
7504#endif
7505 use pm_kind, only: TKR => IK, LKG => LK5
7506 logical(LKG) , intent(in) , contiguous :: array(:)
7507 procedure(logical(LK)) :: isSorted
7508 integer(TKR) :: rank(size(array, kind = IK))
7509 end function
7510#endif
7511
7512#if LK4_ENABLED
7513 module function getRankOrdinalCusCom_D1_LK4(array, isSorted) result(rank)
7514#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7515 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_LK4
7516#endif
7517 use pm_kind, only: TKR => IK, LKG => LK4
7518 logical(LKG) , intent(in) , contiguous :: array(:)
7519 procedure(logical(LK)) :: isSorted
7520 integer(TKR) :: rank(size(array, kind = IK))
7521 end function
7522#endif
7523
7524#if LK3_ENABLED
7525 module function getRankOrdinalCusCom_D1_LK3(array, isSorted) result(rank)
7526#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7527 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_LK3
7528#endif
7529 use pm_kind, only: TKR => IK, LKG => LK3
7530 logical(LKG) , intent(in) , contiguous :: array(:)
7531 procedure(logical(LK)) :: isSorted
7532 integer(TKR) :: rank(size(array, kind = IK))
7533 end function
7534#endif
7535
7536#if LK2_ENABLED
7537 module function getRankOrdinalCusCom_D1_LK2(array, isSorted) result(rank)
7538#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7539 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_LK2
7540#endif
7541 use pm_kind, only: TKR => IK, LKG => LK2
7542 logical(LKG) , intent(in) , contiguous :: array(:)
7543 procedure(logical(LK)) :: isSorted
7544 integer(TKR) :: rank(size(array, kind = IK))
7545 end function
7546#endif
7547
7548#if LK1_ENABLED
7549 module function getRankOrdinalCusCom_D1_LK1(array, isSorted) result(rank)
7550#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7551 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_LK1
7552#endif
7553 use pm_kind, only: TKR => IK, LKG => LK1
7554 logical(LKG) , intent(in) , contiguous :: array(:)
7555 procedure(logical(LK)) :: isSorted
7556 integer(TKR) :: rank(size(array, kind = IK))
7557 end function
7558#endif
7559
7560 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7561
7562#if CK5_ENABLED
7563 module function getRankOrdinalCusCom_D1_CK5(array, isSorted) result(rank)
7564#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7565 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_CK5
7566#endif
7567 use pm_kind, only: TKR => IK, CKG => CK5
7568 complex(CKG) , intent(in) , contiguous :: array(:)
7569 procedure(logical(LK)) :: isSorted
7570 integer(TKR) :: rank(size(array, kind = IK))
7571 end function
7572#endif
7573
7574#if CK4_ENABLED
7575 module function getRankOrdinalCusCom_D1_CK4(array, isSorted) result(rank)
7576#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7577 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_CK4
7578#endif
7579 use pm_kind, only: TKR => IK, CKG => CK4
7580 complex(CKG) , intent(in) , contiguous :: array(:)
7581 procedure(logical(LK)) :: isSorted
7582 integer(TKR) :: rank(size(array, kind = IK))
7583 end function
7584#endif
7585
7586#if CK3_ENABLED
7587 module function getRankOrdinalCusCom_D1_CK3(array, isSorted) result(rank)
7588#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7589 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_CK3
7590#endif
7591 use pm_kind, only: TKR => IK, CKG => CK3
7592 complex(CKG) , intent(in) , contiguous :: array(:)
7593 procedure(logical(LK)) :: isSorted
7594 integer(TKR) :: rank(size(array, kind = IK))
7595 end function
7596#endif
7597
7598#if CK2_ENABLED
7599 module function getRankOrdinalCusCom_D1_CK2(array, isSorted) result(rank)
7600#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7601 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_CK2
7602#endif
7603 use pm_kind, only: TKR => IK, CKG => CK2
7604 complex(CKG) , intent(in) , contiguous :: array(:)
7605 procedure(logical(LK)) :: isSorted
7606 integer(TKR) :: rank(size(array, kind = IK))
7607 end function
7608#endif
7609
7610#if CK1_ENABLED
7611 module function getRankOrdinalCusCom_D1_CK1(array, isSorted) result(rank)
7612#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7613 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_CK1
7614#endif
7615 use pm_kind, only: TKR => IK, CKG => CK1
7616 complex(CKG) , intent(in) , contiguous :: array(:)
7617 procedure(logical(LK)) :: isSorted
7618 integer(TKR) :: rank(size(array, kind = IK))
7619 end function
7620#endif
7621
7622 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7623
7624#if RK5_ENABLED
7625 module function getRankOrdinalCusCom_D1_RK5(array, isSorted) result(rank)
7626#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7627 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_RK5
7628#endif
7629 use pm_kind, only: TKR => IK, RKG => RK5
7630 real(RKG) , intent(in) , contiguous :: array(:)
7631 procedure(logical(LK)) :: isSorted
7632 integer(TKR) :: rank(size(array, kind = IK))
7633 end function
7634#endif
7635
7636#if RK4_ENABLED
7637 module function getRankOrdinalCusCom_D1_RK4(array, isSorted) result(rank)
7638#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7639 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_RK4
7640#endif
7641 use pm_kind, only: TKR => IK, RKG => RK4
7642 real(RKG) , intent(in) , contiguous :: array(:)
7643 procedure(logical(LK)) :: isSorted
7644 integer(TKR) :: rank(size(array, kind = IK))
7645 end function
7646#endif
7647
7648#if RK3_ENABLED
7649 module function getRankOrdinalCusCom_D1_RK3(array, isSorted) result(rank)
7650#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7651 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_RK3
7652#endif
7653 use pm_kind, only: TKR => IK, RKG => RK3
7654 real(RKG) , intent(in) , contiguous :: array(:)
7655 procedure(logical(LK)) :: isSorted
7656 integer(TKR) :: rank(size(array, kind = IK))
7657 end function
7658#endif
7659
7660#if RK2_ENABLED
7661 module function getRankOrdinalCusCom_D1_RK2(array, isSorted) result(rank)
7662#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7663 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_RK2
7664#endif
7665 use pm_kind, only: TKR => IK, RKG => RK2
7666 real(RKG) , intent(in) , contiguous :: array(:)
7667 procedure(logical(LK)) :: isSorted
7668 integer(TKR) :: rank(size(array, kind = IK))
7669 end function
7670#endif
7671
7672#if RK1_ENABLED
7673 module function getRankOrdinalCusCom_D1_RK1(array, isSorted) result(rank)
7674#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7675 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_RK1
7676#endif
7677 use pm_kind, only: TKR => IK, RKG => RK1
7678 real(RKG) , intent(in) , contiguous :: array(:)
7679 procedure(logical(LK)) :: isSorted
7680 integer(TKR) :: rank(size(array, kind = IK))
7681 end function
7682#endif
7683
7684 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7685
7686#if PDT_ENABLED
7687
7688#if SK5_ENABLED
7689 module function getRankOrdinalCusCom_D1_PSSK5(array, isSorted) result(rank)
7690#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7691 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_PSSK5
7692#endif
7693 use pm_kind, only: TKR => IK, SKG => SK5
7694 use pm_container, only: css_pdt
7695 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
7696 procedure(logical(LK)) :: isSorted
7697 integer(TKR) :: rank(size(array, kind = IK))
7698 end function
7699#endif
7700
7701#if SK4_ENABLED
7702 module function getRankOrdinalCusCom_D1_PSSK4(array, isSorted) result(rank)
7703#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7704 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_PSSK4
7705#endif
7706 use pm_kind, only: TKR => IK, SKG => SK4
7707 use pm_container, only: css_pdt
7708 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
7709 procedure(logical(LK)) :: isSorted
7710 integer(TKR) :: rank(size(array, kind = IK))
7711 end function
7712#endif
7713
7714#if SK3_ENABLED
7715 module function getRankOrdinalCusCom_D1_PSSK3(array, isSorted) result(rank)
7716#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7717 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_PSSK3
7718#endif
7719 use pm_kind, only: TKR => IK, SKG => SK3
7720 use pm_container, only: css_pdt
7721 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
7722 procedure(logical(LK)) :: isSorted
7723 integer(TKR) :: rank(size(array, kind = IK))
7724 end function
7725#endif
7726
7727#if SK2_ENABLED
7728 module function getRankOrdinalCusCom_D1_PSSK2(array, isSorted) result(rank)
7729#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7730 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_PSSK2
7731#endif
7732 use pm_kind, only: TKR => IK, SKG => SK2
7733 use pm_container, only: css_pdt
7734 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
7735 procedure(logical(LK)) :: isSorted
7736 integer(TKR) :: rank(size(array, kind = IK))
7737 end function
7738#endif
7739
7740#if SK1_ENABLED
7741 module function getRankOrdinalCusCom_D1_PSSK1(array, isSorted) result(rank)
7742#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7743 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_PSSK1
7744#endif
7745 use pm_kind, only: TKR => IK, SKG => SK1
7746 use pm_container, only: css_pdt
7747 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
7748 integer(TKR) :: rank(size(array, kind = IK))
7749 procedure(logical(LK)) :: isSorted
7750 end function
7751#endif
7752
7753#endif
7754!PDT_ENABLED
7755
7756 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7757
7758 module function getRankOrdinalCusCom_D1_BSSK(array, isSorted) result(rank)
7759#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7760 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_BSSK
7761#endif
7762 use pm_kind, only: TKR => IK, SKG => SK
7763 use pm_container, only: css_type
7764 type(css_type) , intent(in) , contiguous :: array(:)
7765 procedure(logical(LK)) :: isSorted
7766 integer(TKR) :: rank(size(array, kind = IK))
7767 end function
7768
7769 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7770
7771 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7772 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7773 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7774
7775 end interface
7776
7777!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7778
7917
7918 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7919 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7920 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7921
7922 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7923
7924#if SK5_ENABLED
7925 PURE module subroutine setRankOrdinalDefCom_D0_SK5(rank, array)
7926#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7927 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D0_SK5
7928#endif
7929 use pm_kind, only: TKR => IK, SKG => SK5
7930 character(*,SKG) , intent(in) :: array
7931 integer(TKR) , intent(out) , contiguous :: rank(:)
7932 end subroutine
7933#endif
7934
7935#if SK4_ENABLED
7936 PURE module subroutine setRankOrdinalDefCom_D0_SK4(rank, array)
7937#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7938 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D0_SK4
7939#endif
7940 use pm_kind, only: TKR => IK, SKG => SK4
7941 character(*,SKG) , intent(in) :: array
7942 integer(TKR) , intent(out) , contiguous :: rank(:)
7943 end subroutine
7944#endif
7945
7946#if SK3_ENABLED
7947 PURE module subroutine setRankOrdinalDefCom_D0_SK3(rank, array)
7948#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7949 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D0_SK3
7950#endif
7951 use pm_kind, only: TKR => IK, SKG => SK3
7952 character(*,SKG) , intent(in) :: array
7953 integer(TKR) , intent(out) , contiguous :: rank(:)
7954 end subroutine
7955#endif
7956
7957#if SK2_ENABLED
7958 PURE module subroutine setRankOrdinalDefCom_D0_SK2(rank, array)
7959#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7960 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D0_SK2
7961#endif
7962 use pm_kind, only: TKR => IK, SKG => SK2
7963 character(*,SKG) , intent(in) :: array
7964 integer(TKR) , intent(out) , contiguous :: rank(:)
7965 end subroutine
7966#endif
7967
7968#if SK1_ENABLED
7969 PURE module subroutine setRankOrdinalDefCom_D0_SK1(rank, array)
7970#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7971 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D0_SK1
7972#endif
7973 use pm_kind, only: TKR => IK, SKG => SK1
7974 character(*,SKG) , intent(in) :: array
7975 integer(TKR) , intent(out) , contiguous :: rank(:)
7976 end subroutine
7977#endif
7978
7979 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7980
7981#if SK5_ENABLED
7982 PURE module subroutine setRankOrdinalDefCom_D1_SK5(rank, array)
7983#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7984 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_SK5
7985#endif
7986 use pm_kind, only: TKR => IK, SKG => SK5
7987 character(*,SKG) , intent(in) , contiguous :: array(:)
7988 integer(TKR) , intent(out) , contiguous :: rank(:)
7989 end subroutine
7990#endif
7991
7992#if SK4_ENABLED
7993 PURE module subroutine setRankOrdinalDefCom_D1_SK4(rank, array)
7994#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7995 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_SK4
7996#endif
7997 use pm_kind, only: TKR => IK, SKG => SK4
7998 character(*,SKG) , intent(in) , contiguous :: array(:)
7999 integer(TKR) , intent(out) , contiguous :: rank(:)
8000 end subroutine
8001#endif
8002
8003#if SK3_ENABLED
8004 PURE module subroutine setRankOrdinalDefCom_D1_SK3(rank, array)
8005#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8006 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_SK3
8007#endif
8008 use pm_kind, only: TKR => IK, SKG => SK3
8009 character(*,SKG) , intent(in) , contiguous :: array(:)
8010 integer(TKR) , intent(out) , contiguous :: rank(:)
8011 end subroutine
8012#endif
8013
8014#if SK2_ENABLED
8015 PURE module subroutine setRankOrdinalDefCom_D1_SK2(rank, array)
8016#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8017 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_SK2
8018#endif
8019 use pm_kind, only: TKR => IK, SKG => SK2
8020 character(*,SKG) , intent(in) , contiguous :: array(:)
8021 integer(TKR) , intent(out) , contiguous :: rank(:)
8022 end subroutine
8023#endif
8024
8025#if SK1_ENABLED
8026 PURE module subroutine setRankOrdinalDefCom_D1_SK1(rank, array)
8027#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8028 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_SK1
8029#endif
8030 use pm_kind, only: TKR => IK, SKG => SK1
8031 character(*,SKG) , intent(in) , contiguous :: array(:)
8032 integer(TKR) , intent(out) , contiguous :: rank(:)
8033 end subroutine
8034#endif
8035
8036 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8037
8038#if IK5_ENABLED
8039 PURE module subroutine setRankOrdinalDefCom_D1_IK5(rank, array)
8040#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8041 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_IK5
8042#endif
8043 use pm_kind, only: TKR => IK, IKG => IK5
8044 integer(IKG) , intent(in) , contiguous :: array(:)
8045 integer(TKR) , intent(out) , contiguous :: rank(:)
8046 end subroutine
8047#endif
8048
8049#if IK4_ENABLED
8050 PURE module subroutine setRankOrdinalDefCom_D1_IK4(rank, array)
8051#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8052 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_IK4
8053#endif
8054 use pm_kind, only: TKR => IK, IKG => IK4
8055 integer(IKG) , intent(in) , contiguous :: array(:)
8056 integer(TKR) , intent(out) , contiguous :: rank(:)
8057 end subroutine
8058#endif
8059
8060#if IK3_ENABLED
8061 PURE module subroutine setRankOrdinalDefCom_D1_IK3(rank, array)
8062#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8063 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_IK3
8064#endif
8065 use pm_kind, only: TKR => IK, IKG => IK3
8066 integer(IKG) , intent(in) , contiguous :: array(:)
8067 integer(TKR) , intent(out) , contiguous :: rank(:)
8068 end subroutine
8069#endif
8070
8071#if IK2_ENABLED
8072 PURE module subroutine setRankOrdinalDefCom_D1_IK2(rank, array)
8073#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8074 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_IK2
8075#endif
8076 use pm_kind, only: TKR => IK, IKG => IK2
8077 integer(IKG) , intent(in) , contiguous :: array(:)
8078 integer(TKR) , intent(out) , contiguous :: rank(:)
8079 end subroutine
8080#endif
8081
8082#if IK1_ENABLED
8083 PURE module subroutine setRankOrdinalDefCom_D1_IK1(rank, array)
8084#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8085 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_IK1
8086#endif
8087 use pm_kind, only: TKR => IK, IKG => IK1
8088 integer(IKG) , intent(in) , contiguous :: array(:)
8089 integer(TKR) , intent(out) , contiguous :: rank(:)
8090 end subroutine
8091#endif
8092
8093 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8094
8095#if LK5_ENABLED
8096 PURE module subroutine setRankOrdinalDefCom_D1_LK5(rank, array)
8097#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8098 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_LK5
8099#endif
8100 use pm_kind, only: TKR => IK, LKG => LK5
8101 logical(LKG) , intent(in) , contiguous :: array(:)
8102 integer(TKR) , intent(out) , contiguous :: rank(:)
8103 end subroutine
8104#endif
8105
8106#if LK4_ENABLED
8107 PURE module subroutine setRankOrdinalDefCom_D1_LK4(rank, array)
8108#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8109 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_LK4
8110#endif
8111 use pm_kind, only: TKR => IK, LKG => LK4
8112 logical(LKG) , intent(in) , contiguous :: array(:)
8113 integer(TKR) , intent(out) , contiguous :: rank(:)
8114 end subroutine
8115#endif
8116
8117#if LK3_ENABLED
8118 PURE module subroutine setRankOrdinalDefCom_D1_LK3(rank, array)
8119#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8120 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_LK3
8121#endif
8122 use pm_kind, only: TKR => IK, LKG => LK3
8123 logical(LKG) , intent(in) , contiguous :: array(:)
8124 integer(TKR) , intent(out) , contiguous :: rank(:)
8125 end subroutine
8126#endif
8127
8128#if LK2_ENABLED
8129 PURE module subroutine setRankOrdinalDefCom_D1_LK2(rank, array)
8130#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8131 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_LK2
8132#endif
8133 use pm_kind, only: TKR => IK, LKG => LK2
8134 logical(LKG) , intent(in) , contiguous :: array(:)
8135 integer(TKR) , intent(out) , contiguous :: rank(:)
8136 end subroutine
8137#endif
8138
8139#if LK1_ENABLED
8140 PURE module subroutine setRankOrdinalDefCom_D1_LK1(rank, array)
8141#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8142 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_LK1
8143#endif
8144 use pm_kind, only: TKR => IK, LKG => LK1
8145 logical(LKG) , intent(in) , contiguous :: array(:)
8146 integer(TKR) , intent(out) , contiguous :: rank(:)
8147 end subroutine
8148#endif
8149
8150 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8151
8152#if CK5_ENABLED
8153 PURE module subroutine setRankOrdinalDefCom_D1_CK5(rank, array)
8154#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8155 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_CK5
8156#endif
8157 use pm_kind, only: TKR => IK, CKG => CK5
8158 complex(CKG) , intent(in) , contiguous :: array(:)
8159 integer(TKR) , intent(out) , contiguous :: rank(:)
8160 end subroutine
8161#endif
8162
8163#if CK4_ENABLED
8164 PURE module subroutine setRankOrdinalDefCom_D1_CK4(rank, array)
8165#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8166 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_CK4
8167#endif
8168 use pm_kind, only: TKR => IK, CKG => CK4
8169 complex(CKG) , intent(in) , contiguous :: array(:)
8170 integer(TKR) , intent(out) , contiguous :: rank(:)
8171 end subroutine
8172#endif
8173
8174#if CK3_ENABLED
8175 PURE module subroutine setRankOrdinalDefCom_D1_CK3(rank, array)
8176#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8177 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_CK3
8178#endif
8179 use pm_kind, only: TKR => IK, CKG => CK3
8180 complex(CKG) , intent(in) , contiguous :: array(:)
8181 integer(TKR) , intent(out) , contiguous :: rank(:)
8182 end subroutine
8183#endif
8184
8185#if CK2_ENABLED
8186 PURE module subroutine setRankOrdinalDefCom_D1_CK2(rank, array)
8187#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8188 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_CK2
8189#endif
8190 use pm_kind, only: TKR => IK, CKG => CK2
8191 complex(CKG) , intent(in) , contiguous :: array(:)
8192 integer(TKR) , intent(out) , contiguous :: rank(:)
8193 end subroutine
8194#endif
8195
8196#if CK1_ENABLED
8197 PURE module subroutine setRankOrdinalDefCom_D1_CK1(rank, array)
8198#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8199 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_CK1
8200#endif
8201 use pm_kind, only: TKR => IK, CKG => CK1
8202 complex(CKG) , intent(in) , contiguous :: array(:)
8203 integer(TKR) , intent(out) , contiguous :: rank(:)
8204 end subroutine
8205#endif
8206
8207 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8208
8209#if RK5_ENABLED
8210 PURE module subroutine setRankOrdinalDefCom_D1_RK5(rank, array)
8211#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8212 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_RK5
8213#endif
8214 use pm_kind, only: TKR => IK, RKG => RK5
8215 real(RKG) , intent(in) , contiguous :: array(:)
8216 integer(TKR) , intent(out) , contiguous :: rank(:)
8217 end subroutine
8218#endif
8219
8220#if RK4_ENABLED
8221 PURE module subroutine setRankOrdinalDefCom_D1_RK4(rank, array)
8222#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8223 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_RK4
8224#endif
8225 use pm_kind, only: TKR => IK, RKG => RK4
8226 real(RKG) , intent(in) , contiguous :: array(:)
8227 integer(TKR) , intent(out) , contiguous :: rank(:)
8228 end subroutine
8229#endif
8230
8231#if RK3_ENABLED
8232 PURE module subroutine setRankOrdinalDefCom_D1_RK3(rank, array)
8233#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8234 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_RK3
8235#endif
8236 use pm_kind, only: TKR => IK, RKG => RK3
8237 real(RKG) , intent(in) , contiguous :: array(:)
8238 integer(TKR) , intent(out) , contiguous :: rank(:)
8239 end subroutine
8240#endif
8241
8242#if RK2_ENABLED
8243 PURE module subroutine setRankOrdinalDefCom_D1_RK2(rank, array)
8244#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8245 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_RK2
8246#endif
8247 use pm_kind, only: TKR => IK, RKG => RK2
8248 real(RKG) , intent(in) , contiguous :: array(:)
8249 integer(TKR) , intent(out) , contiguous :: rank(:)
8250 end subroutine
8251#endif
8252
8253#if RK1_ENABLED
8254 PURE module subroutine setRankOrdinalDefCom_D1_RK1(rank, array)
8255#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8256 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_RK1
8257#endif
8258 use pm_kind, only: TKR => IK, RKG => RK1
8259 real(RKG) , intent(in) , contiguous :: array(:)
8260 integer(TKR) , intent(out) , contiguous :: rank(:)
8261 end subroutine
8262#endif
8263
8264 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8265
8266#if PDT_ENABLED
8267
8268#if SK5_ENABLED
8269 PURE module subroutine setRankOrdinalDefCom_D1_PSSK5(rank, array)
8270#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8271 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_PSSK5
8272#endif
8273 use pm_kind, only: TKR => IK, SKG => SK5
8274 use pm_container, only: css_pdt
8275 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
8276 integer(TKR) , intent(out) , contiguous :: rank(:)
8277 end subroutine
8278#endif
8279
8280#if SK4_ENABLED
8281 PURE module subroutine setRankOrdinalDefCom_D1_PSSK4(rank, array)
8282#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8283 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_PSSK4
8284#endif
8285 use pm_kind, only: TKR => IK, SKG => SK4
8286 use pm_container, only: css_pdt
8287 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
8288 integer(TKR) , intent(out) , contiguous :: rank(:)
8289 end subroutine
8290#endif
8291
8292#if SK3_ENABLED
8293 PURE module subroutine setRankOrdinalDefCom_D1_PSSK3(rank, array)
8294#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8295 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_PSSK3
8296#endif
8297 use pm_kind, only: TKR => IK, SKG => SK3
8298 use pm_container, only: css_pdt
8299 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
8300 integer(TKR) , intent(out) , contiguous :: rank(:)
8301 end subroutine
8302#endif
8303
8304#if SK2_ENABLED
8305 PURE module subroutine setRankOrdinalDefCom_D1_PSSK2(rank, array)
8306#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8307 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_PSSK2
8308#endif
8309 use pm_kind, only: TKR => IK, SKG => SK2
8310 use pm_container, only: css_pdt
8311 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
8312 integer(TKR) , intent(out) , contiguous :: rank(:)
8313 end subroutine
8314#endif
8315
8316#if SK1_ENABLED
8317 PURE module subroutine setRankOrdinalDefCom_D1_PSSK1(rank, array)
8318#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8319 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_PSSK1
8320#endif
8321 use pm_kind, only: TKR => IK, SKG => SK1
8322 use pm_container, only: css_pdt
8323 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
8324 integer(TKR) , intent(out) , contiguous :: rank(:)
8325 end subroutine
8326#endif
8327
8328#endif
8329!PDT_ENABLED
8330
8331 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8332
8333 PURE module subroutine setRankOrdinalDefCom_D1_BSSK(rank, array)
8334#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8335 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_BSSK
8336#endif
8337 use pm_kind, only: TKR => IK, SKG => SK
8338 use pm_container, only: css_type
8339 type(css_type) , intent(in) , contiguous :: array(:)
8340 integer(TKR) , intent(out) , contiguous :: rank(:)
8341 end subroutine
8342
8343 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8344
8345 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8346 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8347 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8348
8349 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8350
8351#if SK5_ENABLED
8352 module subroutine setRankOrdinalCusCom_D0_SK5(rank, array, isSorted)
8353#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8354 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D0_SK5
8355#endif
8356 use pm_kind, only: TKR => IK, SKG => SK5
8357 character(*,SKG) , intent(in) :: array
8358 integer(TKR) , intent(out) , contiguous :: rank(:)
8359 procedure(logical(LK)) :: isSorted
8360 end subroutine
8361#endif
8362
8363#if SK4_ENABLED
8364 module subroutine setRankOrdinalCusCom_D0_SK4(rank, array, isSorted)
8365#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8366 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D0_SK4
8367#endif
8368 use pm_kind, only: TKR => IK, SKG => SK4
8369 character(*,SKG) , intent(in) :: array
8370 integer(TKR) , intent(out) , contiguous :: rank(:)
8371 procedure(logical(LK)) :: isSorted
8372 end subroutine
8373#endif
8374
8375#if SK3_ENABLED
8376 module subroutine setRankOrdinalCusCom_D0_SK3(rank, array, isSorted)
8377#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8378 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D0_SK3
8379#endif
8380 use pm_kind, only: TKR => IK, SKG => SK3
8381 character(*,SKG) , intent(in) :: array
8382 integer(TKR) , intent(out) , contiguous :: rank(:)
8383 procedure(logical(LK)) :: isSorted
8384 end subroutine
8385#endif
8386
8387#if SK2_ENABLED
8388 module subroutine setRankOrdinalCusCom_D0_SK2(rank, array, isSorted)
8389#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8390 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D0_SK2
8391#endif
8392 use pm_kind, only: TKR => IK, SKG => SK2
8393 character(*,SKG) , intent(in) :: array
8394 integer(TKR) , intent(out) , contiguous :: rank(:)
8395 procedure(logical(LK)) :: isSorted
8396 end subroutine
8397#endif
8398
8399#if SK1_ENABLED
8400 module subroutine setRankOrdinalCusCom_D0_SK1(rank, array, isSorted)
8401#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8402 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D0_SK1
8403#endif
8404 use pm_kind, only: TKR => IK, SKG => SK1
8405 character(*,SKG) , intent(in) :: array
8406 integer(TKR) , intent(out) , contiguous :: rank(:)
8407 procedure(logical(LK)) :: isSorted
8408 end subroutine
8409#endif
8410
8411 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8412
8413#if SK5_ENABLED
8414 module subroutine setRankOrdinalCusCom_D1_SK5(rank, array, isSorted)
8415#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8416 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_SK5
8417#endif
8418 use pm_kind, only: TKR => IK, SKG => SK5
8419 character(*,SKG) , intent(in) , contiguous :: array(:)
8420 integer(TKR) , intent(out) , contiguous :: rank(:)
8421 procedure(logical(LK)) :: isSorted
8422 end subroutine
8423#endif
8424
8425#if SK4_ENABLED
8426 module subroutine setRankOrdinalCusCom_D1_SK4(rank, array, isSorted)
8427#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8428 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_SK4
8429#endif
8430 use pm_kind, only: TKR => IK, SKG => SK4
8431 character(*,SKG) , intent(in) , contiguous :: array(:)
8432 integer(TKR) , intent(out) , contiguous :: rank(:)
8433 procedure(logical(LK)) :: isSorted
8434 end subroutine
8435#endif
8436
8437#if SK3_ENABLED
8438 module subroutine setRankOrdinalCusCom_D1_SK3(rank, array, isSorted)
8439#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8440 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_SK3
8441#endif
8442 use pm_kind, only: TKR => IK, SKG => SK3
8443 character(*,SKG) , intent(in) , contiguous :: array(:)
8444 integer(TKR) , intent(out) , contiguous :: rank(:)
8445 procedure(logical(LK)) :: isSorted
8446 end subroutine
8447#endif
8448
8449#if SK2_ENABLED
8450 module subroutine setRankOrdinalCusCom_D1_SK2(rank, array, isSorted)
8451#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8452 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_SK2
8453#endif
8454 use pm_kind, only: TKR => IK, SKG => SK2
8455 character(*,SKG) , intent(in) , contiguous :: array(:)
8456 integer(TKR) , intent(out) , contiguous :: rank(:)
8457 procedure(logical(LK)) :: isSorted
8458 end subroutine
8459#endif
8460
8461#if SK1_ENABLED
8462 module subroutine setRankOrdinalCusCom_D1_SK1(rank, array, isSorted)
8463#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8464 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_SK1
8465#endif
8466 use pm_kind, only: TKR => IK, SKG => SK1
8467 character(*,SKG) , intent(in) , contiguous :: array(:)
8468 integer(TKR) , intent(out) , contiguous :: rank(:)
8469 procedure(logical(LK)) :: isSorted
8470 end subroutine
8471#endif
8472
8473 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8474
8475#if IK5_ENABLED
8476 module subroutine setRankOrdinalCusCom_D1_IK5(rank, array, isSorted)
8477#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8478 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_IK5
8479#endif
8480 use pm_kind, only: TKR => IK, IKG => IK5
8481 integer(IKG) , intent(in) , contiguous :: array(:)
8482 integer(TKR) , intent(out) , contiguous :: rank(:)
8483 procedure(logical(LK)) :: isSorted
8484 end subroutine
8485#endif
8486
8487#if IK4_ENABLED
8488 module subroutine setRankOrdinalCusCom_D1_IK4(rank, array, isSorted)
8489#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8490 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_IK4
8491#endif
8492 use pm_kind, only: TKR => IK, IKG => IK4
8493 integer(IKG) , intent(in) , contiguous :: array(:)
8494 integer(TKR) , intent(out) , contiguous :: rank(:)
8495 procedure(logical(LK)) :: isSorted
8496 end subroutine
8497#endif
8498
8499#if IK3_ENABLED
8500 module subroutine setRankOrdinalCusCom_D1_IK3(rank, array, isSorted)
8501#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8502 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_IK3
8503#endif
8504 use pm_kind, only: TKR => IK, IKG => IK3
8505 integer(IKG) , intent(in) , contiguous :: array(:)
8506 integer(TKR) , intent(out) , contiguous :: rank(:)
8507 procedure(logical(LK)) :: isSorted
8508 end subroutine
8509#endif
8510
8511#if IK2_ENABLED
8512 module subroutine setRankOrdinalCusCom_D1_IK2(rank, array, isSorted)
8513#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8514 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_IK2
8515#endif
8516 use pm_kind, only: TKR => IK, IKG => IK2
8517 integer(IKG) , intent(in) , contiguous :: array(:)
8518 integer(TKR) , intent(out) , contiguous :: rank(:)
8519 procedure(logical(LK)) :: isSorted
8520 end subroutine
8521#endif
8522
8523#if IK1_ENABLED
8524 module subroutine setRankOrdinalCusCom_D1_IK1(rank, array, isSorted)
8525#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8526 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_IK1
8527#endif
8528 use pm_kind, only: TKR => IK, IKG => IK1
8529 integer(IKG) , intent(in) , contiguous :: array(:)
8530 integer(TKR) , intent(out) , contiguous :: rank(:)
8531 procedure(logical(LK)) :: isSorted
8532 end subroutine
8533#endif
8534
8535 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8536
8537#if LK5_ENABLED
8538 module subroutine setRankOrdinalCusCom_D1_LK5(rank, array, isSorted)
8539#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8540 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_LK5
8541#endif
8542 use pm_kind, only: TKR => IK, LKG => LK5
8543 logical(LKG) , intent(in) , contiguous :: array(:)
8544 integer(TKR) , intent(out) , contiguous :: rank(:)
8545 procedure(logical(LK)) :: isSorted
8546 end subroutine
8547#endif
8548
8549#if LK4_ENABLED
8550 module subroutine setRankOrdinalCusCom_D1_LK4(rank, array, isSorted)
8551#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8552 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_LK4
8553#endif
8554 use pm_kind, only: TKR => IK, LKG => LK4
8555 logical(LKG) , intent(in) , contiguous :: array(:)
8556 integer(TKR) , intent(out) , contiguous :: rank(:)
8557 procedure(logical(LK)) :: isSorted
8558 end subroutine
8559#endif
8560
8561#if LK3_ENABLED
8562 module subroutine setRankOrdinalCusCom_D1_LK3(rank, array, isSorted)
8563#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8564 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_LK3
8565#endif
8566 use pm_kind, only: TKR => IK, LKG => LK3
8567 logical(LKG) , intent(in) , contiguous :: array(:)
8568 integer(TKR) , intent(out) , contiguous :: rank(:)
8569 procedure(logical(LK)) :: isSorted
8570 end subroutine
8571#endif
8572
8573#if LK2_ENABLED
8574 module subroutine setRankOrdinalCusCom_D1_LK2(rank, array, isSorted)
8575#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8576 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_LK2
8577#endif
8578 use pm_kind, only: TKR => IK, LKG => LK2
8579 logical(LKG) , intent(in) , contiguous :: array(:)
8580 integer(TKR) , intent(out) , contiguous :: rank(:)
8581 procedure(logical(LK)) :: isSorted
8582 end subroutine
8583#endif
8584
8585#if LK1_ENABLED
8586 module subroutine setRankOrdinalCusCom_D1_LK1(rank, array, isSorted)
8587#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8588 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_LK1
8589#endif
8590 use pm_kind, only: TKR => IK, LKG => LK1
8591 logical(LKG) , intent(in) , contiguous :: array(:)
8592 integer(TKR) , intent(out) , contiguous :: rank(:)
8593 procedure(logical(LK)) :: isSorted
8594 end subroutine
8595#endif
8596
8597 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8598
8599#if CK5_ENABLED
8600 module subroutine setRankOrdinalCusCom_D1_CK5(rank, array, isSorted)
8601#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8602 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_CK5
8603#endif
8604 use pm_kind, only: TKR => IK, CKG => CK5
8605 complex(CKG) , intent(in) , contiguous :: array(:)
8606 integer(TKR) , intent(out) , contiguous :: rank(:)
8607 procedure(logical(LK)) :: isSorted
8608 end subroutine
8609#endif
8610
8611#if CK4_ENABLED
8612 module subroutine setRankOrdinalCusCom_D1_CK4(rank, array, isSorted)
8613#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8614 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_CK4
8615#endif
8616 use pm_kind, only: TKR => IK, CKG => CK4
8617 complex(CKG) , intent(in) , contiguous :: array(:)
8618 integer(TKR) , intent(out) , contiguous :: rank(:)
8619 procedure(logical(LK)) :: isSorted
8620 end subroutine
8621#endif
8622
8623#if CK3_ENABLED
8624 module subroutine setRankOrdinalCusCom_D1_CK3(rank, array, isSorted)
8625#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8626 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_CK3
8627#endif
8628 use pm_kind, only: TKR => IK, CKG => CK3
8629 complex(CKG) , intent(in) , contiguous :: array(:)
8630 integer(TKR) , intent(out) , contiguous :: rank(:)
8631 procedure(logical(LK)) :: isSorted
8632 end subroutine
8633#endif
8634
8635#if CK2_ENABLED
8636 module subroutine setRankOrdinalCusCom_D1_CK2(rank, array, isSorted)
8637#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8638 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_CK2
8639#endif
8640 use pm_kind, only: TKR => IK, CKG => CK2
8641 complex(CKG) , intent(in) , contiguous :: array(:)
8642 integer(TKR) , intent(out) , contiguous :: rank(:)
8643 procedure(logical(LK)) :: isSorted
8644 end subroutine
8645#endif
8646
8647#if CK1_ENABLED
8648 module subroutine setRankOrdinalCusCom_D1_CK1(rank, array, isSorted)
8649#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8650 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_CK1
8651#endif
8652 use pm_kind, only: TKR => IK, CKG => CK1
8653 complex(CKG) , intent(in) , contiguous :: array(:)
8654 integer(TKR) , intent(out) , contiguous :: rank(:)
8655 procedure(logical(LK)) :: isSorted
8656 end subroutine
8657#endif
8658
8659 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8660
8661#if RK5_ENABLED
8662 module subroutine setRankOrdinalCusCom_D1_RK5(rank, array, isSorted)
8663#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8664 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_RK5
8665#endif
8666 use pm_kind, only: TKR => IK, RKG => RK5
8667 real(RKG) , intent(in) , contiguous :: array(:)
8668 integer(TKR) , intent(out) , contiguous :: rank(:)
8669 procedure(logical(LK)) :: isSorted
8670 end subroutine
8671#endif
8672
8673#if RK4_ENABLED
8674 module subroutine setRankOrdinalCusCom_D1_RK4(rank, array, isSorted)
8675#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8676 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_RK4
8677#endif
8678 use pm_kind, only: TKR => IK, RKG => RK4
8679 real(RKG) , intent(in) , contiguous :: array(:)
8680 integer(TKR) , intent(out) , contiguous :: rank(:)
8681 procedure(logical(LK)) :: isSorted
8682 end subroutine
8683#endif
8684
8685#if RK3_ENABLED
8686 module subroutine setRankOrdinalCusCom_D1_RK3(rank, array, isSorted)
8687#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8688 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_RK3
8689#endif
8690 use pm_kind, only: TKR => IK, RKG => RK3
8691 real(RKG) , intent(in) , contiguous :: array(:)
8692 integer(TKR) , intent(out) , contiguous :: rank(:)
8693 procedure(logical(LK)) :: isSorted
8694 end subroutine
8695#endif
8696
8697#if RK2_ENABLED
8698 module subroutine setRankOrdinalCusCom_D1_RK2(rank, array, isSorted)
8699#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8700 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_RK2
8701#endif
8702 use pm_kind, only: TKR => IK, RKG => RK2
8703 real(RKG) , intent(in) , contiguous :: array(:)
8704 integer(TKR) , intent(out) , contiguous :: rank(:)
8705 procedure(logical(LK)) :: isSorted
8706 end subroutine
8707#endif
8708
8709#if RK1_ENABLED
8710 module subroutine setRankOrdinalCusCom_D1_RK1(rank, array, isSorted)
8711#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8712 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_RK1
8713#endif
8714 use pm_kind, only: TKR => IK, RKG => RK1
8715 real(RKG) , intent(in) , contiguous :: array(:)
8716 integer(TKR) , intent(out) , contiguous :: rank(:)
8717 procedure(logical(LK)) :: isSorted
8718 end subroutine
8719#endif
8720
8721 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8722
8723#if PDT_ENABLED
8724
8725#if SK5_ENABLED
8726 module subroutine setRankOrdinalCusCom_D1_PSSK5(rank, array, isSorted)
8727#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8728 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_PSSK5
8729#endif
8730 use pm_kind, only: TKR => IK, SKG => SK5
8731 use pm_container, only: css_pdt
8732 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
8733 integer(TKR) , intent(out) , contiguous :: rank(:)
8734 procedure(logical(LK)) :: isSorted
8735 end subroutine
8736#endif
8737
8738#if SK4_ENABLED
8739 module subroutine setRankOrdinalCusCom_D1_PSSK4(rank, array, isSorted)
8740#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8741 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_PSSK4
8742#endif
8743 use pm_kind, only: TKR => IK, SKG => SK4
8744 use pm_container, only: css_pdt
8745 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
8746 integer(TKR) , intent(out) , contiguous :: rank(:)
8747 procedure(logical(LK)) :: isSorted
8748 end subroutine
8749#endif
8750
8751#if SK3_ENABLED
8752 module subroutine setRankOrdinalCusCom_D1_PSSK3(rank, array, isSorted)
8753#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8754 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_PSSK3
8755#endif
8756 use pm_kind, only: TKR => IK, SKG => SK3
8757 use pm_container, only: css_pdt
8758 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
8759 integer(TKR) , intent(out) , contiguous :: rank(:)
8760 procedure(logical(LK)) :: isSorted
8761 end subroutine
8762#endif
8763
8764#if SK2_ENABLED
8765 module subroutine setRankOrdinalCusCom_D1_PSSK2(rank, array, isSorted)
8766#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8767 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_PSSK2
8768#endif
8769 use pm_kind, only: TKR => IK, SKG => SK2
8770 use pm_container, only: css_pdt
8771 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
8772 integer(TKR) , intent(out) , contiguous :: rank(:)
8773 procedure(logical(LK)) :: isSorted
8774 end subroutine
8775#endif
8776
8777#if SK1_ENABLED
8778 module subroutine setRankOrdinalCusCom_D1_PSSK1(rank, array, isSorted)
8779#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8780 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_PSSK1
8781#endif
8782 use pm_kind, only: TKR => IK, SKG => SK1
8783 use pm_container, only: css_pdt
8784 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
8785 integer(TKR) , intent(out) , contiguous :: rank(:)
8786 procedure(logical(LK)) :: isSorted
8787 end subroutine
8788#endif
8789
8790#endif
8791!PDT_ENABLED
8792
8793 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8794
8795 module subroutine setRankOrdinalCusCom_D1_BSSK(rank, array, isSorted)
8796#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8797 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_BSSK
8798#endif
8799 use pm_kind, only: TKR => IK, SKG => SK
8800 use pm_container, only: css_type
8801 type(css_type) , intent(in) , contiguous :: array(:)
8802 integer(TKR) , intent(out) , contiguous :: rank(:)
8803 procedure(logical(LK)) :: isSorted
8804 end subroutine
8805
8806 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8807
8808 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8809 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8810 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8811
8812 end interface
8813
8814!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8815
8965
8966 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8967 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8968 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8969
8970 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8971
8972#if SK5_ENABLED
8973 module function getRankStandardDefCom_D0_SK5(array) result(rank)
8974#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8975 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D0_SK5
8976#endif
8977 use pm_kind, only: TKR => IK, SKG => SK5
8978 character(*,SKG) , intent(in) :: array
8979 integer(TKR) :: rank(len(array, IK))
8980 end function
8981#endif
8982
8983#if SK4_ENABLED
8984 module function getRankStandardDefCom_D0_SK4(array) result(rank)
8985#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8986 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D0_SK4
8987#endif
8988 use pm_kind, only: TKR => IK, SKG => SK4
8989 character(*,SKG) , intent(in) :: array
8990 integer(TKR) :: rank(len(array, IK))
8991 end function
8992#endif
8993
8994#if SK3_ENABLED
8995 module function getRankStandardDefCom_D0_SK3(array) result(rank)
8996#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8997 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D0_SK3
8998#endif
8999 use pm_kind, only: TKR => IK, SKG => SK3
9000 character(*,SKG) , intent(in) :: array
9001 integer(TKR) :: rank(len(array, IK))
9002 end function
9003#endif
9004
9005#if SK2_ENABLED
9006 module function getRankStandardDefCom_D0_SK2(array) result(rank)
9007#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9008 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D0_SK2
9009#endif
9010 use pm_kind, only: TKR => IK, SKG => SK2
9011 character(*,SKG) , intent(in) :: array
9012 integer(TKR) :: rank(len(array, IK))
9013 end function
9014#endif
9015
9016#if SK1_ENABLED
9017 module function getRankStandardDefCom_D0_SK1(array) result(rank)
9018#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9019 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D0_SK1
9020#endif
9021 use pm_kind, only: TKR => IK, SKG => SK1
9022 character(*,SKG) , intent(in) :: array
9023 integer(TKR) :: rank(len(array, IK))
9024 end function
9025#endif
9026
9027 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9028
9029#if SK5_ENABLED
9030 module function getRankStandardDefCom_D1_SK5(array) result(rank)
9031#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9032 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_SK5
9033#endif
9034 use pm_kind, only: TKR => IK, SKG => SK5
9035 character(*,SKG) , intent(in) , contiguous :: array(:)
9036 integer(TKR) :: rank(size(array, kind = IK))
9037 end function
9038#endif
9039
9040#if SK4_ENABLED
9041 module function getRankStandardDefCom_D1_SK4(array) result(rank)
9042#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9043 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_SK4
9044#endif
9045 use pm_kind, only: TKR => IK, SKG => SK4
9046 character(*,SKG) , intent(in) , contiguous :: array(:)
9047 integer(TKR) :: rank(size(array, kind = IK))
9048 end function
9049#endif
9050
9051#if SK3_ENABLED
9052 module function getRankStandardDefCom_D1_SK3(array) result(rank)
9053#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9054 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_SK3
9055#endif
9056 use pm_kind, only: TKR => IK, SKG => SK3
9057 character(*,SKG) , intent(in) , contiguous :: array(:)
9058 integer(TKR) :: rank(size(array, kind = IK))
9059 end function
9060#endif
9061
9062#if SK2_ENABLED
9063 module function getRankStandardDefCom_D1_SK2(array) result(rank)
9064#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9065 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_SK2
9066#endif
9067 use pm_kind, only: TKR => IK, SKG => SK2
9068 character(*,SKG) , intent(in) , contiguous :: array(:)
9069 integer(TKR) :: rank(size(array, kind = IK))
9070 end function
9071#endif
9072
9073#if SK1_ENABLED
9074 module function getRankStandardDefCom_D1_SK1(array) result(rank)
9075#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9076 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_SK1
9077#endif
9078 use pm_kind, only: TKR => IK, SKG => SK1
9079 character(*,SKG) , intent(in) , contiguous :: array(:)
9080 integer(TKR) :: rank(size(array, kind = IK))
9081 end function
9082#endif
9083
9084 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9085
9086#if IK5_ENABLED
9087 module function getRankStandardDefCom_D1_IK5(array) result(rank)
9088#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9089 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_IK5
9090#endif
9091 use pm_kind, only: TKR => IK, IKG => IK5
9092 integer(IKG) , intent(in) , contiguous :: array(:)
9093 integer(TKR) :: rank(size(array, kind = IK))
9094 end function
9095#endif
9096
9097#if IK4_ENABLED
9098 module function getRankStandardDefCom_D1_IK4(array) result(rank)
9099#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9100 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_IK4
9101#endif
9102 use pm_kind, only: TKR => IK, IKG => IK4
9103 integer(IKG) , intent(in) , contiguous :: array(:)
9104 integer(TKR) :: rank(size(array, kind = IK))
9105 end function
9106#endif
9107
9108#if IK3_ENABLED
9109 module function getRankStandardDefCom_D1_IK3(array) result(rank)
9110#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9111 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_IK3
9112#endif
9113 use pm_kind, only: TKR => IK, IKG => IK3
9114 integer(IKG) , intent(in) , contiguous :: array(:)
9115 integer(TKR) :: rank(size(array, kind = IK))
9116 end function
9117#endif
9118
9119#if IK2_ENABLED
9120 module function getRankStandardDefCom_D1_IK2(array) result(rank)
9121#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9122 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_IK2
9123#endif
9124 use pm_kind, only: TKR => IK, IKG => IK2
9125 integer(IKG) , intent(in) , contiguous :: array(:)
9126 integer(TKR) :: rank(size(array, kind = IK))
9127 end function
9128#endif
9129
9130#if IK1_ENABLED
9131 module function getRankStandardDefCom_D1_IK1(array) result(rank)
9132#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9133 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_IK1
9134#endif
9135 use pm_kind, only: TKR => IK, IKG => IK1
9136 integer(IKG) , intent(in) , contiguous :: array(:)
9137 integer(TKR) :: rank(size(array, kind = IK))
9138 end function
9139#endif
9140
9141 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9142
9143#if LK5_ENABLED
9144 module function getRankStandardDefCom_D1_LK5(array) result(rank)
9145#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9146 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_LK5
9147#endif
9148 use pm_kind, only: TKR => IK, LKG => LK5
9149 logical(LKG) , intent(in) , contiguous :: array(:)
9150 integer(TKR) :: rank(size(array, kind = IK))
9151 end function
9152#endif
9153
9154#if LK4_ENABLED
9155 module function getRankStandardDefCom_D1_LK4(array) result(rank)
9156#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9157 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_LK4
9158#endif
9159 use pm_kind, only: TKR => IK, LKG => LK4
9160 logical(LKG) , intent(in) , contiguous :: array(:)
9161 integer(TKR) :: rank(size(array, kind = IK))
9162 end function
9163#endif
9164
9165#if LK3_ENABLED
9166 module function getRankStandardDefCom_D1_LK3(array) result(rank)
9167#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9168 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_LK3
9169#endif
9170 use pm_kind, only: TKR => IK, LKG => LK3
9171 logical(LKG) , intent(in) , contiguous :: array(:)
9172 integer(TKR) :: rank(size(array, kind = IK))
9173 end function
9174#endif
9175
9176#if LK2_ENABLED
9177 module function getRankStandardDefCom_D1_LK2(array) result(rank)
9178#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9179 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_LK2
9180#endif
9181 use pm_kind, only: TKR => IK, LKG => LK2
9182 logical(LKG) , intent(in) , contiguous :: array(:)
9183 integer(TKR) :: rank(size(array, kind = IK))
9184 end function
9185#endif
9186
9187#if LK1_ENABLED
9188 module function getRankStandardDefCom_D1_LK1(array) result(rank)
9189#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9190 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_LK1
9191#endif
9192 use pm_kind, only: TKR => IK, LKG => LK1
9193 logical(LKG) , intent(in) , contiguous :: array(:)
9194 integer(TKR) :: rank(size(array, kind = IK))
9195 end function
9196#endif
9197
9198 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9199
9200#if CK5_ENABLED
9201 module function getRankStandardDefCom_D1_CK5(array) result(rank)
9202#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9203 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_CK5
9204#endif
9205 use pm_kind, only: TKR => IK, CKG => CK5
9206 complex(CKG) , intent(in) , contiguous :: array(:)
9207 integer(TKR) :: rank(size(array, kind = IK))
9208 end function
9209#endif
9210
9211#if CK4_ENABLED
9212 module function getRankStandardDefCom_D1_CK4(array) result(rank)
9213#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9214 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_CK4
9215#endif
9216 use pm_kind, only: TKR => IK, CKG => CK4
9217 complex(CKG) , intent(in) , contiguous :: array(:)
9218 integer(TKR) :: rank(size(array, kind = IK))
9219 end function
9220#endif
9221
9222#if CK3_ENABLED
9223 module function getRankStandardDefCom_D1_CK3(array) result(rank)
9224#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9225 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_CK3
9226#endif
9227 use pm_kind, only: TKR => IK, CKG => CK3
9228 complex(CKG) , intent(in) , contiguous :: array(:)
9229 integer(TKR) :: rank(size(array, kind = IK))
9230 end function
9231#endif
9232
9233#if CK2_ENABLED
9234 module function getRankStandardDefCom_D1_CK2(array) result(rank)
9235#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9236 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_CK2
9237#endif
9238 use pm_kind, only: TKR => IK, CKG => CK2
9239 complex(CKG) , intent(in) , contiguous :: array(:)
9240 integer(TKR) :: rank(size(array, kind = IK))
9241 end function
9242#endif
9243
9244#if CK1_ENABLED
9245 module function getRankStandardDefCom_D1_CK1(array) result(rank)
9246#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9247 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_CK1
9248#endif
9249 use pm_kind, only: TKR => IK, CKG => CK1
9250 complex(CKG) , intent(in) , contiguous :: array(:)
9251 integer(TKR) :: rank(size(array, kind = IK))
9252 end function
9253#endif
9254
9255 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9256
9257#if RK5_ENABLED
9258 module function getRankStandardDefCom_D1_RK5(array) result(rank)
9259#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9260 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_RK5
9261#endif
9262 use pm_kind, only: TKR => IK, RKG => RK5
9263 real(RKG) , intent(in) , contiguous :: array(:)
9264 integer(TKR) :: rank(size(array, kind = IK))
9265 end function
9266#endif
9267
9268#if RK4_ENABLED
9269 module function getRankStandardDefCom_D1_RK4(array) result(rank)
9270#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9271 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_RK4
9272#endif
9273 use pm_kind, only: TKR => IK, RKG => RK4
9274 real(RKG) , intent(in) , contiguous :: array(:)
9275 integer(TKR) :: rank(size(array, kind = IK))
9276 end function
9277#endif
9278
9279#if RK3_ENABLED
9280 module function getRankStandardDefCom_D1_RK3(array) result(rank)
9281#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9282 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_RK3
9283#endif
9284 use pm_kind, only: TKR => IK, RKG => RK3
9285 real(RKG) , intent(in) , contiguous :: array(:)
9286 integer(TKR) :: rank(size(array, kind = IK))
9287 end function
9288#endif
9289
9290#if RK2_ENABLED
9291 module function getRankStandardDefCom_D1_RK2(array) result(rank)
9292#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9293 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_RK2
9294#endif
9295 use pm_kind, only: TKR => IK, RKG => RK2
9296 real(RKG) , intent(in) , contiguous :: array(:)
9297 integer(TKR) :: rank(size(array, kind = IK))
9298 end function
9299#endif
9300
9301#if RK1_ENABLED
9302 module function getRankStandardDefCom_D1_RK1(array) result(rank)
9303#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9304 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_RK1
9305#endif
9306 use pm_kind, only: TKR => IK, RKG => RK1
9307 real(RKG) , intent(in) , contiguous :: array(:)
9308 integer(TKR) :: rank(size(array, kind = IK))
9309 end function
9310#endif
9311
9312 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9313
9314#if PDT_ENABLED
9315
9316#if SK5_ENABLED
9317 module function getRankStandardDefCom_D1_PSSK5(array) result(rank)
9318#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9319 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_PSSK5
9320#endif
9321 use pm_kind, only: TKR => IK, SKG => SK5
9322 use pm_container, only: css_pdt
9323 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
9324 integer(TKR) :: rank(size(array, kind = IK))
9325 end function
9326#endif
9327
9328#if SK4_ENABLED
9329 module function getRankStandardDefCom_D1_PSSK4(array) result(rank)
9330#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9331 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_PSSK4
9332#endif
9333 use pm_kind, only: TKR => IK, SKG => SK4
9334 use pm_container, only: css_pdt
9335 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
9336 integer(TKR) :: rank(size(array, kind = IK))
9337 end function
9338#endif
9339
9340#if SK3_ENABLED
9341 module function getRankStandardDefCom_D1_PSSK3(array) result(rank)
9342#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9343 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_PSSK3
9344#endif
9345 use pm_kind, only: TKR => IK, SKG => SK3
9346 use pm_container, only: css_pdt
9347 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
9348 integer(TKR) :: rank(size(array, kind = IK))
9349 end function
9350#endif
9351
9352#if SK2_ENABLED
9353 module function getRankStandardDefCom_D1_PSSK2(array) result(rank)
9354#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9355 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_PSSK2
9356#endif
9357 use pm_kind, only: TKR => IK, SKG => SK2
9358 use pm_container, only: css_pdt
9359 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
9360 integer(TKR) :: rank(size(array, kind = IK))
9361 end function
9362#endif
9363
9364#if SK1_ENABLED
9365 module function getRankStandardDefCom_D1_PSSK1(array) result(rank)
9366#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9367 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_PSSK1
9368#endif
9369 use pm_kind, only: TKR => IK, SKG => SK1
9370 use pm_container, only: css_pdt
9371 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
9372 integer(TKR) :: rank(size(array, kind = IK))
9373 end function
9374#endif
9375
9376#endif
9377!PDT_ENABLED
9378
9379 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9380
9381 module function getRankStandardDefCom_D1_BSSK(array) result(rank)
9382#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9383 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_BSSK
9384#endif
9385 use pm_kind, only: TKR => IK, SKG => SK
9386 use pm_container, only: css_type
9387 type(css_type) , intent(in) , contiguous :: array(:)
9388 integer(TKR) :: rank(size(array, kind = IK))
9389 end function
9390
9391 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9392
9393 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9394 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9395 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9396
9397 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9398
9399#if SK5_ENABLED
9400 module function getRankStandardCusCom_D0_SK5(array, isSorted) result(rank)
9401#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9402 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D0_SK5
9403#endif
9404 use pm_kind, only: TKR => IK, SKG => SK5
9405 character(*,SKG) , intent(in) :: array
9406 procedure(logical(LK)) :: isSorted
9407 integer(TKR) :: rank(len(array, IK))
9408 end function
9409#endif
9410
9411#if SK4_ENABLED
9412 module function getRankStandardCusCom_D0_SK4(array, isSorted) result(rank)
9413#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9414 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D0_SK4
9415#endif
9416 use pm_kind, only: TKR => IK, SKG => SK4
9417 character(*,SKG) , intent(in) :: array
9418 procedure(logical(LK)) :: isSorted
9419 integer(TKR) :: rank(len(array, IK))
9420 end function
9421#endif
9422
9423#if SK3_ENABLED
9424 module function getRankStandardCusCom_D0_SK3(array, isSorted) result(rank)
9425#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9426 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D0_SK3
9427#endif
9428 use pm_kind, only: TKR => IK, SKG => SK3
9429 character(*,SKG) , intent(in) :: array
9430 procedure(logical(LK)) :: isSorted
9431 integer(TKR) :: rank(len(array, IK))
9432 end function
9433#endif
9434
9435#if SK2_ENABLED
9436 module function getRankStandardCusCom_D0_SK2(array, isSorted) result(rank)
9437#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9438 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D0_SK2
9439#endif
9440 use pm_kind, only: TKR => IK, SKG => SK2
9441 character(*,SKG) , intent(in) :: array
9442 procedure(logical(LK)) :: isSorted
9443 integer(TKR) :: rank(len(array, IK))
9444 end function
9445#endif
9446
9447#if SK1_ENABLED
9448 module function getRankStandardCusCom_D0_SK1(array, isSorted) result(rank)
9449#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9450 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D0_SK1
9451#endif
9452 use pm_kind, only: TKR => IK, SKG => SK1
9453 character(*,SKG) , intent(in) :: array
9454 procedure(logical(LK)) :: isSorted
9455 integer(TKR) :: rank(len(array, IK))
9456 end function
9457#endif
9458
9459 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9460
9461#if SK5_ENABLED
9462 module function getRankStandardCusCom_D1_SK5(array, isSorted) result(rank)
9463#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9464 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_SK5
9465#endif
9466 use pm_kind, only: TKR => IK, SKG => SK5
9467 character(*,SKG) , intent(in) , contiguous :: array(:)
9468 procedure(logical(LK)) :: isSorted
9469 integer(TKR) :: rank(size(array, kind = IK))
9470 end function
9471#endif
9472
9473#if SK4_ENABLED
9474 module function getRankStandardCusCom_D1_SK4(array, isSorted) result(rank)
9475#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9476 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_SK4
9477#endif
9478 use pm_kind, only: TKR => IK, SKG => SK4
9479 character(*,SKG) , intent(in) , contiguous :: array(:)
9480 procedure(logical(LK)) :: isSorted
9481 integer(TKR) :: rank(size(array, kind = IK))
9482 end function
9483#endif
9484
9485#if SK3_ENABLED
9486 module function getRankStandardCusCom_D1_SK3(array, isSorted) result(rank)
9487#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9488 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_SK3
9489#endif
9490 use pm_kind, only: TKR => IK, SKG => SK3
9491 character(*,SKG) , intent(in) , contiguous :: array(:)
9492 procedure(logical(LK)) :: isSorted
9493 integer(TKR) :: rank(size(array, kind = IK))
9494 end function
9495#endif
9496
9497#if SK2_ENABLED
9498 module function getRankStandardCusCom_D1_SK2(array, isSorted) result(rank)
9499#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9500 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_SK2
9501#endif
9502 use pm_kind, only: TKR => IK, SKG => SK2
9503 character(*,SKG) , intent(in) , contiguous :: array(:)
9504 procedure(logical(LK)) :: isSorted
9505 integer(TKR) :: rank(size(array, kind = IK))
9506 end function
9507#endif
9508
9509#if SK1_ENABLED
9510 module function getRankStandardCusCom_D1_SK1(array, isSorted) result(rank)
9511#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9512 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_SK1
9513#endif
9514 use pm_kind, only: TKR => IK, SKG => SK1
9515 character(*,SKG) , intent(in) , contiguous :: array(:)
9516 procedure(logical(LK)) :: isSorted
9517 integer(TKR) :: rank(size(array, kind = IK))
9518 end function
9519#endif
9520
9521 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9522
9523#if IK5_ENABLED
9524 module function getRankStandardCusCom_D1_IK5(array, isSorted) result(rank)
9525#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9526 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_IK5
9527#endif
9528 use pm_kind, only: TKR => IK, IKG => IK5
9529 integer(IKG) , intent(in) , contiguous :: array(:)
9530 procedure(logical(LK)) :: isSorted
9531 integer(TKR) :: rank(size(array, kind = IK))
9532 end function
9533#endif
9534
9535#if IK4_ENABLED
9536 module function getRankStandardCusCom_D1_IK4(array, isSorted) result(rank)
9537#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9538 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_IK4
9539#endif
9540 use pm_kind, only: TKR => IK, IKG => IK4
9541 integer(IKG) , intent(in) , contiguous :: array(:)
9542 procedure(logical(LK)) :: isSorted
9543 integer(TKR) :: rank(size(array, kind = IK))
9544 end function
9545#endif
9546
9547#if IK3_ENABLED
9548 module function getRankStandardCusCom_D1_IK3(array, isSorted) result(rank)
9549#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9550 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_IK3
9551#endif
9552 use pm_kind, only: TKR => IK, IKG => IK3
9553 integer(IKG) , intent(in) , contiguous :: array(:)
9554 procedure(logical(LK)) :: isSorted
9555 integer(TKR) :: rank(size(array, kind = IK))
9556 end function
9557#endif
9558
9559#if IK2_ENABLED
9560 module function getRankStandardCusCom_D1_IK2(array, isSorted) result(rank)
9561#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9562 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_IK2
9563#endif
9564 use pm_kind, only: TKR => IK, IKG => IK2
9565 integer(IKG) , intent(in) , contiguous :: array(:)
9566 procedure(logical(LK)) :: isSorted
9567 integer(TKR) :: rank(size(array, kind = IK))
9568 end function
9569#endif
9570
9571#if IK1_ENABLED
9572 module function getRankStandardCusCom_D1_IK1(array, isSorted) result(rank)
9573#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9574 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_IK1
9575#endif
9576 use pm_kind, only: TKR => IK, IKG => IK1
9577 integer(IKG) , intent(in) , contiguous :: array(:)
9578 procedure(logical(LK)) :: isSorted
9579 integer(TKR) :: rank(size(array, kind = IK))
9580 end function
9581#endif
9582
9583 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9584
9585#if LK5_ENABLED
9586 module function getRankStandardCusCom_D1_LK5(array, isSorted) result(rank)
9587#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9588 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_LK5
9589#endif
9590 use pm_kind, only: TKR => IK, LKG => LK5
9591 logical(LKG) , intent(in) , contiguous :: array(:)
9592 procedure(logical(LK)) :: isSorted
9593 integer(TKR) :: rank(size(array, kind = IK))
9594 end function
9595#endif
9596
9597#if LK4_ENABLED
9598 module function getRankStandardCusCom_D1_LK4(array, isSorted) result(rank)
9599#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9600 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_LK4
9601#endif
9602 use pm_kind, only: TKR => IK, LKG => LK4
9603 logical(LKG) , intent(in) , contiguous :: array(:)
9604 procedure(logical(LK)) :: isSorted
9605 integer(TKR) :: rank(size(array, kind = IK))
9606 end function
9607#endif
9608
9609#if LK3_ENABLED
9610 module function getRankStandardCusCom_D1_LK3(array, isSorted) result(rank)
9611#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9612 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_LK3
9613#endif
9614 use pm_kind, only: TKR => IK, LKG => LK3
9615 logical(LKG) , intent(in) , contiguous :: array(:)
9616 procedure(logical(LK)) :: isSorted
9617 integer(TKR) :: rank(size(array, kind = IK))
9618 end function
9619#endif
9620
9621#if LK2_ENABLED
9622 module function getRankStandardCusCom_D1_LK2(array, isSorted) result(rank)
9623#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9624 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_LK2
9625#endif
9626 use pm_kind, only: TKR => IK, LKG => LK2
9627 logical(LKG) , intent(in) , contiguous :: array(:)
9628 procedure(logical(LK)) :: isSorted
9629 integer(TKR) :: rank(size(array, kind = IK))
9630 end function
9631#endif
9632
9633#if LK1_ENABLED
9634 module function getRankStandardCusCom_D1_LK1(array, isSorted) result(rank)
9635#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9636 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_LK1
9637#endif
9638 use pm_kind, only: TKR => IK, LKG => LK1
9639 logical(LKG) , intent(in) , contiguous :: array(:)
9640 procedure(logical(LK)) :: isSorted
9641 integer(TKR) :: rank(size(array, kind = IK))
9642 end function
9643#endif
9644
9645 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9646
9647#if CK5_ENABLED
9648 module function getRankStandardCusCom_D1_CK5(array, isSorted) result(rank)
9649#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9650 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_CK5
9651#endif
9652 use pm_kind, only: TKR => IK, CKG => CK5
9653 complex(CKG) , intent(in) , contiguous :: array(:)
9654 procedure(logical(LK)) :: isSorted
9655 integer(TKR) :: rank(size(array, kind = IK))
9656 end function
9657#endif
9658
9659#if CK4_ENABLED
9660 module function getRankStandardCusCom_D1_CK4(array, isSorted) result(rank)
9661#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9662 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_CK4
9663#endif
9664 use pm_kind, only: TKR => IK, CKG => CK4
9665 complex(CKG) , intent(in) , contiguous :: array(:)
9666 procedure(logical(LK)) :: isSorted
9667 integer(TKR) :: rank(size(array, kind = IK))
9668 end function
9669#endif
9670
9671#if CK3_ENABLED
9672 module function getRankStandardCusCom_D1_CK3(array, isSorted) result(rank)
9673#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9674 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_CK3
9675#endif
9676 use pm_kind, only: TKR => IK, CKG => CK3
9677 complex(CKG) , intent(in) , contiguous :: array(:)
9678 procedure(logical(LK)) :: isSorted
9679 integer(TKR) :: rank(size(array, kind = IK))
9680 end function
9681#endif
9682
9683#if CK2_ENABLED
9684 module function getRankStandardCusCom_D1_CK2(array, isSorted) result(rank)
9685#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9686 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_CK2
9687#endif
9688 use pm_kind, only: TKR => IK, CKG => CK2
9689 complex(CKG) , intent(in) , contiguous :: array(:)
9690 procedure(logical(LK)) :: isSorted
9691 integer(TKR) :: rank(size(array, kind = IK))
9692 end function
9693#endif
9694
9695#if CK1_ENABLED
9696 module function getRankStandardCusCom_D1_CK1(array, isSorted) result(rank)
9697#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9698 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_CK1
9699#endif
9700 use pm_kind, only: TKR => IK, CKG => CK1
9701 complex(CKG) , intent(in) , contiguous :: array(:)
9702 procedure(logical(LK)) :: isSorted
9703 integer(TKR) :: rank(size(array, kind = IK))
9704 end function
9705#endif
9706
9707 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9708
9709#if RK5_ENABLED
9710 module function getRankStandardCusCom_D1_RK5(array, isSorted) result(rank)
9711#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9712 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_RK5
9713#endif
9714 use pm_kind, only: TKR => IK, RKG => RK5
9715 real(RKG) , intent(in) , contiguous :: array(:)
9716 procedure(logical(LK)) :: isSorted
9717 integer(TKR) :: rank(size(array, kind = IK))
9718 end function
9719#endif
9720
9721#if RK4_ENABLED
9722 module function getRankStandardCusCom_D1_RK4(array, isSorted) result(rank)
9723#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9724 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_RK4
9725#endif
9726 use pm_kind, only: TKR => IK, RKG => RK4
9727 real(RKG) , intent(in) , contiguous :: array(:)
9728 procedure(logical(LK)) :: isSorted
9729 integer(TKR) :: rank(size(array, kind = IK))
9730 end function
9731#endif
9732
9733#if RK3_ENABLED
9734 module function getRankStandardCusCom_D1_RK3(array, isSorted) result(rank)
9735#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9736 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_RK3
9737#endif
9738 use pm_kind, only: TKR => IK, RKG => RK3
9739 real(RKG) , intent(in) , contiguous :: array(:)
9740 procedure(logical(LK)) :: isSorted
9741 integer(TKR) :: rank(size(array, kind = IK))
9742 end function
9743#endif
9744
9745#if RK2_ENABLED
9746 module function getRankStandardCusCom_D1_RK2(array, isSorted) result(rank)
9747#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9748 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_RK2
9749#endif
9750 use pm_kind, only: TKR => IK, RKG => RK2
9751 real(RKG) , intent(in) , contiguous :: array(:)
9752 procedure(logical(LK)) :: isSorted
9753 integer(TKR) :: rank(size(array, kind = IK))
9754 end function
9755#endif
9756
9757#if RK1_ENABLED
9758 module function getRankStandardCusCom_D1_RK1(array, isSorted) result(rank)
9759#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9760 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_RK1
9761#endif
9762 use pm_kind, only: TKR => IK, RKG => RK1
9763 real(RKG) , intent(in) , contiguous :: array(:)
9764 procedure(logical(LK)) :: isSorted
9765 integer(TKR) :: rank(size(array, kind = IK))
9766 end function
9767#endif
9768
9769 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9770
9771#if PDT_ENABLED
9772
9773#if SK5_ENABLED
9774 module function getRankStandardCusCom_D1_PSSK5(array, isSorted) result(rank)
9775#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9776 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_PSSK5
9777#endif
9778 use pm_kind, only: TKR => IK, SKG => SK5
9779 use pm_container, only: css_pdt
9780 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
9781 procedure(logical(LK)) :: isSorted
9782 integer(TKR) :: rank(size(array, kind = IK))
9783 end function
9784#endif
9785
9786#if SK4_ENABLED
9787 module function getRankStandardCusCom_D1_PSSK4(array, isSorted) result(rank)
9788#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9789 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_PSSK4
9790#endif
9791 use pm_kind, only: TKR => IK, SKG => SK4
9792 use pm_container, only: css_pdt
9793 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
9794 procedure(logical(LK)) :: isSorted
9795 integer(TKR) :: rank(size(array, kind = IK))
9796 end function
9797#endif
9798
9799#if SK3_ENABLED
9800 module function getRankStandardCusCom_D1_PSSK3(array, isSorted) result(rank)
9801#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9802 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_PSSK3
9803#endif
9804 use pm_kind, only: TKR => IK, SKG => SK3
9805 use pm_container, only: css_pdt
9806 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
9807 procedure(logical(LK)) :: isSorted
9808 integer(TKR) :: rank(size(array, kind = IK))
9809 end function
9810#endif
9811
9812#if SK2_ENABLED
9813 module function getRankStandardCusCom_D1_PSSK2(array, isSorted) result(rank)
9814#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9815 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_PSSK2
9816#endif
9817 use pm_kind, only: TKR => IK, SKG => SK2
9818 use pm_container, only: css_pdt
9819 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
9820 procedure(logical(LK)) :: isSorted
9821 integer(TKR) :: rank(size(array, kind = IK))
9822 end function
9823#endif
9824
9825#if SK1_ENABLED
9826 module function getRankStandardCusCom_D1_PSSK1(array, isSorted) result(rank)
9827#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9828 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_PSSK1
9829#endif
9830 use pm_kind, only: TKR => IK, SKG => SK1
9831 use pm_container, only: css_pdt
9832 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
9833 integer(TKR) :: rank(size(array, kind = IK))
9834 procedure(logical(LK)) :: isSorted
9835 end function
9836#endif
9837
9838#endif
9839!PDT_ENABLED
9840
9841 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9842
9843 module function getRankStandardCusCom_D1_BSSK(array, isSorted) result(rank)
9844#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9845 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_BSSK
9846#endif
9847 use pm_kind, only: TKR => IK, SKG => SK
9848 use pm_container, only: css_type
9849 type(css_type) , intent(in) , contiguous :: array(:)
9850 procedure(logical(LK)) :: isSorted
9851 integer(TKR) :: rank(size(array, kind = IK))
9852 end function
9853
9854 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9855
9856 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9857 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9858 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9859
9860 end interface
9861
9862!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9863
10008
10009 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10010 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10011 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10012
10013 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10014
10015#if SK5_ENABLED
10016 PURE module subroutine setRankStandardDefCom_D0_SK5(rank, array)
10017#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10018 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D0_SK5
10019#endif
10020 use pm_kind, only: TKR => IK, SKG => SK5
10021 character(*,SKG) , intent(in) :: array
10022 integer(TKR) , intent(out) , contiguous :: rank(:)
10023 end subroutine
10024#endif
10025
10026#if SK4_ENABLED
10027 PURE module subroutine setRankStandardDefCom_D0_SK4(rank, array)
10028#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10029 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D0_SK4
10030#endif
10031 use pm_kind, only: TKR => IK, SKG => SK4
10032 character(*,SKG) , intent(in) :: array
10033 integer(TKR) , intent(out) , contiguous :: rank(:)
10034 end subroutine
10035#endif
10036
10037#if SK3_ENABLED
10038 PURE module subroutine setRankStandardDefCom_D0_SK3(rank, array)
10039#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10040 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D0_SK3
10041#endif
10042 use pm_kind, only: TKR => IK, SKG => SK3
10043 character(*,SKG) , intent(in) :: array
10044 integer(TKR) , intent(out) , contiguous :: rank(:)
10045 end subroutine
10046#endif
10047
10048#if SK2_ENABLED
10049 PURE module subroutine setRankStandardDefCom_D0_SK2(rank, array)
10050#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10051 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D0_SK2
10052#endif
10053 use pm_kind, only: TKR => IK, SKG => SK2
10054 character(*,SKG) , intent(in) :: array
10055 integer(TKR) , intent(out) , contiguous :: rank(:)
10056 end subroutine
10057#endif
10058
10059#if SK1_ENABLED
10060 PURE module subroutine setRankStandardDefCom_D0_SK1(rank, array)
10061#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10062 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D0_SK1
10063#endif
10064 use pm_kind, only: TKR => IK, SKG => SK1
10065 character(*,SKG) , intent(in) :: array
10066 integer(TKR) , intent(out) , contiguous :: rank(:)
10067 end subroutine
10068#endif
10069
10070 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10071
10072#if SK5_ENABLED
10073 PURE module subroutine setRankStandardDefCom_D1_SK5(rank, array)
10074#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10075 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_SK5
10076#endif
10077 use pm_kind, only: TKR => IK, SKG => SK5
10078 character(*,SKG) , intent(in) , contiguous :: array(:)
10079 integer(TKR) , intent(out) , contiguous :: rank(:)
10080 end subroutine
10081#endif
10082
10083#if SK4_ENABLED
10084 PURE module subroutine setRankStandardDefCom_D1_SK4(rank, array)
10085#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10086 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_SK4
10087#endif
10088 use pm_kind, only: TKR => IK, SKG => SK4
10089 character(*,SKG) , intent(in) , contiguous :: array(:)
10090 integer(TKR) , intent(out) , contiguous :: rank(:)
10091 end subroutine
10092#endif
10093
10094#if SK3_ENABLED
10095 PURE module subroutine setRankStandardDefCom_D1_SK3(rank, array)
10096#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10097 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_SK3
10098#endif
10099 use pm_kind, only: TKR => IK, SKG => SK3
10100 character(*,SKG) , intent(in) , contiguous :: array(:)
10101 integer(TKR) , intent(out) , contiguous :: rank(:)
10102 end subroutine
10103#endif
10104
10105#if SK2_ENABLED
10106 PURE module subroutine setRankStandardDefCom_D1_SK2(rank, array)
10107#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10108 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_SK2
10109#endif
10110 use pm_kind, only: TKR => IK, SKG => SK2
10111 character(*,SKG) , intent(in) , contiguous :: array(:)
10112 integer(TKR) , intent(out) , contiguous :: rank(:)
10113 end subroutine
10114#endif
10115
10116#if SK1_ENABLED
10117 PURE module subroutine setRankStandardDefCom_D1_SK1(rank, array)
10118#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10119 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_SK1
10120#endif
10121 use pm_kind, only: TKR => IK, SKG => SK1
10122 character(*,SKG) , intent(in) , contiguous :: array(:)
10123 integer(TKR) , intent(out) , contiguous :: rank(:)
10124 end subroutine
10125#endif
10126
10127 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10128
10129#if IK5_ENABLED
10130 PURE module subroutine setRankStandardDefCom_D1_IK5(rank, array)
10131#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10132 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_IK5
10133#endif
10134 use pm_kind, only: TKR => IK, IKG => IK5
10135 integer(IKG) , intent(in) , contiguous :: array(:)
10136 integer(TKR) , intent(out) , contiguous :: rank(:)
10137 end subroutine
10138#endif
10139
10140#if IK4_ENABLED
10141 PURE module subroutine setRankStandardDefCom_D1_IK4(rank, array)
10142#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10143 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_IK4
10144#endif
10145 use pm_kind, only: TKR => IK, IKG => IK4
10146 integer(IKG) , intent(in) , contiguous :: array(:)
10147 integer(TKR) , intent(out) , contiguous :: rank(:)
10148 end subroutine
10149#endif
10150
10151#if IK3_ENABLED
10152 PURE module subroutine setRankStandardDefCom_D1_IK3(rank, array)
10153#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10154 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_IK3
10155#endif
10156 use pm_kind, only: TKR => IK, IKG => IK3
10157 integer(IKG) , intent(in) , contiguous :: array(:)
10158 integer(TKR) , intent(out) , contiguous :: rank(:)
10159 end subroutine
10160#endif
10161
10162#if IK2_ENABLED
10163 PURE module subroutine setRankStandardDefCom_D1_IK2(rank, array)
10164#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10165 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_IK2
10166#endif
10167 use pm_kind, only: TKR => IK, IKG => IK2
10168 integer(IKG) , intent(in) , contiguous :: array(:)
10169 integer(TKR) , intent(out) , contiguous :: rank(:)
10170 end subroutine
10171#endif
10172
10173#if IK1_ENABLED
10174 PURE module subroutine setRankStandardDefCom_D1_IK1(rank, array)
10175#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10176 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_IK1
10177#endif
10178 use pm_kind, only: TKR => IK, IKG => IK1
10179 integer(IKG) , intent(in) , contiguous :: array(:)
10180 integer(TKR) , intent(out) , contiguous :: rank(:)
10181 end subroutine
10182#endif
10183
10184 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10185
10186#if LK5_ENABLED
10187 PURE module subroutine setRankStandardDefCom_D1_LK5(rank, array)
10188#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10189 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_LK5
10190#endif
10191 use pm_kind, only: TKR => IK, LKG => LK5
10192 logical(LKG) , intent(in) , contiguous :: array(:)
10193 integer(TKR) , intent(out) , contiguous :: rank(:)
10194 end subroutine
10195#endif
10196
10197#if LK4_ENABLED
10198 PURE module subroutine setRankStandardDefCom_D1_LK4(rank, array)
10199#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10200 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_LK4
10201#endif
10202 use pm_kind, only: TKR => IK, LKG => LK4
10203 logical(LKG) , intent(in) , contiguous :: array(:)
10204 integer(TKR) , intent(out) , contiguous :: rank(:)
10205 end subroutine
10206#endif
10207
10208#if LK3_ENABLED
10209 PURE module subroutine setRankStandardDefCom_D1_LK3(rank, array)
10210#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10211 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_LK3
10212#endif
10213 use pm_kind, only: TKR => IK, LKG => LK3
10214 logical(LKG) , intent(in) , contiguous :: array(:)
10215 integer(TKR) , intent(out) , contiguous :: rank(:)
10216 end subroutine
10217#endif
10218
10219#if LK2_ENABLED
10220 PURE module subroutine setRankStandardDefCom_D1_LK2(rank, array)
10221#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10222 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_LK2
10223#endif
10224 use pm_kind, only: TKR => IK, LKG => LK2
10225 logical(LKG) , intent(in) , contiguous :: array(:)
10226 integer(TKR) , intent(out) , contiguous :: rank(:)
10227 end subroutine
10228#endif
10229
10230#if LK1_ENABLED
10231 PURE module subroutine setRankStandardDefCom_D1_LK1(rank, array)
10232#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10233 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_LK1
10234#endif
10235 use pm_kind, only: TKR => IK, LKG => LK1
10236 logical(LKG) , intent(in) , contiguous :: array(:)
10237 integer(TKR) , intent(out) , contiguous :: rank(:)
10238 end subroutine
10239#endif
10240
10241 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10242
10243#if CK5_ENABLED
10244 PURE module subroutine setRankStandardDefCom_D1_CK5(rank, array)
10245#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10246 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_CK5
10247#endif
10248 use pm_kind, only: TKR => IK, CKG => CK5
10249 complex(CKG) , intent(in) , contiguous :: array(:)
10250 integer(TKR) , intent(out) , contiguous :: rank(:)
10251 end subroutine
10252#endif
10253
10254#if CK4_ENABLED
10255 PURE module subroutine setRankStandardDefCom_D1_CK4(rank, array)
10256#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10257 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_CK4
10258#endif
10259 use pm_kind, only: TKR => IK, CKG => CK4
10260 complex(CKG) , intent(in) , contiguous :: array(:)
10261 integer(TKR) , intent(out) , contiguous :: rank(:)
10262 end subroutine
10263#endif
10264
10265#if CK3_ENABLED
10266 PURE module subroutine setRankStandardDefCom_D1_CK3(rank, array)
10267#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10268 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_CK3
10269#endif
10270 use pm_kind, only: TKR => IK, CKG => CK3
10271 complex(CKG) , intent(in) , contiguous :: array(:)
10272 integer(TKR) , intent(out) , contiguous :: rank(:)
10273 end subroutine
10274#endif
10275
10276#if CK2_ENABLED
10277 PURE module subroutine setRankStandardDefCom_D1_CK2(rank, array)
10278#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10279 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_CK2
10280#endif
10281 use pm_kind, only: TKR => IK, CKG => CK2
10282 complex(CKG) , intent(in) , contiguous :: array(:)
10283 integer(TKR) , intent(out) , contiguous :: rank(:)
10284 end subroutine
10285#endif
10286
10287#if CK1_ENABLED
10288 PURE module subroutine setRankStandardDefCom_D1_CK1(rank, array)
10289#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10290 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_CK1
10291#endif
10292 use pm_kind, only: TKR => IK, CKG => CK1
10293 complex(CKG) , intent(in) , contiguous :: array(:)
10294 integer(TKR) , intent(out) , contiguous :: rank(:)
10295 end subroutine
10296#endif
10297
10298 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10299
10300#if RK5_ENABLED
10301 PURE module subroutine setRankStandardDefCom_D1_RK5(rank, array)
10302#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10303 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_RK5
10304#endif
10305 use pm_kind, only: TKR => IK, RKG => RK5
10306 real(RKG) , intent(in) , contiguous :: array(:)
10307 integer(TKR) , intent(out) , contiguous :: rank(:)
10308 end subroutine
10309#endif
10310
10311#if RK4_ENABLED
10312 PURE module subroutine setRankStandardDefCom_D1_RK4(rank, array)
10313#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10314 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_RK4
10315#endif
10316 use pm_kind, only: TKR => IK, RKG => RK4
10317 real(RKG) , intent(in) , contiguous :: array(:)
10318 integer(TKR) , intent(out) , contiguous :: rank(:)
10319 end subroutine
10320#endif
10321
10322#if RK3_ENABLED
10323 PURE module subroutine setRankStandardDefCom_D1_RK3(rank, array)
10324#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10325 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_RK3
10326#endif
10327 use pm_kind, only: TKR => IK, RKG => RK3
10328 real(RKG) , intent(in) , contiguous :: array(:)
10329 integer(TKR) , intent(out) , contiguous :: rank(:)
10330 end subroutine
10331#endif
10332
10333#if RK2_ENABLED
10334 PURE module subroutine setRankStandardDefCom_D1_RK2(rank, array)
10335#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10336 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_RK2
10337#endif
10338 use pm_kind, only: TKR => IK, RKG => RK2
10339 real(RKG) , intent(in) , contiguous :: array(:)
10340 integer(TKR) , intent(out) , contiguous :: rank(:)
10341 end subroutine
10342#endif
10343
10344#if RK1_ENABLED
10345 PURE module subroutine setRankStandardDefCom_D1_RK1(rank, array)
10346#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10347 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_RK1
10348#endif
10349 use pm_kind, only: TKR => IK, RKG => RK1
10350 real(RKG) , intent(in) , contiguous :: array(:)
10351 integer(TKR) , intent(out) , contiguous :: rank(:)
10352 end subroutine
10353#endif
10354
10355 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10356
10357#if PDT_ENABLED
10358
10359#if SK5_ENABLED
10360 PURE module subroutine setRankStandardDefCom_D1_PSSK5(rank, array)
10361#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10362 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_PSSK5
10363#endif
10364 use pm_kind, only: TKR => IK, SKG => SK5
10365 use pm_container, only: css_pdt
10366 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
10367 integer(TKR) , intent(out) , contiguous :: rank(:)
10368 end subroutine
10369#endif
10370
10371#if SK4_ENABLED
10372 PURE module subroutine setRankStandardDefCom_D1_PSSK4(rank, array)
10373#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10374 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_PSSK4
10375#endif
10376 use pm_kind, only: TKR => IK, SKG => SK4
10377 use pm_container, only: css_pdt
10378 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
10379 integer(TKR) , intent(out) , contiguous :: rank(:)
10380 end subroutine
10381#endif
10382
10383#if SK3_ENABLED
10384 PURE module subroutine setRankStandardDefCom_D1_PSSK3(rank, array)
10385#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10386 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_PSSK3
10387#endif
10388 use pm_kind, only: TKR => IK, SKG => SK3
10389 use pm_container, only: css_pdt
10390 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
10391 integer(TKR) , intent(out) , contiguous :: rank(:)
10392 end subroutine
10393#endif
10394
10395#if SK2_ENABLED
10396 PURE module subroutine setRankStandardDefCom_D1_PSSK2(rank, array)
10397#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10398 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_PSSK2
10399#endif
10400 use pm_kind, only: TKR => IK, SKG => SK2
10401 use pm_container, only: css_pdt
10402 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
10403 integer(TKR) , intent(out) , contiguous :: rank(:)
10404 end subroutine
10405#endif
10406
10407#if SK1_ENABLED
10408 PURE module subroutine setRankStandardDefCom_D1_PSSK1(rank, array)
10409#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10410 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_PSSK1
10411#endif
10412 use pm_kind, only: TKR => IK, SKG => SK1
10413 use pm_container, only: css_pdt
10414 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
10415 integer(TKR) , intent(out) , contiguous :: rank(:)
10416 end subroutine
10417#endif
10418
10419#endif
10420!PDT_ENABLED
10421
10422 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10423
10424 PURE module subroutine setRankStandardDefCom_D1_BSSK(rank, array)
10425#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10426 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_BSSK
10427#endif
10428 use pm_kind, only: TKR => IK, SKG => SK
10429 use pm_container, only: css_type
10430 type(css_type) , intent(in) , contiguous :: array(:)
10431 integer(TKR) , intent(out) , contiguous :: rank(:)
10432 end subroutine
10433
10434 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10435
10436 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10437 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10438 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10439
10440 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10441
10442#if SK5_ENABLED
10443 module subroutine setRankStandardCusCom_D0_SK5(rank, array, isSorted)
10444#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10445 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D0_SK5
10446#endif
10447 use pm_kind, only: TKR => IK, SKG => SK5
10448 character(*,SKG) , intent(in) :: array
10449 integer(TKR) , intent(out) , contiguous :: rank(:)
10450 procedure(logical(LK)) :: isSorted
10451 end subroutine
10452#endif
10453
10454#if SK4_ENABLED
10455 module subroutine setRankStandardCusCom_D0_SK4(rank, array, isSorted)
10456#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10457 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D0_SK4
10458#endif
10459 use pm_kind, only: TKR => IK, SKG => SK4
10460 character(*,SKG) , intent(in) :: array
10461 integer(TKR) , intent(out) , contiguous :: rank(:)
10462 procedure(logical(LK)) :: isSorted
10463 end subroutine
10464#endif
10465
10466#if SK3_ENABLED
10467 module subroutine setRankStandardCusCom_D0_SK3(rank, array, isSorted)
10468#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10469 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D0_SK3
10470#endif
10471 use pm_kind, only: TKR => IK, SKG => SK3
10472 character(*,SKG) , intent(in) :: array
10473 integer(TKR) , intent(out) , contiguous :: rank(:)
10474 procedure(logical(LK)) :: isSorted
10475 end subroutine
10476#endif
10477
10478#if SK2_ENABLED
10479 module subroutine setRankStandardCusCom_D0_SK2(rank, array, isSorted)
10480#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10481 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D0_SK2
10482#endif
10483 use pm_kind, only: TKR => IK, SKG => SK2
10484 character(*,SKG) , intent(in) :: array
10485 integer(TKR) , intent(out) , contiguous :: rank(:)
10486 procedure(logical(LK)) :: isSorted
10487 end subroutine
10488#endif
10489
10490#if SK1_ENABLED
10491 module subroutine setRankStandardCusCom_D0_SK1(rank, array, isSorted)
10492#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10493 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D0_SK1
10494#endif
10495 use pm_kind, only: TKR => IK, SKG => SK1
10496 character(*,SKG) , intent(in) :: array
10497 integer(TKR) , intent(out) , contiguous :: rank(:)
10498 procedure(logical(LK)) :: isSorted
10499 end subroutine
10500#endif
10501
10502 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10503
10504#if SK5_ENABLED
10505 module subroutine setRankStandardCusCom_D1_SK5(rank, array, isSorted)
10506#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10507 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_SK5
10508#endif
10509 use pm_kind, only: TKR => IK, SKG => SK5
10510 character(*,SKG) , intent(in) , contiguous :: array(:)
10511 integer(TKR) , intent(out) , contiguous :: rank(:)
10512 procedure(logical(LK)) :: isSorted
10513 end subroutine
10514#endif
10515
10516#if SK4_ENABLED
10517 module subroutine setRankStandardCusCom_D1_SK4(rank, array, isSorted)
10518#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10519 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_SK4
10520#endif
10521 use pm_kind, only: TKR => IK, SKG => SK4
10522 character(*,SKG) , intent(in) , contiguous :: array(:)
10523 integer(TKR) , intent(out) , contiguous :: rank(:)
10524 procedure(logical(LK)) :: isSorted
10525 end subroutine
10526#endif
10527
10528#if SK3_ENABLED
10529 module subroutine setRankStandardCusCom_D1_SK3(rank, array, isSorted)
10530#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10531 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_SK3
10532#endif
10533 use pm_kind, only: TKR => IK, SKG => SK3
10534 character(*,SKG) , intent(in) , contiguous :: array(:)
10535 integer(TKR) , intent(out) , contiguous :: rank(:)
10536 procedure(logical(LK)) :: isSorted
10537 end subroutine
10538#endif
10539
10540#if SK2_ENABLED
10541 module subroutine setRankStandardCusCom_D1_SK2(rank, array, isSorted)
10542#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10543 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_SK2
10544#endif
10545 use pm_kind, only: TKR => IK, SKG => SK2
10546 character(*,SKG) , intent(in) , contiguous :: array(:)
10547 integer(TKR) , intent(out) , contiguous :: rank(:)
10548 procedure(logical(LK)) :: isSorted
10549 end subroutine
10550#endif
10551
10552#if SK1_ENABLED
10553 module subroutine setRankStandardCusCom_D1_SK1(rank, array, isSorted)
10554#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10555 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_SK1
10556#endif
10557 use pm_kind, only: TKR => IK, SKG => SK1
10558 character(*,SKG) , intent(in) , contiguous :: array(:)
10559 integer(TKR) , intent(out) , contiguous :: rank(:)
10560 procedure(logical(LK)) :: isSorted
10561 end subroutine
10562#endif
10563
10564 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10565
10566#if IK5_ENABLED
10567 module subroutine setRankStandardCusCom_D1_IK5(rank, array, isSorted)
10568#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10569 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_IK5
10570#endif
10571 use pm_kind, only: TKR => IK, IKG => IK5
10572 integer(IKG) , intent(in) , contiguous :: array(:)
10573 integer(TKR) , intent(out) , contiguous :: rank(:)
10574 procedure(logical(LK)) :: isSorted
10575 end subroutine
10576#endif
10577
10578#if IK4_ENABLED
10579 module subroutine setRankStandardCusCom_D1_IK4(rank, array, isSorted)
10580#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10581 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_IK4
10582#endif
10583 use pm_kind, only: TKR => IK, IKG => IK4
10584 integer(IKG) , intent(in) , contiguous :: array(:)
10585 integer(TKR) , intent(out) , contiguous :: rank(:)
10586 procedure(logical(LK)) :: isSorted
10587 end subroutine
10588#endif
10589
10590#if IK3_ENABLED
10591 module subroutine setRankStandardCusCom_D1_IK3(rank, array, isSorted)
10592#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10593 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_IK3
10594#endif
10595 use pm_kind, only: TKR => IK, IKG => IK3
10596 integer(IKG) , intent(in) , contiguous :: array(:)
10597 integer(TKR) , intent(out) , contiguous :: rank(:)
10598 procedure(logical(LK)) :: isSorted
10599 end subroutine
10600#endif
10601
10602#if IK2_ENABLED
10603 module subroutine setRankStandardCusCom_D1_IK2(rank, array, isSorted)
10604#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10605 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_IK2
10606#endif
10607 use pm_kind, only: TKR => IK, IKG => IK2
10608 integer(IKG) , intent(in) , contiguous :: array(:)
10609 integer(TKR) , intent(out) , contiguous :: rank(:)
10610 procedure(logical(LK)) :: isSorted
10611 end subroutine
10612#endif
10613
10614#if IK1_ENABLED
10615 module subroutine setRankStandardCusCom_D1_IK1(rank, array, isSorted)
10616#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10617 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_IK1
10618#endif
10619 use pm_kind, only: TKR => IK, IKG => IK1
10620 integer(IKG) , intent(in) , contiguous :: array(:)
10621 integer(TKR) , intent(out) , contiguous :: rank(:)
10622 procedure(logical(LK)) :: isSorted
10623 end subroutine
10624#endif
10625
10626 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10627
10628#if LK5_ENABLED
10629 module subroutine setRankStandardCusCom_D1_LK5(rank, array, isSorted)
10630#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10631 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_LK5
10632#endif
10633 use pm_kind, only: TKR => IK, LKG => LK5
10634 logical(LKG) , intent(in) , contiguous :: array(:)
10635 integer(TKR) , intent(out) , contiguous :: rank(:)
10636 procedure(logical(LK)) :: isSorted
10637 end subroutine
10638#endif
10639
10640#if LK4_ENABLED
10641 module subroutine setRankStandardCusCom_D1_LK4(rank, array, isSorted)
10642#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10643 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_LK4
10644#endif
10645 use pm_kind, only: TKR => IK, LKG => LK4
10646 logical(LKG) , intent(in) , contiguous :: array(:)
10647 integer(TKR) , intent(out) , contiguous :: rank(:)
10648 procedure(logical(LK)) :: isSorted
10649 end subroutine
10650#endif
10651
10652#if LK3_ENABLED
10653 module subroutine setRankStandardCusCom_D1_LK3(rank, array, isSorted)
10654#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10655 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_LK3
10656#endif
10657 use pm_kind, only: TKR => IK, LKG => LK3
10658 logical(LKG) , intent(in) , contiguous :: array(:)
10659 integer(TKR) , intent(out) , contiguous :: rank(:)
10660 procedure(logical(LK)) :: isSorted
10661 end subroutine
10662#endif
10663
10664#if LK2_ENABLED
10665 module subroutine setRankStandardCusCom_D1_LK2(rank, array, isSorted)
10666#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10667 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_LK2
10668#endif
10669 use pm_kind, only: TKR => IK, LKG => LK2
10670 logical(LKG) , intent(in) , contiguous :: array(:)
10671 integer(TKR) , intent(out) , contiguous :: rank(:)
10672 procedure(logical(LK)) :: isSorted
10673 end subroutine
10674#endif
10675
10676#if LK1_ENABLED
10677 module subroutine setRankStandardCusCom_D1_LK1(rank, array, isSorted)
10678#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10679 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_LK1
10680#endif
10681 use pm_kind, only: TKR => IK, LKG => LK1
10682 logical(LKG) , intent(in) , contiguous :: array(:)
10683 integer(TKR) , intent(out) , contiguous :: rank(:)
10684 procedure(logical(LK)) :: isSorted
10685 end subroutine
10686#endif
10687
10688 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10689
10690#if CK5_ENABLED
10691 module subroutine setRankStandardCusCom_D1_CK5(rank, array, isSorted)
10692#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10693 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_CK5
10694#endif
10695 use pm_kind, only: TKR => IK, CKG => CK5
10696 complex(CKG) , intent(in) , contiguous :: array(:)
10697 integer(TKR) , intent(out) , contiguous :: rank(:)
10698 procedure(logical(LK)) :: isSorted
10699 end subroutine
10700#endif
10701
10702#if CK4_ENABLED
10703 module subroutine setRankStandardCusCom_D1_CK4(rank, array, isSorted)
10704#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10705 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_CK4
10706#endif
10707 use pm_kind, only: TKR => IK, CKG => CK4
10708 complex(CKG) , intent(in) , contiguous :: array(:)
10709 integer(TKR) , intent(out) , contiguous :: rank(:)
10710 procedure(logical(LK)) :: isSorted
10711 end subroutine
10712#endif
10713
10714#if CK3_ENABLED
10715 module subroutine setRankStandardCusCom_D1_CK3(rank, array, isSorted)
10716#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10717 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_CK3
10718#endif
10719 use pm_kind, only: TKR => IK, CKG => CK3
10720 complex(CKG) , intent(in) , contiguous :: array(:)
10721 integer(TKR) , intent(out) , contiguous :: rank(:)
10722 procedure(logical(LK)) :: isSorted
10723 end subroutine
10724#endif
10725
10726#if CK2_ENABLED
10727 module subroutine setRankStandardCusCom_D1_CK2(rank, array, isSorted)
10728#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10729 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_CK2
10730#endif
10731 use pm_kind, only: TKR => IK, CKG => CK2
10732 complex(CKG) , intent(in) , contiguous :: array(:)
10733 integer(TKR) , intent(out) , contiguous :: rank(:)
10734 procedure(logical(LK)) :: isSorted
10735 end subroutine
10736#endif
10737
10738#if CK1_ENABLED
10739 module subroutine setRankStandardCusCom_D1_CK1(rank, array, isSorted)
10740#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10741 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_CK1
10742#endif
10743 use pm_kind, only: TKR => IK, CKG => CK1
10744 complex(CKG) , intent(in) , contiguous :: array(:)
10745 integer(TKR) , intent(out) , contiguous :: rank(:)
10746 procedure(logical(LK)) :: isSorted
10747 end subroutine
10748#endif
10749
10750 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10751
10752#if RK5_ENABLED
10753 module subroutine setRankStandardCusCom_D1_RK5(rank, array, isSorted)
10754#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10755 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_RK5
10756#endif
10757 use pm_kind, only: TKR => IK, RKG => RK5
10758 real(RKG) , intent(in) , contiguous :: array(:)
10759 integer(TKR) , intent(out) , contiguous :: rank(:)
10760 procedure(logical(LK)) :: isSorted
10761 end subroutine
10762#endif
10763
10764#if RK4_ENABLED
10765 module subroutine setRankStandardCusCom_D1_RK4(rank, array, isSorted)
10766#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10767 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_RK4
10768#endif
10769 use pm_kind, only: TKR => IK, RKG => RK4
10770 real(RKG) , intent(in) , contiguous :: array(:)
10771 integer(TKR) , intent(out) , contiguous :: rank(:)
10772 procedure(logical(LK)) :: isSorted
10773 end subroutine
10774#endif
10775
10776#if RK3_ENABLED
10777 module subroutine setRankStandardCusCom_D1_RK3(rank, array, isSorted)
10778#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10779 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_RK3
10780#endif
10781 use pm_kind, only: TKR => IK, RKG => RK3
10782 real(RKG) , intent(in) , contiguous :: array(:)
10783 integer(TKR) , intent(out) , contiguous :: rank(:)
10784 procedure(logical(LK)) :: isSorted
10785 end subroutine
10786#endif
10787
10788#if RK2_ENABLED
10789 module subroutine setRankStandardCusCom_D1_RK2(rank, array, isSorted)
10790#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10791 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_RK2
10792#endif
10793 use pm_kind, only: TKR => IK, RKG => RK2
10794 real(RKG) , intent(in) , contiguous :: array(:)
10795 integer(TKR) , intent(out) , contiguous :: rank(:)
10796 procedure(logical(LK)) :: isSorted
10797 end subroutine
10798#endif
10799
10800#if RK1_ENABLED
10801 module subroutine setRankStandardCusCom_D1_RK1(rank, array, isSorted)
10802#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10803 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_RK1
10804#endif
10805 use pm_kind, only: TKR => IK, RKG => RK1
10806 real(RKG) , intent(in) , contiguous :: array(:)
10807 integer(TKR) , intent(out) , contiguous :: rank(:)
10808 procedure(logical(LK)) :: isSorted
10809 end subroutine
10810#endif
10811
10812 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10813
10814#if PDT_ENABLED
10815
10816#if SK5_ENABLED
10817 module subroutine setRankStandardCusCom_D1_PSSK5(rank, array, isSorted)
10818#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10819 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_PSSK5
10820#endif
10821 use pm_kind, only: TKR => IK, SKG => SK5
10822 use pm_container, only: css_pdt
10823 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
10824 integer(TKR) , intent(out) , contiguous :: rank(:)
10825 procedure(logical(LK)) :: isSorted
10826 end subroutine
10827#endif
10828
10829#if SK4_ENABLED
10830 module subroutine setRankStandardCusCom_D1_PSSK4(rank, array, isSorted)
10831#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10832 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_PSSK4
10833#endif
10834 use pm_kind, only: TKR => IK, SKG => SK4
10835 use pm_container, only: css_pdt
10836 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
10837 integer(TKR) , intent(out) , contiguous :: rank(:)
10838 procedure(logical(LK)) :: isSorted
10839 end subroutine
10840#endif
10841
10842#if SK3_ENABLED
10843 module subroutine setRankStandardCusCom_D1_PSSK3(rank, array, isSorted)
10844#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10845 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_PSSK3
10846#endif
10847 use pm_kind, only: TKR => IK, SKG => SK3
10848 use pm_container, only: css_pdt
10849 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
10850 integer(TKR) , intent(out) , contiguous :: rank(:)
10851 procedure(logical(LK)) :: isSorted
10852 end subroutine
10853#endif
10854
10855#if SK2_ENABLED
10856 module subroutine setRankStandardCusCom_D1_PSSK2(rank, array, isSorted)
10857#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10858 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_PSSK2
10859#endif
10860 use pm_kind, only: TKR => IK, SKG => SK2
10861 use pm_container, only: css_pdt
10862 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
10863 integer(TKR) , intent(out) , contiguous :: rank(:)
10864 procedure(logical(LK)) :: isSorted
10865 end subroutine
10866#endif
10867
10868#if SK1_ENABLED
10869 module subroutine setRankStandardCusCom_D1_PSSK1(rank, array, isSorted)
10870#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10871 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_PSSK1
10872#endif
10873 use pm_kind, only: TKR => IK, SKG => SK1
10874 use pm_container, only: css_pdt
10875 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
10876 integer(TKR) , intent(out) , contiguous :: rank(:)
10877 procedure(logical(LK)) :: isSorted
10878 end subroutine
10879#endif
10880
10881#endif
10882!PDT_ENABLED
10883
10884 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10885
10886 module subroutine setRankStandardCusCom_D1_BSSK(rank, array, isSorted)
10887#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10888 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_BSSK
10889#endif
10890 use pm_kind, only: TKR => IK, SKG => SK
10891 use pm_container, only: css_type
10892 type(css_type) , intent(in) , contiguous :: array(:)
10893 integer(TKR) , intent(out) , contiguous :: rank(:)
10894 procedure(logical(LK)) :: isSorted
10895 end subroutine
10896
10897 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10898
10899 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10900 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10901 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10902
10903 end interface
10904
10905!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10906
10907end module pm_arrayRank
Generate and return the Dense rank of the input scalar string or contiguous array of rank 1 in ascend...
Generate and return the Fractional rank of the input scalar string or contiguous array of rank 1 in a...
Generate and return the Modified rank of the input scalar string or contiguous array of rank 1 in asc...
Generate and return the ordinal rank of the input scalar string or contiguous array of rank 1 in asce...
Generate and return the Standard rank of the input scalar string or contiguous array of rank 1 in asc...
Return the Dense rank of the input scalar string or contiguous array of rank 1 in ascending order or ...
Return the Fractional rank of the input scalar string or contiguous array of rank 1 in ascending orde...
Return the Modified rank of the input scalar string or contiguous array of rank 1 in ascending order ...
Return the ordinal rank of the input scalar string or contiguous array of rank 1 in ascending order o...
Return the Standard rank of the input scalar string or contiguous array of rank 1 in ascending order ...
This module contains procedures and generic interfaces for obtaining various rankings of elements of ...
character(*, SK), parameter MODULE_NAME
type(fractional_type), parameter fractional
This is a scalar parameter object of type fractional_type that is exclusively used to request the fra...
type(ordinal_type), parameter ordinal
This is a scalar parameter object of type ordinal_type that is exclusively used to request the ordina...
type(standard_type), parameter standard
This is a scalar parameter object of type standard_type that is exclusively used to request the stand...
type(dense_type), parameter dense
This is a scalar parameter object of type dense_type that is exclusively used to request the dense ra...
type(modified_type), parameter modified
This is a scalar parameter object of type modified_type that is exclusively used to request the modif...
This module contains the derived types for generating allocatable containers of scalar,...
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
integer, parameter SK5
Definition: pm_kind.F90:326
integer, parameter LK1
Definition: pm_kind.F90:412
integer, parameter IK3
Definition: pm_kind.F90:368
integer, parameter RK5
Definition: pm_kind.F90:478
integer, parameter RK4
Definition: pm_kind.F90:489
integer, parameter SK1
Definition: pm_kind.F90:346
integer, parameter IK1
Definition: pm_kind.F90:382
integer, parameter LK5
Definition: pm_kind.F90:392
integer, parameter RK2
Definition: pm_kind.F90:511
integer, parameter RK
The default real kind in the ParaMonte library: real64 in Fortran, c_double in C-Fortran Interoperati...
Definition: pm_kind.F90:543
integer, parameter CK1
Definition: pm_kind.F90:464
integer, parameter RK3
Definition: pm_kind.F90:500
integer, parameter LK
The default logical kind in the ParaMonte library: kind(.true.) in Fortran, kind(....
Definition: pm_kind.F90:541
integer, parameter LK2
Definition: pm_kind.F90:407
integer, parameter LK4
Definition: pm_kind.F90:397
integer, parameter CK5
Definition: pm_kind.F90:420
integer, parameter CK4
Definition: pm_kind.F90:431
integer, parameter SK4
Definition: pm_kind.F90:331
integer, parameter LK3
Definition: pm_kind.F90:402
integer, parameter IK2
Definition: pm_kind.F90:375
integer, parameter CK2
Definition: pm_kind.F90:453
integer, parameter SK2
Definition: pm_kind.F90:341
integer, parameter CK3
Definition: pm_kind.F90:442
integer, parameter IK
The default integer kind in the ParaMonte library: int32 in Fortran, c_int32_t in C-Fortran Interoper...
Definition: pm_kind.F90:540
integer, parameter IK4
Definition: pm_kind.F90:361
integer, parameter IK5
Definition: pm_kind.F90:354
integer, parameter SK
The default character kind in the ParaMonte library: kind("a") in Fortran, c_char in C-Fortran Intero...
Definition: pm_kind.F90:539
integer, parameter RK1
Definition: pm_kind.F90:522
integer, parameter SK3
Definition: pm_kind.F90:336
This is a concrete derived type whose instances are exclusively used to request dense ranking of a gi...
This is a concrete derived type whose instances are exclusively used to request the fractional rankin...
This is a concrete derived type whose instances are exclusively used to request the modified ranking ...
This is a concrete derived type whose instances are exclusively used to request the ordinal ranking o...
This is an abstract derived type for constructing concrete derived types to distinguish various proce...
This is a concrete derived type whose instances are exclusively used to request the standard ranking ...
This is the css_pdt parameterized type for generating instances of container of scalar of string obje...
This is the css_type type for generating instances of container of scalar of string objects.