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
129
130! \copydetails pm_arrayRank
131
132!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
133
135
136 use pm_kind, only: SK, IK, LK
137
138 implicit none
139
140 character(*,SK), parameter :: MODULE_NAME = "@pm_arrayRank"
141
142!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
143
169 type, abstract :: rank_type
170 end type
171
172!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
173
205 type, extends(rank_type) :: dense_type
206 end type
207
232 type(dense_type), parameter :: dense = dense_type()
233
234!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
235
267 type, extends(rank_type) :: ordinal_type
268 end type
269
294 type(ordinal_type), parameter :: ordinal = ordinal_type()
295
296!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
297
329 type, extends(rank_type) :: modified_type
330 end type
331
356 type(modified_type), parameter :: modified = modified_type()
357
358!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
359
391 type, extends(rank_type) :: standard_type
392 end type
393
418 type(standard_type), parameter :: standard = standard_type()
419
420!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
421
453 type, extends(rank_type) :: fractional_type
454 end type
455
481
482!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
483
623 interface getRankDense
624
625 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
626 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
627 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
628
629 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
630
631#if SK5_ENABLED
632 module function getRankDenseDefCom_D0_SK5(array) result(rank)
633#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
634 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D0_SK5
635#endif
636 use pm_kind, only: TKR => IK, SKG => SK5
637 character(*,SKG) , intent(in) :: array
638 integer(TKR) :: rank(len(array, IK))
639 end function
640#endif
641
642#if SK4_ENABLED
643 module function getRankDenseDefCom_D0_SK4(array) result(rank)
644#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
645 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D0_SK4
646#endif
647 use pm_kind, only: TKR => IK, SKG => SK4
648 character(*,SKG) , intent(in) :: array
649 integer(TKR) :: rank(len(array, IK))
650 end function
651#endif
652
653#if SK3_ENABLED
654 module function getRankDenseDefCom_D0_SK3(array) result(rank)
655#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
656 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D0_SK3
657#endif
658 use pm_kind, only: TKR => IK, SKG => SK3
659 character(*,SKG) , intent(in) :: array
660 integer(TKR) :: rank(len(array, IK))
661 end function
662#endif
663
664#if SK2_ENABLED
665 module function getRankDenseDefCom_D0_SK2(array) result(rank)
666#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
667 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D0_SK2
668#endif
669 use pm_kind, only: TKR => IK, SKG => SK2
670 character(*,SKG) , intent(in) :: array
671 integer(TKR) :: rank(len(array, IK))
672 end function
673#endif
674
675#if SK1_ENABLED
676 module function getRankDenseDefCom_D0_SK1(array) result(rank)
677#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
678 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D0_SK1
679#endif
680 use pm_kind, only: TKR => IK, SKG => SK1
681 character(*,SKG) , intent(in) :: array
682 integer(TKR) :: rank(len(array, IK))
683 end function
684#endif
685
686 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
687
688#if SK5_ENABLED
689 module function getRankDenseDefCom_D1_SK5(array) result(rank)
690#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
691 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_SK5
692#endif
693 use pm_kind, only: TKR => IK, SKG => SK5
694 character(*,SKG) , intent(in) , contiguous :: array(:)
695 integer(TKR) :: rank(size(array, kind = IK))
696 end function
697#endif
698
699#if SK4_ENABLED
700 module function getRankDenseDefCom_D1_SK4(array) result(rank)
701#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
702 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_SK4
703#endif
704 use pm_kind, only: TKR => IK, SKG => SK4
705 character(*,SKG) , intent(in) , contiguous :: array(:)
706 integer(TKR) :: rank(size(array, kind = IK))
707 end function
708#endif
709
710#if SK3_ENABLED
711 module function getRankDenseDefCom_D1_SK3(array) result(rank)
712#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
713 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_SK3
714#endif
715 use pm_kind, only: TKR => IK, SKG => SK3
716 character(*,SKG) , intent(in) , contiguous :: array(:)
717 integer(TKR) :: rank(size(array, kind = IK))
718 end function
719#endif
720
721#if SK2_ENABLED
722 module function getRankDenseDefCom_D1_SK2(array) result(rank)
723#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
724 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_SK2
725#endif
726 use pm_kind, only: TKR => IK, SKG => SK2
727 character(*,SKG) , intent(in) , contiguous :: array(:)
728 integer(TKR) :: rank(size(array, kind = IK))
729 end function
730#endif
731
732#if SK1_ENABLED
733 module function getRankDenseDefCom_D1_SK1(array) result(rank)
734#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
735 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_SK1
736#endif
737 use pm_kind, only: TKR => IK, SKG => SK1
738 character(*,SKG) , intent(in) , contiguous :: array(:)
739 integer(TKR) :: rank(size(array, kind = IK))
740 end function
741#endif
742
743 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
744
745#if IK5_ENABLED
746 module function getRankDenseDefCom_D1_IK5(array) result(rank)
747#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
748 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_IK5
749#endif
750 use pm_kind, only: TKR => IK, IKG => IK5
751 integer(IKG) , intent(in) , contiguous :: array(:)
752 integer(TKR) :: rank(size(array, kind = IK))
753 end function
754#endif
755
756#if IK4_ENABLED
757 module function getRankDenseDefCom_D1_IK4(array) result(rank)
758#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
759 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_IK4
760#endif
761 use pm_kind, only: TKR => IK, IKG => IK4
762 integer(IKG) , intent(in) , contiguous :: array(:)
763 integer(TKR) :: rank(size(array, kind = IK))
764 end function
765#endif
766
767#if IK3_ENABLED
768 module function getRankDenseDefCom_D1_IK3(array) result(rank)
769#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
770 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_IK3
771#endif
772 use pm_kind, only: TKR => IK, IKG => IK3
773 integer(IKG) , intent(in) , contiguous :: array(:)
774 integer(TKR) :: rank(size(array, kind = IK))
775 end function
776#endif
777
778#if IK2_ENABLED
779 module function getRankDenseDefCom_D1_IK2(array) result(rank)
780#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
781 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_IK2
782#endif
783 use pm_kind, only: TKR => IK, IKG => IK2
784 integer(IKG) , intent(in) , contiguous :: array(:)
785 integer(TKR) :: rank(size(array, kind = IK))
786 end function
787#endif
788
789#if IK1_ENABLED
790 module function getRankDenseDefCom_D1_IK1(array) result(rank)
791#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
792 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_IK1
793#endif
794 use pm_kind, only: TKR => IK, IKG => IK1
795 integer(IKG) , intent(in) , contiguous :: array(:)
796 integer(TKR) :: rank(size(array, kind = IK))
797 end function
798#endif
799
800 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
801
802#if LK5_ENABLED
803 module function getRankDenseDefCom_D1_LK5(array) result(rank)
804#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
805 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_LK5
806#endif
807 use pm_kind, only: TKR => IK, LKG => LK5
808 logical(LKG) , intent(in) , contiguous :: array(:)
809 integer(TKR) :: rank(size(array, kind = IK))
810 end function
811#endif
812
813#if LK4_ENABLED
814 module function getRankDenseDefCom_D1_LK4(array) result(rank)
815#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
816 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_LK4
817#endif
818 use pm_kind, only: TKR => IK, LKG => LK4
819 logical(LKG) , intent(in) , contiguous :: array(:)
820 integer(TKR) :: rank(size(array, kind = IK))
821 end function
822#endif
823
824#if LK3_ENABLED
825 module function getRankDenseDefCom_D1_LK3(array) result(rank)
826#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
827 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_LK3
828#endif
829 use pm_kind, only: TKR => IK, LKG => LK3
830 logical(LKG) , intent(in) , contiguous :: array(:)
831 integer(TKR) :: rank(size(array, kind = IK))
832 end function
833#endif
834
835#if LK2_ENABLED
836 module function getRankDenseDefCom_D1_LK2(array) result(rank)
837#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
838 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_LK2
839#endif
840 use pm_kind, only: TKR => IK, LKG => LK2
841 logical(LKG) , intent(in) , contiguous :: array(:)
842 integer(TKR) :: rank(size(array, kind = IK))
843 end function
844#endif
845
846#if LK1_ENABLED
847 module function getRankDenseDefCom_D1_LK1(array) result(rank)
848#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
849 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_LK1
850#endif
851 use pm_kind, only: TKR => IK, LKG => LK1
852 logical(LKG) , intent(in) , contiguous :: array(:)
853 integer(TKR) :: rank(size(array, kind = IK))
854 end function
855#endif
856
857 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
858
859#if CK5_ENABLED
860 module function getRankDenseDefCom_D1_CK5(array) result(rank)
861#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
862 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_CK5
863#endif
864 use pm_kind, only: TKR => IK, CKG => CK5
865 complex(CKG) , intent(in) , contiguous :: array(:)
866 integer(TKR) :: rank(size(array, kind = IK))
867 end function
868#endif
869
870#if CK4_ENABLED
871 module function getRankDenseDefCom_D1_CK4(array) result(rank)
872#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
873 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_CK4
874#endif
875 use pm_kind, only: TKR => IK, CKG => CK4
876 complex(CKG) , intent(in) , contiguous :: array(:)
877 integer(TKR) :: rank(size(array, kind = IK))
878 end function
879#endif
880
881#if CK3_ENABLED
882 module function getRankDenseDefCom_D1_CK3(array) result(rank)
883#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
884 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_CK3
885#endif
886 use pm_kind, only: TKR => IK, CKG => CK3
887 complex(CKG) , intent(in) , contiguous :: array(:)
888 integer(TKR) :: rank(size(array, kind = IK))
889 end function
890#endif
891
892#if CK2_ENABLED
893 module function getRankDenseDefCom_D1_CK2(array) result(rank)
894#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
895 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_CK2
896#endif
897 use pm_kind, only: TKR => IK, CKG => CK2
898 complex(CKG) , intent(in) , contiguous :: array(:)
899 integer(TKR) :: rank(size(array, kind = IK))
900 end function
901#endif
902
903#if CK1_ENABLED
904 module function getRankDenseDefCom_D1_CK1(array) result(rank)
905#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
906 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_CK1
907#endif
908 use pm_kind, only: TKR => IK, CKG => CK1
909 complex(CKG) , intent(in) , contiguous :: array(:)
910 integer(TKR) :: rank(size(array, kind = IK))
911 end function
912#endif
913
914 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
915
916#if RK5_ENABLED
917 module function getRankDenseDefCom_D1_RK5(array) result(rank)
918#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
919 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_RK5
920#endif
921 use pm_kind, only: TKR => IK, RKG => RK5
922 real(RKG) , intent(in) , contiguous :: array(:)
923 integer(TKR) :: rank(size(array, kind = IK))
924 end function
925#endif
926
927#if RK4_ENABLED
928 module function getRankDenseDefCom_D1_RK4(array) result(rank)
929#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
930 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_RK4
931#endif
932 use pm_kind, only: TKR => IK, RKG => RK4
933 real(RKG) , intent(in) , contiguous :: array(:)
934 integer(TKR) :: rank(size(array, kind = IK))
935 end function
936#endif
937
938#if RK3_ENABLED
939 module function getRankDenseDefCom_D1_RK3(array) result(rank)
940#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
941 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_RK3
942#endif
943 use pm_kind, only: TKR => IK, RKG => RK3
944 real(RKG) , intent(in) , contiguous :: array(:)
945 integer(TKR) :: rank(size(array, kind = IK))
946 end function
947#endif
948
949#if RK2_ENABLED
950 module function getRankDenseDefCom_D1_RK2(array) result(rank)
951#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
952 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_RK2
953#endif
954 use pm_kind, only: TKR => IK, RKG => RK2
955 real(RKG) , intent(in) , contiguous :: array(:)
956 integer(TKR) :: rank(size(array, kind = IK))
957 end function
958#endif
959
960#if RK1_ENABLED
961 module function getRankDenseDefCom_D1_RK1(array) result(rank)
962#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
963 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_RK1
964#endif
965 use pm_kind, only: TKR => IK, RKG => RK1
966 real(RKG) , intent(in) , contiguous :: array(:)
967 integer(TKR) :: rank(size(array, kind = IK))
968 end function
969#endif
970
971 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
972
973#if PDT_ENABLED
974
975#if SK5_ENABLED
976 module function getRankDenseDefCom_D1_PSSK5(array) result(rank)
977#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
978 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_PSSK5
979#endif
980 use pm_kind, only: TKR => IK, SKG => SK5
981 use pm_container, only: css_pdt
982 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
983 integer(TKR) :: rank(size(array, kind = IK))
984 end function
985#endif
986
987#if SK4_ENABLED
988 module function getRankDenseDefCom_D1_PSSK4(array) result(rank)
989#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
990 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_PSSK4
991#endif
992 use pm_kind, only: TKR => IK, SKG => SK4
993 use pm_container, only: css_pdt
994 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
995 integer(TKR) :: rank(size(array, kind = IK))
996 end function
997#endif
998
999#if SK3_ENABLED
1000 module function getRankDenseDefCom_D1_PSSK3(array) result(rank)
1001#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1002 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_PSSK3
1003#endif
1004 use pm_kind, only: TKR => IK, SKG => SK3
1005 use pm_container, only: css_pdt
1006 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
1007 integer(TKR) :: rank(size(array, kind = IK))
1008 end function
1009#endif
1010
1011#if SK2_ENABLED
1012 module function getRankDenseDefCom_D1_PSSK2(array) result(rank)
1013#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1014 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_PSSK2
1015#endif
1016 use pm_kind, only: TKR => IK, SKG => SK2
1017 use pm_container, only: css_pdt
1018 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
1019 integer(TKR) :: rank(size(array, kind = IK))
1020 end function
1021#endif
1022
1023#if SK1_ENABLED
1024 module function getRankDenseDefCom_D1_PSSK1(array) result(rank)
1025#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1026 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_PSSK1
1027#endif
1028 use pm_kind, only: TKR => IK, SKG => SK1
1029 use pm_container, only: css_pdt
1030 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
1031 integer(TKR) :: rank(size(array, kind = IK))
1032 end function
1033#endif
1034
1035#endif
1036!PDT_ENABLED
1037
1038 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1039
1040 module function getRankDenseDefCom_D1_BSSK(array) result(rank)
1041#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1042 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseDefCom_D1_BSSK
1043#endif
1044 use pm_kind, only: TKR => IK, SKG => SK
1045 use pm_container, only: css_type
1046 type(css_type) , intent(in) , contiguous :: array(:)
1047 integer(TKR) :: rank(size(array, kind = IK))
1048 end function
1049
1050 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1051
1052 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1053 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1054 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1055
1056 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1057
1058#if SK5_ENABLED
1059 module function getRankDenseCusCom_D0_SK5(array, isSorted) result(rank)
1060#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1061 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D0_SK5
1062#endif
1063 use pm_kind, only: TKR => IK, SKG => SK5
1064 character(*,SKG) , intent(in) :: array
1065 procedure(logical(LK)) :: isSorted
1066 integer(TKR) :: rank(len(array, IK))
1067 end function
1068#endif
1069
1070#if SK4_ENABLED
1071 module function getRankDenseCusCom_D0_SK4(array, isSorted) result(rank)
1072#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1073 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D0_SK4
1074#endif
1075 use pm_kind, only: TKR => IK, SKG => SK4
1076 character(*,SKG) , intent(in) :: array
1077 procedure(logical(LK)) :: isSorted
1078 integer(TKR) :: rank(len(array, IK))
1079 end function
1080#endif
1081
1082#if SK3_ENABLED
1083 module function getRankDenseCusCom_D0_SK3(array, isSorted) result(rank)
1084#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1085 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D0_SK3
1086#endif
1087 use pm_kind, only: TKR => IK, SKG => SK3
1088 character(*,SKG) , intent(in) :: array
1089 procedure(logical(LK)) :: isSorted
1090 integer(TKR) :: rank(len(array, IK))
1091 end function
1092#endif
1093
1094#if SK2_ENABLED
1095 module function getRankDenseCusCom_D0_SK2(array, isSorted) result(rank)
1096#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1097 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D0_SK2
1098#endif
1099 use pm_kind, only: TKR => IK, SKG => SK2
1100 character(*,SKG) , intent(in) :: array
1101 procedure(logical(LK)) :: isSorted
1102 integer(TKR) :: rank(len(array, IK))
1103 end function
1104#endif
1105
1106#if SK1_ENABLED
1107 module function getRankDenseCusCom_D0_SK1(array, isSorted) result(rank)
1108#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1109 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D0_SK1
1110#endif
1111 use pm_kind, only: TKR => IK, SKG => SK1
1112 character(*,SKG) , intent(in) :: array
1113 procedure(logical(LK)) :: isSorted
1114 integer(TKR) :: rank(len(array, IK))
1115 end function
1116#endif
1117
1118 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1119
1120#if SK5_ENABLED
1121 module function getRankDenseCusCom_D1_SK5(array, isSorted) result(rank)
1122#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1123 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_SK5
1124#endif
1125 use pm_kind, only: TKR => IK, SKG => SK5
1126 character(*,SKG) , intent(in) , contiguous :: array(:)
1127 procedure(logical(LK)) :: isSorted
1128 integer(TKR) :: rank(size(array, kind = IK))
1129 end function
1130#endif
1131
1132#if SK4_ENABLED
1133 module function getRankDenseCusCom_D1_SK4(array, isSorted) result(rank)
1134#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1135 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_SK4
1136#endif
1137 use pm_kind, only: TKR => IK, SKG => SK4
1138 character(*,SKG) , intent(in) , contiguous :: array(:)
1139 procedure(logical(LK)) :: isSorted
1140 integer(TKR) :: rank(size(array, kind = IK))
1141 end function
1142#endif
1143
1144#if SK3_ENABLED
1145 module function getRankDenseCusCom_D1_SK3(array, isSorted) result(rank)
1146#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1147 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_SK3
1148#endif
1149 use pm_kind, only: TKR => IK, SKG => SK3
1150 character(*,SKG) , intent(in) , contiguous :: array(:)
1151 procedure(logical(LK)) :: isSorted
1152 integer(TKR) :: rank(size(array, kind = IK))
1153 end function
1154#endif
1155
1156#if SK2_ENABLED
1157 module function getRankDenseCusCom_D1_SK2(array, isSorted) result(rank)
1158#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1159 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_SK2
1160#endif
1161 use pm_kind, only: TKR => IK, SKG => SK2
1162 character(*,SKG) , intent(in) , contiguous :: array(:)
1163 procedure(logical(LK)) :: isSorted
1164 integer(TKR) :: rank(size(array, kind = IK))
1165 end function
1166#endif
1167
1168#if SK1_ENABLED
1169 module function getRankDenseCusCom_D1_SK1(array, isSorted) result(rank)
1170#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1171 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_SK1
1172#endif
1173 use pm_kind, only: TKR => IK, SKG => SK1
1174 character(*,SKG) , intent(in) , contiguous :: array(:)
1175 procedure(logical(LK)) :: isSorted
1176 integer(TKR) :: rank(size(array, kind = IK))
1177 end function
1178#endif
1179
1180 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1181
1182#if IK5_ENABLED
1183 module function getRankDenseCusCom_D1_IK5(array, isSorted) result(rank)
1184#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1185 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_IK5
1186#endif
1187 use pm_kind, only: TKR => IK, IKG => IK5
1188 integer(IKG) , intent(in) , contiguous :: array(:)
1189 procedure(logical(LK)) :: isSorted
1190 integer(TKR) :: rank(size(array, kind = IK))
1191 end function
1192#endif
1193
1194#if IK4_ENABLED
1195 module function getRankDenseCusCom_D1_IK4(array, isSorted) result(rank)
1196#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1197 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_IK4
1198#endif
1199 use pm_kind, only: TKR => IK, IKG => IK4
1200 integer(IKG) , intent(in) , contiguous :: array(:)
1201 procedure(logical(LK)) :: isSorted
1202 integer(TKR) :: rank(size(array, kind = IK))
1203 end function
1204#endif
1205
1206#if IK3_ENABLED
1207 module function getRankDenseCusCom_D1_IK3(array, isSorted) result(rank)
1208#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1209 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_IK3
1210#endif
1211 use pm_kind, only: TKR => IK, IKG => IK3
1212 integer(IKG) , intent(in) , contiguous :: array(:)
1213 procedure(logical(LK)) :: isSorted
1214 integer(TKR) :: rank(size(array, kind = IK))
1215 end function
1216#endif
1217
1218#if IK2_ENABLED
1219 module function getRankDenseCusCom_D1_IK2(array, isSorted) result(rank)
1220#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1221 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_IK2
1222#endif
1223 use pm_kind, only: TKR => IK, IKG => IK2
1224 integer(IKG) , intent(in) , contiguous :: array(:)
1225 procedure(logical(LK)) :: isSorted
1226 integer(TKR) :: rank(size(array, kind = IK))
1227 end function
1228#endif
1229
1230#if IK1_ENABLED
1231 module function getRankDenseCusCom_D1_IK1(array, isSorted) result(rank)
1232#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1233 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_IK1
1234#endif
1235 use pm_kind, only: TKR => IK, IKG => IK1
1236 integer(IKG) , intent(in) , contiguous :: array(:)
1237 procedure(logical(LK)) :: isSorted
1238 integer(TKR) :: rank(size(array, kind = IK))
1239 end function
1240#endif
1241
1242 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1243
1244#if LK5_ENABLED
1245 module function getRankDenseCusCom_D1_LK5(array, isSorted) result(rank)
1246#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1247 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_LK5
1248#endif
1249 use pm_kind, only: TKR => IK, LKG => LK5
1250 logical(LKG) , intent(in) , contiguous :: array(:)
1251 procedure(logical(LK)) :: isSorted
1252 integer(TKR) :: rank(size(array, kind = IK))
1253 end function
1254#endif
1255
1256#if LK4_ENABLED
1257 module function getRankDenseCusCom_D1_LK4(array, isSorted) result(rank)
1258#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1259 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_LK4
1260#endif
1261 use pm_kind, only: TKR => IK, LKG => LK4
1262 logical(LKG) , intent(in) , contiguous :: array(:)
1263 procedure(logical(LK)) :: isSorted
1264 integer(TKR) :: rank(size(array, kind = IK))
1265 end function
1266#endif
1267
1268#if LK3_ENABLED
1269 module function getRankDenseCusCom_D1_LK3(array, isSorted) result(rank)
1270#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1271 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_LK3
1272#endif
1273 use pm_kind, only: TKR => IK, LKG => LK3
1274 logical(LKG) , intent(in) , contiguous :: array(:)
1275 procedure(logical(LK)) :: isSorted
1276 integer(TKR) :: rank(size(array, kind = IK))
1277 end function
1278#endif
1279
1280#if LK2_ENABLED
1281 module function getRankDenseCusCom_D1_LK2(array, isSorted) result(rank)
1282#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1283 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_LK2
1284#endif
1285 use pm_kind, only: TKR => IK, LKG => LK2
1286 logical(LKG) , intent(in) , contiguous :: array(:)
1287 procedure(logical(LK)) :: isSorted
1288 integer(TKR) :: rank(size(array, kind = IK))
1289 end function
1290#endif
1291
1292#if LK1_ENABLED
1293 module function getRankDenseCusCom_D1_LK1(array, isSorted) result(rank)
1294#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1295 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_LK1
1296#endif
1297 use pm_kind, only: TKR => IK, LKG => LK1
1298 logical(LKG) , intent(in) , contiguous :: array(:)
1299 procedure(logical(LK)) :: isSorted
1300 integer(TKR) :: rank(size(array, kind = IK))
1301 end function
1302#endif
1303
1304 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1305
1306#if CK5_ENABLED
1307 module function getRankDenseCusCom_D1_CK5(array, isSorted) result(rank)
1308#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1309 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_CK5
1310#endif
1311 use pm_kind, only: TKR => IK, CKG => CK5
1312 complex(CKG) , intent(in) , contiguous :: array(:)
1313 procedure(logical(LK)) :: isSorted
1314 integer(TKR) :: rank(size(array, kind = IK))
1315 end function
1316#endif
1317
1318#if CK4_ENABLED
1319 module function getRankDenseCusCom_D1_CK4(array, isSorted) result(rank)
1320#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1321 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_CK4
1322#endif
1323 use pm_kind, only: TKR => IK, CKG => CK4
1324 complex(CKG) , intent(in) , contiguous :: array(:)
1325 procedure(logical(LK)) :: isSorted
1326 integer(TKR) :: rank(size(array, kind = IK))
1327 end function
1328#endif
1329
1330#if CK3_ENABLED
1331 module function getRankDenseCusCom_D1_CK3(array, isSorted) result(rank)
1332#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1333 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_CK3
1334#endif
1335 use pm_kind, only: TKR => IK, CKG => CK3
1336 complex(CKG) , intent(in) , contiguous :: array(:)
1337 procedure(logical(LK)) :: isSorted
1338 integer(TKR) :: rank(size(array, kind = IK))
1339 end function
1340#endif
1341
1342#if CK2_ENABLED
1343 module function getRankDenseCusCom_D1_CK2(array, isSorted) result(rank)
1344#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1345 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_CK2
1346#endif
1347 use pm_kind, only: TKR => IK, CKG => CK2
1348 complex(CKG) , intent(in) , contiguous :: array(:)
1349 procedure(logical(LK)) :: isSorted
1350 integer(TKR) :: rank(size(array, kind = IK))
1351 end function
1352#endif
1353
1354#if CK1_ENABLED
1355 module function getRankDenseCusCom_D1_CK1(array, isSorted) result(rank)
1356#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1357 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_CK1
1358#endif
1359 use pm_kind, only: TKR => IK, CKG => CK1
1360 complex(CKG) , intent(in) , contiguous :: array(:)
1361 procedure(logical(LK)) :: isSorted
1362 integer(TKR) :: rank(size(array, kind = IK))
1363 end function
1364#endif
1365
1366 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1367
1368#if RK5_ENABLED
1369 module function getRankDenseCusCom_D1_RK5(array, isSorted) result(rank)
1370#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1371 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_RK5
1372#endif
1373 use pm_kind, only: TKR => IK, RKG => RK5
1374 real(RKG) , intent(in) , contiguous :: array(:)
1375 procedure(logical(LK)) :: isSorted
1376 integer(TKR) :: rank(size(array, kind = IK))
1377 end function
1378#endif
1379
1380#if RK4_ENABLED
1381 module function getRankDenseCusCom_D1_RK4(array, isSorted) result(rank)
1382#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1383 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_RK4
1384#endif
1385 use pm_kind, only: TKR => IK, RKG => RK4
1386 real(RKG) , intent(in) , contiguous :: array(:)
1387 procedure(logical(LK)) :: isSorted
1388 integer(TKR) :: rank(size(array, kind = IK))
1389 end function
1390#endif
1391
1392#if RK3_ENABLED
1393 module function getRankDenseCusCom_D1_RK3(array, isSorted) result(rank)
1394#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1395 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_RK3
1396#endif
1397 use pm_kind, only: TKR => IK, RKG => RK3
1398 real(RKG) , intent(in) , contiguous :: array(:)
1399 procedure(logical(LK)) :: isSorted
1400 integer(TKR) :: rank(size(array, kind = IK))
1401 end function
1402#endif
1403
1404#if RK2_ENABLED
1405 module function getRankDenseCusCom_D1_RK2(array, isSorted) result(rank)
1406#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1407 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_RK2
1408#endif
1409 use pm_kind, only: TKR => IK, RKG => RK2
1410 real(RKG) , intent(in) , contiguous :: array(:)
1411 procedure(logical(LK)) :: isSorted
1412 integer(TKR) :: rank(size(array, kind = IK))
1413 end function
1414#endif
1415
1416#if RK1_ENABLED
1417 module function getRankDenseCusCom_D1_RK1(array, isSorted) result(rank)
1418#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1419 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_RK1
1420#endif
1421 use pm_kind, only: TKR => IK, RKG => RK1
1422 real(RKG) , intent(in) , contiguous :: array(:)
1423 procedure(logical(LK)) :: isSorted
1424 integer(TKR) :: rank(size(array, kind = IK))
1425 end function
1426#endif
1427
1428 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1429
1430#if PDT_ENABLED
1431
1432#if SK5_ENABLED
1433 module function getRankDenseCusCom_D1_PSSK5(array, isSorted) result(rank)
1434#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1435 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_PSSK5
1436#endif
1437 use pm_kind, only: TKR => IK, SKG => SK5
1438 use pm_container, only: css_pdt
1439 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
1440 procedure(logical(LK)) :: isSorted
1441 integer(TKR) :: rank(size(array, kind = IK))
1442 end function
1443#endif
1444
1445#if SK4_ENABLED
1446 module function getRankDenseCusCom_D1_PSSK4(array, isSorted) result(rank)
1447#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1448 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_PSSK4
1449#endif
1450 use pm_kind, only: TKR => IK, SKG => SK4
1451 use pm_container, only: css_pdt
1452 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
1453 procedure(logical(LK)) :: isSorted
1454 integer(TKR) :: rank(size(array, kind = IK))
1455 end function
1456#endif
1457
1458#if SK3_ENABLED
1459 module function getRankDenseCusCom_D1_PSSK3(array, isSorted) result(rank)
1460#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1461 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_PSSK3
1462#endif
1463 use pm_kind, only: TKR => IK, SKG => SK3
1464 use pm_container, only: css_pdt
1465 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
1466 procedure(logical(LK)) :: isSorted
1467 integer(TKR) :: rank(size(array, kind = IK))
1468 end function
1469#endif
1470
1471#if SK2_ENABLED
1472 module function getRankDenseCusCom_D1_PSSK2(array, isSorted) result(rank)
1473#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1474 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_PSSK2
1475#endif
1476 use pm_kind, only: TKR => IK, SKG => SK2
1477 use pm_container, only: css_pdt
1478 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
1479 procedure(logical(LK)) :: isSorted
1480 integer(TKR) :: rank(size(array, kind = IK))
1481 end function
1482#endif
1483
1484#if SK1_ENABLED
1485 module function getRankDenseCusCom_D1_PSSK1(array, isSorted) result(rank)
1486#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1487 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_PSSK1
1488#endif
1489 use pm_kind, only: TKR => IK, SKG => SK1
1490 use pm_container, only: css_pdt
1491 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
1492 integer(TKR) :: rank(size(array, kind = IK))
1493 procedure(logical(LK)) :: isSorted
1494 end function
1495#endif
1496
1497#endif
1498!PDT_ENABLED
1499
1500 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1501
1502 module function getRankDenseCusCom_D1_BSSK(array, isSorted) result(rank)
1503#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1504 !DEC$ ATTRIBUTES DLLEXPORT :: getRankDenseCusCom_D1_BSSK
1505#endif
1506 use pm_kind, only: TKR => IK, SKG => SK
1507 use pm_container, only: css_type
1508 type(css_type) , intent(in) , contiguous :: array(:)
1509 procedure(logical(LK)) :: isSorted
1510 integer(TKR) :: rank(size(array, kind = IK))
1511 end function
1512
1513 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1514
1515 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1516 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1517 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1518
1519 end interface
1520
1521!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1522
1663
1664 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1665 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1666 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1667
1668 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1669
1670#if SK5_ENABLED
1671 PURE module subroutine setRankDenseDefCom_D0_SK5(rank, array)
1672#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1673 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D0_SK5
1674#endif
1675 use pm_kind, only: TKR => IK, SKG => SK5
1676 character(*,SKG) , intent(in) :: array
1677 integer(TKR) , intent(out) , contiguous :: rank(:)
1678 end subroutine
1679#endif
1680
1681#if SK4_ENABLED
1682 PURE module subroutine setRankDenseDefCom_D0_SK4(rank, array)
1683#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1684 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D0_SK4
1685#endif
1686 use pm_kind, only: TKR => IK, SKG => SK4
1687 character(*,SKG) , intent(in) :: array
1688 integer(TKR) , intent(out) , contiguous :: rank(:)
1689 end subroutine
1690#endif
1691
1692#if SK3_ENABLED
1693 PURE module subroutine setRankDenseDefCom_D0_SK3(rank, array)
1694#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1695 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D0_SK3
1696#endif
1697 use pm_kind, only: TKR => IK, SKG => SK3
1698 character(*,SKG) , intent(in) :: array
1699 integer(TKR) , intent(out) , contiguous :: rank(:)
1700 end subroutine
1701#endif
1702
1703#if SK2_ENABLED
1704 PURE module subroutine setRankDenseDefCom_D0_SK2(rank, array)
1705#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1706 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D0_SK2
1707#endif
1708 use pm_kind, only: TKR => IK, SKG => SK2
1709 character(*,SKG) , intent(in) :: array
1710 integer(TKR) , intent(out) , contiguous :: rank(:)
1711 end subroutine
1712#endif
1713
1714#if SK1_ENABLED
1715 PURE module subroutine setRankDenseDefCom_D0_SK1(rank, array)
1716#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1717 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D0_SK1
1718#endif
1719 use pm_kind, only: TKR => IK, SKG => SK1
1720 character(*,SKG) , intent(in) :: array
1721 integer(TKR) , intent(out) , contiguous :: rank(:)
1722 end subroutine
1723#endif
1724
1725 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1726
1727#if SK5_ENABLED
1728 PURE module subroutine setRankDenseDefCom_D1_SK5(rank, array)
1729#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1730 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_SK5
1731#endif
1732 use pm_kind, only: TKR => IK, SKG => SK5
1733 character(*,SKG) , intent(in) , contiguous :: array(:)
1734 integer(TKR) , intent(out) , contiguous :: rank(:)
1735 end subroutine
1736#endif
1737
1738#if SK4_ENABLED
1739 PURE module subroutine setRankDenseDefCom_D1_SK4(rank, array)
1740#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1741 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_SK4
1742#endif
1743 use pm_kind, only: TKR => IK, SKG => SK4
1744 character(*,SKG) , intent(in) , contiguous :: array(:)
1745 integer(TKR) , intent(out) , contiguous :: rank(:)
1746 end subroutine
1747#endif
1748
1749#if SK3_ENABLED
1750 PURE module subroutine setRankDenseDefCom_D1_SK3(rank, array)
1751#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1752 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_SK3
1753#endif
1754 use pm_kind, only: TKR => IK, SKG => SK3
1755 character(*,SKG) , intent(in) , contiguous :: array(:)
1756 integer(TKR) , intent(out) , contiguous :: rank(:)
1757 end subroutine
1758#endif
1759
1760#if SK2_ENABLED
1761 PURE module subroutine setRankDenseDefCom_D1_SK2(rank, array)
1762#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1763 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_SK2
1764#endif
1765 use pm_kind, only: TKR => IK, SKG => SK2
1766 character(*,SKG) , intent(in) , contiguous :: array(:)
1767 integer(TKR) , intent(out) , contiguous :: rank(:)
1768 end subroutine
1769#endif
1770
1771#if SK1_ENABLED
1772 PURE module subroutine setRankDenseDefCom_D1_SK1(rank, array)
1773#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1774 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_SK1
1775#endif
1776 use pm_kind, only: TKR => IK, SKG => SK1
1777 character(*,SKG) , intent(in) , contiguous :: array(:)
1778 integer(TKR) , intent(out) , contiguous :: rank(:)
1779 end subroutine
1780#endif
1781
1782 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1783
1784#if IK5_ENABLED
1785 PURE module subroutine setRankDenseDefCom_D1_IK5(rank, array)
1786#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1787 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_IK5
1788#endif
1789 use pm_kind, only: TKR => IK, IKG => IK5
1790 integer(IKG) , intent(in) , contiguous :: array(:)
1791 integer(TKR) , intent(out) , contiguous :: rank(:)
1792 end subroutine
1793#endif
1794
1795#if IK4_ENABLED
1796 PURE module subroutine setRankDenseDefCom_D1_IK4(rank, array)
1797#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1798 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_IK4
1799#endif
1800 use pm_kind, only: TKR => IK, IKG => IK4
1801 integer(IKG) , intent(in) , contiguous :: array(:)
1802 integer(TKR) , intent(out) , contiguous :: rank(:)
1803 end subroutine
1804#endif
1805
1806#if IK3_ENABLED
1807 PURE module subroutine setRankDenseDefCom_D1_IK3(rank, array)
1808#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1809 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_IK3
1810#endif
1811 use pm_kind, only: TKR => IK, IKG => IK3
1812 integer(IKG) , intent(in) , contiguous :: array(:)
1813 integer(TKR) , intent(out) , contiguous :: rank(:)
1814 end subroutine
1815#endif
1816
1817#if IK2_ENABLED
1818 PURE module subroutine setRankDenseDefCom_D1_IK2(rank, array)
1819#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1820 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_IK2
1821#endif
1822 use pm_kind, only: TKR => IK, IKG => IK2
1823 integer(IKG) , intent(in) , contiguous :: array(:)
1824 integer(TKR) , intent(out) , contiguous :: rank(:)
1825 end subroutine
1826#endif
1827
1828#if IK1_ENABLED
1829 PURE module subroutine setRankDenseDefCom_D1_IK1(rank, array)
1830#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1831 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_IK1
1832#endif
1833 use pm_kind, only: TKR => IK, IKG => IK1
1834 integer(IKG) , intent(in) , contiguous :: array(:)
1835 integer(TKR) , intent(out) , contiguous :: rank(:)
1836 end subroutine
1837#endif
1838
1839 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1840
1841#if LK5_ENABLED
1842 PURE module subroutine setRankDenseDefCom_D1_LK5(rank, array)
1843#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1844 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_LK5
1845#endif
1846 use pm_kind, only: TKR => IK, LKG => LK5
1847 logical(LKG) , intent(in) , contiguous :: array(:)
1848 integer(TKR) , intent(out) , contiguous :: rank(:)
1849 end subroutine
1850#endif
1851
1852#if LK4_ENABLED
1853 PURE module subroutine setRankDenseDefCom_D1_LK4(rank, array)
1854#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1855 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_LK4
1856#endif
1857 use pm_kind, only: TKR => IK, LKG => LK4
1858 logical(LKG) , intent(in) , contiguous :: array(:)
1859 integer(TKR) , intent(out) , contiguous :: rank(:)
1860 end subroutine
1861#endif
1862
1863#if LK3_ENABLED
1864 PURE module subroutine setRankDenseDefCom_D1_LK3(rank, array)
1865#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1866 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_LK3
1867#endif
1868 use pm_kind, only: TKR => IK, LKG => LK3
1869 logical(LKG) , intent(in) , contiguous :: array(:)
1870 integer(TKR) , intent(out) , contiguous :: rank(:)
1871 end subroutine
1872#endif
1873
1874#if LK2_ENABLED
1875 PURE module subroutine setRankDenseDefCom_D1_LK2(rank, array)
1876#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1877 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_LK2
1878#endif
1879 use pm_kind, only: TKR => IK, LKG => LK2
1880 logical(LKG) , intent(in) , contiguous :: array(:)
1881 integer(TKR) , intent(out) , contiguous :: rank(:)
1882 end subroutine
1883#endif
1884
1885#if LK1_ENABLED
1886 PURE module subroutine setRankDenseDefCom_D1_LK1(rank, array)
1887#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1888 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_LK1
1889#endif
1890 use pm_kind, only: TKR => IK, LKG => LK1
1891 logical(LKG) , intent(in) , contiguous :: array(:)
1892 integer(TKR) , intent(out) , contiguous :: rank(:)
1893 end subroutine
1894#endif
1895
1896 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1897
1898#if CK5_ENABLED
1899 PURE module subroutine setRankDenseDefCom_D1_CK5(rank, array)
1900#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1901 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_CK5
1902#endif
1903 use pm_kind, only: TKR => IK, CKG => CK5
1904 complex(CKG) , intent(in) , contiguous :: array(:)
1905 integer(TKR) , intent(out) , contiguous :: rank(:)
1906 end subroutine
1907#endif
1908
1909#if CK4_ENABLED
1910 PURE module subroutine setRankDenseDefCom_D1_CK4(rank, array)
1911#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1912 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_CK4
1913#endif
1914 use pm_kind, only: TKR => IK, CKG => CK4
1915 complex(CKG) , intent(in) , contiguous :: array(:)
1916 integer(TKR) , intent(out) , contiguous :: rank(:)
1917 end subroutine
1918#endif
1919
1920#if CK3_ENABLED
1921 PURE module subroutine setRankDenseDefCom_D1_CK3(rank, array)
1922#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1923 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_CK3
1924#endif
1925 use pm_kind, only: TKR => IK, CKG => CK3
1926 complex(CKG) , intent(in) , contiguous :: array(:)
1927 integer(TKR) , intent(out) , contiguous :: rank(:)
1928 end subroutine
1929#endif
1930
1931#if CK2_ENABLED
1932 PURE module subroutine setRankDenseDefCom_D1_CK2(rank, array)
1933#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1934 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_CK2
1935#endif
1936 use pm_kind, only: TKR => IK, CKG => CK2
1937 complex(CKG) , intent(in) , contiguous :: array(:)
1938 integer(TKR) , intent(out) , contiguous :: rank(:)
1939 end subroutine
1940#endif
1941
1942#if CK1_ENABLED
1943 PURE module subroutine setRankDenseDefCom_D1_CK1(rank, array)
1944#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1945 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_CK1
1946#endif
1947 use pm_kind, only: TKR => IK, CKG => CK1
1948 complex(CKG) , intent(in) , contiguous :: array(:)
1949 integer(TKR) , intent(out) , contiguous :: rank(:)
1950 end subroutine
1951#endif
1952
1953 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1954
1955#if RK5_ENABLED
1956 PURE module subroutine setRankDenseDefCom_D1_RK5(rank, array)
1957#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1958 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_RK5
1959#endif
1960 use pm_kind, only: TKR => IK, RKG => RK5
1961 real(RKG) , intent(in) , contiguous :: array(:)
1962 integer(TKR) , intent(out) , contiguous :: rank(:)
1963 end subroutine
1964#endif
1965
1966#if RK4_ENABLED
1967 PURE module subroutine setRankDenseDefCom_D1_RK4(rank, array)
1968#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1969 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_RK4
1970#endif
1971 use pm_kind, only: TKR => IK, RKG => RK4
1972 real(RKG) , intent(in) , contiguous :: array(:)
1973 integer(TKR) , intent(out) , contiguous :: rank(:)
1974 end subroutine
1975#endif
1976
1977#if RK3_ENABLED
1978 PURE module subroutine setRankDenseDefCom_D1_RK3(rank, array)
1979#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1980 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_RK3
1981#endif
1982 use pm_kind, only: TKR => IK, RKG => RK3
1983 real(RKG) , intent(in) , contiguous :: array(:)
1984 integer(TKR) , intent(out) , contiguous :: rank(:)
1985 end subroutine
1986#endif
1987
1988#if RK2_ENABLED
1989 PURE module subroutine setRankDenseDefCom_D1_RK2(rank, array)
1990#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1991 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_RK2
1992#endif
1993 use pm_kind, only: TKR => IK, RKG => RK2
1994 real(RKG) , intent(in) , contiguous :: array(:)
1995 integer(TKR) , intent(out) , contiguous :: rank(:)
1996 end subroutine
1997#endif
1998
1999#if RK1_ENABLED
2000 PURE module subroutine setRankDenseDefCom_D1_RK1(rank, array)
2001#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2002 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_RK1
2003#endif
2004 use pm_kind, only: TKR => IK, RKG => RK1
2005 real(RKG) , intent(in) , contiguous :: array(:)
2006 integer(TKR) , intent(out) , contiguous :: rank(:)
2007 end subroutine
2008#endif
2009
2010 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2011
2012#if PDT_ENABLED
2013
2014#if SK5_ENABLED
2015 PURE module subroutine setRankDenseDefCom_D1_PSSK5(rank, array)
2016#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2017 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_PSSK5
2018#endif
2019 use pm_kind, only: TKR => IK, SKG => SK5
2020 use pm_container, only: css_pdt
2021 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
2022 integer(TKR) , intent(out) , contiguous :: rank(:)
2023 end subroutine
2024#endif
2025
2026#if SK4_ENABLED
2027 PURE module subroutine setRankDenseDefCom_D1_PSSK4(rank, array)
2028#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2029 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_PSSK4
2030#endif
2031 use pm_kind, only: TKR => IK, SKG => SK4
2032 use pm_container, only: css_pdt
2033 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
2034 integer(TKR) , intent(out) , contiguous :: rank(:)
2035 end subroutine
2036#endif
2037
2038#if SK3_ENABLED
2039 PURE module subroutine setRankDenseDefCom_D1_PSSK3(rank, array)
2040#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2041 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_PSSK3
2042#endif
2043 use pm_kind, only: TKR => IK, SKG => SK3
2044 use pm_container, only: css_pdt
2045 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
2046 integer(TKR) , intent(out) , contiguous :: rank(:)
2047 end subroutine
2048#endif
2049
2050#if SK2_ENABLED
2051 PURE module subroutine setRankDenseDefCom_D1_PSSK2(rank, array)
2052#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2053 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_PSSK2
2054#endif
2055 use pm_kind, only: TKR => IK, SKG => SK2
2056 use pm_container, only: css_pdt
2057 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
2058 integer(TKR) , intent(out) , contiguous :: rank(:)
2059 end subroutine
2060#endif
2061
2062#if SK1_ENABLED
2063 PURE module subroutine setRankDenseDefCom_D1_PSSK1(rank, array)
2064#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2065 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_PSSK1
2066#endif
2067 use pm_kind, only: TKR => IK, SKG => SK1
2068 use pm_container, only: css_pdt
2069 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
2070 integer(TKR) , intent(out) , contiguous :: rank(:)
2071 end subroutine
2072#endif
2073
2074#endif
2075!PDT_ENABLED
2076
2077 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2078
2079 PURE module subroutine setRankDenseDefCom_D1_BSSK(rank, array)
2080#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2081 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseDefCom_D1_BSSK
2082#endif
2083 use pm_kind, only: TKR => IK, SKG => SK
2084 use pm_container, only: css_type
2085 type(css_type) , intent(in) , contiguous :: array(:)
2086 integer(TKR) , intent(out) , contiguous :: rank(:)
2087 end subroutine
2088
2089 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2090
2091 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2092 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2093 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2094
2095 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2096
2097#if SK5_ENABLED
2098 module subroutine setRankDenseCusCom_D0_SK5(rank, array, isSorted)
2099#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2100 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D0_SK5
2101#endif
2102 use pm_kind, only: TKR => IK, SKG => SK5
2103 character(*,SKG) , intent(in) :: array
2104 integer(TKR) , intent(out) , contiguous :: rank(:)
2105 procedure(logical(LK)) :: isSorted
2106 end subroutine
2107#endif
2108
2109#if SK4_ENABLED
2110 module subroutine setRankDenseCusCom_D0_SK4(rank, array, isSorted)
2111#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2112 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D0_SK4
2113#endif
2114 use pm_kind, only: TKR => IK, SKG => SK4
2115 character(*,SKG) , intent(in) :: array
2116 integer(TKR) , intent(out) , contiguous :: rank(:)
2117 procedure(logical(LK)) :: isSorted
2118 end subroutine
2119#endif
2120
2121#if SK3_ENABLED
2122 module subroutine setRankDenseCusCom_D0_SK3(rank, array, isSorted)
2123#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2124 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D0_SK3
2125#endif
2126 use pm_kind, only: TKR => IK, SKG => SK3
2127 character(*,SKG) , intent(in) :: array
2128 integer(TKR) , intent(out) , contiguous :: rank(:)
2129 procedure(logical(LK)) :: isSorted
2130 end subroutine
2131#endif
2132
2133#if SK2_ENABLED
2134 module subroutine setRankDenseCusCom_D0_SK2(rank, array, isSorted)
2135#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2136 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D0_SK2
2137#endif
2138 use pm_kind, only: TKR => IK, SKG => SK2
2139 character(*,SKG) , intent(in) :: array
2140 integer(TKR) , intent(out) , contiguous :: rank(:)
2141 procedure(logical(LK)) :: isSorted
2142 end subroutine
2143#endif
2144
2145#if SK1_ENABLED
2146 module subroutine setRankDenseCusCom_D0_SK1(rank, array, isSorted)
2147#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2148 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D0_SK1
2149#endif
2150 use pm_kind, only: TKR => IK, SKG => SK1
2151 character(*,SKG) , intent(in) :: array
2152 integer(TKR) , intent(out) , contiguous :: rank(:)
2153 procedure(logical(LK)) :: isSorted
2154 end subroutine
2155#endif
2156
2157 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2158
2159#if SK5_ENABLED
2160 module subroutine setRankDenseCusCom_D1_SK5(rank, array, isSorted)
2161#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2162 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_SK5
2163#endif
2164 use pm_kind, only: TKR => IK, SKG => SK5
2165 character(*,SKG) , intent(in) , contiguous :: array(:)
2166 integer(TKR) , intent(out) , contiguous :: rank(:)
2167 procedure(logical(LK)) :: isSorted
2168 end subroutine
2169#endif
2170
2171#if SK4_ENABLED
2172 module subroutine setRankDenseCusCom_D1_SK4(rank, array, isSorted)
2173#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2174 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_SK4
2175#endif
2176 use pm_kind, only: TKR => IK, SKG => SK4
2177 character(*,SKG) , intent(in) , contiguous :: array(:)
2178 integer(TKR) , intent(out) , contiguous :: rank(:)
2179 procedure(logical(LK)) :: isSorted
2180 end subroutine
2181#endif
2182
2183#if SK3_ENABLED
2184 module subroutine setRankDenseCusCom_D1_SK3(rank, array, isSorted)
2185#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2186 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_SK3
2187#endif
2188 use pm_kind, only: TKR => IK, SKG => SK3
2189 character(*,SKG) , intent(in) , contiguous :: array(:)
2190 integer(TKR) , intent(out) , contiguous :: rank(:)
2191 procedure(logical(LK)) :: isSorted
2192 end subroutine
2193#endif
2194
2195#if SK2_ENABLED
2196 module subroutine setRankDenseCusCom_D1_SK2(rank, array, isSorted)
2197#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2198 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_SK2
2199#endif
2200 use pm_kind, only: TKR => IK, SKG => SK2
2201 character(*,SKG) , intent(in) , contiguous :: array(:)
2202 integer(TKR) , intent(out) , contiguous :: rank(:)
2203 procedure(logical(LK)) :: isSorted
2204 end subroutine
2205#endif
2206
2207#if SK1_ENABLED
2208 module subroutine setRankDenseCusCom_D1_SK1(rank, array, isSorted)
2209#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2210 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_SK1
2211#endif
2212 use pm_kind, only: TKR => IK, SKG => SK1
2213 character(*,SKG) , intent(in) , contiguous :: array(:)
2214 integer(TKR) , intent(out) , contiguous :: rank(:)
2215 procedure(logical(LK)) :: isSorted
2216 end subroutine
2217#endif
2218
2219 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2220
2221#if IK5_ENABLED
2222 module subroutine setRankDenseCusCom_D1_IK5(rank, array, isSorted)
2223#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2224 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_IK5
2225#endif
2226 use pm_kind, only: TKR => IK, IKG => IK5
2227 integer(IKG) , intent(in) , contiguous :: array(:)
2228 integer(TKR) , intent(out) , contiguous :: rank(:)
2229 procedure(logical(LK)) :: isSorted
2230 end subroutine
2231#endif
2232
2233#if IK4_ENABLED
2234 module subroutine setRankDenseCusCom_D1_IK4(rank, array, isSorted)
2235#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2236 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_IK4
2237#endif
2238 use pm_kind, only: TKR => IK, IKG => IK4
2239 integer(IKG) , intent(in) , contiguous :: array(:)
2240 integer(TKR) , intent(out) , contiguous :: rank(:)
2241 procedure(logical(LK)) :: isSorted
2242 end subroutine
2243#endif
2244
2245#if IK3_ENABLED
2246 module subroutine setRankDenseCusCom_D1_IK3(rank, array, isSorted)
2247#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2248 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_IK3
2249#endif
2250 use pm_kind, only: TKR => IK, IKG => IK3
2251 integer(IKG) , intent(in) , contiguous :: array(:)
2252 integer(TKR) , intent(out) , contiguous :: rank(:)
2253 procedure(logical(LK)) :: isSorted
2254 end subroutine
2255#endif
2256
2257#if IK2_ENABLED
2258 module subroutine setRankDenseCusCom_D1_IK2(rank, array, isSorted)
2259#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2260 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_IK2
2261#endif
2262 use pm_kind, only: TKR => IK, IKG => IK2
2263 integer(IKG) , intent(in) , contiguous :: array(:)
2264 integer(TKR) , intent(out) , contiguous :: rank(:)
2265 procedure(logical(LK)) :: isSorted
2266 end subroutine
2267#endif
2268
2269#if IK1_ENABLED
2270 module subroutine setRankDenseCusCom_D1_IK1(rank, array, isSorted)
2271#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2272 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_IK1
2273#endif
2274 use pm_kind, only: TKR => IK, IKG => IK1
2275 integer(IKG) , intent(in) , contiguous :: array(:)
2276 integer(TKR) , intent(out) , contiguous :: rank(:)
2277 procedure(logical(LK)) :: isSorted
2278 end subroutine
2279#endif
2280
2281 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2282
2283#if LK5_ENABLED
2284 module subroutine setRankDenseCusCom_D1_LK5(rank, array, isSorted)
2285#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2286 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_LK5
2287#endif
2288 use pm_kind, only: TKR => IK, LKG => LK5
2289 logical(LKG) , intent(in) , contiguous :: array(:)
2290 integer(TKR) , intent(out) , contiguous :: rank(:)
2291 procedure(logical(LK)) :: isSorted
2292 end subroutine
2293#endif
2294
2295#if LK4_ENABLED
2296 module subroutine setRankDenseCusCom_D1_LK4(rank, array, isSorted)
2297#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2298 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_LK4
2299#endif
2300 use pm_kind, only: TKR => IK, LKG => LK4
2301 logical(LKG) , intent(in) , contiguous :: array(:)
2302 integer(TKR) , intent(out) , contiguous :: rank(:)
2303 procedure(logical(LK)) :: isSorted
2304 end subroutine
2305#endif
2306
2307#if LK3_ENABLED
2308 module subroutine setRankDenseCusCom_D1_LK3(rank, array, isSorted)
2309#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2310 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_LK3
2311#endif
2312 use pm_kind, only: TKR => IK, LKG => LK3
2313 logical(LKG) , intent(in) , contiguous :: array(:)
2314 integer(TKR) , intent(out) , contiguous :: rank(:)
2315 procedure(logical(LK)) :: isSorted
2316 end subroutine
2317#endif
2318
2319#if LK2_ENABLED
2320 module subroutine setRankDenseCusCom_D1_LK2(rank, array, isSorted)
2321#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2322 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_LK2
2323#endif
2324 use pm_kind, only: TKR => IK, LKG => LK2
2325 logical(LKG) , intent(in) , contiguous :: array(:)
2326 integer(TKR) , intent(out) , contiguous :: rank(:)
2327 procedure(logical(LK)) :: isSorted
2328 end subroutine
2329#endif
2330
2331#if LK1_ENABLED
2332 module subroutine setRankDenseCusCom_D1_LK1(rank, array, isSorted)
2333#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2334 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_LK1
2335#endif
2336 use pm_kind, only: TKR => IK, LKG => LK1
2337 logical(LKG) , intent(in) , contiguous :: array(:)
2338 integer(TKR) , intent(out) , contiguous :: rank(:)
2339 procedure(logical(LK)) :: isSorted
2340 end subroutine
2341#endif
2342
2343 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2344
2345#if CK5_ENABLED
2346 module subroutine setRankDenseCusCom_D1_CK5(rank, array, isSorted)
2347#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2348 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_CK5
2349#endif
2350 use pm_kind, only: TKR => IK, CKG => CK5
2351 complex(CKG) , intent(in) , contiguous :: array(:)
2352 integer(TKR) , intent(out) , contiguous :: rank(:)
2353 procedure(logical(LK)) :: isSorted
2354 end subroutine
2355#endif
2356
2357#if CK4_ENABLED
2358 module subroutine setRankDenseCusCom_D1_CK4(rank, array, isSorted)
2359#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2360 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_CK4
2361#endif
2362 use pm_kind, only: TKR => IK, CKG => CK4
2363 complex(CKG) , intent(in) , contiguous :: array(:)
2364 integer(TKR) , intent(out) , contiguous :: rank(:)
2365 procedure(logical(LK)) :: isSorted
2366 end subroutine
2367#endif
2368
2369#if CK3_ENABLED
2370 module subroutine setRankDenseCusCom_D1_CK3(rank, array, isSorted)
2371#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2372 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_CK3
2373#endif
2374 use pm_kind, only: TKR => IK, CKG => CK3
2375 complex(CKG) , intent(in) , contiguous :: array(:)
2376 integer(TKR) , intent(out) , contiguous :: rank(:)
2377 procedure(logical(LK)) :: isSorted
2378 end subroutine
2379#endif
2380
2381#if CK2_ENABLED
2382 module subroutine setRankDenseCusCom_D1_CK2(rank, array, isSorted)
2383#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2384 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_CK2
2385#endif
2386 use pm_kind, only: TKR => IK, CKG => CK2
2387 complex(CKG) , intent(in) , contiguous :: array(:)
2388 integer(TKR) , intent(out) , contiguous :: rank(:)
2389 procedure(logical(LK)) :: isSorted
2390 end subroutine
2391#endif
2392
2393#if CK1_ENABLED
2394 module subroutine setRankDenseCusCom_D1_CK1(rank, array, isSorted)
2395#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2396 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_CK1
2397#endif
2398 use pm_kind, only: TKR => IK, CKG => CK1
2399 complex(CKG) , intent(in) , contiguous :: array(:)
2400 integer(TKR) , intent(out) , contiguous :: rank(:)
2401 procedure(logical(LK)) :: isSorted
2402 end subroutine
2403#endif
2404
2405 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2406
2407#if RK5_ENABLED
2408 module subroutine setRankDenseCusCom_D1_RK5(rank, array, isSorted)
2409#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2410 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_RK5
2411#endif
2412 use pm_kind, only: TKR => IK, RKG => RK5
2413 real(RKG) , intent(in) , contiguous :: array(:)
2414 integer(TKR) , intent(out) , contiguous :: rank(:)
2415 procedure(logical(LK)) :: isSorted
2416 end subroutine
2417#endif
2418
2419#if RK4_ENABLED
2420 module subroutine setRankDenseCusCom_D1_RK4(rank, array, isSorted)
2421#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2422 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_RK4
2423#endif
2424 use pm_kind, only: TKR => IK, RKG => RK4
2425 real(RKG) , intent(in) , contiguous :: array(:)
2426 integer(TKR) , intent(out) , contiguous :: rank(:)
2427 procedure(logical(LK)) :: isSorted
2428 end subroutine
2429#endif
2430
2431#if RK3_ENABLED
2432 module subroutine setRankDenseCusCom_D1_RK3(rank, array, isSorted)
2433#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2434 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_RK3
2435#endif
2436 use pm_kind, only: TKR => IK, RKG => RK3
2437 real(RKG) , intent(in) , contiguous :: array(:)
2438 integer(TKR) , intent(out) , contiguous :: rank(:)
2439 procedure(logical(LK)) :: isSorted
2440 end subroutine
2441#endif
2442
2443#if RK2_ENABLED
2444 module subroutine setRankDenseCusCom_D1_RK2(rank, array, isSorted)
2445#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2446 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_RK2
2447#endif
2448 use pm_kind, only: TKR => IK, RKG => RK2
2449 real(RKG) , intent(in) , contiguous :: array(:)
2450 integer(TKR) , intent(out) , contiguous :: rank(:)
2451 procedure(logical(LK)) :: isSorted
2452 end subroutine
2453#endif
2454
2455#if RK1_ENABLED
2456 module subroutine setRankDenseCusCom_D1_RK1(rank, array, isSorted)
2457#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2458 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_RK1
2459#endif
2460 use pm_kind, only: TKR => IK, RKG => RK1
2461 real(RKG) , intent(in) , contiguous :: array(:)
2462 integer(TKR) , intent(out) , contiguous :: rank(:)
2463 procedure(logical(LK)) :: isSorted
2464 end subroutine
2465#endif
2466
2467 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2468
2469#if PDT_ENABLED
2470
2471#if SK5_ENABLED
2472 module subroutine setRankDenseCusCom_D1_PSSK5(rank, array, isSorted)
2473#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2474 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_PSSK5
2475#endif
2476 use pm_kind, only: TKR => IK, SKG => SK5
2477 use pm_container, only: css_pdt
2478 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
2479 integer(TKR) , intent(out) , contiguous :: rank(:)
2480 procedure(logical(LK)) :: isSorted
2481 end subroutine
2482#endif
2483
2484#if SK4_ENABLED
2485 module subroutine setRankDenseCusCom_D1_PSSK4(rank, array, isSorted)
2486#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2487 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_PSSK4
2488#endif
2489 use pm_kind, only: TKR => IK, SKG => SK4
2490 use pm_container, only: css_pdt
2491 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
2492 integer(TKR) , intent(out) , contiguous :: rank(:)
2493 procedure(logical(LK)) :: isSorted
2494 end subroutine
2495#endif
2496
2497#if SK3_ENABLED
2498 module subroutine setRankDenseCusCom_D1_PSSK3(rank, array, isSorted)
2499#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2500 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_PSSK3
2501#endif
2502 use pm_kind, only: TKR => IK, SKG => SK3
2503 use pm_container, only: css_pdt
2504 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
2505 integer(TKR) , intent(out) , contiguous :: rank(:)
2506 procedure(logical(LK)) :: isSorted
2507 end subroutine
2508#endif
2509
2510#if SK2_ENABLED
2511 module subroutine setRankDenseCusCom_D1_PSSK2(rank, array, isSorted)
2512#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2513 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_PSSK2
2514#endif
2515 use pm_kind, only: TKR => IK, SKG => SK2
2516 use pm_container, only: css_pdt
2517 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
2518 integer(TKR) , intent(out) , contiguous :: rank(:)
2519 procedure(logical(LK)) :: isSorted
2520 end subroutine
2521#endif
2522
2523#if SK1_ENABLED
2524 module subroutine setRankDenseCusCom_D1_PSSK1(rank, array, isSorted)
2525#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2526 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_PSSK1
2527#endif
2528 use pm_kind, only: TKR => IK, SKG => SK1
2529 use pm_container, only: css_pdt
2530 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
2531 integer(TKR) , intent(out) , contiguous :: rank(:)
2532 procedure(logical(LK)) :: isSorted
2533 end subroutine
2534#endif
2535
2536#endif
2537!PDT_ENABLED
2538
2539 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2540
2541 module subroutine setRankDenseCusCom_D1_BSSK(rank, array, isSorted)
2542#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2543 !DEC$ ATTRIBUTES DLLEXPORT :: setRankDenseCusCom_D1_BSSK
2544#endif
2545 use pm_kind, only: TKR => IK, SKG => SK
2546 use pm_container, only: css_type
2547 type(css_type) , intent(in) , contiguous :: array(:)
2548 integer(TKR) , intent(out) , contiguous :: rank(:)
2549 procedure(logical(LK)) :: isSorted
2550 end subroutine
2551
2552 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2553
2554 end interface
2555
2556!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2557
2704
2705 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2706 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2707 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2708
2709 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2710
2711#if SK5_ENABLED
2712 module function getRankFractionalDefCom_D0_SK5(array) result(rank)
2713#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2714 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D0_SK5
2715#endif
2716 use pm_kind, only: TKR => RK, SKG => SK5
2717 character(*,SKG) , intent(in) :: array
2718 real(TKR) :: rank(len(array, IK))
2719 end function
2720#endif
2721
2722#if SK4_ENABLED
2723 module function getRankFractionalDefCom_D0_SK4(array) result(rank)
2724#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2725 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D0_SK4
2726#endif
2727 use pm_kind, only: TKR => RK, SKG => SK4
2728 character(*,SKG) , intent(in) :: array
2729 real(TKR) :: rank(len(array, IK))
2730 end function
2731#endif
2732
2733#if SK3_ENABLED
2734 module function getRankFractionalDefCom_D0_SK3(array) result(rank)
2735#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2736 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D0_SK3
2737#endif
2738 use pm_kind, only: TKR => RK, SKG => SK3
2739 character(*,SKG) , intent(in) :: array
2740 real(TKR) :: rank(len(array, IK))
2741 end function
2742#endif
2743
2744#if SK2_ENABLED
2745 module function getRankFractionalDefCom_D0_SK2(array) result(rank)
2746#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2747 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D0_SK2
2748#endif
2749 use pm_kind, only: TKR => RK, SKG => SK2
2750 character(*,SKG) , intent(in) :: array
2751 real(TKR) :: rank(len(array, IK))
2752 end function
2753#endif
2754
2755#if SK1_ENABLED
2756 module function getRankFractionalDefCom_D0_SK1(array) result(rank)
2757#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2758 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D0_SK1
2759#endif
2760 use pm_kind, only: TKR => RK, SKG => SK1
2761 character(*,SKG) , intent(in) :: array
2762 real(TKR) :: rank(len(array, IK))
2763 end function
2764#endif
2765
2766 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2767
2768#if SK5_ENABLED
2769 module function getRankFractionalDefCom_D1_SK5(array) result(rank)
2770#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2771 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_SK5
2772#endif
2773 use pm_kind, only: TKR => RK, SKG => SK5
2774 character(*,SKG) , intent(in) , contiguous :: array(:)
2775 real(TKR) :: rank(size(array, kind = IK))
2776 end function
2777#endif
2778
2779#if SK4_ENABLED
2780 module function getRankFractionalDefCom_D1_SK4(array) result(rank)
2781#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2782 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_SK4
2783#endif
2784 use pm_kind, only: TKR => RK, SKG => SK4
2785 character(*,SKG) , intent(in) , contiguous :: array(:)
2786 real(TKR) :: rank(size(array, kind = IK))
2787 end function
2788#endif
2789
2790#if SK3_ENABLED
2791 module function getRankFractionalDefCom_D1_SK3(array) result(rank)
2792#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2793 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_SK3
2794#endif
2795 use pm_kind, only: TKR => RK, SKG => SK3
2796 character(*,SKG) , intent(in) , contiguous :: array(:)
2797 real(TKR) :: rank(size(array, kind = IK))
2798 end function
2799#endif
2800
2801#if SK2_ENABLED
2802 module function getRankFractionalDefCom_D1_SK2(array) result(rank)
2803#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2804 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_SK2
2805#endif
2806 use pm_kind, only: TKR => RK, SKG => SK2
2807 character(*,SKG) , intent(in) , contiguous :: array(:)
2808 real(TKR) :: rank(size(array, kind = IK))
2809 end function
2810#endif
2811
2812#if SK1_ENABLED
2813 module function getRankFractionalDefCom_D1_SK1(array) result(rank)
2814#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2815 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_SK1
2816#endif
2817 use pm_kind, only: TKR => RK, SKG => SK1
2818 character(*,SKG) , intent(in) , contiguous :: array(:)
2819 real(TKR) :: rank(size(array, kind = IK))
2820 end function
2821#endif
2822
2823 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2824
2825#if IK5_ENABLED
2826 module function getRankFractionalDefCom_D1_IK5(array) result(rank)
2827#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2828 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_IK5
2829#endif
2830 use pm_kind, only: TKR => RK, IKG => IK5
2831 integer(IKG) , intent(in) , contiguous :: array(:)
2832 real(TKR) :: rank(size(array, kind = IK))
2833 end function
2834#endif
2835
2836#if IK4_ENABLED
2837 module function getRankFractionalDefCom_D1_IK4(array) result(rank)
2838#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2839 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_IK4
2840#endif
2841 use pm_kind, only: TKR => RK, IKG => IK4
2842 integer(IKG) , intent(in) , contiguous :: array(:)
2843 real(TKR) :: rank(size(array, kind = IK))
2844 end function
2845#endif
2846
2847#if IK3_ENABLED
2848 module function getRankFractionalDefCom_D1_IK3(array) result(rank)
2849#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2850 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_IK3
2851#endif
2852 use pm_kind, only: TKR => RK, IKG => IK3
2853 integer(IKG) , intent(in) , contiguous :: array(:)
2854 real(TKR) :: rank(size(array, kind = IK))
2855 end function
2856#endif
2857
2858#if IK2_ENABLED
2859 module function getRankFractionalDefCom_D1_IK2(array) result(rank)
2860#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2861 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_IK2
2862#endif
2863 use pm_kind, only: TKR => RK, IKG => IK2
2864 integer(IKG) , intent(in) , contiguous :: array(:)
2865 real(TKR) :: rank(size(array, kind = IK))
2866 end function
2867#endif
2868
2869#if IK1_ENABLED
2870 module function getRankFractionalDefCom_D1_IK1(array) result(rank)
2871#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2872 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_IK1
2873#endif
2874 use pm_kind, only: TKR => RK, IKG => IK1
2875 integer(IKG) , intent(in) , contiguous :: array(:)
2876 real(TKR) :: rank(size(array, kind = IK))
2877 end function
2878#endif
2879
2880 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2881
2882#if LK5_ENABLED
2883 module function getRankFractionalDefCom_D1_LK5(array) result(rank)
2884#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2885 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_LK5
2886#endif
2887 use pm_kind, only: TKR => RK, LKG => LK5
2888 logical(LKG) , intent(in) , contiguous :: array(:)
2889 real(TKR) :: rank(size(array, kind = IK))
2890 end function
2891#endif
2892
2893#if LK4_ENABLED
2894 module function getRankFractionalDefCom_D1_LK4(array) result(rank)
2895#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2896 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_LK4
2897#endif
2898 use pm_kind, only: TKR => RK, LKG => LK4
2899 logical(LKG) , intent(in) , contiguous :: array(:)
2900 real(TKR) :: rank(size(array, kind = IK))
2901 end function
2902#endif
2903
2904#if LK3_ENABLED
2905 module function getRankFractionalDefCom_D1_LK3(array) result(rank)
2906#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2907 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_LK3
2908#endif
2909 use pm_kind, only: TKR => RK, LKG => LK3
2910 logical(LKG) , intent(in) , contiguous :: array(:)
2911 real(TKR) :: rank(size(array, kind = IK))
2912 end function
2913#endif
2914
2915#if LK2_ENABLED
2916 module function getRankFractionalDefCom_D1_LK2(array) result(rank)
2917#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2918 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_LK2
2919#endif
2920 use pm_kind, only: TKR => RK, LKG => LK2
2921 logical(LKG) , intent(in) , contiguous :: array(:)
2922 real(TKR) :: rank(size(array, kind = IK))
2923 end function
2924#endif
2925
2926#if LK1_ENABLED
2927 module function getRankFractionalDefCom_D1_LK1(array) result(rank)
2928#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2929 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_LK1
2930#endif
2931 use pm_kind, only: TKR => RK, LKG => LK1
2932 logical(LKG) , intent(in) , contiguous :: array(:)
2933 real(TKR) :: rank(size(array, kind = IK))
2934 end function
2935#endif
2936
2937 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2938
2939#if CK5_ENABLED
2940 module function getRankFractionalDefCom_D1_CK5(array) result(rank)
2941#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2942 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_CK5
2943#endif
2944 use pm_kind, only: TKR => RK, CKG => CK5
2945 complex(CKG) , intent(in) , contiguous :: array(:)
2946 real(TKR) :: rank(size(array, kind = IK))
2947 end function
2948#endif
2949
2950#if CK4_ENABLED
2951 module function getRankFractionalDefCom_D1_CK4(array) result(rank)
2952#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2953 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_CK4
2954#endif
2955 use pm_kind, only: TKR => RK, CKG => CK4
2956 complex(CKG) , intent(in) , contiguous :: array(:)
2957 real(TKR) :: rank(size(array, kind = IK))
2958 end function
2959#endif
2960
2961#if CK3_ENABLED
2962 module function getRankFractionalDefCom_D1_CK3(array) result(rank)
2963#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2964 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_CK3
2965#endif
2966 use pm_kind, only: TKR => RK, CKG => CK3
2967 complex(CKG) , intent(in) , contiguous :: array(:)
2968 real(TKR) :: rank(size(array, kind = IK))
2969 end function
2970#endif
2971
2972#if CK2_ENABLED
2973 module function getRankFractionalDefCom_D1_CK2(array) result(rank)
2974#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2975 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_CK2
2976#endif
2977 use pm_kind, only: TKR => RK, CKG => CK2
2978 complex(CKG) , intent(in) , contiguous :: array(:)
2979 real(TKR) :: rank(size(array, kind = IK))
2980 end function
2981#endif
2982
2983#if CK1_ENABLED
2984 module function getRankFractionalDefCom_D1_CK1(array) result(rank)
2985#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2986 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_CK1
2987#endif
2988 use pm_kind, only: TKR => RK, CKG => CK1
2989 complex(CKG) , intent(in) , contiguous :: array(:)
2990 real(TKR) :: rank(size(array, kind = IK))
2991 end function
2992#endif
2993
2994 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2995
2996#if RK5_ENABLED
2997 module function getRankFractionalDefCom_D1_RK5(array) result(rank)
2998#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2999 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_RK5
3000#endif
3001 use pm_kind, only: TKR => RK, RKG => RK5
3002 real(RKG) , intent(in) , contiguous :: array(:)
3003 real(TKR) :: rank(size(array, kind = IK))
3004 end function
3005#endif
3006
3007#if RK4_ENABLED
3008 module function getRankFractionalDefCom_D1_RK4(array) result(rank)
3009#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3010 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_RK4
3011#endif
3012 use pm_kind, only: TKR => RK, RKG => RK4
3013 real(RKG) , intent(in) , contiguous :: array(:)
3014 real(TKR) :: rank(size(array, kind = IK))
3015 end function
3016#endif
3017
3018#if RK3_ENABLED
3019 module function getRankFractionalDefCom_D1_RK3(array) result(rank)
3020#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3021 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_RK3
3022#endif
3023 use pm_kind, only: TKR => RK, RKG => RK3
3024 real(RKG) , intent(in) , contiguous :: array(:)
3025 real(TKR) :: rank(size(array, kind = IK))
3026 end function
3027#endif
3028
3029#if RK2_ENABLED
3030 module function getRankFractionalDefCom_D1_RK2(array) result(rank)
3031#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3032 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_RK2
3033#endif
3034 use pm_kind, only: TKR => RK, RKG => RK2
3035 real(RKG) , intent(in) , contiguous :: array(:)
3036 real(TKR) :: rank(size(array, kind = IK))
3037 end function
3038#endif
3039
3040#if RK1_ENABLED
3041 module function getRankFractionalDefCom_D1_RK1(array) result(rank)
3042#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3043 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_RK1
3044#endif
3045 use pm_kind, only: TKR => RK, RKG => RK1
3046 real(RKG) , intent(in) , contiguous :: array(:)
3047 real(TKR) :: rank(size(array, kind = IK))
3048 end function
3049#endif
3050
3051 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3052
3053#if PDT_ENABLED
3054
3055#if SK5_ENABLED
3056 module function getRankFractionalDefCom_D1_PSSK5(array) result(rank)
3057#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3058 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_PSSK5
3059#endif
3060 use pm_kind, only: TKR => RK, SKG => SK5
3061 use pm_container, only: css_pdt
3062 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
3063 real(TKR) :: rank(size(array, kind = IK))
3064 end function
3065#endif
3066
3067#if SK4_ENABLED
3068 module function getRankFractionalDefCom_D1_PSSK4(array) result(rank)
3069#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3070 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_PSSK4
3071#endif
3072 use pm_kind, only: TKR => RK, SKG => SK4
3073 use pm_container, only: css_pdt
3074 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
3075 real(TKR) :: rank(size(array, kind = IK))
3076 end function
3077#endif
3078
3079#if SK3_ENABLED
3080 module function getRankFractionalDefCom_D1_PSSK3(array) result(rank)
3081#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3082 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_PSSK3
3083#endif
3084 use pm_kind, only: TKR => RK, SKG => SK3
3085 use pm_container, only: css_pdt
3086 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
3087 real(TKR) :: rank(size(array, kind = IK))
3088 end function
3089#endif
3090
3091#if SK2_ENABLED
3092 module function getRankFractionalDefCom_D1_PSSK2(array) result(rank)
3093#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3094 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_PSSK2
3095#endif
3096 use pm_kind, only: TKR => RK, SKG => SK2
3097 use pm_container, only: css_pdt
3098 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
3099 real(TKR) :: rank(size(array, kind = IK))
3100 end function
3101#endif
3102
3103#if SK1_ENABLED
3104 module function getRankFractionalDefCom_D1_PSSK1(array) result(rank)
3105#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3106 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_PSSK1
3107#endif
3108 use pm_kind, only: TKR => RK, SKG => SK1
3109 use pm_container, only: css_pdt
3110 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
3111 real(TKR) :: rank(size(array, kind = IK))
3112 end function
3113#endif
3114
3115#endif
3116!PDT_ENABLED
3117
3118 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3119
3120 module function getRankFractionalDefCom_D1_BSSK(array) result(rank)
3121#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3122 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalDefCom_D1_BSSK
3123#endif
3124 use pm_kind, only: TKR => RK, SKG => SK
3125 use pm_container, only: css_type
3126 type(css_type) , intent(in) , contiguous :: array(:)
3127 real(TKR) :: rank(size(array, kind = IK))
3128 end function
3129
3130 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3131
3132 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3133 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3134 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3135
3136 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3137
3138#if SK5_ENABLED
3139 module function getRankFractionalCusCom_D0_SK5(array, isSorted) result(rank)
3140#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3141 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D0_SK5
3142#endif
3143 use pm_kind, only: TKR => RK, SKG => SK5
3144 character(*,SKG) , intent(in) :: array
3145 procedure(logical(LK)) :: isSorted
3146 real(TKR) :: rank(len(array, IK))
3147 end function
3148#endif
3149
3150#if SK4_ENABLED
3151 module function getRankFractionalCusCom_D0_SK4(array, isSorted) result(rank)
3152#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3153 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D0_SK4
3154#endif
3155 use pm_kind, only: TKR => RK, SKG => SK4
3156 character(*,SKG) , intent(in) :: array
3157 procedure(logical(LK)) :: isSorted
3158 real(TKR) :: rank(len(array, IK))
3159 end function
3160#endif
3161
3162#if SK3_ENABLED
3163 module function getRankFractionalCusCom_D0_SK3(array, isSorted) result(rank)
3164#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3165 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D0_SK3
3166#endif
3167 use pm_kind, only: TKR => RK, SKG => SK3
3168 character(*,SKG) , intent(in) :: array
3169 procedure(logical(LK)) :: isSorted
3170 real(TKR) :: rank(len(array, IK))
3171 end function
3172#endif
3173
3174#if SK2_ENABLED
3175 module function getRankFractionalCusCom_D0_SK2(array, isSorted) result(rank)
3176#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3177 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D0_SK2
3178#endif
3179 use pm_kind, only: TKR => RK, SKG => SK2
3180 character(*,SKG) , intent(in) :: array
3181 procedure(logical(LK)) :: isSorted
3182 real(TKR) :: rank(len(array, IK))
3183 end function
3184#endif
3185
3186#if SK1_ENABLED
3187 module function getRankFractionalCusCom_D0_SK1(array, isSorted) result(rank)
3188#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3189 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D0_SK1
3190#endif
3191 use pm_kind, only: TKR => RK, SKG => SK1
3192 character(*,SKG) , intent(in) :: array
3193 procedure(logical(LK)) :: isSorted
3194 real(TKR) :: rank(len(array, IK))
3195 end function
3196#endif
3197
3198 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3199
3200#if SK5_ENABLED
3201 module function getRankFractionalCusCom_D1_SK5(array, isSorted) result(rank)
3202#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3203 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_SK5
3204#endif
3205 use pm_kind, only: TKR => RK, SKG => SK5
3206 character(*,SKG) , intent(in) , contiguous :: array(:)
3207 procedure(logical(LK)) :: isSorted
3208 real(TKR) :: rank(size(array, kind = IK))
3209 end function
3210#endif
3211
3212#if SK4_ENABLED
3213 module function getRankFractionalCusCom_D1_SK4(array, isSorted) result(rank)
3214#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3215 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_SK4
3216#endif
3217 use pm_kind, only: TKR => RK, SKG => SK4
3218 character(*,SKG) , intent(in) , contiguous :: array(:)
3219 procedure(logical(LK)) :: isSorted
3220 real(TKR) :: rank(size(array, kind = IK))
3221 end function
3222#endif
3223
3224#if SK3_ENABLED
3225 module function getRankFractionalCusCom_D1_SK3(array, isSorted) result(rank)
3226#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3227 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_SK3
3228#endif
3229 use pm_kind, only: TKR => RK, SKG => SK3
3230 character(*,SKG) , intent(in) , contiguous :: array(:)
3231 procedure(logical(LK)) :: isSorted
3232 real(TKR) :: rank(size(array, kind = IK))
3233 end function
3234#endif
3235
3236#if SK2_ENABLED
3237 module function getRankFractionalCusCom_D1_SK2(array, isSorted) result(rank)
3238#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3239 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_SK2
3240#endif
3241 use pm_kind, only: TKR => RK, SKG => SK2
3242 character(*,SKG) , intent(in) , contiguous :: array(:)
3243 procedure(logical(LK)) :: isSorted
3244 real(TKR) :: rank(size(array, kind = IK))
3245 end function
3246#endif
3247
3248#if SK1_ENABLED
3249 module function getRankFractionalCusCom_D1_SK1(array, isSorted) result(rank)
3250#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3251 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_SK1
3252#endif
3253 use pm_kind, only: TKR => RK, SKG => SK1
3254 character(*,SKG) , intent(in) , contiguous :: array(:)
3255 procedure(logical(LK)) :: isSorted
3256 real(TKR) :: rank(size(array, kind = IK))
3257 end function
3258#endif
3259
3260 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3261
3262#if IK5_ENABLED
3263 module function getRankFractionalCusCom_D1_IK5(array, isSorted) result(rank)
3264#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3265 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_IK5
3266#endif
3267 use pm_kind, only: TKR => RK, IKG => IK5
3268 integer(IKG) , intent(in) , contiguous :: array(:)
3269 procedure(logical(LK)) :: isSorted
3270 real(TKR) :: rank(size(array, kind = IK))
3271 end function
3272#endif
3273
3274#if IK4_ENABLED
3275 module function getRankFractionalCusCom_D1_IK4(array, isSorted) result(rank)
3276#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3277 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_IK4
3278#endif
3279 use pm_kind, only: TKR => RK, IKG => IK4
3280 integer(IKG) , intent(in) , contiguous :: array(:)
3281 procedure(logical(LK)) :: isSorted
3282 real(TKR) :: rank(size(array, kind = IK))
3283 end function
3284#endif
3285
3286#if IK3_ENABLED
3287 module function getRankFractionalCusCom_D1_IK3(array, isSorted) result(rank)
3288#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3289 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_IK3
3290#endif
3291 use pm_kind, only: TKR => RK, IKG => IK3
3292 integer(IKG) , intent(in) , contiguous :: array(:)
3293 procedure(logical(LK)) :: isSorted
3294 real(TKR) :: rank(size(array, kind = IK))
3295 end function
3296#endif
3297
3298#if IK2_ENABLED
3299 module function getRankFractionalCusCom_D1_IK2(array, isSorted) result(rank)
3300#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3301 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_IK2
3302#endif
3303 use pm_kind, only: TKR => RK, IKG => IK2
3304 integer(IKG) , intent(in) , contiguous :: array(:)
3305 procedure(logical(LK)) :: isSorted
3306 real(TKR) :: rank(size(array, kind = IK))
3307 end function
3308#endif
3309
3310#if IK1_ENABLED
3311 module function getRankFractionalCusCom_D1_IK1(array, isSorted) result(rank)
3312#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3313 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_IK1
3314#endif
3315 use pm_kind, only: TKR => RK, IKG => IK1
3316 integer(IKG) , intent(in) , contiguous :: array(:)
3317 procedure(logical(LK)) :: isSorted
3318 real(TKR) :: rank(size(array, kind = IK))
3319 end function
3320#endif
3321
3322 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3323
3324#if LK5_ENABLED
3325 module function getRankFractionalCusCom_D1_LK5(array, isSorted) result(rank)
3326#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3327 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_LK5
3328#endif
3329 use pm_kind, only: TKR => RK, LKG => LK5
3330 logical(LKG) , intent(in) , contiguous :: array(:)
3331 procedure(logical(LK)) :: isSorted
3332 real(TKR) :: rank(size(array, kind = IK))
3333 end function
3334#endif
3335
3336#if LK4_ENABLED
3337 module function getRankFractionalCusCom_D1_LK4(array, isSorted) result(rank)
3338#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3339 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_LK4
3340#endif
3341 use pm_kind, only: TKR => RK, LKG => LK4
3342 logical(LKG) , intent(in) , contiguous :: array(:)
3343 procedure(logical(LK)) :: isSorted
3344 real(TKR) :: rank(size(array, kind = IK))
3345 end function
3346#endif
3347
3348#if LK3_ENABLED
3349 module function getRankFractionalCusCom_D1_LK3(array, isSorted) result(rank)
3350#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3351 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_LK3
3352#endif
3353 use pm_kind, only: TKR => RK, LKG => LK3
3354 logical(LKG) , intent(in) , contiguous :: array(:)
3355 procedure(logical(LK)) :: isSorted
3356 real(TKR) :: rank(size(array, kind = IK))
3357 end function
3358#endif
3359
3360#if LK2_ENABLED
3361 module function getRankFractionalCusCom_D1_LK2(array, isSorted) result(rank)
3362#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3363 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_LK2
3364#endif
3365 use pm_kind, only: TKR => RK, LKG => LK2
3366 logical(LKG) , intent(in) , contiguous :: array(:)
3367 procedure(logical(LK)) :: isSorted
3368 real(TKR) :: rank(size(array, kind = IK))
3369 end function
3370#endif
3371
3372#if LK1_ENABLED
3373 module function getRankFractionalCusCom_D1_LK1(array, isSorted) result(rank)
3374#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3375 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_LK1
3376#endif
3377 use pm_kind, only: TKR => RK, LKG => LK1
3378 logical(LKG) , intent(in) , contiguous :: array(:)
3379 procedure(logical(LK)) :: isSorted
3380 real(TKR) :: rank(size(array, kind = IK))
3381 end function
3382#endif
3383
3384 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3385
3386#if CK5_ENABLED
3387 module function getRankFractionalCusCom_D1_CK5(array, isSorted) result(rank)
3388#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3389 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_CK5
3390#endif
3391 use pm_kind, only: TKR => RK, CKG => CK5
3392 complex(CKG) , intent(in) , contiguous :: array(:)
3393 procedure(logical(LK)) :: isSorted
3394 real(TKR) :: rank(size(array, kind = IK))
3395 end function
3396#endif
3397
3398#if CK4_ENABLED
3399 module function getRankFractionalCusCom_D1_CK4(array, isSorted) result(rank)
3400#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3401 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_CK4
3402#endif
3403 use pm_kind, only: TKR => RK, CKG => CK4
3404 complex(CKG) , intent(in) , contiguous :: array(:)
3405 procedure(logical(LK)) :: isSorted
3406 real(TKR) :: rank(size(array, kind = IK))
3407 end function
3408#endif
3409
3410#if CK3_ENABLED
3411 module function getRankFractionalCusCom_D1_CK3(array, isSorted) result(rank)
3412#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3413 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_CK3
3414#endif
3415 use pm_kind, only: TKR => RK, CKG => CK3
3416 complex(CKG) , intent(in) , contiguous :: array(:)
3417 procedure(logical(LK)) :: isSorted
3418 real(TKR) :: rank(size(array, kind = IK))
3419 end function
3420#endif
3421
3422#if CK2_ENABLED
3423 module function getRankFractionalCusCom_D1_CK2(array, isSorted) result(rank)
3424#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3425 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_CK2
3426#endif
3427 use pm_kind, only: TKR => RK, CKG => CK2
3428 complex(CKG) , intent(in) , contiguous :: array(:)
3429 procedure(logical(LK)) :: isSorted
3430 real(TKR) :: rank(size(array, kind = IK))
3431 end function
3432#endif
3433
3434#if CK1_ENABLED
3435 module function getRankFractionalCusCom_D1_CK1(array, isSorted) result(rank)
3436#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3437 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_CK1
3438#endif
3439 use pm_kind, only: TKR => RK, CKG => CK1
3440 complex(CKG) , intent(in) , contiguous :: array(:)
3441 procedure(logical(LK)) :: isSorted
3442 real(TKR) :: rank(size(array, kind = IK))
3443 end function
3444#endif
3445
3446 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3447
3448#if RK5_ENABLED
3449 module function getRankFractionalCusCom_D1_RK5(array, isSorted) result(rank)
3450#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3451 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_RK5
3452#endif
3453 use pm_kind, only: TKR => RK, RKG => RK5
3454 real(RKG) , intent(in) , contiguous :: array(:)
3455 procedure(logical(LK)) :: isSorted
3456 real(TKR) :: rank(size(array, kind = IK))
3457 end function
3458#endif
3459
3460#if RK4_ENABLED
3461 module function getRankFractionalCusCom_D1_RK4(array, isSorted) result(rank)
3462#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3463 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_RK4
3464#endif
3465 use pm_kind, only: TKR => RK, RKG => RK4
3466 real(RKG) , intent(in) , contiguous :: array(:)
3467 procedure(logical(LK)) :: isSorted
3468 real(TKR) :: rank(size(array, kind = IK))
3469 end function
3470#endif
3471
3472#if RK3_ENABLED
3473 module function getRankFractionalCusCom_D1_RK3(array, isSorted) result(rank)
3474#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3475 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_RK3
3476#endif
3477 use pm_kind, only: TKR => RK, RKG => RK3
3478 real(RKG) , intent(in) , contiguous :: array(:)
3479 procedure(logical(LK)) :: isSorted
3480 real(TKR) :: rank(size(array, kind = IK))
3481 end function
3482#endif
3483
3484#if RK2_ENABLED
3485 module function getRankFractionalCusCom_D1_RK2(array, isSorted) result(rank)
3486#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3487 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_RK2
3488#endif
3489 use pm_kind, only: TKR => RK, RKG => RK2
3490 real(RKG) , intent(in) , contiguous :: array(:)
3491 procedure(logical(LK)) :: isSorted
3492 real(TKR) :: rank(size(array, kind = IK))
3493 end function
3494#endif
3495
3496#if RK1_ENABLED
3497 module function getRankFractionalCusCom_D1_RK1(array, isSorted) result(rank)
3498#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3499 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_RK1
3500#endif
3501 use pm_kind, only: TKR => RK, RKG => RK1
3502 real(RKG) , intent(in) , contiguous :: array(:)
3503 procedure(logical(LK)) :: isSorted
3504 real(TKR) :: rank(size(array, kind = IK))
3505 end function
3506#endif
3507
3508 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3509
3510#if PDT_ENABLED
3511
3512#if SK5_ENABLED
3513 module function getRankFractionalCusCom_D1_PSSK5(array, isSorted) result(rank)
3514#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3515 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_PSSK5
3516#endif
3517 use pm_kind, only: TKR => RK, SKG => SK5
3518 use pm_container, only: css_pdt
3519 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
3520 procedure(logical(LK)) :: isSorted
3521 real(TKR) :: rank(size(array, kind = IK))
3522 end function
3523#endif
3524
3525#if SK4_ENABLED
3526 module function getRankFractionalCusCom_D1_PSSK4(array, isSorted) result(rank)
3527#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3528 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_PSSK4
3529#endif
3530 use pm_kind, only: TKR => RK, SKG => SK4
3531 use pm_container, only: css_pdt
3532 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
3533 procedure(logical(LK)) :: isSorted
3534 real(TKR) :: rank(size(array, kind = IK))
3535 end function
3536#endif
3537
3538#if SK3_ENABLED
3539 module function getRankFractionalCusCom_D1_PSSK3(array, isSorted) result(rank)
3540#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3541 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_PSSK3
3542#endif
3543 use pm_kind, only: TKR => RK, SKG => SK3
3544 use pm_container, only: css_pdt
3545 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
3546 procedure(logical(LK)) :: isSorted
3547 real(TKR) :: rank(size(array, kind = IK))
3548 end function
3549#endif
3550
3551#if SK2_ENABLED
3552 module function getRankFractionalCusCom_D1_PSSK2(array, isSorted) result(rank)
3553#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3554 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_PSSK2
3555#endif
3556 use pm_kind, only: TKR => RK, SKG => SK2
3557 use pm_container, only: css_pdt
3558 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
3559 procedure(logical(LK)) :: isSorted
3560 real(TKR) :: rank(size(array, kind = IK))
3561 end function
3562#endif
3563
3564#if SK1_ENABLED
3565 module function getRankFractionalCusCom_D1_PSSK1(array, isSorted) result(rank)
3566#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3567 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_PSSK1
3568#endif
3569 use pm_kind, only: TKR => RK, SKG => SK1
3570 use pm_container, only: css_pdt
3571 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
3572 real(TKR) :: rank(size(array, kind = IK))
3573 procedure(logical(LK)) :: isSorted
3574 end function
3575#endif
3576
3577#endif
3578!PDT_ENABLED
3579
3580 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3581
3582 module function getRankFractionalCusCom_D1_BSSK(array, isSorted) result(rank)
3583#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3584 !DEC$ ATTRIBUTES DLLEXPORT :: getRankFractionalCusCom_D1_BSSK
3585#endif
3586 use pm_kind, only: TKR => RK, SKG => SK
3587 use pm_container, only: css_type
3588 type(css_type) , intent(in) , contiguous :: array(:)
3589 procedure(logical(LK)) :: isSorted
3590 real(TKR) :: rank(size(array, kind = IK))
3591 end function
3592
3593 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3594
3595 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3596 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3597 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3598
3599 end interface
3600
3601!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3602
3749
3750 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3751 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3752 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3753
3754 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3755
3756#if SK5_ENABLED
3757 PURE module subroutine setRankFractionalDefCom_D0_SK5(rank, array)
3758#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3759 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D0_SK5
3760#endif
3761 use pm_kind, only: TKR => RK, SKG => SK5
3762 character(*,SKG) , intent(in) :: array
3763 real(TKR) , intent(out) , contiguous :: rank(:)
3764 end subroutine
3765#endif
3766
3767#if SK4_ENABLED
3768 PURE module subroutine setRankFractionalDefCom_D0_SK4(rank, array)
3769#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3770 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D0_SK4
3771#endif
3772 use pm_kind, only: TKR => RK, SKG => SK4
3773 character(*,SKG) , intent(in) :: array
3774 real(TKR) , intent(out) , contiguous :: rank(:)
3775 end subroutine
3776#endif
3777
3778#if SK3_ENABLED
3779 PURE module subroutine setRankFractionalDefCom_D0_SK3(rank, array)
3780#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3781 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D0_SK3
3782#endif
3783 use pm_kind, only: TKR => RK, SKG => SK3
3784 character(*,SKG) , intent(in) :: array
3785 real(TKR) , intent(out) , contiguous :: rank(:)
3786 end subroutine
3787#endif
3788
3789#if SK2_ENABLED
3790 PURE module subroutine setRankFractionalDefCom_D0_SK2(rank, array)
3791#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3792 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D0_SK2
3793#endif
3794 use pm_kind, only: TKR => RK, SKG => SK2
3795 character(*,SKG) , intent(in) :: array
3796 real(TKR) , intent(out) , contiguous :: rank(:)
3797 end subroutine
3798#endif
3799
3800#if SK1_ENABLED
3801 PURE module subroutine setRankFractionalDefCom_D0_SK1(rank, array)
3802#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3803 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D0_SK1
3804#endif
3805 use pm_kind, only: TKR => RK, SKG => SK1
3806 character(*,SKG) , intent(in) :: array
3807 real(TKR) , intent(out) , contiguous :: rank(:)
3808 end subroutine
3809#endif
3810
3811 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3812
3813#if SK5_ENABLED
3814 PURE module subroutine setRankFractionalDefCom_D1_SK5(rank, array)
3815#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3816 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_SK5
3817#endif
3818 use pm_kind, only: TKR => RK, SKG => SK5
3819 character(*,SKG) , intent(in) , contiguous :: array(:)
3820 real(TKR) , intent(out) , contiguous :: rank(:)
3821 end subroutine
3822#endif
3823
3824#if SK4_ENABLED
3825 PURE module subroutine setRankFractionalDefCom_D1_SK4(rank, array)
3826#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3827 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_SK4
3828#endif
3829 use pm_kind, only: TKR => RK, SKG => SK4
3830 character(*,SKG) , intent(in) , contiguous :: array(:)
3831 real(TKR) , intent(out) , contiguous :: rank(:)
3832 end subroutine
3833#endif
3834
3835#if SK3_ENABLED
3836 PURE module subroutine setRankFractionalDefCom_D1_SK3(rank, array)
3837#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3838 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_SK3
3839#endif
3840 use pm_kind, only: TKR => RK, SKG => SK3
3841 character(*,SKG) , intent(in) , contiguous :: array(:)
3842 real(TKR) , intent(out) , contiguous :: rank(:)
3843 end subroutine
3844#endif
3845
3846#if SK2_ENABLED
3847 PURE module subroutine setRankFractionalDefCom_D1_SK2(rank, array)
3848#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3849 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_SK2
3850#endif
3851 use pm_kind, only: TKR => RK, SKG => SK2
3852 character(*,SKG) , intent(in) , contiguous :: array(:)
3853 real(TKR) , intent(out) , contiguous :: rank(:)
3854 end subroutine
3855#endif
3856
3857#if SK1_ENABLED
3858 PURE module subroutine setRankFractionalDefCom_D1_SK1(rank, array)
3859#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3860 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_SK1
3861#endif
3862 use pm_kind, only: TKR => RK, SKG => SK1
3863 character(*,SKG) , intent(in) , contiguous :: array(:)
3864 real(TKR) , intent(out) , contiguous :: rank(:)
3865 end subroutine
3866#endif
3867
3868 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3869
3870#if IK5_ENABLED
3871 PURE module subroutine setRankFractionalDefCom_D1_IK5(rank, array)
3872#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3873 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_IK5
3874#endif
3875 use pm_kind, only: TKR => RK, IKG => IK5
3876 integer(IKG) , intent(in) , contiguous :: array(:)
3877 real(TKR) , intent(out) , contiguous :: rank(:)
3878 end subroutine
3879#endif
3880
3881#if IK4_ENABLED
3882 PURE module subroutine setRankFractionalDefCom_D1_IK4(rank, array)
3883#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3884 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_IK4
3885#endif
3886 use pm_kind, only: TKR => RK, IKG => IK4
3887 integer(IKG) , intent(in) , contiguous :: array(:)
3888 real(TKR) , intent(out) , contiguous :: rank(:)
3889 end subroutine
3890#endif
3891
3892#if IK3_ENABLED
3893 PURE module subroutine setRankFractionalDefCom_D1_IK3(rank, array)
3894#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3895 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_IK3
3896#endif
3897 use pm_kind, only: TKR => RK, IKG => IK3
3898 integer(IKG) , intent(in) , contiguous :: array(:)
3899 real(TKR) , intent(out) , contiguous :: rank(:)
3900 end subroutine
3901#endif
3902
3903#if IK2_ENABLED
3904 PURE module subroutine setRankFractionalDefCom_D1_IK2(rank, array)
3905#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3906 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_IK2
3907#endif
3908 use pm_kind, only: TKR => RK, IKG => IK2
3909 integer(IKG) , intent(in) , contiguous :: array(:)
3910 real(TKR) , intent(out) , contiguous :: rank(:)
3911 end subroutine
3912#endif
3913
3914#if IK1_ENABLED
3915 PURE module subroutine setRankFractionalDefCom_D1_IK1(rank, array)
3916#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3917 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_IK1
3918#endif
3919 use pm_kind, only: TKR => RK, IKG => IK1
3920 integer(IKG) , intent(in) , contiguous :: array(:)
3921 real(TKR) , intent(out) , contiguous :: rank(:)
3922 end subroutine
3923#endif
3924
3925 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3926
3927#if LK5_ENABLED
3928 PURE module subroutine setRankFractionalDefCom_D1_LK5(rank, array)
3929#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3930 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_LK5
3931#endif
3932 use pm_kind, only: TKR => RK, LKG => LK5
3933 logical(LKG) , intent(in) , contiguous :: array(:)
3934 real(TKR) , intent(out) , contiguous :: rank(:)
3935 end subroutine
3936#endif
3937
3938#if LK4_ENABLED
3939 PURE module subroutine setRankFractionalDefCom_D1_LK4(rank, array)
3940#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3941 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_LK4
3942#endif
3943 use pm_kind, only: TKR => RK, LKG => LK4
3944 logical(LKG) , intent(in) , contiguous :: array(:)
3945 real(TKR) , intent(out) , contiguous :: rank(:)
3946 end subroutine
3947#endif
3948
3949#if LK3_ENABLED
3950 PURE module subroutine setRankFractionalDefCom_D1_LK3(rank, array)
3951#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3952 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_LK3
3953#endif
3954 use pm_kind, only: TKR => RK, LKG => LK3
3955 logical(LKG) , intent(in) , contiguous :: array(:)
3956 real(TKR) , intent(out) , contiguous :: rank(:)
3957 end subroutine
3958#endif
3959
3960#if LK2_ENABLED
3961 PURE module subroutine setRankFractionalDefCom_D1_LK2(rank, array)
3962#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3963 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_LK2
3964#endif
3965 use pm_kind, only: TKR => RK, LKG => LK2
3966 logical(LKG) , intent(in) , contiguous :: array(:)
3967 real(TKR) , intent(out) , contiguous :: rank(:)
3968 end subroutine
3969#endif
3970
3971#if LK1_ENABLED
3972 PURE module subroutine setRankFractionalDefCom_D1_LK1(rank, array)
3973#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3974 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_LK1
3975#endif
3976 use pm_kind, only: TKR => RK, LKG => LK1
3977 logical(LKG) , intent(in) , contiguous :: array(:)
3978 real(TKR) , intent(out) , contiguous :: rank(:)
3979 end subroutine
3980#endif
3981
3982 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3983
3984#if CK5_ENABLED
3985 PURE module subroutine setRankFractionalDefCom_D1_CK5(rank, array)
3986#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3987 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_CK5
3988#endif
3989 use pm_kind, only: TKR => RK, CKG => CK5
3990 complex(CKG) , intent(in) , contiguous :: array(:)
3991 real(TKR) , intent(out) , contiguous :: rank(:)
3992 end subroutine
3993#endif
3994
3995#if CK4_ENABLED
3996 PURE module subroutine setRankFractionalDefCom_D1_CK4(rank, array)
3997#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3998 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_CK4
3999#endif
4000 use pm_kind, only: TKR => RK, CKG => CK4
4001 complex(CKG) , intent(in) , contiguous :: array(:)
4002 real(TKR) , intent(out) , contiguous :: rank(:)
4003 end subroutine
4004#endif
4005
4006#if CK3_ENABLED
4007 PURE module subroutine setRankFractionalDefCom_D1_CK3(rank, array)
4008#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4009 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_CK3
4010#endif
4011 use pm_kind, only: TKR => RK, CKG => CK3
4012 complex(CKG) , intent(in) , contiguous :: array(:)
4013 real(TKR) , intent(out) , contiguous :: rank(:)
4014 end subroutine
4015#endif
4016
4017#if CK2_ENABLED
4018 PURE module subroutine setRankFractionalDefCom_D1_CK2(rank, array)
4019#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4020 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_CK2
4021#endif
4022 use pm_kind, only: TKR => RK, CKG => CK2
4023 complex(CKG) , intent(in) , contiguous :: array(:)
4024 real(TKR) , intent(out) , contiguous :: rank(:)
4025 end subroutine
4026#endif
4027
4028#if CK1_ENABLED
4029 PURE module subroutine setRankFractionalDefCom_D1_CK1(rank, array)
4030#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4031 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_CK1
4032#endif
4033 use pm_kind, only: TKR => RK, CKG => CK1
4034 complex(CKG) , intent(in) , contiguous :: array(:)
4035 real(TKR) , intent(out) , contiguous :: rank(:)
4036 end subroutine
4037#endif
4038
4039 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4040
4041#if RK5_ENABLED
4042 PURE module subroutine setRankFractionalDefCom_D1_RK5(rank, array)
4043#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4044 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_RK5
4045#endif
4046 use pm_kind, only: TKR => RK, RKG => RK5
4047 real(RKG) , intent(in) , contiguous :: array(:)
4048 real(TKR) , intent(out) , contiguous :: rank(:)
4049 end subroutine
4050#endif
4051
4052#if RK4_ENABLED
4053 PURE module subroutine setRankFractionalDefCom_D1_RK4(rank, array)
4054#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4055 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_RK4
4056#endif
4057 use pm_kind, only: TKR => RK, RKG => RK4
4058 real(RKG) , intent(in) , contiguous :: array(:)
4059 real(TKR) , intent(out) , contiguous :: rank(:)
4060 end subroutine
4061#endif
4062
4063#if RK3_ENABLED
4064 PURE module subroutine setRankFractionalDefCom_D1_RK3(rank, array)
4065#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4066 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_RK3
4067#endif
4068 use pm_kind, only: TKR => RK, RKG => RK3
4069 real(RKG) , intent(in) , contiguous :: array(:)
4070 real(TKR) , intent(out) , contiguous :: rank(:)
4071 end subroutine
4072#endif
4073
4074#if RK2_ENABLED
4075 PURE module subroutine setRankFractionalDefCom_D1_RK2(rank, array)
4076#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4077 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_RK2
4078#endif
4079 use pm_kind, only: TKR => RK, RKG => RK2
4080 real(RKG) , intent(in) , contiguous :: array(:)
4081 real(TKR) , intent(out) , contiguous :: rank(:)
4082 end subroutine
4083#endif
4084
4085#if RK1_ENABLED
4086 PURE module subroutine setRankFractionalDefCom_D1_RK1(rank, array)
4087#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4088 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_RK1
4089#endif
4090 use pm_kind, only: TKR => RK, RKG => RK1
4091 real(RKG) , intent(in) , contiguous :: array(:)
4092 real(TKR) , intent(out) , contiguous :: rank(:)
4093 end subroutine
4094#endif
4095
4096 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4097
4098#if PDT_ENABLED
4099
4100#if SK5_ENABLED
4101 PURE module subroutine setRankFractionalDefCom_D1_PSSK5(rank, array)
4102#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4103 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_PSSK5
4104#endif
4105 use pm_kind, only: TKR => RK, SKG => SK5
4106 use pm_container, only: css_pdt
4107 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
4108 real(TKR) , intent(out) , contiguous :: rank(:)
4109 end subroutine
4110#endif
4111
4112#if SK4_ENABLED
4113 PURE module subroutine setRankFractionalDefCom_D1_PSSK4(rank, array)
4114#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4115 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_PSSK4
4116#endif
4117 use pm_kind, only: TKR => RK, SKG => SK4
4118 use pm_container, only: css_pdt
4119 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
4120 real(TKR) , intent(out) , contiguous :: rank(:)
4121 end subroutine
4122#endif
4123
4124#if SK3_ENABLED
4125 PURE module subroutine setRankFractionalDefCom_D1_PSSK3(rank, array)
4126#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4127 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_PSSK3
4128#endif
4129 use pm_kind, only: TKR => RK, SKG => SK3
4130 use pm_container, only: css_pdt
4131 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
4132 real(TKR) , intent(out) , contiguous :: rank(:)
4133 end subroutine
4134#endif
4135
4136#if SK2_ENABLED
4137 PURE module subroutine setRankFractionalDefCom_D1_PSSK2(rank, array)
4138#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4139 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_PSSK2
4140#endif
4141 use pm_kind, only: TKR => RK, SKG => SK2
4142 use pm_container, only: css_pdt
4143 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
4144 real(TKR) , intent(out) , contiguous :: rank(:)
4145 end subroutine
4146#endif
4147
4148#if SK1_ENABLED
4149 PURE module subroutine setRankFractionalDefCom_D1_PSSK1(rank, array)
4150#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4151 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_PSSK1
4152#endif
4153 use pm_kind, only: TKR => RK, SKG => SK1
4154 use pm_container, only: css_pdt
4155 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
4156 real(TKR) , intent(out) , contiguous :: rank(:)
4157 end subroutine
4158#endif
4159
4160#endif
4161!PDT_ENABLED
4162
4163 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4164
4165 PURE module subroutine setRankFractionalDefCom_D1_BSSK(rank, array)
4166#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4167 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalDefCom_D1_BSSK
4168#endif
4169 use pm_kind, only: TKR => RK, SKG => SK
4170 use pm_container, only: css_type
4171 type(css_type) , intent(in) , contiguous :: array(:)
4172 real(TKR) , intent(out) , contiguous :: rank(:)
4173 end subroutine
4174
4175 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4176
4177 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4178 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4179 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4180
4181 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4182
4183#if SK5_ENABLED
4184 module subroutine setRankFractionalCusCom_D0_SK5(rank, array, isSorted)
4185#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4186 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D0_SK5
4187#endif
4188 use pm_kind, only: TKR => RK, SKG => SK5
4189 character(*,SKG) , intent(in) :: array
4190 real(TKR) , intent(out) , contiguous :: rank(:)
4191 procedure(logical(LK)) :: isSorted
4192 end subroutine
4193#endif
4194
4195#if SK4_ENABLED
4196 module subroutine setRankFractionalCusCom_D0_SK4(rank, array, isSorted)
4197#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4198 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D0_SK4
4199#endif
4200 use pm_kind, only: TKR => RK, SKG => SK4
4201 character(*,SKG) , intent(in) :: array
4202 real(TKR) , intent(out) , contiguous :: rank(:)
4203 procedure(logical(LK)) :: isSorted
4204 end subroutine
4205#endif
4206
4207#if SK3_ENABLED
4208 module subroutine setRankFractionalCusCom_D0_SK3(rank, array, isSorted)
4209#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4210 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D0_SK3
4211#endif
4212 use pm_kind, only: TKR => RK, SKG => SK3
4213 character(*,SKG) , intent(in) :: array
4214 real(TKR) , intent(out) , contiguous :: rank(:)
4215 procedure(logical(LK)) :: isSorted
4216 end subroutine
4217#endif
4218
4219#if SK2_ENABLED
4220 module subroutine setRankFractionalCusCom_D0_SK2(rank, array, isSorted)
4221#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4222 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D0_SK2
4223#endif
4224 use pm_kind, only: TKR => RK, SKG => SK2
4225 character(*,SKG) , intent(in) :: array
4226 real(TKR) , intent(out) , contiguous :: rank(:)
4227 procedure(logical(LK)) :: isSorted
4228 end subroutine
4229#endif
4230
4231#if SK1_ENABLED
4232 module subroutine setRankFractionalCusCom_D0_SK1(rank, array, isSorted)
4233#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4234 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D0_SK1
4235#endif
4236 use pm_kind, only: TKR => RK, SKG => SK1
4237 character(*,SKG) , intent(in) :: array
4238 real(TKR) , intent(out) , contiguous :: rank(:)
4239 procedure(logical(LK)) :: isSorted
4240 end subroutine
4241#endif
4242
4243 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4244
4245#if SK5_ENABLED
4246 module subroutine setRankFractionalCusCom_D1_SK5(rank, array, isSorted)
4247#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4248 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_SK5
4249#endif
4250 use pm_kind, only: TKR => RK, SKG => SK5
4251 character(*,SKG) , intent(in) , contiguous :: array(:)
4252 real(TKR) , intent(out) , contiguous :: rank(:)
4253 procedure(logical(LK)) :: isSorted
4254 end subroutine
4255#endif
4256
4257#if SK4_ENABLED
4258 module subroutine setRankFractionalCusCom_D1_SK4(rank, array, isSorted)
4259#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4260 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_SK4
4261#endif
4262 use pm_kind, only: TKR => RK, SKG => SK4
4263 character(*,SKG) , intent(in) , contiguous :: array(:)
4264 real(TKR) , intent(out) , contiguous :: rank(:)
4265 procedure(logical(LK)) :: isSorted
4266 end subroutine
4267#endif
4268
4269#if SK3_ENABLED
4270 module subroutine setRankFractionalCusCom_D1_SK3(rank, array, isSorted)
4271#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4272 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_SK3
4273#endif
4274 use pm_kind, only: TKR => RK, SKG => SK3
4275 character(*,SKG) , intent(in) , contiguous :: array(:)
4276 real(TKR) , intent(out) , contiguous :: rank(:)
4277 procedure(logical(LK)) :: isSorted
4278 end subroutine
4279#endif
4280
4281#if SK2_ENABLED
4282 module subroutine setRankFractionalCusCom_D1_SK2(rank, array, isSorted)
4283#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4284 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_SK2
4285#endif
4286 use pm_kind, only: TKR => RK, SKG => SK2
4287 character(*,SKG) , intent(in) , contiguous :: array(:)
4288 real(TKR) , intent(out) , contiguous :: rank(:)
4289 procedure(logical(LK)) :: isSorted
4290 end subroutine
4291#endif
4292
4293#if SK1_ENABLED
4294 module subroutine setRankFractionalCusCom_D1_SK1(rank, array, isSorted)
4295#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4296 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_SK1
4297#endif
4298 use pm_kind, only: TKR => RK, SKG => SK1
4299 character(*,SKG) , intent(in) , contiguous :: array(:)
4300 real(TKR) , intent(out) , contiguous :: rank(:)
4301 procedure(logical(LK)) :: isSorted
4302 end subroutine
4303#endif
4304
4305 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4306
4307#if IK5_ENABLED
4308 module subroutine setRankFractionalCusCom_D1_IK5(rank, array, isSorted)
4309#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4310 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_IK5
4311#endif
4312 use pm_kind, only: TKR => RK, IKG => IK5
4313 integer(IKG) , intent(in) , contiguous :: array(:)
4314 real(TKR) , intent(out) , contiguous :: rank(:)
4315 procedure(logical(LK)) :: isSorted
4316 end subroutine
4317#endif
4318
4319#if IK4_ENABLED
4320 module subroutine setRankFractionalCusCom_D1_IK4(rank, array, isSorted)
4321#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4322 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_IK4
4323#endif
4324 use pm_kind, only: TKR => RK, IKG => IK4
4325 integer(IKG) , intent(in) , contiguous :: array(:)
4326 real(TKR) , intent(out) , contiguous :: rank(:)
4327 procedure(logical(LK)) :: isSorted
4328 end subroutine
4329#endif
4330
4331#if IK3_ENABLED
4332 module subroutine setRankFractionalCusCom_D1_IK3(rank, array, isSorted)
4333#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4334 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_IK3
4335#endif
4336 use pm_kind, only: TKR => RK, IKG => IK3
4337 integer(IKG) , intent(in) , contiguous :: array(:)
4338 real(TKR) , intent(out) , contiguous :: rank(:)
4339 procedure(logical(LK)) :: isSorted
4340 end subroutine
4341#endif
4342
4343#if IK2_ENABLED
4344 module subroutine setRankFractionalCusCom_D1_IK2(rank, array, isSorted)
4345#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4346 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_IK2
4347#endif
4348 use pm_kind, only: TKR => RK, IKG => IK2
4349 integer(IKG) , intent(in) , contiguous :: array(:)
4350 real(TKR) , intent(out) , contiguous :: rank(:)
4351 procedure(logical(LK)) :: isSorted
4352 end subroutine
4353#endif
4354
4355#if IK1_ENABLED
4356 module subroutine setRankFractionalCusCom_D1_IK1(rank, array, isSorted)
4357#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4358 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_IK1
4359#endif
4360 use pm_kind, only: TKR => RK, IKG => IK1
4361 integer(IKG) , intent(in) , contiguous :: array(:)
4362 real(TKR) , intent(out) , contiguous :: rank(:)
4363 procedure(logical(LK)) :: isSorted
4364 end subroutine
4365#endif
4366
4367 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4368
4369#if LK5_ENABLED
4370 module subroutine setRankFractionalCusCom_D1_LK5(rank, array, isSorted)
4371#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4372 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_LK5
4373#endif
4374 use pm_kind, only: TKR => RK, LKG => LK5
4375 logical(LKG) , intent(in) , contiguous :: array(:)
4376 real(TKR) , intent(out) , contiguous :: rank(:)
4377 procedure(logical(LK)) :: isSorted
4378 end subroutine
4379#endif
4380
4381#if LK4_ENABLED
4382 module subroutine setRankFractionalCusCom_D1_LK4(rank, array, isSorted)
4383#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4384 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_LK4
4385#endif
4386 use pm_kind, only: TKR => RK, LKG => LK4
4387 logical(LKG) , intent(in) , contiguous :: array(:)
4388 real(TKR) , intent(out) , contiguous :: rank(:)
4389 procedure(logical(LK)) :: isSorted
4390 end subroutine
4391#endif
4392
4393#if LK3_ENABLED
4394 module subroutine setRankFractionalCusCom_D1_LK3(rank, array, isSorted)
4395#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4396 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_LK3
4397#endif
4398 use pm_kind, only: TKR => RK, LKG => LK3
4399 logical(LKG) , intent(in) , contiguous :: array(:)
4400 real(TKR) , intent(out) , contiguous :: rank(:)
4401 procedure(logical(LK)) :: isSorted
4402 end subroutine
4403#endif
4404
4405#if LK2_ENABLED
4406 module subroutine setRankFractionalCusCom_D1_LK2(rank, array, isSorted)
4407#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4408 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_LK2
4409#endif
4410 use pm_kind, only: TKR => RK, LKG => LK2
4411 logical(LKG) , intent(in) , contiguous :: array(:)
4412 real(TKR) , intent(out) , contiguous :: rank(:)
4413 procedure(logical(LK)) :: isSorted
4414 end subroutine
4415#endif
4416
4417#if LK1_ENABLED
4418 module subroutine setRankFractionalCusCom_D1_LK1(rank, array, isSorted)
4419#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4420 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_LK1
4421#endif
4422 use pm_kind, only: TKR => RK, LKG => LK1
4423 logical(LKG) , intent(in) , contiguous :: array(:)
4424 real(TKR) , intent(out) , contiguous :: rank(:)
4425 procedure(logical(LK)) :: isSorted
4426 end subroutine
4427#endif
4428
4429 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4430
4431#if CK5_ENABLED
4432 module subroutine setRankFractionalCusCom_D1_CK5(rank, array, isSorted)
4433#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4434 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_CK5
4435#endif
4436 use pm_kind, only: TKR => RK, CKG => CK5
4437 complex(CKG) , intent(in) , contiguous :: array(:)
4438 real(TKR) , intent(out) , contiguous :: rank(:)
4439 procedure(logical(LK)) :: isSorted
4440 end subroutine
4441#endif
4442
4443#if CK4_ENABLED
4444 module subroutine setRankFractionalCusCom_D1_CK4(rank, array, isSorted)
4445#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4446 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_CK4
4447#endif
4448 use pm_kind, only: TKR => RK, CKG => CK4
4449 complex(CKG) , intent(in) , contiguous :: array(:)
4450 real(TKR) , intent(out) , contiguous :: rank(:)
4451 procedure(logical(LK)) :: isSorted
4452 end subroutine
4453#endif
4454
4455#if CK3_ENABLED
4456 module subroutine setRankFractionalCusCom_D1_CK3(rank, array, isSorted)
4457#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4458 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_CK3
4459#endif
4460 use pm_kind, only: TKR => RK, CKG => CK3
4461 complex(CKG) , intent(in) , contiguous :: array(:)
4462 real(TKR) , intent(out) , contiguous :: rank(:)
4463 procedure(logical(LK)) :: isSorted
4464 end subroutine
4465#endif
4466
4467#if CK2_ENABLED
4468 module subroutine setRankFractionalCusCom_D1_CK2(rank, array, isSorted)
4469#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4470 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_CK2
4471#endif
4472 use pm_kind, only: TKR => RK, CKG => CK2
4473 complex(CKG) , intent(in) , contiguous :: array(:)
4474 real(TKR) , intent(out) , contiguous :: rank(:)
4475 procedure(logical(LK)) :: isSorted
4476 end subroutine
4477#endif
4478
4479#if CK1_ENABLED
4480 module subroutine setRankFractionalCusCom_D1_CK1(rank, array, isSorted)
4481#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4482 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_CK1
4483#endif
4484 use pm_kind, only: TKR => RK, CKG => CK1
4485 complex(CKG) , intent(in) , contiguous :: array(:)
4486 real(TKR) , intent(out) , contiguous :: rank(:)
4487 procedure(logical(LK)) :: isSorted
4488 end subroutine
4489#endif
4490
4491 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4492
4493#if RK5_ENABLED
4494 module subroutine setRankFractionalCusCom_D1_RK5(rank, array, isSorted)
4495#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4496 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_RK5
4497#endif
4498 use pm_kind, only: TKR => RK, RKG => RK5
4499 real(RKG) , intent(in) , contiguous :: array(:)
4500 real(TKR) , intent(out) , contiguous :: rank(:)
4501 procedure(logical(LK)) :: isSorted
4502 end subroutine
4503#endif
4504
4505#if RK4_ENABLED
4506 module subroutine setRankFractionalCusCom_D1_RK4(rank, array, isSorted)
4507#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4508 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_RK4
4509#endif
4510 use pm_kind, only: TKR => RK, RKG => RK4
4511 real(RKG) , intent(in) , contiguous :: array(:)
4512 real(TKR) , intent(out) , contiguous :: rank(:)
4513 procedure(logical(LK)) :: isSorted
4514 end subroutine
4515#endif
4516
4517#if RK3_ENABLED
4518 module subroutine setRankFractionalCusCom_D1_RK3(rank, array, isSorted)
4519#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4520 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_RK3
4521#endif
4522 use pm_kind, only: TKR => RK, RKG => RK3
4523 real(RKG) , intent(in) , contiguous :: array(:)
4524 real(TKR) , intent(out) , contiguous :: rank(:)
4525 procedure(logical(LK)) :: isSorted
4526 end subroutine
4527#endif
4528
4529#if RK2_ENABLED
4530 module subroutine setRankFractionalCusCom_D1_RK2(rank, array, isSorted)
4531#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4532 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_RK2
4533#endif
4534 use pm_kind, only: TKR => RK, RKG => RK2
4535 real(RKG) , intent(in) , contiguous :: array(:)
4536 real(TKR) , intent(out) , contiguous :: rank(:)
4537 procedure(logical(LK)) :: isSorted
4538 end subroutine
4539#endif
4540
4541#if RK1_ENABLED
4542 module subroutine setRankFractionalCusCom_D1_RK1(rank, array, isSorted)
4543#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4544 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_RK1
4545#endif
4546 use pm_kind, only: TKR => RK, RKG => RK1
4547 real(RKG) , intent(in) , contiguous :: array(:)
4548 real(TKR) , intent(out) , contiguous :: rank(:)
4549 procedure(logical(LK)) :: isSorted
4550 end subroutine
4551#endif
4552
4553 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4554
4555#if PDT_ENABLED
4556
4557#if SK5_ENABLED
4558 module subroutine setRankFractionalCusCom_D1_PSSK5(rank, array, isSorted)
4559#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4560 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_PSSK5
4561#endif
4562 use pm_kind, only: TKR => RK, SKG => SK5
4563 use pm_container, only: css_pdt
4564 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
4565 real(TKR) , intent(out) , contiguous :: rank(:)
4566 procedure(logical(LK)) :: isSorted
4567 end subroutine
4568#endif
4569
4570#if SK4_ENABLED
4571 module subroutine setRankFractionalCusCom_D1_PSSK4(rank, array, isSorted)
4572#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4573 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_PSSK4
4574#endif
4575 use pm_kind, only: TKR => RK, SKG => SK4
4576 use pm_container, only: css_pdt
4577 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
4578 real(TKR) , intent(out) , contiguous :: rank(:)
4579 procedure(logical(LK)) :: isSorted
4580 end subroutine
4581#endif
4582
4583#if SK3_ENABLED
4584 module subroutine setRankFractionalCusCom_D1_PSSK3(rank, array, isSorted)
4585#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4586 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_PSSK3
4587#endif
4588 use pm_kind, only: TKR => RK, SKG => SK3
4589 use pm_container, only: css_pdt
4590 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
4591 real(TKR) , intent(out) , contiguous :: rank(:)
4592 procedure(logical(LK)) :: isSorted
4593 end subroutine
4594#endif
4595
4596#if SK2_ENABLED
4597 module subroutine setRankFractionalCusCom_D1_PSSK2(rank, array, isSorted)
4598#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4599 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_PSSK2
4600#endif
4601 use pm_kind, only: TKR => RK, SKG => SK2
4602 use pm_container, only: css_pdt
4603 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
4604 real(TKR) , intent(out) , contiguous :: rank(:)
4605 procedure(logical(LK)) :: isSorted
4606 end subroutine
4607#endif
4608
4609#if SK1_ENABLED
4610 module subroutine setRankFractionalCusCom_D1_PSSK1(rank, array, isSorted)
4611#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4612 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_PSSK1
4613#endif
4614 use pm_kind, only: TKR => RK, SKG => SK1
4615 use pm_container, only: css_pdt
4616 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
4617 real(TKR) , intent(out) , contiguous :: rank(:)
4618 procedure(logical(LK)) :: isSorted
4619 end subroutine
4620#endif
4621
4622#endif
4623!PDT_ENABLED
4624
4625 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4626
4627 module subroutine setRankFractionalCusCom_D1_BSSK(rank, array, isSorted)
4628#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4629 !DEC$ ATTRIBUTES DLLEXPORT :: setRankFractionalCusCom_D1_BSSK
4630#endif
4631 use pm_kind, only: TKR => RK, SKG => SK
4632 use pm_container, only: css_type
4633 type(css_type) , intent(in) , contiguous :: array(:)
4634 real(TKR) , intent(out) , contiguous :: rank(:)
4635 procedure(logical(LK)) :: isSorted
4636 end subroutine
4637
4638 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4639
4640 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4641 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4642 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4643
4644 end interface
4645
4646!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4647
4797
4798 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4799 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4800 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4801
4802 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4803
4804#if SK5_ENABLED
4805 module function getRankModifiedDefCom_D0_SK5(array) result(rank)
4806#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4807 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D0_SK5
4808#endif
4809 use pm_kind, only: TKR => IK, SKG => SK5
4810 character(*,SKG) , intent(in) :: array
4811 integer(TKR) :: rank(len(array, IK))
4812 end function
4813#endif
4814
4815#if SK4_ENABLED
4816 module function getRankModifiedDefCom_D0_SK4(array) result(rank)
4817#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4818 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D0_SK4
4819#endif
4820 use pm_kind, only: TKR => IK, SKG => SK4
4821 character(*,SKG) , intent(in) :: array
4822 integer(TKR) :: rank(len(array, IK))
4823 end function
4824#endif
4825
4826#if SK3_ENABLED
4827 module function getRankModifiedDefCom_D0_SK3(array) result(rank)
4828#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4829 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D0_SK3
4830#endif
4831 use pm_kind, only: TKR => IK, SKG => SK3
4832 character(*,SKG) , intent(in) :: array
4833 integer(TKR) :: rank(len(array, IK))
4834 end function
4835#endif
4836
4837#if SK2_ENABLED
4838 module function getRankModifiedDefCom_D0_SK2(array) result(rank)
4839#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4840 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D0_SK2
4841#endif
4842 use pm_kind, only: TKR => IK, SKG => SK2
4843 character(*,SKG) , intent(in) :: array
4844 integer(TKR) :: rank(len(array, IK))
4845 end function
4846#endif
4847
4848#if SK1_ENABLED
4849 module function getRankModifiedDefCom_D0_SK1(array) result(rank)
4850#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4851 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D0_SK1
4852#endif
4853 use pm_kind, only: TKR => IK, SKG => SK1
4854 character(*,SKG) , intent(in) :: array
4855 integer(TKR) :: rank(len(array, IK))
4856 end function
4857#endif
4858
4859 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4860
4861#if SK5_ENABLED
4862 module function getRankModifiedDefCom_D1_SK5(array) result(rank)
4863#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4864 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_SK5
4865#endif
4866 use pm_kind, only: TKR => IK, SKG => SK5
4867 character(*,SKG) , intent(in) , contiguous :: array(:)
4868 integer(TKR) :: rank(size(array, kind = IK))
4869 end function
4870#endif
4871
4872#if SK4_ENABLED
4873 module function getRankModifiedDefCom_D1_SK4(array) result(rank)
4874#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4875 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_SK4
4876#endif
4877 use pm_kind, only: TKR => IK, SKG => SK4
4878 character(*,SKG) , intent(in) , contiguous :: array(:)
4879 integer(TKR) :: rank(size(array, kind = IK))
4880 end function
4881#endif
4882
4883#if SK3_ENABLED
4884 module function getRankModifiedDefCom_D1_SK3(array) result(rank)
4885#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4886 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_SK3
4887#endif
4888 use pm_kind, only: TKR => IK, SKG => SK3
4889 character(*,SKG) , intent(in) , contiguous :: array(:)
4890 integer(TKR) :: rank(size(array, kind = IK))
4891 end function
4892#endif
4893
4894#if SK2_ENABLED
4895 module function getRankModifiedDefCom_D1_SK2(array) result(rank)
4896#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4897 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_SK2
4898#endif
4899 use pm_kind, only: TKR => IK, SKG => SK2
4900 character(*,SKG) , intent(in) , contiguous :: array(:)
4901 integer(TKR) :: rank(size(array, kind = IK))
4902 end function
4903#endif
4904
4905#if SK1_ENABLED
4906 module function getRankModifiedDefCom_D1_SK1(array) result(rank)
4907#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4908 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_SK1
4909#endif
4910 use pm_kind, only: TKR => IK, SKG => SK1
4911 character(*,SKG) , intent(in) , contiguous :: array(:)
4912 integer(TKR) :: rank(size(array, kind = IK))
4913 end function
4914#endif
4915
4916 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4917
4918#if IK5_ENABLED
4919 module function getRankModifiedDefCom_D1_IK5(array) result(rank)
4920#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4921 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_IK5
4922#endif
4923 use pm_kind, only: TKR => IK, IKG => IK5
4924 integer(IKG) , intent(in) , contiguous :: array(:)
4925 integer(TKR) :: rank(size(array, kind = IK))
4926 end function
4927#endif
4928
4929#if IK4_ENABLED
4930 module function getRankModifiedDefCom_D1_IK4(array) result(rank)
4931#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4932 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_IK4
4933#endif
4934 use pm_kind, only: TKR => IK, IKG => IK4
4935 integer(IKG) , intent(in) , contiguous :: array(:)
4936 integer(TKR) :: rank(size(array, kind = IK))
4937 end function
4938#endif
4939
4940#if IK3_ENABLED
4941 module function getRankModifiedDefCom_D1_IK3(array) result(rank)
4942#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4943 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_IK3
4944#endif
4945 use pm_kind, only: TKR => IK, IKG => IK3
4946 integer(IKG) , intent(in) , contiguous :: array(:)
4947 integer(TKR) :: rank(size(array, kind = IK))
4948 end function
4949#endif
4950
4951#if IK2_ENABLED
4952 module function getRankModifiedDefCom_D1_IK2(array) result(rank)
4953#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4954 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_IK2
4955#endif
4956 use pm_kind, only: TKR => IK, IKG => IK2
4957 integer(IKG) , intent(in) , contiguous :: array(:)
4958 integer(TKR) :: rank(size(array, kind = IK))
4959 end function
4960#endif
4961
4962#if IK1_ENABLED
4963 module function getRankModifiedDefCom_D1_IK1(array) result(rank)
4964#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4965 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_IK1
4966#endif
4967 use pm_kind, only: TKR => IK, IKG => IK1
4968 integer(IKG) , intent(in) , contiguous :: array(:)
4969 integer(TKR) :: rank(size(array, kind = IK))
4970 end function
4971#endif
4972
4973 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4974
4975#if LK5_ENABLED
4976 module function getRankModifiedDefCom_D1_LK5(array) result(rank)
4977#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4978 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_LK5
4979#endif
4980 use pm_kind, only: TKR => IK, LKG => LK5
4981 logical(LKG) , intent(in) , contiguous :: array(:)
4982 integer(TKR) :: rank(size(array, kind = IK))
4983 end function
4984#endif
4985
4986#if LK4_ENABLED
4987 module function getRankModifiedDefCom_D1_LK4(array) result(rank)
4988#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4989 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_LK4
4990#endif
4991 use pm_kind, only: TKR => IK, LKG => LK4
4992 logical(LKG) , intent(in) , contiguous :: array(:)
4993 integer(TKR) :: rank(size(array, kind = IK))
4994 end function
4995#endif
4996
4997#if LK3_ENABLED
4998 module function getRankModifiedDefCom_D1_LK3(array) result(rank)
4999#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5000 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_LK3
5001#endif
5002 use pm_kind, only: TKR => IK, LKG => LK3
5003 logical(LKG) , intent(in) , contiguous :: array(:)
5004 integer(TKR) :: rank(size(array, kind = IK))
5005 end function
5006#endif
5007
5008#if LK2_ENABLED
5009 module function getRankModifiedDefCom_D1_LK2(array) result(rank)
5010#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5011 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_LK2
5012#endif
5013 use pm_kind, only: TKR => IK, LKG => LK2
5014 logical(LKG) , intent(in) , contiguous :: array(:)
5015 integer(TKR) :: rank(size(array, kind = IK))
5016 end function
5017#endif
5018
5019#if LK1_ENABLED
5020 module function getRankModifiedDefCom_D1_LK1(array) result(rank)
5021#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5022 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_LK1
5023#endif
5024 use pm_kind, only: TKR => IK, LKG => LK1
5025 logical(LKG) , intent(in) , contiguous :: array(:)
5026 integer(TKR) :: rank(size(array, kind = IK))
5027 end function
5028#endif
5029
5030 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5031
5032#if CK5_ENABLED
5033 module function getRankModifiedDefCom_D1_CK5(array) result(rank)
5034#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5035 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_CK5
5036#endif
5037 use pm_kind, only: TKR => IK, CKG => CK5
5038 complex(CKG) , intent(in) , contiguous :: array(:)
5039 integer(TKR) :: rank(size(array, kind = IK))
5040 end function
5041#endif
5042
5043#if CK4_ENABLED
5044 module function getRankModifiedDefCom_D1_CK4(array) result(rank)
5045#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5046 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_CK4
5047#endif
5048 use pm_kind, only: TKR => IK, CKG => CK4
5049 complex(CKG) , intent(in) , contiguous :: array(:)
5050 integer(TKR) :: rank(size(array, kind = IK))
5051 end function
5052#endif
5053
5054#if CK3_ENABLED
5055 module function getRankModifiedDefCom_D1_CK3(array) result(rank)
5056#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5057 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_CK3
5058#endif
5059 use pm_kind, only: TKR => IK, CKG => CK3
5060 complex(CKG) , intent(in) , contiguous :: array(:)
5061 integer(TKR) :: rank(size(array, kind = IK))
5062 end function
5063#endif
5064
5065#if CK2_ENABLED
5066 module function getRankModifiedDefCom_D1_CK2(array) result(rank)
5067#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5068 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_CK2
5069#endif
5070 use pm_kind, only: TKR => IK, CKG => CK2
5071 complex(CKG) , intent(in) , contiguous :: array(:)
5072 integer(TKR) :: rank(size(array, kind = IK))
5073 end function
5074#endif
5075
5076#if CK1_ENABLED
5077 module function getRankModifiedDefCom_D1_CK1(array) result(rank)
5078#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5079 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_CK1
5080#endif
5081 use pm_kind, only: TKR => IK, CKG => CK1
5082 complex(CKG) , intent(in) , contiguous :: array(:)
5083 integer(TKR) :: rank(size(array, kind = IK))
5084 end function
5085#endif
5086
5087 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5088
5089#if RK5_ENABLED
5090 module function getRankModifiedDefCom_D1_RK5(array) result(rank)
5091#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5092 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_RK5
5093#endif
5094 use pm_kind, only: TKR => IK, RKG => RK5
5095 real(RKG) , intent(in) , contiguous :: array(:)
5096 integer(TKR) :: rank(size(array, kind = IK))
5097 end function
5098#endif
5099
5100#if RK4_ENABLED
5101 module function getRankModifiedDefCom_D1_RK4(array) result(rank)
5102#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5103 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_RK4
5104#endif
5105 use pm_kind, only: TKR => IK, RKG => RK4
5106 real(RKG) , intent(in) , contiguous :: array(:)
5107 integer(TKR) :: rank(size(array, kind = IK))
5108 end function
5109#endif
5110
5111#if RK3_ENABLED
5112 module function getRankModifiedDefCom_D1_RK3(array) result(rank)
5113#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5114 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_RK3
5115#endif
5116 use pm_kind, only: TKR => IK, RKG => RK3
5117 real(RKG) , intent(in) , contiguous :: array(:)
5118 integer(TKR) :: rank(size(array, kind = IK))
5119 end function
5120#endif
5121
5122#if RK2_ENABLED
5123 module function getRankModifiedDefCom_D1_RK2(array) result(rank)
5124#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5125 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_RK2
5126#endif
5127 use pm_kind, only: TKR => IK, RKG => RK2
5128 real(RKG) , intent(in) , contiguous :: array(:)
5129 integer(TKR) :: rank(size(array, kind = IK))
5130 end function
5131#endif
5132
5133#if RK1_ENABLED
5134 module function getRankModifiedDefCom_D1_RK1(array) result(rank)
5135#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5136 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_RK1
5137#endif
5138 use pm_kind, only: TKR => IK, RKG => RK1
5139 real(RKG) , intent(in) , contiguous :: array(:)
5140 integer(TKR) :: rank(size(array, kind = IK))
5141 end function
5142#endif
5143
5144 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5145
5146#if PDT_ENABLED
5147
5148#if SK5_ENABLED
5149 module function getRankModifiedDefCom_D1_PSSK5(array) result(rank)
5150#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5151 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_PSSK5
5152#endif
5153 use pm_kind, only: TKR => IK, SKG => SK5
5154 use pm_container, only: css_pdt
5155 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
5156 integer(TKR) :: rank(size(array, kind = IK))
5157 end function
5158#endif
5159
5160#if SK4_ENABLED
5161 module function getRankModifiedDefCom_D1_PSSK4(array) result(rank)
5162#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5163 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_PSSK4
5164#endif
5165 use pm_kind, only: TKR => IK, SKG => SK4
5166 use pm_container, only: css_pdt
5167 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
5168 integer(TKR) :: rank(size(array, kind = IK))
5169 end function
5170#endif
5171
5172#if SK3_ENABLED
5173 module function getRankModifiedDefCom_D1_PSSK3(array) result(rank)
5174#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5175 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_PSSK3
5176#endif
5177 use pm_kind, only: TKR => IK, SKG => SK3
5178 use pm_container, only: css_pdt
5179 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
5180 integer(TKR) :: rank(size(array, kind = IK))
5181 end function
5182#endif
5183
5184#if SK2_ENABLED
5185 module function getRankModifiedDefCom_D1_PSSK2(array) result(rank)
5186#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5187 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_PSSK2
5188#endif
5189 use pm_kind, only: TKR => IK, SKG => SK2
5190 use pm_container, only: css_pdt
5191 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
5192 integer(TKR) :: rank(size(array, kind = IK))
5193 end function
5194#endif
5195
5196#if SK1_ENABLED
5197 module function getRankModifiedDefCom_D1_PSSK1(array) result(rank)
5198#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5199 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_PSSK1
5200#endif
5201 use pm_kind, only: TKR => IK, SKG => SK1
5202 use pm_container, only: css_pdt
5203 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
5204 integer(TKR) :: rank(size(array, kind = IK))
5205 end function
5206#endif
5207
5208#endif
5209!PDT_ENABLED
5210
5211 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5212
5213 module function getRankModifiedDefCom_D1_BSSK(array) result(rank)
5214#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5215 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedDefCom_D1_BSSK
5216#endif
5217 use pm_kind, only: TKR => IK, SKG => SK
5218 use pm_container, only: css_type
5219 type(css_type) , intent(in) , contiguous :: array(:)
5220 integer(TKR) :: rank(size(array, kind = IK))
5221 end function
5222
5223 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5224
5225 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5226 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5227 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5228
5229 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5230
5231#if SK5_ENABLED
5232 module function getRankModifiedCusCom_D0_SK5(array, isSorted) result(rank)
5233#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5234 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D0_SK5
5235#endif
5236 use pm_kind, only: TKR => IK, SKG => SK5
5237 character(*,SKG) , intent(in) :: array
5238 procedure(logical(LK)) :: isSorted
5239 integer(TKR) :: rank(len(array, IK))
5240 end function
5241#endif
5242
5243#if SK4_ENABLED
5244 module function getRankModifiedCusCom_D0_SK4(array, isSorted) result(rank)
5245#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5246 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D0_SK4
5247#endif
5248 use pm_kind, only: TKR => IK, SKG => SK4
5249 character(*,SKG) , intent(in) :: array
5250 procedure(logical(LK)) :: isSorted
5251 integer(TKR) :: rank(len(array, IK))
5252 end function
5253#endif
5254
5255#if SK3_ENABLED
5256 module function getRankModifiedCusCom_D0_SK3(array, isSorted) result(rank)
5257#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5258 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D0_SK3
5259#endif
5260 use pm_kind, only: TKR => IK, SKG => SK3
5261 character(*,SKG) , intent(in) :: array
5262 procedure(logical(LK)) :: isSorted
5263 integer(TKR) :: rank(len(array, IK))
5264 end function
5265#endif
5266
5267#if SK2_ENABLED
5268 module function getRankModifiedCusCom_D0_SK2(array, isSorted) result(rank)
5269#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5270 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D0_SK2
5271#endif
5272 use pm_kind, only: TKR => IK, SKG => SK2
5273 character(*,SKG) , intent(in) :: array
5274 procedure(logical(LK)) :: isSorted
5275 integer(TKR) :: rank(len(array, IK))
5276 end function
5277#endif
5278
5279#if SK1_ENABLED
5280 module function getRankModifiedCusCom_D0_SK1(array, isSorted) result(rank)
5281#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5282 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D0_SK1
5283#endif
5284 use pm_kind, only: TKR => IK, SKG => SK1
5285 character(*,SKG) , intent(in) :: array
5286 procedure(logical(LK)) :: isSorted
5287 integer(TKR) :: rank(len(array, IK))
5288 end function
5289#endif
5290
5291 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5292
5293#if SK5_ENABLED
5294 module function getRankModifiedCusCom_D1_SK5(array, isSorted) result(rank)
5295#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5296 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_SK5
5297#endif
5298 use pm_kind, only: TKR => IK, SKG => SK5
5299 character(*,SKG) , intent(in) , contiguous :: array(:)
5300 procedure(logical(LK)) :: isSorted
5301 integer(TKR) :: rank(size(array, kind = IK))
5302 end function
5303#endif
5304
5305#if SK4_ENABLED
5306 module function getRankModifiedCusCom_D1_SK4(array, isSorted) result(rank)
5307#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5308 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_SK4
5309#endif
5310 use pm_kind, only: TKR => IK, SKG => SK4
5311 character(*,SKG) , intent(in) , contiguous :: array(:)
5312 procedure(logical(LK)) :: isSorted
5313 integer(TKR) :: rank(size(array, kind = IK))
5314 end function
5315#endif
5316
5317#if SK3_ENABLED
5318 module function getRankModifiedCusCom_D1_SK3(array, isSorted) result(rank)
5319#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5320 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_SK3
5321#endif
5322 use pm_kind, only: TKR => IK, SKG => SK3
5323 character(*,SKG) , intent(in) , contiguous :: array(:)
5324 procedure(logical(LK)) :: isSorted
5325 integer(TKR) :: rank(size(array, kind = IK))
5326 end function
5327#endif
5328
5329#if SK2_ENABLED
5330 module function getRankModifiedCusCom_D1_SK2(array, isSorted) result(rank)
5331#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5332 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_SK2
5333#endif
5334 use pm_kind, only: TKR => IK, SKG => SK2
5335 character(*,SKG) , intent(in) , contiguous :: array(:)
5336 procedure(logical(LK)) :: isSorted
5337 integer(TKR) :: rank(size(array, kind = IK))
5338 end function
5339#endif
5340
5341#if SK1_ENABLED
5342 module function getRankModifiedCusCom_D1_SK1(array, isSorted) result(rank)
5343#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5344 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_SK1
5345#endif
5346 use pm_kind, only: TKR => IK, SKG => SK1
5347 character(*,SKG) , intent(in) , contiguous :: array(:)
5348 procedure(logical(LK)) :: isSorted
5349 integer(TKR) :: rank(size(array, kind = IK))
5350 end function
5351#endif
5352
5353 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5354
5355#if IK5_ENABLED
5356 module function getRankModifiedCusCom_D1_IK5(array, isSorted) result(rank)
5357#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5358 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_IK5
5359#endif
5360 use pm_kind, only: TKR => IK, IKG => IK5
5361 integer(IKG) , intent(in) , contiguous :: array(:)
5362 procedure(logical(LK)) :: isSorted
5363 integer(TKR) :: rank(size(array, kind = IK))
5364 end function
5365#endif
5366
5367#if IK4_ENABLED
5368 module function getRankModifiedCusCom_D1_IK4(array, isSorted) result(rank)
5369#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5370 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_IK4
5371#endif
5372 use pm_kind, only: TKR => IK, IKG => IK4
5373 integer(IKG) , intent(in) , contiguous :: array(:)
5374 procedure(logical(LK)) :: isSorted
5375 integer(TKR) :: rank(size(array, kind = IK))
5376 end function
5377#endif
5378
5379#if IK3_ENABLED
5380 module function getRankModifiedCusCom_D1_IK3(array, isSorted) result(rank)
5381#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5382 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_IK3
5383#endif
5384 use pm_kind, only: TKR => IK, IKG => IK3
5385 integer(IKG) , intent(in) , contiguous :: array(:)
5386 procedure(logical(LK)) :: isSorted
5387 integer(TKR) :: rank(size(array, kind = IK))
5388 end function
5389#endif
5390
5391#if IK2_ENABLED
5392 module function getRankModifiedCusCom_D1_IK2(array, isSorted) result(rank)
5393#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5394 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_IK2
5395#endif
5396 use pm_kind, only: TKR => IK, IKG => IK2
5397 integer(IKG) , intent(in) , contiguous :: array(:)
5398 procedure(logical(LK)) :: isSorted
5399 integer(TKR) :: rank(size(array, kind = IK))
5400 end function
5401#endif
5402
5403#if IK1_ENABLED
5404 module function getRankModifiedCusCom_D1_IK1(array, isSorted) result(rank)
5405#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5406 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_IK1
5407#endif
5408 use pm_kind, only: TKR => IK, IKG => IK1
5409 integer(IKG) , intent(in) , contiguous :: array(:)
5410 procedure(logical(LK)) :: isSorted
5411 integer(TKR) :: rank(size(array, kind = IK))
5412 end function
5413#endif
5414
5415 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5416
5417#if LK5_ENABLED
5418 module function getRankModifiedCusCom_D1_LK5(array, isSorted) result(rank)
5419#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5420 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_LK5
5421#endif
5422 use pm_kind, only: TKR => IK, LKG => LK5
5423 logical(LKG) , intent(in) , contiguous :: array(:)
5424 procedure(logical(LK)) :: isSorted
5425 integer(TKR) :: rank(size(array, kind = IK))
5426 end function
5427#endif
5428
5429#if LK4_ENABLED
5430 module function getRankModifiedCusCom_D1_LK4(array, isSorted) result(rank)
5431#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5432 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_LK4
5433#endif
5434 use pm_kind, only: TKR => IK, LKG => LK4
5435 logical(LKG) , intent(in) , contiguous :: array(:)
5436 procedure(logical(LK)) :: isSorted
5437 integer(TKR) :: rank(size(array, kind = IK))
5438 end function
5439#endif
5440
5441#if LK3_ENABLED
5442 module function getRankModifiedCusCom_D1_LK3(array, isSorted) result(rank)
5443#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5444 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_LK3
5445#endif
5446 use pm_kind, only: TKR => IK, LKG => LK3
5447 logical(LKG) , intent(in) , contiguous :: array(:)
5448 procedure(logical(LK)) :: isSorted
5449 integer(TKR) :: rank(size(array, kind = IK))
5450 end function
5451#endif
5452
5453#if LK2_ENABLED
5454 module function getRankModifiedCusCom_D1_LK2(array, isSorted) result(rank)
5455#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5456 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_LK2
5457#endif
5458 use pm_kind, only: TKR => IK, LKG => LK2
5459 logical(LKG) , intent(in) , contiguous :: array(:)
5460 procedure(logical(LK)) :: isSorted
5461 integer(TKR) :: rank(size(array, kind = IK))
5462 end function
5463#endif
5464
5465#if LK1_ENABLED
5466 module function getRankModifiedCusCom_D1_LK1(array, isSorted) result(rank)
5467#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5468 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_LK1
5469#endif
5470 use pm_kind, only: TKR => IK, LKG => LK1
5471 logical(LKG) , intent(in) , contiguous :: array(:)
5472 procedure(logical(LK)) :: isSorted
5473 integer(TKR) :: rank(size(array, kind = IK))
5474 end function
5475#endif
5476
5477 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5478
5479#if CK5_ENABLED
5480 module function getRankModifiedCusCom_D1_CK5(array, isSorted) result(rank)
5481#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5482 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_CK5
5483#endif
5484 use pm_kind, only: TKR => IK, CKG => CK5
5485 complex(CKG) , intent(in) , contiguous :: array(:)
5486 procedure(logical(LK)) :: isSorted
5487 integer(TKR) :: rank(size(array, kind = IK))
5488 end function
5489#endif
5490
5491#if CK4_ENABLED
5492 module function getRankModifiedCusCom_D1_CK4(array, isSorted) result(rank)
5493#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5494 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_CK4
5495#endif
5496 use pm_kind, only: TKR => IK, CKG => CK4
5497 complex(CKG) , intent(in) , contiguous :: array(:)
5498 procedure(logical(LK)) :: isSorted
5499 integer(TKR) :: rank(size(array, kind = IK))
5500 end function
5501#endif
5502
5503#if CK3_ENABLED
5504 module function getRankModifiedCusCom_D1_CK3(array, isSorted) result(rank)
5505#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5506 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_CK3
5507#endif
5508 use pm_kind, only: TKR => IK, CKG => CK3
5509 complex(CKG) , intent(in) , contiguous :: array(:)
5510 procedure(logical(LK)) :: isSorted
5511 integer(TKR) :: rank(size(array, kind = IK))
5512 end function
5513#endif
5514
5515#if CK2_ENABLED
5516 module function getRankModifiedCusCom_D1_CK2(array, isSorted) result(rank)
5517#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5518 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_CK2
5519#endif
5520 use pm_kind, only: TKR => IK, CKG => CK2
5521 complex(CKG) , intent(in) , contiguous :: array(:)
5522 procedure(logical(LK)) :: isSorted
5523 integer(TKR) :: rank(size(array, kind = IK))
5524 end function
5525#endif
5526
5527#if CK1_ENABLED
5528 module function getRankModifiedCusCom_D1_CK1(array, isSorted) result(rank)
5529#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5530 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_CK1
5531#endif
5532 use pm_kind, only: TKR => IK, CKG => CK1
5533 complex(CKG) , intent(in) , contiguous :: array(:)
5534 procedure(logical(LK)) :: isSorted
5535 integer(TKR) :: rank(size(array, kind = IK))
5536 end function
5537#endif
5538
5539 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5540
5541#if RK5_ENABLED
5542 module function getRankModifiedCusCom_D1_RK5(array, isSorted) result(rank)
5543#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5544 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_RK5
5545#endif
5546 use pm_kind, only: TKR => IK, RKG => RK5
5547 real(RKG) , intent(in) , contiguous :: array(:)
5548 procedure(logical(LK)) :: isSorted
5549 integer(TKR) :: rank(size(array, kind = IK))
5550 end function
5551#endif
5552
5553#if RK4_ENABLED
5554 module function getRankModifiedCusCom_D1_RK4(array, isSorted) result(rank)
5555#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5556 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_RK4
5557#endif
5558 use pm_kind, only: TKR => IK, RKG => RK4
5559 real(RKG) , intent(in) , contiguous :: array(:)
5560 procedure(logical(LK)) :: isSorted
5561 integer(TKR) :: rank(size(array, kind = IK))
5562 end function
5563#endif
5564
5565#if RK3_ENABLED
5566 module function getRankModifiedCusCom_D1_RK3(array, isSorted) result(rank)
5567#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5568 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_RK3
5569#endif
5570 use pm_kind, only: TKR => IK, RKG => RK3
5571 real(RKG) , intent(in) , contiguous :: array(:)
5572 procedure(logical(LK)) :: isSorted
5573 integer(TKR) :: rank(size(array, kind = IK))
5574 end function
5575#endif
5576
5577#if RK2_ENABLED
5578 module function getRankModifiedCusCom_D1_RK2(array, isSorted) result(rank)
5579#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5580 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_RK2
5581#endif
5582 use pm_kind, only: TKR => IK, RKG => RK2
5583 real(RKG) , intent(in) , contiguous :: array(:)
5584 procedure(logical(LK)) :: isSorted
5585 integer(TKR) :: rank(size(array, kind = IK))
5586 end function
5587#endif
5588
5589#if RK1_ENABLED
5590 module function getRankModifiedCusCom_D1_RK1(array, isSorted) result(rank)
5591#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5592 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_RK1
5593#endif
5594 use pm_kind, only: TKR => IK, RKG => RK1
5595 real(RKG) , intent(in) , contiguous :: array(:)
5596 procedure(logical(LK)) :: isSorted
5597 integer(TKR) :: rank(size(array, kind = IK))
5598 end function
5599#endif
5600
5601 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5602
5603#if PDT_ENABLED
5604
5605#if SK5_ENABLED
5606 module function getRankModifiedCusCom_D1_PSSK5(array, isSorted) result(rank)
5607#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5608 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_PSSK5
5609#endif
5610 use pm_kind, only: TKR => IK, SKG => SK5
5611 use pm_container, only: css_pdt
5612 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
5613 procedure(logical(LK)) :: isSorted
5614 integer(TKR) :: rank(size(array, kind = IK))
5615 end function
5616#endif
5617
5618#if SK4_ENABLED
5619 module function getRankModifiedCusCom_D1_PSSK4(array, isSorted) result(rank)
5620#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5621 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_PSSK4
5622#endif
5623 use pm_kind, only: TKR => IK, SKG => SK4
5624 use pm_container, only: css_pdt
5625 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
5626 procedure(logical(LK)) :: isSorted
5627 integer(TKR) :: rank(size(array, kind = IK))
5628 end function
5629#endif
5630
5631#if SK3_ENABLED
5632 module function getRankModifiedCusCom_D1_PSSK3(array, isSorted) result(rank)
5633#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5634 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_PSSK3
5635#endif
5636 use pm_kind, only: TKR => IK, SKG => SK3
5637 use pm_container, only: css_pdt
5638 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
5639 procedure(logical(LK)) :: isSorted
5640 integer(TKR) :: rank(size(array, kind = IK))
5641 end function
5642#endif
5643
5644#if SK2_ENABLED
5645 module function getRankModifiedCusCom_D1_PSSK2(array, isSorted) result(rank)
5646#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5647 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_PSSK2
5648#endif
5649 use pm_kind, only: TKR => IK, SKG => SK2
5650 use pm_container, only: css_pdt
5651 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
5652 procedure(logical(LK)) :: isSorted
5653 integer(TKR) :: rank(size(array, kind = IK))
5654 end function
5655#endif
5656
5657#if SK1_ENABLED
5658 module function getRankModifiedCusCom_D1_PSSK1(array, isSorted) result(rank)
5659#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5660 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_PSSK1
5661#endif
5662 use pm_kind, only: TKR => IK, SKG => SK1
5663 use pm_container, only: css_pdt
5664 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
5665 integer(TKR) :: rank(size(array, kind = IK))
5666 procedure(logical(LK)) :: isSorted
5667 end function
5668#endif
5669
5670#endif
5671!PDT_ENABLED
5672
5673 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5674
5675 module function getRankModifiedCusCom_D1_BSSK(array, isSorted) result(rank)
5676#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5677 !DEC$ ATTRIBUTES DLLEXPORT :: getRankModifiedCusCom_D1_BSSK
5678#endif
5679 use pm_kind, only: TKR => IK, SKG => SK
5680 use pm_container, only: css_type
5681 type(css_type) , intent(in) , contiguous :: array(:)
5682 procedure(logical(LK)) :: isSorted
5683 integer(TKR) :: rank(size(array, kind = IK))
5684 end function
5685
5686 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5687
5688 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5689 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5690 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5691
5692 end interface
5693
5694!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5695
5839
5840 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5841 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5842 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5843
5844 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5845
5846#if SK5_ENABLED
5847 PURE module subroutine setRankModifiedDefCom_D0_SK5(rank, array)
5848#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5849 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D0_SK5
5850#endif
5851 use pm_kind, only: TKR => IK, SKG => SK5
5852 character(*,SKG) , intent(in) :: array
5853 integer(TKR) , intent(out) , contiguous :: rank(:)
5854 end subroutine
5855#endif
5856
5857#if SK4_ENABLED
5858 PURE module subroutine setRankModifiedDefCom_D0_SK4(rank, array)
5859#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5860 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D0_SK4
5861#endif
5862 use pm_kind, only: TKR => IK, SKG => SK4
5863 character(*,SKG) , intent(in) :: array
5864 integer(TKR) , intent(out) , contiguous :: rank(:)
5865 end subroutine
5866#endif
5867
5868#if SK3_ENABLED
5869 PURE module subroutine setRankModifiedDefCom_D0_SK3(rank, array)
5870#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5871 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D0_SK3
5872#endif
5873 use pm_kind, only: TKR => IK, SKG => SK3
5874 character(*,SKG) , intent(in) :: array
5875 integer(TKR) , intent(out) , contiguous :: rank(:)
5876 end subroutine
5877#endif
5878
5879#if SK2_ENABLED
5880 PURE module subroutine setRankModifiedDefCom_D0_SK2(rank, array)
5881#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5882 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D0_SK2
5883#endif
5884 use pm_kind, only: TKR => IK, SKG => SK2
5885 character(*,SKG) , intent(in) :: array
5886 integer(TKR) , intent(out) , contiguous :: rank(:)
5887 end subroutine
5888#endif
5889
5890#if SK1_ENABLED
5891 PURE module subroutine setRankModifiedDefCom_D0_SK1(rank, array)
5892#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5893 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D0_SK1
5894#endif
5895 use pm_kind, only: TKR => IK, SKG => SK1
5896 character(*,SKG) , intent(in) :: array
5897 integer(TKR) , intent(out) , contiguous :: rank(:)
5898 end subroutine
5899#endif
5900
5901 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5902
5903#if SK5_ENABLED
5904 PURE module subroutine setRankModifiedDefCom_D1_SK5(rank, array)
5905#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5906 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_SK5
5907#endif
5908 use pm_kind, only: TKR => IK, SKG => SK5
5909 character(*,SKG) , intent(in) , contiguous :: array(:)
5910 integer(TKR) , intent(out) , contiguous :: rank(:)
5911 end subroutine
5912#endif
5913
5914#if SK4_ENABLED
5915 PURE module subroutine setRankModifiedDefCom_D1_SK4(rank, array)
5916#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5917 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_SK4
5918#endif
5919 use pm_kind, only: TKR => IK, SKG => SK4
5920 character(*,SKG) , intent(in) , contiguous :: array(:)
5921 integer(TKR) , intent(out) , contiguous :: rank(:)
5922 end subroutine
5923#endif
5924
5925#if SK3_ENABLED
5926 PURE module subroutine setRankModifiedDefCom_D1_SK3(rank, array)
5927#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5928 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_SK3
5929#endif
5930 use pm_kind, only: TKR => IK, SKG => SK3
5931 character(*,SKG) , intent(in) , contiguous :: array(:)
5932 integer(TKR) , intent(out) , contiguous :: rank(:)
5933 end subroutine
5934#endif
5935
5936#if SK2_ENABLED
5937 PURE module subroutine setRankModifiedDefCom_D1_SK2(rank, array)
5938#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5939 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_SK2
5940#endif
5941 use pm_kind, only: TKR => IK, SKG => SK2
5942 character(*,SKG) , intent(in) , contiguous :: array(:)
5943 integer(TKR) , intent(out) , contiguous :: rank(:)
5944 end subroutine
5945#endif
5946
5947#if SK1_ENABLED
5948 PURE module subroutine setRankModifiedDefCom_D1_SK1(rank, array)
5949#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5950 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_SK1
5951#endif
5952 use pm_kind, only: TKR => IK, SKG => SK1
5953 character(*,SKG) , intent(in) , contiguous :: array(:)
5954 integer(TKR) , intent(out) , contiguous :: rank(:)
5955 end subroutine
5956#endif
5957
5958 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5959
5960#if IK5_ENABLED
5961 PURE module subroutine setRankModifiedDefCom_D1_IK5(rank, array)
5962#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5963 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_IK5
5964#endif
5965 use pm_kind, only: TKR => IK, IKG => IK5
5966 integer(IKG) , intent(in) , contiguous :: array(:)
5967 integer(TKR) , intent(out) , contiguous :: rank(:)
5968 end subroutine
5969#endif
5970
5971#if IK4_ENABLED
5972 PURE module subroutine setRankModifiedDefCom_D1_IK4(rank, array)
5973#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5974 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_IK4
5975#endif
5976 use pm_kind, only: TKR => IK, IKG => IK4
5977 integer(IKG) , intent(in) , contiguous :: array(:)
5978 integer(TKR) , intent(out) , contiguous :: rank(:)
5979 end subroutine
5980#endif
5981
5982#if IK3_ENABLED
5983 PURE module subroutine setRankModifiedDefCom_D1_IK3(rank, array)
5984#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5985 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_IK3
5986#endif
5987 use pm_kind, only: TKR => IK, IKG => IK3
5988 integer(IKG) , intent(in) , contiguous :: array(:)
5989 integer(TKR) , intent(out) , contiguous :: rank(:)
5990 end subroutine
5991#endif
5992
5993#if IK2_ENABLED
5994 PURE module subroutine setRankModifiedDefCom_D1_IK2(rank, array)
5995#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5996 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_IK2
5997#endif
5998 use pm_kind, only: TKR => IK, IKG => IK2
5999 integer(IKG) , intent(in) , contiguous :: array(:)
6000 integer(TKR) , intent(out) , contiguous :: rank(:)
6001 end subroutine
6002#endif
6003
6004#if IK1_ENABLED
6005 PURE module subroutine setRankModifiedDefCom_D1_IK1(rank, array)
6006#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6007 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_IK1
6008#endif
6009 use pm_kind, only: TKR => IK, IKG => IK1
6010 integer(IKG) , intent(in) , contiguous :: array(:)
6011 integer(TKR) , intent(out) , contiguous :: rank(:)
6012 end subroutine
6013#endif
6014
6015 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6016
6017#if LK5_ENABLED
6018 PURE module subroutine setRankModifiedDefCom_D1_LK5(rank, array)
6019#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6020 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_LK5
6021#endif
6022 use pm_kind, only: TKR => IK, LKG => LK5
6023 logical(LKG) , intent(in) , contiguous :: array(:)
6024 integer(TKR) , intent(out) , contiguous :: rank(:)
6025 end subroutine
6026#endif
6027
6028#if LK4_ENABLED
6029 PURE module subroutine setRankModifiedDefCom_D1_LK4(rank, array)
6030#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6031 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_LK4
6032#endif
6033 use pm_kind, only: TKR => IK, LKG => LK4
6034 logical(LKG) , intent(in) , contiguous :: array(:)
6035 integer(TKR) , intent(out) , contiguous :: rank(:)
6036 end subroutine
6037#endif
6038
6039#if LK3_ENABLED
6040 PURE module subroutine setRankModifiedDefCom_D1_LK3(rank, array)
6041#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6042 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_LK3
6043#endif
6044 use pm_kind, only: TKR => IK, LKG => LK3
6045 logical(LKG) , intent(in) , contiguous :: array(:)
6046 integer(TKR) , intent(out) , contiguous :: rank(:)
6047 end subroutine
6048#endif
6049
6050#if LK2_ENABLED
6051 PURE module subroutine setRankModifiedDefCom_D1_LK2(rank, array)
6052#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6053 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_LK2
6054#endif
6055 use pm_kind, only: TKR => IK, LKG => LK2
6056 logical(LKG) , intent(in) , contiguous :: array(:)
6057 integer(TKR) , intent(out) , contiguous :: rank(:)
6058 end subroutine
6059#endif
6060
6061#if LK1_ENABLED
6062 PURE module subroutine setRankModifiedDefCom_D1_LK1(rank, array)
6063#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6064 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_LK1
6065#endif
6066 use pm_kind, only: TKR => IK, LKG => LK1
6067 logical(LKG) , intent(in) , contiguous :: array(:)
6068 integer(TKR) , intent(out) , contiguous :: rank(:)
6069 end subroutine
6070#endif
6071
6072 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6073
6074#if CK5_ENABLED
6075 PURE module subroutine setRankModifiedDefCom_D1_CK5(rank, array)
6076#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6077 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_CK5
6078#endif
6079 use pm_kind, only: TKR => IK, CKG => CK5
6080 complex(CKG) , intent(in) , contiguous :: array(:)
6081 integer(TKR) , intent(out) , contiguous :: rank(:)
6082 end subroutine
6083#endif
6084
6085#if CK4_ENABLED
6086 PURE module subroutine setRankModifiedDefCom_D1_CK4(rank, array)
6087#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6088 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_CK4
6089#endif
6090 use pm_kind, only: TKR => IK, CKG => CK4
6091 complex(CKG) , intent(in) , contiguous :: array(:)
6092 integer(TKR) , intent(out) , contiguous :: rank(:)
6093 end subroutine
6094#endif
6095
6096#if CK3_ENABLED
6097 PURE module subroutine setRankModifiedDefCom_D1_CK3(rank, array)
6098#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6099 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_CK3
6100#endif
6101 use pm_kind, only: TKR => IK, CKG => CK3
6102 complex(CKG) , intent(in) , contiguous :: array(:)
6103 integer(TKR) , intent(out) , contiguous :: rank(:)
6104 end subroutine
6105#endif
6106
6107#if CK2_ENABLED
6108 PURE module subroutine setRankModifiedDefCom_D1_CK2(rank, array)
6109#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6110 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_CK2
6111#endif
6112 use pm_kind, only: TKR => IK, CKG => CK2
6113 complex(CKG) , intent(in) , contiguous :: array(:)
6114 integer(TKR) , intent(out) , contiguous :: rank(:)
6115 end subroutine
6116#endif
6117
6118#if CK1_ENABLED
6119 PURE module subroutine setRankModifiedDefCom_D1_CK1(rank, array)
6120#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6121 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_CK1
6122#endif
6123 use pm_kind, only: TKR => IK, CKG => CK1
6124 complex(CKG) , intent(in) , contiguous :: array(:)
6125 integer(TKR) , intent(out) , contiguous :: rank(:)
6126 end subroutine
6127#endif
6128
6129 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6130
6131#if RK5_ENABLED
6132 PURE module subroutine setRankModifiedDefCom_D1_RK5(rank, array)
6133#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6134 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_RK5
6135#endif
6136 use pm_kind, only: TKR => IK, RKG => RK5
6137 real(RKG) , intent(in) , contiguous :: array(:)
6138 integer(TKR) , intent(out) , contiguous :: rank(:)
6139 end subroutine
6140#endif
6141
6142#if RK4_ENABLED
6143 PURE module subroutine setRankModifiedDefCom_D1_RK4(rank, array)
6144#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6145 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_RK4
6146#endif
6147 use pm_kind, only: TKR => IK, RKG => RK4
6148 real(RKG) , intent(in) , contiguous :: array(:)
6149 integer(TKR) , intent(out) , contiguous :: rank(:)
6150 end subroutine
6151#endif
6152
6153#if RK3_ENABLED
6154 PURE module subroutine setRankModifiedDefCom_D1_RK3(rank, array)
6155#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6156 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_RK3
6157#endif
6158 use pm_kind, only: TKR => IK, RKG => RK3
6159 real(RKG) , intent(in) , contiguous :: array(:)
6160 integer(TKR) , intent(out) , contiguous :: rank(:)
6161 end subroutine
6162#endif
6163
6164#if RK2_ENABLED
6165 PURE module subroutine setRankModifiedDefCom_D1_RK2(rank, array)
6166#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6167 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_RK2
6168#endif
6169 use pm_kind, only: TKR => IK, RKG => RK2
6170 real(RKG) , intent(in) , contiguous :: array(:)
6171 integer(TKR) , intent(out) , contiguous :: rank(:)
6172 end subroutine
6173#endif
6174
6175#if RK1_ENABLED
6176 PURE module subroutine setRankModifiedDefCom_D1_RK1(rank, array)
6177#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6178 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_RK1
6179#endif
6180 use pm_kind, only: TKR => IK, RKG => RK1
6181 real(RKG) , intent(in) , contiguous :: array(:)
6182 integer(TKR) , intent(out) , contiguous :: rank(:)
6183 end subroutine
6184#endif
6185
6186 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6187
6188#if PDT_ENABLED
6189
6190#if SK5_ENABLED
6191 PURE module subroutine setRankModifiedDefCom_D1_PSSK5(rank, array)
6192#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6193 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_PSSK5
6194#endif
6195 use pm_kind, only: TKR => IK, SKG => SK5
6196 use pm_container, only: css_pdt
6197 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
6198 integer(TKR) , intent(out) , contiguous :: rank(:)
6199 end subroutine
6200#endif
6201
6202#if SK4_ENABLED
6203 PURE module subroutine setRankModifiedDefCom_D1_PSSK4(rank, array)
6204#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6205 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_PSSK4
6206#endif
6207 use pm_kind, only: TKR => IK, SKG => SK4
6208 use pm_container, only: css_pdt
6209 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
6210 integer(TKR) , intent(out) , contiguous :: rank(:)
6211 end subroutine
6212#endif
6213
6214#if SK3_ENABLED
6215 PURE module subroutine setRankModifiedDefCom_D1_PSSK3(rank, array)
6216#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6217 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_PSSK3
6218#endif
6219 use pm_kind, only: TKR => IK, SKG => SK3
6220 use pm_container, only: css_pdt
6221 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
6222 integer(TKR) , intent(out) , contiguous :: rank(:)
6223 end subroutine
6224#endif
6225
6226#if SK2_ENABLED
6227 PURE module subroutine setRankModifiedDefCom_D1_PSSK2(rank, array)
6228#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6229 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_PSSK2
6230#endif
6231 use pm_kind, only: TKR => IK, SKG => SK2
6232 use pm_container, only: css_pdt
6233 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
6234 integer(TKR) , intent(out) , contiguous :: rank(:)
6235 end subroutine
6236#endif
6237
6238#if SK1_ENABLED
6239 PURE module subroutine setRankModifiedDefCom_D1_PSSK1(rank, array)
6240#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6241 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_PSSK1
6242#endif
6243 use pm_kind, only: TKR => IK, SKG => SK1
6244 use pm_container, only: css_pdt
6245 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
6246 integer(TKR) , intent(out) , contiguous :: rank(:)
6247 end subroutine
6248#endif
6249
6250#endif
6251!PDT_ENABLED
6252
6253 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6254
6255 PURE module subroutine setRankModifiedDefCom_D1_BSSK(rank, array)
6256#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6257 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedDefCom_D1_BSSK
6258#endif
6259 use pm_kind, only: TKR => IK, SKG => SK
6260 use pm_container, only: css_type
6261 type(css_type) , intent(in) , contiguous :: array(:)
6262 integer(TKR) , intent(out) , contiguous :: rank(:)
6263 end subroutine
6264
6265 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6266
6267 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6268 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6269 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6270
6271 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6272
6273#if SK5_ENABLED
6274 module subroutine setRankModifiedCusCom_D0_SK5(rank, array, isSorted)
6275#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6276 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D0_SK5
6277#endif
6278 use pm_kind, only: TKR => IK, SKG => SK5
6279 character(*,SKG) , intent(in) :: array
6280 integer(TKR) , intent(out) , contiguous :: rank(:)
6281 procedure(logical(LK)) :: isSorted
6282 end subroutine
6283#endif
6284
6285#if SK4_ENABLED
6286 module subroutine setRankModifiedCusCom_D0_SK4(rank, array, isSorted)
6287#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6288 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D0_SK4
6289#endif
6290 use pm_kind, only: TKR => IK, SKG => SK4
6291 character(*,SKG) , intent(in) :: array
6292 integer(TKR) , intent(out) , contiguous :: rank(:)
6293 procedure(logical(LK)) :: isSorted
6294 end subroutine
6295#endif
6296
6297#if SK3_ENABLED
6298 module subroutine setRankModifiedCusCom_D0_SK3(rank, array, isSorted)
6299#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6300 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D0_SK3
6301#endif
6302 use pm_kind, only: TKR => IK, SKG => SK3
6303 character(*,SKG) , intent(in) :: array
6304 integer(TKR) , intent(out) , contiguous :: rank(:)
6305 procedure(logical(LK)) :: isSorted
6306 end subroutine
6307#endif
6308
6309#if SK2_ENABLED
6310 module subroutine setRankModifiedCusCom_D0_SK2(rank, array, isSorted)
6311#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6312 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D0_SK2
6313#endif
6314 use pm_kind, only: TKR => IK, SKG => SK2
6315 character(*,SKG) , intent(in) :: array
6316 integer(TKR) , intent(out) , contiguous :: rank(:)
6317 procedure(logical(LK)) :: isSorted
6318 end subroutine
6319#endif
6320
6321#if SK1_ENABLED
6322 module subroutine setRankModifiedCusCom_D0_SK1(rank, array, isSorted)
6323#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6324 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D0_SK1
6325#endif
6326 use pm_kind, only: TKR => IK, SKG => SK1
6327 character(*,SKG) , intent(in) :: array
6328 integer(TKR) , intent(out) , contiguous :: rank(:)
6329 procedure(logical(LK)) :: isSorted
6330 end subroutine
6331#endif
6332
6333 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6334
6335#if SK5_ENABLED
6336 module subroutine setRankModifiedCusCom_D1_SK5(rank, array, isSorted)
6337#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6338 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_SK5
6339#endif
6340 use pm_kind, only: TKR => IK, SKG => SK5
6341 character(*,SKG) , intent(in) , contiguous :: array(:)
6342 integer(TKR) , intent(out) , contiguous :: rank(:)
6343 procedure(logical(LK)) :: isSorted
6344 end subroutine
6345#endif
6346
6347#if SK4_ENABLED
6348 module subroutine setRankModifiedCusCom_D1_SK4(rank, array, isSorted)
6349#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6350 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_SK4
6351#endif
6352 use pm_kind, only: TKR => IK, SKG => SK4
6353 character(*,SKG) , intent(in) , contiguous :: array(:)
6354 integer(TKR) , intent(out) , contiguous :: rank(:)
6355 procedure(logical(LK)) :: isSorted
6356 end subroutine
6357#endif
6358
6359#if SK3_ENABLED
6360 module subroutine setRankModifiedCusCom_D1_SK3(rank, array, isSorted)
6361#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6362 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_SK3
6363#endif
6364 use pm_kind, only: TKR => IK, SKG => SK3
6365 character(*,SKG) , intent(in) , contiguous :: array(:)
6366 integer(TKR) , intent(out) , contiguous :: rank(:)
6367 procedure(logical(LK)) :: isSorted
6368 end subroutine
6369#endif
6370
6371#if SK2_ENABLED
6372 module subroutine setRankModifiedCusCom_D1_SK2(rank, array, isSorted)
6373#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6374 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_SK2
6375#endif
6376 use pm_kind, only: TKR => IK, SKG => SK2
6377 character(*,SKG) , intent(in) , contiguous :: array(:)
6378 integer(TKR) , intent(out) , contiguous :: rank(:)
6379 procedure(logical(LK)) :: isSorted
6380 end subroutine
6381#endif
6382
6383#if SK1_ENABLED
6384 module subroutine setRankModifiedCusCom_D1_SK1(rank, array, isSorted)
6385#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6386 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_SK1
6387#endif
6388 use pm_kind, only: TKR => IK, SKG => SK1
6389 character(*,SKG) , intent(in) , contiguous :: array(:)
6390 integer(TKR) , intent(out) , contiguous :: rank(:)
6391 procedure(logical(LK)) :: isSorted
6392 end subroutine
6393#endif
6394
6395 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6396
6397#if IK5_ENABLED
6398 module subroutine setRankModifiedCusCom_D1_IK5(rank, array, isSorted)
6399#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6400 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_IK5
6401#endif
6402 use pm_kind, only: TKR => IK, IKG => IK5
6403 integer(IKG) , intent(in) , contiguous :: array(:)
6404 integer(TKR) , intent(out) , contiguous :: rank(:)
6405 procedure(logical(LK)) :: isSorted
6406 end subroutine
6407#endif
6408
6409#if IK4_ENABLED
6410 module subroutine setRankModifiedCusCom_D1_IK4(rank, array, isSorted)
6411#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6412 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_IK4
6413#endif
6414 use pm_kind, only: TKR => IK, IKG => IK4
6415 integer(IKG) , intent(in) , contiguous :: array(:)
6416 integer(TKR) , intent(out) , contiguous :: rank(:)
6417 procedure(logical(LK)) :: isSorted
6418 end subroutine
6419#endif
6420
6421#if IK3_ENABLED
6422 module subroutine setRankModifiedCusCom_D1_IK3(rank, array, isSorted)
6423#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6424 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_IK3
6425#endif
6426 use pm_kind, only: TKR => IK, IKG => IK3
6427 integer(IKG) , intent(in) , contiguous :: array(:)
6428 integer(TKR) , intent(out) , contiguous :: rank(:)
6429 procedure(logical(LK)) :: isSorted
6430 end subroutine
6431#endif
6432
6433#if IK2_ENABLED
6434 module subroutine setRankModifiedCusCom_D1_IK2(rank, array, isSorted)
6435#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6436 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_IK2
6437#endif
6438 use pm_kind, only: TKR => IK, IKG => IK2
6439 integer(IKG) , intent(in) , contiguous :: array(:)
6440 integer(TKR) , intent(out) , contiguous :: rank(:)
6441 procedure(logical(LK)) :: isSorted
6442 end subroutine
6443#endif
6444
6445#if IK1_ENABLED
6446 module subroutine setRankModifiedCusCom_D1_IK1(rank, array, isSorted)
6447#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6448 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_IK1
6449#endif
6450 use pm_kind, only: TKR => IK, IKG => IK1
6451 integer(IKG) , intent(in) , contiguous :: array(:)
6452 integer(TKR) , intent(out) , contiguous :: rank(:)
6453 procedure(logical(LK)) :: isSorted
6454 end subroutine
6455#endif
6456
6457 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6458
6459#if LK5_ENABLED
6460 module subroutine setRankModifiedCusCom_D1_LK5(rank, array, isSorted)
6461#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6462 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_LK5
6463#endif
6464 use pm_kind, only: TKR => IK, LKG => LK5
6465 logical(LKG) , intent(in) , contiguous :: array(:)
6466 integer(TKR) , intent(out) , contiguous :: rank(:)
6467 procedure(logical(LK)) :: isSorted
6468 end subroutine
6469#endif
6470
6471#if LK4_ENABLED
6472 module subroutine setRankModifiedCusCom_D1_LK4(rank, array, isSorted)
6473#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6474 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_LK4
6475#endif
6476 use pm_kind, only: TKR => IK, LKG => LK4
6477 logical(LKG) , intent(in) , contiguous :: array(:)
6478 integer(TKR) , intent(out) , contiguous :: rank(:)
6479 procedure(logical(LK)) :: isSorted
6480 end subroutine
6481#endif
6482
6483#if LK3_ENABLED
6484 module subroutine setRankModifiedCusCom_D1_LK3(rank, array, isSorted)
6485#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6486 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_LK3
6487#endif
6488 use pm_kind, only: TKR => IK, LKG => LK3
6489 logical(LKG) , intent(in) , contiguous :: array(:)
6490 integer(TKR) , intent(out) , contiguous :: rank(:)
6491 procedure(logical(LK)) :: isSorted
6492 end subroutine
6493#endif
6494
6495#if LK2_ENABLED
6496 module subroutine setRankModifiedCusCom_D1_LK2(rank, array, isSorted)
6497#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6498 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_LK2
6499#endif
6500 use pm_kind, only: TKR => IK, LKG => LK2
6501 logical(LKG) , intent(in) , contiguous :: array(:)
6502 integer(TKR) , intent(out) , contiguous :: rank(:)
6503 procedure(logical(LK)) :: isSorted
6504 end subroutine
6505#endif
6506
6507#if LK1_ENABLED
6508 module subroutine setRankModifiedCusCom_D1_LK1(rank, array, isSorted)
6509#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6510 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_LK1
6511#endif
6512 use pm_kind, only: TKR => IK, LKG => LK1
6513 logical(LKG) , intent(in) , contiguous :: array(:)
6514 integer(TKR) , intent(out) , contiguous :: rank(:)
6515 procedure(logical(LK)) :: isSorted
6516 end subroutine
6517#endif
6518
6519 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6520
6521#if CK5_ENABLED
6522 module subroutine setRankModifiedCusCom_D1_CK5(rank, array, isSorted)
6523#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6524 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_CK5
6525#endif
6526 use pm_kind, only: TKR => IK, CKG => CK5
6527 complex(CKG) , intent(in) , contiguous :: array(:)
6528 integer(TKR) , intent(out) , contiguous :: rank(:)
6529 procedure(logical(LK)) :: isSorted
6530 end subroutine
6531#endif
6532
6533#if CK4_ENABLED
6534 module subroutine setRankModifiedCusCom_D1_CK4(rank, array, isSorted)
6535#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6536 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_CK4
6537#endif
6538 use pm_kind, only: TKR => IK, CKG => CK4
6539 complex(CKG) , intent(in) , contiguous :: array(:)
6540 integer(TKR) , intent(out) , contiguous :: rank(:)
6541 procedure(logical(LK)) :: isSorted
6542 end subroutine
6543#endif
6544
6545#if CK3_ENABLED
6546 module subroutine setRankModifiedCusCom_D1_CK3(rank, array, isSorted)
6547#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6548 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_CK3
6549#endif
6550 use pm_kind, only: TKR => IK, CKG => CK3
6551 complex(CKG) , intent(in) , contiguous :: array(:)
6552 integer(TKR) , intent(out) , contiguous :: rank(:)
6553 procedure(logical(LK)) :: isSorted
6554 end subroutine
6555#endif
6556
6557#if CK2_ENABLED
6558 module subroutine setRankModifiedCusCom_D1_CK2(rank, array, isSorted)
6559#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6560 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_CK2
6561#endif
6562 use pm_kind, only: TKR => IK, CKG => CK2
6563 complex(CKG) , intent(in) , contiguous :: array(:)
6564 integer(TKR) , intent(out) , contiguous :: rank(:)
6565 procedure(logical(LK)) :: isSorted
6566 end subroutine
6567#endif
6568
6569#if CK1_ENABLED
6570 module subroutine setRankModifiedCusCom_D1_CK1(rank, array, isSorted)
6571#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6572 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_CK1
6573#endif
6574 use pm_kind, only: TKR => IK, CKG => CK1
6575 complex(CKG) , intent(in) , contiguous :: array(:)
6576 integer(TKR) , intent(out) , contiguous :: rank(:)
6577 procedure(logical(LK)) :: isSorted
6578 end subroutine
6579#endif
6580
6581 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6582
6583#if RK5_ENABLED
6584 module subroutine setRankModifiedCusCom_D1_RK5(rank, array, isSorted)
6585#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6586 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_RK5
6587#endif
6588 use pm_kind, only: TKR => IK, RKG => RK5
6589 real(RKG) , intent(in) , contiguous :: array(:)
6590 integer(TKR) , intent(out) , contiguous :: rank(:)
6591 procedure(logical(LK)) :: isSorted
6592 end subroutine
6593#endif
6594
6595#if RK4_ENABLED
6596 module subroutine setRankModifiedCusCom_D1_RK4(rank, array, isSorted)
6597#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6598 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_RK4
6599#endif
6600 use pm_kind, only: TKR => IK, RKG => RK4
6601 real(RKG) , intent(in) , contiguous :: array(:)
6602 integer(TKR) , intent(out) , contiguous :: rank(:)
6603 procedure(logical(LK)) :: isSorted
6604 end subroutine
6605#endif
6606
6607#if RK3_ENABLED
6608 module subroutine setRankModifiedCusCom_D1_RK3(rank, array, isSorted)
6609#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6610 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_RK3
6611#endif
6612 use pm_kind, only: TKR => IK, RKG => RK3
6613 real(RKG) , intent(in) , contiguous :: array(:)
6614 integer(TKR) , intent(out) , contiguous :: rank(:)
6615 procedure(logical(LK)) :: isSorted
6616 end subroutine
6617#endif
6618
6619#if RK2_ENABLED
6620 module subroutine setRankModifiedCusCom_D1_RK2(rank, array, isSorted)
6621#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6622 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_RK2
6623#endif
6624 use pm_kind, only: TKR => IK, RKG => RK2
6625 real(RKG) , intent(in) , contiguous :: array(:)
6626 integer(TKR) , intent(out) , contiguous :: rank(:)
6627 procedure(logical(LK)) :: isSorted
6628 end subroutine
6629#endif
6630
6631#if RK1_ENABLED
6632 module subroutine setRankModifiedCusCom_D1_RK1(rank, array, isSorted)
6633#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6634 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_RK1
6635#endif
6636 use pm_kind, only: TKR => IK, RKG => RK1
6637 real(RKG) , intent(in) , contiguous :: array(:)
6638 integer(TKR) , intent(out) , contiguous :: rank(:)
6639 procedure(logical(LK)) :: isSorted
6640 end subroutine
6641#endif
6642
6643 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6644
6645#if PDT_ENABLED
6646
6647#if SK5_ENABLED
6648 module subroutine setRankModifiedCusCom_D1_PSSK5(rank, array, isSorted)
6649#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6650 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_PSSK5
6651#endif
6652 use pm_kind, only: TKR => IK, SKG => SK5
6653 use pm_container, only: css_pdt
6654 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
6655 integer(TKR) , intent(out) , contiguous :: rank(:)
6656 procedure(logical(LK)) :: isSorted
6657 end subroutine
6658#endif
6659
6660#if SK4_ENABLED
6661 module subroutine setRankModifiedCusCom_D1_PSSK4(rank, array, isSorted)
6662#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6663 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_PSSK4
6664#endif
6665 use pm_kind, only: TKR => IK, SKG => SK4
6666 use pm_container, only: css_pdt
6667 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
6668 integer(TKR) , intent(out) , contiguous :: rank(:)
6669 procedure(logical(LK)) :: isSorted
6670 end subroutine
6671#endif
6672
6673#if SK3_ENABLED
6674 module subroutine setRankModifiedCusCom_D1_PSSK3(rank, array, isSorted)
6675#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6676 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_PSSK3
6677#endif
6678 use pm_kind, only: TKR => IK, SKG => SK3
6679 use pm_container, only: css_pdt
6680 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
6681 integer(TKR) , intent(out) , contiguous :: rank(:)
6682 procedure(logical(LK)) :: isSorted
6683 end subroutine
6684#endif
6685
6686#if SK2_ENABLED
6687 module subroutine setRankModifiedCusCom_D1_PSSK2(rank, array, isSorted)
6688#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6689 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_PSSK2
6690#endif
6691 use pm_kind, only: TKR => IK, SKG => SK2
6692 use pm_container, only: css_pdt
6693 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
6694 integer(TKR) , intent(out) , contiguous :: rank(:)
6695 procedure(logical(LK)) :: isSorted
6696 end subroutine
6697#endif
6698
6699#if SK1_ENABLED
6700 module subroutine setRankModifiedCusCom_D1_PSSK1(rank, array, isSorted)
6701#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6702 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_PSSK1
6703#endif
6704 use pm_kind, only: TKR => IK, SKG => SK1
6705 use pm_container, only: css_pdt
6706 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
6707 integer(TKR) , intent(out) , contiguous :: rank(:)
6708 procedure(logical(LK)) :: isSorted
6709 end subroutine
6710#endif
6711
6712#endif
6713!PDT_ENABLED
6714
6715 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6716
6717 module subroutine setRankModifiedCusCom_D1_BSSK(rank, array, isSorted)
6718#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6719 !DEC$ ATTRIBUTES DLLEXPORT :: setRankModifiedCusCom_D1_BSSK
6720#endif
6721 use pm_kind, only: TKR => IK, SKG => SK
6722 use pm_container, only: css_type
6723 type(css_type) , intent(in) , contiguous :: array(:)
6724 integer(TKR) , intent(out) , contiguous :: rank(:)
6725 procedure(logical(LK)) :: isSorted
6726 end subroutine
6727
6728 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6729
6730 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6731 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6732 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6733
6734 end interface
6735
6736!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6737
6877
6878 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6879 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6880 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6881
6882 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6883
6884#if SK5_ENABLED
6885 module function getRankOrdinalDefCom_D0_SK5(array) result(rank)
6886#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6887 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D0_SK5
6888#endif
6889 use pm_kind, only: TKR => IK, SKG => SK5
6890 character(*,SKG) , intent(in) :: array
6891 integer(TKR) :: rank(len(array, IK))
6892 end function
6893#endif
6894
6895#if SK4_ENABLED
6896 module function getRankOrdinalDefCom_D0_SK4(array) result(rank)
6897#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6898 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D0_SK4
6899#endif
6900 use pm_kind, only: TKR => IK, SKG => SK4
6901 character(*,SKG) , intent(in) :: array
6902 integer(TKR) :: rank(len(array, IK))
6903 end function
6904#endif
6905
6906#if SK3_ENABLED
6907 module function getRankOrdinalDefCom_D0_SK3(array) result(rank)
6908#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6909 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D0_SK3
6910#endif
6911 use pm_kind, only: TKR => IK, SKG => SK3
6912 character(*,SKG) , intent(in) :: array
6913 integer(TKR) :: rank(len(array, IK))
6914 end function
6915#endif
6916
6917#if SK2_ENABLED
6918 module function getRankOrdinalDefCom_D0_SK2(array) result(rank)
6919#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6920 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D0_SK2
6921#endif
6922 use pm_kind, only: TKR => IK, SKG => SK2
6923 character(*,SKG) , intent(in) :: array
6924 integer(TKR) :: rank(len(array, IK))
6925 end function
6926#endif
6927
6928#if SK1_ENABLED
6929 module function getRankOrdinalDefCom_D0_SK1(array) result(rank)
6930#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6931 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D0_SK1
6932#endif
6933 use pm_kind, only: TKR => IK, SKG => SK1
6934 character(*,SKG) , intent(in) :: array
6935 integer(TKR) :: rank(len(array, IK))
6936 end function
6937#endif
6938
6939 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6940
6941#if SK5_ENABLED
6942 module function getRankOrdinalDefCom_D1_SK5(array) result(rank)
6943#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6944 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_SK5
6945#endif
6946 use pm_kind, only: TKR => IK, SKG => SK5
6947 character(*,SKG) , intent(in) , contiguous :: array(:)
6948 integer(TKR) :: rank(size(array, kind = IK))
6949 end function
6950#endif
6951
6952#if SK4_ENABLED
6953 module function getRankOrdinalDefCom_D1_SK4(array) result(rank)
6954#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6955 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_SK4
6956#endif
6957 use pm_kind, only: TKR => IK, SKG => SK4
6958 character(*,SKG) , intent(in) , contiguous :: array(:)
6959 integer(TKR) :: rank(size(array, kind = IK))
6960 end function
6961#endif
6962
6963#if SK3_ENABLED
6964 module function getRankOrdinalDefCom_D1_SK3(array) result(rank)
6965#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6966 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_SK3
6967#endif
6968 use pm_kind, only: TKR => IK, SKG => SK3
6969 character(*,SKG) , intent(in) , contiguous :: array(:)
6970 integer(TKR) :: rank(size(array, kind = IK))
6971 end function
6972#endif
6973
6974#if SK2_ENABLED
6975 module function getRankOrdinalDefCom_D1_SK2(array) result(rank)
6976#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6977 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_SK2
6978#endif
6979 use pm_kind, only: TKR => IK, SKG => SK2
6980 character(*,SKG) , intent(in) , contiguous :: array(:)
6981 integer(TKR) :: rank(size(array, kind = IK))
6982 end function
6983#endif
6984
6985#if SK1_ENABLED
6986 module function getRankOrdinalDefCom_D1_SK1(array) result(rank)
6987#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6988 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_SK1
6989#endif
6990 use pm_kind, only: TKR => IK, SKG => SK1
6991 character(*,SKG) , intent(in) , contiguous :: array(:)
6992 integer(TKR) :: rank(size(array, kind = IK))
6993 end function
6994#endif
6995
6996 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6997
6998#if IK5_ENABLED
6999 module function getRankOrdinalDefCom_D1_IK5(array) result(rank)
7000#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7001 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_IK5
7002#endif
7003 use pm_kind, only: TKR => IK, IKG => IK5
7004 integer(IKG) , intent(in) , contiguous :: array(:)
7005 integer(TKR) :: rank(size(array, kind = IK))
7006 end function
7007#endif
7008
7009#if IK4_ENABLED
7010 module function getRankOrdinalDefCom_D1_IK4(array) result(rank)
7011#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7012 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_IK4
7013#endif
7014 use pm_kind, only: TKR => IK, IKG => IK4
7015 integer(IKG) , intent(in) , contiguous :: array(:)
7016 integer(TKR) :: rank(size(array, kind = IK))
7017 end function
7018#endif
7019
7020#if IK3_ENABLED
7021 module function getRankOrdinalDefCom_D1_IK3(array) result(rank)
7022#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7023 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_IK3
7024#endif
7025 use pm_kind, only: TKR => IK, IKG => IK3
7026 integer(IKG) , intent(in) , contiguous :: array(:)
7027 integer(TKR) :: rank(size(array, kind = IK))
7028 end function
7029#endif
7030
7031#if IK2_ENABLED
7032 module function getRankOrdinalDefCom_D1_IK2(array) result(rank)
7033#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7034 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_IK2
7035#endif
7036 use pm_kind, only: TKR => IK, IKG => IK2
7037 integer(IKG) , intent(in) , contiguous :: array(:)
7038 integer(TKR) :: rank(size(array, kind = IK))
7039 end function
7040#endif
7041
7042#if IK1_ENABLED
7043 module function getRankOrdinalDefCom_D1_IK1(array) result(rank)
7044#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7045 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_IK1
7046#endif
7047 use pm_kind, only: TKR => IK, IKG => IK1
7048 integer(IKG) , intent(in) , contiguous :: array(:)
7049 integer(TKR) :: rank(size(array, kind = IK))
7050 end function
7051#endif
7052
7053 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7054
7055#if LK5_ENABLED
7056 module function getRankOrdinalDefCom_D1_LK5(array) result(rank)
7057#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7058 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_LK5
7059#endif
7060 use pm_kind, only: TKR => IK, LKG => LK5
7061 logical(LKG) , intent(in) , contiguous :: array(:)
7062 integer(TKR) :: rank(size(array, kind = IK))
7063 end function
7064#endif
7065
7066#if LK4_ENABLED
7067 module function getRankOrdinalDefCom_D1_LK4(array) result(rank)
7068#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7069 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_LK4
7070#endif
7071 use pm_kind, only: TKR => IK, LKG => LK4
7072 logical(LKG) , intent(in) , contiguous :: array(:)
7073 integer(TKR) :: rank(size(array, kind = IK))
7074 end function
7075#endif
7076
7077#if LK3_ENABLED
7078 module function getRankOrdinalDefCom_D1_LK3(array) result(rank)
7079#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7080 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_LK3
7081#endif
7082 use pm_kind, only: TKR => IK, LKG => LK3
7083 logical(LKG) , intent(in) , contiguous :: array(:)
7084 integer(TKR) :: rank(size(array, kind = IK))
7085 end function
7086#endif
7087
7088#if LK2_ENABLED
7089 module function getRankOrdinalDefCom_D1_LK2(array) result(rank)
7090#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7091 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_LK2
7092#endif
7093 use pm_kind, only: TKR => IK, LKG => LK2
7094 logical(LKG) , intent(in) , contiguous :: array(:)
7095 integer(TKR) :: rank(size(array, kind = IK))
7096 end function
7097#endif
7098
7099#if LK1_ENABLED
7100 module function getRankOrdinalDefCom_D1_LK1(array) result(rank)
7101#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7102 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_LK1
7103#endif
7104 use pm_kind, only: TKR => IK, LKG => LK1
7105 logical(LKG) , intent(in) , contiguous :: array(:)
7106 integer(TKR) :: rank(size(array, kind = IK))
7107 end function
7108#endif
7109
7110 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7111
7112#if CK5_ENABLED
7113 module function getRankOrdinalDefCom_D1_CK5(array) result(rank)
7114#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7115 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_CK5
7116#endif
7117 use pm_kind, only: TKR => IK, CKG => CK5
7118 complex(CKG) , intent(in) , contiguous :: array(:)
7119 integer(TKR) :: rank(size(array, kind = IK))
7120 end function
7121#endif
7122
7123#if CK4_ENABLED
7124 module function getRankOrdinalDefCom_D1_CK4(array) result(rank)
7125#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7126 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_CK4
7127#endif
7128 use pm_kind, only: TKR => IK, CKG => CK4
7129 complex(CKG) , intent(in) , contiguous :: array(:)
7130 integer(TKR) :: rank(size(array, kind = IK))
7131 end function
7132#endif
7133
7134#if CK3_ENABLED
7135 module function getRankOrdinalDefCom_D1_CK3(array) result(rank)
7136#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7137 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_CK3
7138#endif
7139 use pm_kind, only: TKR => IK, CKG => CK3
7140 complex(CKG) , intent(in) , contiguous :: array(:)
7141 integer(TKR) :: rank(size(array, kind = IK))
7142 end function
7143#endif
7144
7145#if CK2_ENABLED
7146 module function getRankOrdinalDefCom_D1_CK2(array) result(rank)
7147#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7148 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_CK2
7149#endif
7150 use pm_kind, only: TKR => IK, CKG => CK2
7151 complex(CKG) , intent(in) , contiguous :: array(:)
7152 integer(TKR) :: rank(size(array, kind = IK))
7153 end function
7154#endif
7155
7156#if CK1_ENABLED
7157 module function getRankOrdinalDefCom_D1_CK1(array) result(rank)
7158#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7159 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_CK1
7160#endif
7161 use pm_kind, only: TKR => IK, CKG => CK1
7162 complex(CKG) , intent(in) , contiguous :: array(:)
7163 integer(TKR) :: rank(size(array, kind = IK))
7164 end function
7165#endif
7166
7167 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7168
7169#if RK5_ENABLED
7170 module function getRankOrdinalDefCom_D1_RK5(array) result(rank)
7171#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7172 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_RK5
7173#endif
7174 use pm_kind, only: TKR => IK, RKG => RK5
7175 real(RKG) , intent(in) , contiguous :: array(:)
7176 integer(TKR) :: rank(size(array, kind = IK))
7177 end function
7178#endif
7179
7180#if RK4_ENABLED
7181 module function getRankOrdinalDefCom_D1_RK4(array) result(rank)
7182#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7183 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_RK4
7184#endif
7185 use pm_kind, only: TKR => IK, RKG => RK4
7186 real(RKG) , intent(in) , contiguous :: array(:)
7187 integer(TKR) :: rank(size(array, kind = IK))
7188 end function
7189#endif
7190
7191#if RK3_ENABLED
7192 module function getRankOrdinalDefCom_D1_RK3(array) result(rank)
7193#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7194 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_RK3
7195#endif
7196 use pm_kind, only: TKR => IK, RKG => RK3
7197 real(RKG) , intent(in) , contiguous :: array(:)
7198 integer(TKR) :: rank(size(array, kind = IK))
7199 end function
7200#endif
7201
7202#if RK2_ENABLED
7203 module function getRankOrdinalDefCom_D1_RK2(array) result(rank)
7204#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7205 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_RK2
7206#endif
7207 use pm_kind, only: TKR => IK, RKG => RK2
7208 real(RKG) , intent(in) , contiguous :: array(:)
7209 integer(TKR) :: rank(size(array, kind = IK))
7210 end function
7211#endif
7212
7213#if RK1_ENABLED
7214 module function getRankOrdinalDefCom_D1_RK1(array) result(rank)
7215#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7216 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_RK1
7217#endif
7218 use pm_kind, only: TKR => IK, RKG => RK1
7219 real(RKG) , intent(in) , contiguous :: array(:)
7220 integer(TKR) :: rank(size(array, kind = IK))
7221 end function
7222#endif
7223
7224 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7225
7226#if PDT_ENABLED
7227
7228#if SK5_ENABLED
7229 module function getRankOrdinalDefCom_D1_PSSK5(array) result(rank)
7230#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7231 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_PSSK5
7232#endif
7233 use pm_kind, only: TKR => IK, SKG => SK5
7234 use pm_container, only: css_pdt
7235 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
7236 integer(TKR) :: rank(size(array, kind = IK))
7237 end function
7238#endif
7239
7240#if SK4_ENABLED
7241 module function getRankOrdinalDefCom_D1_PSSK4(array) result(rank)
7242#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7243 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_PSSK4
7244#endif
7245 use pm_kind, only: TKR => IK, SKG => SK4
7246 use pm_container, only: css_pdt
7247 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
7248 integer(TKR) :: rank(size(array, kind = IK))
7249 end function
7250#endif
7251
7252#if SK3_ENABLED
7253 module function getRankOrdinalDefCom_D1_PSSK3(array) result(rank)
7254#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7255 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_PSSK3
7256#endif
7257 use pm_kind, only: TKR => IK, SKG => SK3
7258 use pm_container, only: css_pdt
7259 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
7260 integer(TKR) :: rank(size(array, kind = IK))
7261 end function
7262#endif
7263
7264#if SK2_ENABLED
7265 module function getRankOrdinalDefCom_D1_PSSK2(array) result(rank)
7266#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7267 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_PSSK2
7268#endif
7269 use pm_kind, only: TKR => IK, SKG => SK2
7270 use pm_container, only: css_pdt
7271 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
7272 integer(TKR) :: rank(size(array, kind = IK))
7273 end function
7274#endif
7275
7276#if SK1_ENABLED
7277 module function getRankOrdinalDefCom_D1_PSSK1(array) result(rank)
7278#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7279 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_PSSK1
7280#endif
7281 use pm_kind, only: TKR => IK, SKG => SK1
7282 use pm_container, only: css_pdt
7283 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
7284 integer(TKR) :: rank(size(array, kind = IK))
7285 end function
7286#endif
7287
7288#endif
7289!PDT_ENABLED
7290
7291 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7292
7293 module function getRankOrdinalDefCom_D1_BSSK(array) result(rank)
7294#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7295 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalDefCom_D1_BSSK
7296#endif
7297 use pm_kind, only: TKR => IK, SKG => SK
7298 use pm_container, only: css_type
7299 type(css_type) , intent(in) , contiguous :: array(:)
7300 integer(TKR) :: rank(size(array, kind = IK))
7301 end function
7302
7303 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7304
7305 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7306 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7307 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7308
7309 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7310
7311#if SK5_ENABLED
7312 module function getRankOrdinalCusCom_D0_SK5(array, isSorted) result(rank)
7313#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7314 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D0_SK5
7315#endif
7316 use pm_kind, only: TKR => IK, SKG => SK5
7317 character(*,SKG) , intent(in) :: array
7318 procedure(logical(LK)) :: isSorted
7319 integer(TKR) :: rank(len(array, IK))
7320 end function
7321#endif
7322
7323#if SK4_ENABLED
7324 module function getRankOrdinalCusCom_D0_SK4(array, isSorted) result(rank)
7325#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7326 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D0_SK4
7327#endif
7328 use pm_kind, only: TKR => IK, SKG => SK4
7329 character(*,SKG) , intent(in) :: array
7330 procedure(logical(LK)) :: isSorted
7331 integer(TKR) :: rank(len(array, IK))
7332 end function
7333#endif
7334
7335#if SK3_ENABLED
7336 module function getRankOrdinalCusCom_D0_SK3(array, isSorted) result(rank)
7337#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7338 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D0_SK3
7339#endif
7340 use pm_kind, only: TKR => IK, SKG => SK3
7341 character(*,SKG) , intent(in) :: array
7342 procedure(logical(LK)) :: isSorted
7343 integer(TKR) :: rank(len(array, IK))
7344 end function
7345#endif
7346
7347#if SK2_ENABLED
7348 module function getRankOrdinalCusCom_D0_SK2(array, isSorted) result(rank)
7349#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7350 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D0_SK2
7351#endif
7352 use pm_kind, only: TKR => IK, SKG => SK2
7353 character(*,SKG) , intent(in) :: array
7354 procedure(logical(LK)) :: isSorted
7355 integer(TKR) :: rank(len(array, IK))
7356 end function
7357#endif
7358
7359#if SK1_ENABLED
7360 module function getRankOrdinalCusCom_D0_SK1(array, isSorted) result(rank)
7361#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7362 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D0_SK1
7363#endif
7364 use pm_kind, only: TKR => IK, SKG => SK1
7365 character(*,SKG) , intent(in) :: array
7366 procedure(logical(LK)) :: isSorted
7367 integer(TKR) :: rank(len(array, IK))
7368 end function
7369#endif
7370
7371 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7372
7373#if SK5_ENABLED
7374 module function getRankOrdinalCusCom_D1_SK5(array, isSorted) result(rank)
7375#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7376 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_SK5
7377#endif
7378 use pm_kind, only: TKR => IK, SKG => SK5
7379 character(*,SKG) , intent(in) , contiguous :: array(:)
7380 procedure(logical(LK)) :: isSorted
7381 integer(TKR) :: rank(size(array, kind = IK))
7382 end function
7383#endif
7384
7385#if SK4_ENABLED
7386 module function getRankOrdinalCusCom_D1_SK4(array, isSorted) result(rank)
7387#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7388 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_SK4
7389#endif
7390 use pm_kind, only: TKR => IK, SKG => SK4
7391 character(*,SKG) , intent(in) , contiguous :: array(:)
7392 procedure(logical(LK)) :: isSorted
7393 integer(TKR) :: rank(size(array, kind = IK))
7394 end function
7395#endif
7396
7397#if SK3_ENABLED
7398 module function getRankOrdinalCusCom_D1_SK3(array, isSorted) result(rank)
7399#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7400 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_SK3
7401#endif
7402 use pm_kind, only: TKR => IK, SKG => SK3
7403 character(*,SKG) , intent(in) , contiguous :: array(:)
7404 procedure(logical(LK)) :: isSorted
7405 integer(TKR) :: rank(size(array, kind = IK))
7406 end function
7407#endif
7408
7409#if SK2_ENABLED
7410 module function getRankOrdinalCusCom_D1_SK2(array, isSorted) result(rank)
7411#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7412 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_SK2
7413#endif
7414 use pm_kind, only: TKR => IK, SKG => SK2
7415 character(*,SKG) , intent(in) , contiguous :: array(:)
7416 procedure(logical(LK)) :: isSorted
7417 integer(TKR) :: rank(size(array, kind = IK))
7418 end function
7419#endif
7420
7421#if SK1_ENABLED
7422 module function getRankOrdinalCusCom_D1_SK1(array, isSorted) result(rank)
7423#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7424 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_SK1
7425#endif
7426 use pm_kind, only: TKR => IK, SKG => SK1
7427 character(*,SKG) , intent(in) , contiguous :: array(:)
7428 procedure(logical(LK)) :: isSorted
7429 integer(TKR) :: rank(size(array, kind = IK))
7430 end function
7431#endif
7432
7433 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7434
7435#if IK5_ENABLED
7436 module function getRankOrdinalCusCom_D1_IK5(array, isSorted) result(rank)
7437#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7438 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_IK5
7439#endif
7440 use pm_kind, only: TKR => IK, IKG => IK5
7441 integer(IKG) , intent(in) , contiguous :: array(:)
7442 procedure(logical(LK)) :: isSorted
7443 integer(TKR) :: rank(size(array, kind = IK))
7444 end function
7445#endif
7446
7447#if IK4_ENABLED
7448 module function getRankOrdinalCusCom_D1_IK4(array, isSorted) result(rank)
7449#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7450 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_IK4
7451#endif
7452 use pm_kind, only: TKR => IK, IKG => IK4
7453 integer(IKG) , intent(in) , contiguous :: array(:)
7454 procedure(logical(LK)) :: isSorted
7455 integer(TKR) :: rank(size(array, kind = IK))
7456 end function
7457#endif
7458
7459#if IK3_ENABLED
7460 module function getRankOrdinalCusCom_D1_IK3(array, isSorted) result(rank)
7461#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7462 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_IK3
7463#endif
7464 use pm_kind, only: TKR => IK, IKG => IK3
7465 integer(IKG) , intent(in) , contiguous :: array(:)
7466 procedure(logical(LK)) :: isSorted
7467 integer(TKR) :: rank(size(array, kind = IK))
7468 end function
7469#endif
7470
7471#if IK2_ENABLED
7472 module function getRankOrdinalCusCom_D1_IK2(array, isSorted) result(rank)
7473#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7474 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_IK2
7475#endif
7476 use pm_kind, only: TKR => IK, IKG => IK2
7477 integer(IKG) , intent(in) , contiguous :: array(:)
7478 procedure(logical(LK)) :: isSorted
7479 integer(TKR) :: rank(size(array, kind = IK))
7480 end function
7481#endif
7482
7483#if IK1_ENABLED
7484 module function getRankOrdinalCusCom_D1_IK1(array, isSorted) result(rank)
7485#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7486 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_IK1
7487#endif
7488 use pm_kind, only: TKR => IK, IKG => IK1
7489 integer(IKG) , intent(in) , contiguous :: array(:)
7490 procedure(logical(LK)) :: isSorted
7491 integer(TKR) :: rank(size(array, kind = IK))
7492 end function
7493#endif
7494
7495 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7496
7497#if LK5_ENABLED
7498 module function getRankOrdinalCusCom_D1_LK5(array, isSorted) result(rank)
7499#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7500 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_LK5
7501#endif
7502 use pm_kind, only: TKR => IK, LKG => LK5
7503 logical(LKG) , intent(in) , contiguous :: array(:)
7504 procedure(logical(LK)) :: isSorted
7505 integer(TKR) :: rank(size(array, kind = IK))
7506 end function
7507#endif
7508
7509#if LK4_ENABLED
7510 module function getRankOrdinalCusCom_D1_LK4(array, isSorted) result(rank)
7511#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7512 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_LK4
7513#endif
7514 use pm_kind, only: TKR => IK, LKG => LK4
7515 logical(LKG) , intent(in) , contiguous :: array(:)
7516 procedure(logical(LK)) :: isSorted
7517 integer(TKR) :: rank(size(array, kind = IK))
7518 end function
7519#endif
7520
7521#if LK3_ENABLED
7522 module function getRankOrdinalCusCom_D1_LK3(array, isSorted) result(rank)
7523#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7524 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_LK3
7525#endif
7526 use pm_kind, only: TKR => IK, LKG => LK3
7527 logical(LKG) , intent(in) , contiguous :: array(:)
7528 procedure(logical(LK)) :: isSorted
7529 integer(TKR) :: rank(size(array, kind = IK))
7530 end function
7531#endif
7532
7533#if LK2_ENABLED
7534 module function getRankOrdinalCusCom_D1_LK2(array, isSorted) result(rank)
7535#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7536 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_LK2
7537#endif
7538 use pm_kind, only: TKR => IK, LKG => LK2
7539 logical(LKG) , intent(in) , contiguous :: array(:)
7540 procedure(logical(LK)) :: isSorted
7541 integer(TKR) :: rank(size(array, kind = IK))
7542 end function
7543#endif
7544
7545#if LK1_ENABLED
7546 module function getRankOrdinalCusCom_D1_LK1(array, isSorted) result(rank)
7547#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7548 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_LK1
7549#endif
7550 use pm_kind, only: TKR => IK, LKG => LK1
7551 logical(LKG) , intent(in) , contiguous :: array(:)
7552 procedure(logical(LK)) :: isSorted
7553 integer(TKR) :: rank(size(array, kind = IK))
7554 end function
7555#endif
7556
7557 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7558
7559#if CK5_ENABLED
7560 module function getRankOrdinalCusCom_D1_CK5(array, isSorted) result(rank)
7561#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7562 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_CK5
7563#endif
7564 use pm_kind, only: TKR => IK, CKG => CK5
7565 complex(CKG) , intent(in) , contiguous :: array(:)
7566 procedure(logical(LK)) :: isSorted
7567 integer(TKR) :: rank(size(array, kind = IK))
7568 end function
7569#endif
7570
7571#if CK4_ENABLED
7572 module function getRankOrdinalCusCom_D1_CK4(array, isSorted) result(rank)
7573#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7574 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_CK4
7575#endif
7576 use pm_kind, only: TKR => IK, CKG => CK4
7577 complex(CKG) , intent(in) , contiguous :: array(:)
7578 procedure(logical(LK)) :: isSorted
7579 integer(TKR) :: rank(size(array, kind = IK))
7580 end function
7581#endif
7582
7583#if CK3_ENABLED
7584 module function getRankOrdinalCusCom_D1_CK3(array, isSorted) result(rank)
7585#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7586 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_CK3
7587#endif
7588 use pm_kind, only: TKR => IK, CKG => CK3
7589 complex(CKG) , intent(in) , contiguous :: array(:)
7590 procedure(logical(LK)) :: isSorted
7591 integer(TKR) :: rank(size(array, kind = IK))
7592 end function
7593#endif
7594
7595#if CK2_ENABLED
7596 module function getRankOrdinalCusCom_D1_CK2(array, isSorted) result(rank)
7597#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7598 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_CK2
7599#endif
7600 use pm_kind, only: TKR => IK, CKG => CK2
7601 complex(CKG) , intent(in) , contiguous :: array(:)
7602 procedure(logical(LK)) :: isSorted
7603 integer(TKR) :: rank(size(array, kind = IK))
7604 end function
7605#endif
7606
7607#if CK1_ENABLED
7608 module function getRankOrdinalCusCom_D1_CK1(array, isSorted) result(rank)
7609#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7610 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_CK1
7611#endif
7612 use pm_kind, only: TKR => IK, CKG => CK1
7613 complex(CKG) , intent(in) , contiguous :: array(:)
7614 procedure(logical(LK)) :: isSorted
7615 integer(TKR) :: rank(size(array, kind = IK))
7616 end function
7617#endif
7618
7619 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7620
7621#if RK5_ENABLED
7622 module function getRankOrdinalCusCom_D1_RK5(array, isSorted) result(rank)
7623#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7624 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_RK5
7625#endif
7626 use pm_kind, only: TKR => IK, RKG => RK5
7627 real(RKG) , intent(in) , contiguous :: array(:)
7628 procedure(logical(LK)) :: isSorted
7629 integer(TKR) :: rank(size(array, kind = IK))
7630 end function
7631#endif
7632
7633#if RK4_ENABLED
7634 module function getRankOrdinalCusCom_D1_RK4(array, isSorted) result(rank)
7635#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7636 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_RK4
7637#endif
7638 use pm_kind, only: TKR => IK, RKG => RK4
7639 real(RKG) , intent(in) , contiguous :: array(:)
7640 procedure(logical(LK)) :: isSorted
7641 integer(TKR) :: rank(size(array, kind = IK))
7642 end function
7643#endif
7644
7645#if RK3_ENABLED
7646 module function getRankOrdinalCusCom_D1_RK3(array, isSorted) result(rank)
7647#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7648 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_RK3
7649#endif
7650 use pm_kind, only: TKR => IK, RKG => RK3
7651 real(RKG) , intent(in) , contiguous :: array(:)
7652 procedure(logical(LK)) :: isSorted
7653 integer(TKR) :: rank(size(array, kind = IK))
7654 end function
7655#endif
7656
7657#if RK2_ENABLED
7658 module function getRankOrdinalCusCom_D1_RK2(array, isSorted) result(rank)
7659#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7660 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_RK2
7661#endif
7662 use pm_kind, only: TKR => IK, RKG => RK2
7663 real(RKG) , intent(in) , contiguous :: array(:)
7664 procedure(logical(LK)) :: isSorted
7665 integer(TKR) :: rank(size(array, kind = IK))
7666 end function
7667#endif
7668
7669#if RK1_ENABLED
7670 module function getRankOrdinalCusCom_D1_RK1(array, isSorted) result(rank)
7671#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7672 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_RK1
7673#endif
7674 use pm_kind, only: TKR => IK, RKG => RK1
7675 real(RKG) , intent(in) , contiguous :: array(:)
7676 procedure(logical(LK)) :: isSorted
7677 integer(TKR) :: rank(size(array, kind = IK))
7678 end function
7679#endif
7680
7681 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7682
7683#if PDT_ENABLED
7684
7685#if SK5_ENABLED
7686 module function getRankOrdinalCusCom_D1_PSSK5(array, isSorted) result(rank)
7687#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7688 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_PSSK5
7689#endif
7690 use pm_kind, only: TKR => IK, SKG => SK5
7691 use pm_container, only: css_pdt
7692 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
7693 procedure(logical(LK)) :: isSorted
7694 integer(TKR) :: rank(size(array, kind = IK))
7695 end function
7696#endif
7697
7698#if SK4_ENABLED
7699 module function getRankOrdinalCusCom_D1_PSSK4(array, isSorted) result(rank)
7700#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7701 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_PSSK4
7702#endif
7703 use pm_kind, only: TKR => IK, SKG => SK4
7704 use pm_container, only: css_pdt
7705 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
7706 procedure(logical(LK)) :: isSorted
7707 integer(TKR) :: rank(size(array, kind = IK))
7708 end function
7709#endif
7710
7711#if SK3_ENABLED
7712 module function getRankOrdinalCusCom_D1_PSSK3(array, isSorted) result(rank)
7713#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7714 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_PSSK3
7715#endif
7716 use pm_kind, only: TKR => IK, SKG => SK3
7717 use pm_container, only: css_pdt
7718 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
7719 procedure(logical(LK)) :: isSorted
7720 integer(TKR) :: rank(size(array, kind = IK))
7721 end function
7722#endif
7723
7724#if SK2_ENABLED
7725 module function getRankOrdinalCusCom_D1_PSSK2(array, isSorted) result(rank)
7726#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7727 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_PSSK2
7728#endif
7729 use pm_kind, only: TKR => IK, SKG => SK2
7730 use pm_container, only: css_pdt
7731 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
7732 procedure(logical(LK)) :: isSorted
7733 integer(TKR) :: rank(size(array, kind = IK))
7734 end function
7735#endif
7736
7737#if SK1_ENABLED
7738 module function getRankOrdinalCusCom_D1_PSSK1(array, isSorted) result(rank)
7739#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7740 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_PSSK1
7741#endif
7742 use pm_kind, only: TKR => IK, SKG => SK1
7743 use pm_container, only: css_pdt
7744 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
7745 integer(TKR) :: rank(size(array, kind = IK))
7746 procedure(logical(LK)) :: isSorted
7747 end function
7748#endif
7749
7750#endif
7751!PDT_ENABLED
7752
7753 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7754
7755 module function getRankOrdinalCusCom_D1_BSSK(array, isSorted) result(rank)
7756#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7757 !DEC$ ATTRIBUTES DLLEXPORT :: getRankOrdinalCusCom_D1_BSSK
7758#endif
7759 use pm_kind, only: TKR => IK, SKG => SK
7760 use pm_container, only: css_type
7761 type(css_type) , intent(in) , contiguous :: array(:)
7762 procedure(logical(LK)) :: isSorted
7763 integer(TKR) :: rank(size(array, kind = IK))
7764 end function
7765
7766 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7767
7768 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7769 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7770 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7771
7772 end interface
7773
7774!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7775
7914
7915 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7916 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7917 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7918
7919 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7920
7921#if SK5_ENABLED
7922 PURE module subroutine setRankOrdinalDefCom_D0_SK5(rank, array)
7923#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7924 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D0_SK5
7925#endif
7926 use pm_kind, only: TKR => IK, SKG => SK5
7927 character(*,SKG) , intent(in) :: array
7928 integer(TKR) , intent(out) , contiguous :: rank(:)
7929 end subroutine
7930#endif
7931
7932#if SK4_ENABLED
7933 PURE module subroutine setRankOrdinalDefCom_D0_SK4(rank, array)
7934#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7935 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D0_SK4
7936#endif
7937 use pm_kind, only: TKR => IK, SKG => SK4
7938 character(*,SKG) , intent(in) :: array
7939 integer(TKR) , intent(out) , contiguous :: rank(:)
7940 end subroutine
7941#endif
7942
7943#if SK3_ENABLED
7944 PURE module subroutine setRankOrdinalDefCom_D0_SK3(rank, array)
7945#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7946 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D0_SK3
7947#endif
7948 use pm_kind, only: TKR => IK, SKG => SK3
7949 character(*,SKG) , intent(in) :: array
7950 integer(TKR) , intent(out) , contiguous :: rank(:)
7951 end subroutine
7952#endif
7953
7954#if SK2_ENABLED
7955 PURE module subroutine setRankOrdinalDefCom_D0_SK2(rank, array)
7956#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7957 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D0_SK2
7958#endif
7959 use pm_kind, only: TKR => IK, SKG => SK2
7960 character(*,SKG) , intent(in) :: array
7961 integer(TKR) , intent(out) , contiguous :: rank(:)
7962 end subroutine
7963#endif
7964
7965#if SK1_ENABLED
7966 PURE module subroutine setRankOrdinalDefCom_D0_SK1(rank, array)
7967#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7968 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D0_SK1
7969#endif
7970 use pm_kind, only: TKR => IK, SKG => SK1
7971 character(*,SKG) , intent(in) :: array
7972 integer(TKR) , intent(out) , contiguous :: rank(:)
7973 end subroutine
7974#endif
7975
7976 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7977
7978#if SK5_ENABLED
7979 PURE module subroutine setRankOrdinalDefCom_D1_SK5(rank, array)
7980#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7981 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_SK5
7982#endif
7983 use pm_kind, only: TKR => IK, SKG => SK5
7984 character(*,SKG) , intent(in) , contiguous :: array(:)
7985 integer(TKR) , intent(out) , contiguous :: rank(:)
7986 end subroutine
7987#endif
7988
7989#if SK4_ENABLED
7990 PURE module subroutine setRankOrdinalDefCom_D1_SK4(rank, array)
7991#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7992 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_SK4
7993#endif
7994 use pm_kind, only: TKR => IK, SKG => SK4
7995 character(*,SKG) , intent(in) , contiguous :: array(:)
7996 integer(TKR) , intent(out) , contiguous :: rank(:)
7997 end subroutine
7998#endif
7999
8000#if SK3_ENABLED
8001 PURE module subroutine setRankOrdinalDefCom_D1_SK3(rank, array)
8002#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8003 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_SK3
8004#endif
8005 use pm_kind, only: TKR => IK, SKG => SK3
8006 character(*,SKG) , intent(in) , contiguous :: array(:)
8007 integer(TKR) , intent(out) , contiguous :: rank(:)
8008 end subroutine
8009#endif
8010
8011#if SK2_ENABLED
8012 PURE module subroutine setRankOrdinalDefCom_D1_SK2(rank, array)
8013#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8014 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_SK2
8015#endif
8016 use pm_kind, only: TKR => IK, SKG => SK2
8017 character(*,SKG) , intent(in) , contiguous :: array(:)
8018 integer(TKR) , intent(out) , contiguous :: rank(:)
8019 end subroutine
8020#endif
8021
8022#if SK1_ENABLED
8023 PURE module subroutine setRankOrdinalDefCom_D1_SK1(rank, array)
8024#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8025 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_SK1
8026#endif
8027 use pm_kind, only: TKR => IK, SKG => SK1
8028 character(*,SKG) , intent(in) , contiguous :: array(:)
8029 integer(TKR) , intent(out) , contiguous :: rank(:)
8030 end subroutine
8031#endif
8032
8033 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8034
8035#if IK5_ENABLED
8036 PURE module subroutine setRankOrdinalDefCom_D1_IK5(rank, array)
8037#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8038 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_IK5
8039#endif
8040 use pm_kind, only: TKR => IK, IKG => IK5
8041 integer(IKG) , intent(in) , contiguous :: array(:)
8042 integer(TKR) , intent(out) , contiguous :: rank(:)
8043 end subroutine
8044#endif
8045
8046#if IK4_ENABLED
8047 PURE module subroutine setRankOrdinalDefCom_D1_IK4(rank, array)
8048#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8049 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_IK4
8050#endif
8051 use pm_kind, only: TKR => IK, IKG => IK4
8052 integer(IKG) , intent(in) , contiguous :: array(:)
8053 integer(TKR) , intent(out) , contiguous :: rank(:)
8054 end subroutine
8055#endif
8056
8057#if IK3_ENABLED
8058 PURE module subroutine setRankOrdinalDefCom_D1_IK3(rank, array)
8059#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8060 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_IK3
8061#endif
8062 use pm_kind, only: TKR => IK, IKG => IK3
8063 integer(IKG) , intent(in) , contiguous :: array(:)
8064 integer(TKR) , intent(out) , contiguous :: rank(:)
8065 end subroutine
8066#endif
8067
8068#if IK2_ENABLED
8069 PURE module subroutine setRankOrdinalDefCom_D1_IK2(rank, array)
8070#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8071 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_IK2
8072#endif
8073 use pm_kind, only: TKR => IK, IKG => IK2
8074 integer(IKG) , intent(in) , contiguous :: array(:)
8075 integer(TKR) , intent(out) , contiguous :: rank(:)
8076 end subroutine
8077#endif
8078
8079#if IK1_ENABLED
8080 PURE module subroutine setRankOrdinalDefCom_D1_IK1(rank, array)
8081#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8082 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_IK1
8083#endif
8084 use pm_kind, only: TKR => IK, IKG => IK1
8085 integer(IKG) , intent(in) , contiguous :: array(:)
8086 integer(TKR) , intent(out) , contiguous :: rank(:)
8087 end subroutine
8088#endif
8089
8090 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8091
8092#if LK5_ENABLED
8093 PURE module subroutine setRankOrdinalDefCom_D1_LK5(rank, array)
8094#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8095 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_LK5
8096#endif
8097 use pm_kind, only: TKR => IK, LKG => LK5
8098 logical(LKG) , intent(in) , contiguous :: array(:)
8099 integer(TKR) , intent(out) , contiguous :: rank(:)
8100 end subroutine
8101#endif
8102
8103#if LK4_ENABLED
8104 PURE module subroutine setRankOrdinalDefCom_D1_LK4(rank, array)
8105#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8106 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_LK4
8107#endif
8108 use pm_kind, only: TKR => IK, LKG => LK4
8109 logical(LKG) , intent(in) , contiguous :: array(:)
8110 integer(TKR) , intent(out) , contiguous :: rank(:)
8111 end subroutine
8112#endif
8113
8114#if LK3_ENABLED
8115 PURE module subroutine setRankOrdinalDefCom_D1_LK3(rank, array)
8116#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8117 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_LK3
8118#endif
8119 use pm_kind, only: TKR => IK, LKG => LK3
8120 logical(LKG) , intent(in) , contiguous :: array(:)
8121 integer(TKR) , intent(out) , contiguous :: rank(:)
8122 end subroutine
8123#endif
8124
8125#if LK2_ENABLED
8126 PURE module subroutine setRankOrdinalDefCom_D1_LK2(rank, array)
8127#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8128 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_LK2
8129#endif
8130 use pm_kind, only: TKR => IK, LKG => LK2
8131 logical(LKG) , intent(in) , contiguous :: array(:)
8132 integer(TKR) , intent(out) , contiguous :: rank(:)
8133 end subroutine
8134#endif
8135
8136#if LK1_ENABLED
8137 PURE module subroutine setRankOrdinalDefCom_D1_LK1(rank, array)
8138#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8139 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_LK1
8140#endif
8141 use pm_kind, only: TKR => IK, LKG => LK1
8142 logical(LKG) , intent(in) , contiguous :: array(:)
8143 integer(TKR) , intent(out) , contiguous :: rank(:)
8144 end subroutine
8145#endif
8146
8147 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8148
8149#if CK5_ENABLED
8150 PURE module subroutine setRankOrdinalDefCom_D1_CK5(rank, array)
8151#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8152 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_CK5
8153#endif
8154 use pm_kind, only: TKR => IK, CKG => CK5
8155 complex(CKG) , intent(in) , contiguous :: array(:)
8156 integer(TKR) , intent(out) , contiguous :: rank(:)
8157 end subroutine
8158#endif
8159
8160#if CK4_ENABLED
8161 PURE module subroutine setRankOrdinalDefCom_D1_CK4(rank, array)
8162#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8163 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_CK4
8164#endif
8165 use pm_kind, only: TKR => IK, CKG => CK4
8166 complex(CKG) , intent(in) , contiguous :: array(:)
8167 integer(TKR) , intent(out) , contiguous :: rank(:)
8168 end subroutine
8169#endif
8170
8171#if CK3_ENABLED
8172 PURE module subroutine setRankOrdinalDefCom_D1_CK3(rank, array)
8173#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8174 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_CK3
8175#endif
8176 use pm_kind, only: TKR => IK, CKG => CK3
8177 complex(CKG) , intent(in) , contiguous :: array(:)
8178 integer(TKR) , intent(out) , contiguous :: rank(:)
8179 end subroutine
8180#endif
8181
8182#if CK2_ENABLED
8183 PURE module subroutine setRankOrdinalDefCom_D1_CK2(rank, array)
8184#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8185 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_CK2
8186#endif
8187 use pm_kind, only: TKR => IK, CKG => CK2
8188 complex(CKG) , intent(in) , contiguous :: array(:)
8189 integer(TKR) , intent(out) , contiguous :: rank(:)
8190 end subroutine
8191#endif
8192
8193#if CK1_ENABLED
8194 PURE module subroutine setRankOrdinalDefCom_D1_CK1(rank, array)
8195#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8196 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_CK1
8197#endif
8198 use pm_kind, only: TKR => IK, CKG => CK1
8199 complex(CKG) , intent(in) , contiguous :: array(:)
8200 integer(TKR) , intent(out) , contiguous :: rank(:)
8201 end subroutine
8202#endif
8203
8204 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8205
8206#if RK5_ENABLED
8207 PURE module subroutine setRankOrdinalDefCom_D1_RK5(rank, array)
8208#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8209 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_RK5
8210#endif
8211 use pm_kind, only: TKR => IK, RKG => RK5
8212 real(RKG) , intent(in) , contiguous :: array(:)
8213 integer(TKR) , intent(out) , contiguous :: rank(:)
8214 end subroutine
8215#endif
8216
8217#if RK4_ENABLED
8218 PURE module subroutine setRankOrdinalDefCom_D1_RK4(rank, array)
8219#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8220 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_RK4
8221#endif
8222 use pm_kind, only: TKR => IK, RKG => RK4
8223 real(RKG) , intent(in) , contiguous :: array(:)
8224 integer(TKR) , intent(out) , contiguous :: rank(:)
8225 end subroutine
8226#endif
8227
8228#if RK3_ENABLED
8229 PURE module subroutine setRankOrdinalDefCom_D1_RK3(rank, array)
8230#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8231 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_RK3
8232#endif
8233 use pm_kind, only: TKR => IK, RKG => RK3
8234 real(RKG) , intent(in) , contiguous :: array(:)
8235 integer(TKR) , intent(out) , contiguous :: rank(:)
8236 end subroutine
8237#endif
8238
8239#if RK2_ENABLED
8240 PURE module subroutine setRankOrdinalDefCom_D1_RK2(rank, array)
8241#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8242 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_RK2
8243#endif
8244 use pm_kind, only: TKR => IK, RKG => RK2
8245 real(RKG) , intent(in) , contiguous :: array(:)
8246 integer(TKR) , intent(out) , contiguous :: rank(:)
8247 end subroutine
8248#endif
8249
8250#if RK1_ENABLED
8251 PURE module subroutine setRankOrdinalDefCom_D1_RK1(rank, array)
8252#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8253 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_RK1
8254#endif
8255 use pm_kind, only: TKR => IK, RKG => RK1
8256 real(RKG) , intent(in) , contiguous :: array(:)
8257 integer(TKR) , intent(out) , contiguous :: rank(:)
8258 end subroutine
8259#endif
8260
8261 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8262
8263#if PDT_ENABLED
8264
8265#if SK5_ENABLED
8266 PURE module subroutine setRankOrdinalDefCom_D1_PSSK5(rank, array)
8267#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8268 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_PSSK5
8269#endif
8270 use pm_kind, only: TKR => IK, SKG => SK5
8271 use pm_container, only: css_pdt
8272 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
8273 integer(TKR) , intent(out) , contiguous :: rank(:)
8274 end subroutine
8275#endif
8276
8277#if SK4_ENABLED
8278 PURE module subroutine setRankOrdinalDefCom_D1_PSSK4(rank, array)
8279#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8280 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_PSSK4
8281#endif
8282 use pm_kind, only: TKR => IK, SKG => SK4
8283 use pm_container, only: css_pdt
8284 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
8285 integer(TKR) , intent(out) , contiguous :: rank(:)
8286 end subroutine
8287#endif
8288
8289#if SK3_ENABLED
8290 PURE module subroutine setRankOrdinalDefCom_D1_PSSK3(rank, array)
8291#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8292 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_PSSK3
8293#endif
8294 use pm_kind, only: TKR => IK, SKG => SK3
8295 use pm_container, only: css_pdt
8296 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
8297 integer(TKR) , intent(out) , contiguous :: rank(:)
8298 end subroutine
8299#endif
8300
8301#if SK2_ENABLED
8302 PURE module subroutine setRankOrdinalDefCom_D1_PSSK2(rank, array)
8303#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8304 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_PSSK2
8305#endif
8306 use pm_kind, only: TKR => IK, SKG => SK2
8307 use pm_container, only: css_pdt
8308 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
8309 integer(TKR) , intent(out) , contiguous :: rank(:)
8310 end subroutine
8311#endif
8312
8313#if SK1_ENABLED
8314 PURE module subroutine setRankOrdinalDefCom_D1_PSSK1(rank, array)
8315#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8316 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_PSSK1
8317#endif
8318 use pm_kind, only: TKR => IK, SKG => SK1
8319 use pm_container, only: css_pdt
8320 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
8321 integer(TKR) , intent(out) , contiguous :: rank(:)
8322 end subroutine
8323#endif
8324
8325#endif
8326!PDT_ENABLED
8327
8328 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8329
8330 PURE module subroutine setRankOrdinalDefCom_D1_BSSK(rank, array)
8331#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8332 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalDefCom_D1_BSSK
8333#endif
8334 use pm_kind, only: TKR => IK, SKG => SK
8335 use pm_container, only: css_type
8336 type(css_type) , intent(in) , contiguous :: array(:)
8337 integer(TKR) , intent(out) , contiguous :: rank(:)
8338 end subroutine
8339
8340 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8341
8342 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8343 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8344 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8345
8346 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8347
8348#if SK5_ENABLED
8349 module subroutine setRankOrdinalCusCom_D0_SK5(rank, array, isSorted)
8350#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8351 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D0_SK5
8352#endif
8353 use pm_kind, only: TKR => IK, SKG => SK5
8354 character(*,SKG) , intent(in) :: array
8355 integer(TKR) , intent(out) , contiguous :: rank(:)
8356 procedure(logical(LK)) :: isSorted
8357 end subroutine
8358#endif
8359
8360#if SK4_ENABLED
8361 module subroutine setRankOrdinalCusCom_D0_SK4(rank, array, isSorted)
8362#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8363 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D0_SK4
8364#endif
8365 use pm_kind, only: TKR => IK, SKG => SK4
8366 character(*,SKG) , intent(in) :: array
8367 integer(TKR) , intent(out) , contiguous :: rank(:)
8368 procedure(logical(LK)) :: isSorted
8369 end subroutine
8370#endif
8371
8372#if SK3_ENABLED
8373 module subroutine setRankOrdinalCusCom_D0_SK3(rank, array, isSorted)
8374#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8375 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D0_SK3
8376#endif
8377 use pm_kind, only: TKR => IK, SKG => SK3
8378 character(*,SKG) , intent(in) :: array
8379 integer(TKR) , intent(out) , contiguous :: rank(:)
8380 procedure(logical(LK)) :: isSorted
8381 end subroutine
8382#endif
8383
8384#if SK2_ENABLED
8385 module subroutine setRankOrdinalCusCom_D0_SK2(rank, array, isSorted)
8386#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8387 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D0_SK2
8388#endif
8389 use pm_kind, only: TKR => IK, SKG => SK2
8390 character(*,SKG) , intent(in) :: array
8391 integer(TKR) , intent(out) , contiguous :: rank(:)
8392 procedure(logical(LK)) :: isSorted
8393 end subroutine
8394#endif
8395
8396#if SK1_ENABLED
8397 module subroutine setRankOrdinalCusCom_D0_SK1(rank, array, isSorted)
8398#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8399 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D0_SK1
8400#endif
8401 use pm_kind, only: TKR => IK, SKG => SK1
8402 character(*,SKG) , intent(in) :: array
8403 integer(TKR) , intent(out) , contiguous :: rank(:)
8404 procedure(logical(LK)) :: isSorted
8405 end subroutine
8406#endif
8407
8408 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8409
8410#if SK5_ENABLED
8411 module subroutine setRankOrdinalCusCom_D1_SK5(rank, array, isSorted)
8412#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8413 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_SK5
8414#endif
8415 use pm_kind, only: TKR => IK, SKG => SK5
8416 character(*,SKG) , intent(in) , contiguous :: array(:)
8417 integer(TKR) , intent(out) , contiguous :: rank(:)
8418 procedure(logical(LK)) :: isSorted
8419 end subroutine
8420#endif
8421
8422#if SK4_ENABLED
8423 module subroutine setRankOrdinalCusCom_D1_SK4(rank, array, isSorted)
8424#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8425 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_SK4
8426#endif
8427 use pm_kind, only: TKR => IK, SKG => SK4
8428 character(*,SKG) , intent(in) , contiguous :: array(:)
8429 integer(TKR) , intent(out) , contiguous :: rank(:)
8430 procedure(logical(LK)) :: isSorted
8431 end subroutine
8432#endif
8433
8434#if SK3_ENABLED
8435 module subroutine setRankOrdinalCusCom_D1_SK3(rank, array, isSorted)
8436#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8437 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_SK3
8438#endif
8439 use pm_kind, only: TKR => IK, SKG => SK3
8440 character(*,SKG) , intent(in) , contiguous :: array(:)
8441 integer(TKR) , intent(out) , contiguous :: rank(:)
8442 procedure(logical(LK)) :: isSorted
8443 end subroutine
8444#endif
8445
8446#if SK2_ENABLED
8447 module subroutine setRankOrdinalCusCom_D1_SK2(rank, array, isSorted)
8448#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8449 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_SK2
8450#endif
8451 use pm_kind, only: TKR => IK, SKG => SK2
8452 character(*,SKG) , intent(in) , contiguous :: array(:)
8453 integer(TKR) , intent(out) , contiguous :: rank(:)
8454 procedure(logical(LK)) :: isSorted
8455 end subroutine
8456#endif
8457
8458#if SK1_ENABLED
8459 module subroutine setRankOrdinalCusCom_D1_SK1(rank, array, isSorted)
8460#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8461 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_SK1
8462#endif
8463 use pm_kind, only: TKR => IK, SKG => SK1
8464 character(*,SKG) , intent(in) , contiguous :: array(:)
8465 integer(TKR) , intent(out) , contiguous :: rank(:)
8466 procedure(logical(LK)) :: isSorted
8467 end subroutine
8468#endif
8469
8470 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8471
8472#if IK5_ENABLED
8473 module subroutine setRankOrdinalCusCom_D1_IK5(rank, array, isSorted)
8474#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8475 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_IK5
8476#endif
8477 use pm_kind, only: TKR => IK, IKG => IK5
8478 integer(IKG) , intent(in) , contiguous :: array(:)
8479 integer(TKR) , intent(out) , contiguous :: rank(:)
8480 procedure(logical(LK)) :: isSorted
8481 end subroutine
8482#endif
8483
8484#if IK4_ENABLED
8485 module subroutine setRankOrdinalCusCom_D1_IK4(rank, array, isSorted)
8486#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8487 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_IK4
8488#endif
8489 use pm_kind, only: TKR => IK, IKG => IK4
8490 integer(IKG) , intent(in) , contiguous :: array(:)
8491 integer(TKR) , intent(out) , contiguous :: rank(:)
8492 procedure(logical(LK)) :: isSorted
8493 end subroutine
8494#endif
8495
8496#if IK3_ENABLED
8497 module subroutine setRankOrdinalCusCom_D1_IK3(rank, array, isSorted)
8498#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8499 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_IK3
8500#endif
8501 use pm_kind, only: TKR => IK, IKG => IK3
8502 integer(IKG) , intent(in) , contiguous :: array(:)
8503 integer(TKR) , intent(out) , contiguous :: rank(:)
8504 procedure(logical(LK)) :: isSorted
8505 end subroutine
8506#endif
8507
8508#if IK2_ENABLED
8509 module subroutine setRankOrdinalCusCom_D1_IK2(rank, array, isSorted)
8510#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8511 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_IK2
8512#endif
8513 use pm_kind, only: TKR => IK, IKG => IK2
8514 integer(IKG) , intent(in) , contiguous :: array(:)
8515 integer(TKR) , intent(out) , contiguous :: rank(:)
8516 procedure(logical(LK)) :: isSorted
8517 end subroutine
8518#endif
8519
8520#if IK1_ENABLED
8521 module subroutine setRankOrdinalCusCom_D1_IK1(rank, array, isSorted)
8522#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8523 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_IK1
8524#endif
8525 use pm_kind, only: TKR => IK, IKG => IK1
8526 integer(IKG) , intent(in) , contiguous :: array(:)
8527 integer(TKR) , intent(out) , contiguous :: rank(:)
8528 procedure(logical(LK)) :: isSorted
8529 end subroutine
8530#endif
8531
8532 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8533
8534#if LK5_ENABLED
8535 module subroutine setRankOrdinalCusCom_D1_LK5(rank, array, isSorted)
8536#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8537 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_LK5
8538#endif
8539 use pm_kind, only: TKR => IK, LKG => LK5
8540 logical(LKG) , intent(in) , contiguous :: array(:)
8541 integer(TKR) , intent(out) , contiguous :: rank(:)
8542 procedure(logical(LK)) :: isSorted
8543 end subroutine
8544#endif
8545
8546#if LK4_ENABLED
8547 module subroutine setRankOrdinalCusCom_D1_LK4(rank, array, isSorted)
8548#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8549 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_LK4
8550#endif
8551 use pm_kind, only: TKR => IK, LKG => LK4
8552 logical(LKG) , intent(in) , contiguous :: array(:)
8553 integer(TKR) , intent(out) , contiguous :: rank(:)
8554 procedure(logical(LK)) :: isSorted
8555 end subroutine
8556#endif
8557
8558#if LK3_ENABLED
8559 module subroutine setRankOrdinalCusCom_D1_LK3(rank, array, isSorted)
8560#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8561 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_LK3
8562#endif
8563 use pm_kind, only: TKR => IK, LKG => LK3
8564 logical(LKG) , intent(in) , contiguous :: array(:)
8565 integer(TKR) , intent(out) , contiguous :: rank(:)
8566 procedure(logical(LK)) :: isSorted
8567 end subroutine
8568#endif
8569
8570#if LK2_ENABLED
8571 module subroutine setRankOrdinalCusCom_D1_LK2(rank, array, isSorted)
8572#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8573 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_LK2
8574#endif
8575 use pm_kind, only: TKR => IK, LKG => LK2
8576 logical(LKG) , intent(in) , contiguous :: array(:)
8577 integer(TKR) , intent(out) , contiguous :: rank(:)
8578 procedure(logical(LK)) :: isSorted
8579 end subroutine
8580#endif
8581
8582#if LK1_ENABLED
8583 module subroutine setRankOrdinalCusCom_D1_LK1(rank, array, isSorted)
8584#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8585 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_LK1
8586#endif
8587 use pm_kind, only: TKR => IK, LKG => LK1
8588 logical(LKG) , intent(in) , contiguous :: array(:)
8589 integer(TKR) , intent(out) , contiguous :: rank(:)
8590 procedure(logical(LK)) :: isSorted
8591 end subroutine
8592#endif
8593
8594 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8595
8596#if CK5_ENABLED
8597 module subroutine setRankOrdinalCusCom_D1_CK5(rank, array, isSorted)
8598#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8599 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_CK5
8600#endif
8601 use pm_kind, only: TKR => IK, CKG => CK5
8602 complex(CKG) , intent(in) , contiguous :: array(:)
8603 integer(TKR) , intent(out) , contiguous :: rank(:)
8604 procedure(logical(LK)) :: isSorted
8605 end subroutine
8606#endif
8607
8608#if CK4_ENABLED
8609 module subroutine setRankOrdinalCusCom_D1_CK4(rank, array, isSorted)
8610#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8611 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_CK4
8612#endif
8613 use pm_kind, only: TKR => IK, CKG => CK4
8614 complex(CKG) , intent(in) , contiguous :: array(:)
8615 integer(TKR) , intent(out) , contiguous :: rank(:)
8616 procedure(logical(LK)) :: isSorted
8617 end subroutine
8618#endif
8619
8620#if CK3_ENABLED
8621 module subroutine setRankOrdinalCusCom_D1_CK3(rank, array, isSorted)
8622#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8623 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_CK3
8624#endif
8625 use pm_kind, only: TKR => IK, CKG => CK3
8626 complex(CKG) , intent(in) , contiguous :: array(:)
8627 integer(TKR) , intent(out) , contiguous :: rank(:)
8628 procedure(logical(LK)) :: isSorted
8629 end subroutine
8630#endif
8631
8632#if CK2_ENABLED
8633 module subroutine setRankOrdinalCusCom_D1_CK2(rank, array, isSorted)
8634#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8635 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_CK2
8636#endif
8637 use pm_kind, only: TKR => IK, CKG => CK2
8638 complex(CKG) , intent(in) , contiguous :: array(:)
8639 integer(TKR) , intent(out) , contiguous :: rank(:)
8640 procedure(logical(LK)) :: isSorted
8641 end subroutine
8642#endif
8643
8644#if CK1_ENABLED
8645 module subroutine setRankOrdinalCusCom_D1_CK1(rank, array, isSorted)
8646#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8647 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_CK1
8648#endif
8649 use pm_kind, only: TKR => IK, CKG => CK1
8650 complex(CKG) , intent(in) , contiguous :: array(:)
8651 integer(TKR) , intent(out) , contiguous :: rank(:)
8652 procedure(logical(LK)) :: isSorted
8653 end subroutine
8654#endif
8655
8656 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8657
8658#if RK5_ENABLED
8659 module subroutine setRankOrdinalCusCom_D1_RK5(rank, array, isSorted)
8660#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8661 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_RK5
8662#endif
8663 use pm_kind, only: TKR => IK, RKG => RK5
8664 real(RKG) , intent(in) , contiguous :: array(:)
8665 integer(TKR) , intent(out) , contiguous :: rank(:)
8666 procedure(logical(LK)) :: isSorted
8667 end subroutine
8668#endif
8669
8670#if RK4_ENABLED
8671 module subroutine setRankOrdinalCusCom_D1_RK4(rank, array, isSorted)
8672#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8673 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_RK4
8674#endif
8675 use pm_kind, only: TKR => IK, RKG => RK4
8676 real(RKG) , intent(in) , contiguous :: array(:)
8677 integer(TKR) , intent(out) , contiguous :: rank(:)
8678 procedure(logical(LK)) :: isSorted
8679 end subroutine
8680#endif
8681
8682#if RK3_ENABLED
8683 module subroutine setRankOrdinalCusCom_D1_RK3(rank, array, isSorted)
8684#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8685 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_RK3
8686#endif
8687 use pm_kind, only: TKR => IK, RKG => RK3
8688 real(RKG) , intent(in) , contiguous :: array(:)
8689 integer(TKR) , intent(out) , contiguous :: rank(:)
8690 procedure(logical(LK)) :: isSorted
8691 end subroutine
8692#endif
8693
8694#if RK2_ENABLED
8695 module subroutine setRankOrdinalCusCom_D1_RK2(rank, array, isSorted)
8696#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8697 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_RK2
8698#endif
8699 use pm_kind, only: TKR => IK, RKG => RK2
8700 real(RKG) , intent(in) , contiguous :: array(:)
8701 integer(TKR) , intent(out) , contiguous :: rank(:)
8702 procedure(logical(LK)) :: isSorted
8703 end subroutine
8704#endif
8705
8706#if RK1_ENABLED
8707 module subroutine setRankOrdinalCusCom_D1_RK1(rank, array, isSorted)
8708#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8709 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_RK1
8710#endif
8711 use pm_kind, only: TKR => IK, RKG => RK1
8712 real(RKG) , intent(in) , contiguous :: array(:)
8713 integer(TKR) , intent(out) , contiguous :: rank(:)
8714 procedure(logical(LK)) :: isSorted
8715 end subroutine
8716#endif
8717
8718 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8719
8720#if PDT_ENABLED
8721
8722#if SK5_ENABLED
8723 module subroutine setRankOrdinalCusCom_D1_PSSK5(rank, array, isSorted)
8724#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8725 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_PSSK5
8726#endif
8727 use pm_kind, only: TKR => IK, SKG => SK5
8728 use pm_container, only: css_pdt
8729 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
8730 integer(TKR) , intent(out) , contiguous :: rank(:)
8731 procedure(logical(LK)) :: isSorted
8732 end subroutine
8733#endif
8734
8735#if SK4_ENABLED
8736 module subroutine setRankOrdinalCusCom_D1_PSSK4(rank, array, isSorted)
8737#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8738 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_PSSK4
8739#endif
8740 use pm_kind, only: TKR => IK, SKG => SK4
8741 use pm_container, only: css_pdt
8742 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
8743 integer(TKR) , intent(out) , contiguous :: rank(:)
8744 procedure(logical(LK)) :: isSorted
8745 end subroutine
8746#endif
8747
8748#if SK3_ENABLED
8749 module subroutine setRankOrdinalCusCom_D1_PSSK3(rank, array, isSorted)
8750#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8751 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_PSSK3
8752#endif
8753 use pm_kind, only: TKR => IK, SKG => SK3
8754 use pm_container, only: css_pdt
8755 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
8756 integer(TKR) , intent(out) , contiguous :: rank(:)
8757 procedure(logical(LK)) :: isSorted
8758 end subroutine
8759#endif
8760
8761#if SK2_ENABLED
8762 module subroutine setRankOrdinalCusCom_D1_PSSK2(rank, array, isSorted)
8763#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8764 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_PSSK2
8765#endif
8766 use pm_kind, only: TKR => IK, SKG => SK2
8767 use pm_container, only: css_pdt
8768 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
8769 integer(TKR) , intent(out) , contiguous :: rank(:)
8770 procedure(logical(LK)) :: isSorted
8771 end subroutine
8772#endif
8773
8774#if SK1_ENABLED
8775 module subroutine setRankOrdinalCusCom_D1_PSSK1(rank, array, isSorted)
8776#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8777 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_PSSK1
8778#endif
8779 use pm_kind, only: TKR => IK, SKG => SK1
8780 use pm_container, only: css_pdt
8781 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
8782 integer(TKR) , intent(out) , contiguous :: rank(:)
8783 procedure(logical(LK)) :: isSorted
8784 end subroutine
8785#endif
8786
8787#endif
8788!PDT_ENABLED
8789
8790 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8791
8792 module subroutine setRankOrdinalCusCom_D1_BSSK(rank, array, isSorted)
8793#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8794 !DEC$ ATTRIBUTES DLLEXPORT :: setRankOrdinalCusCom_D1_BSSK
8795#endif
8796 use pm_kind, only: TKR => IK, SKG => SK
8797 use pm_container, only: css_type
8798 type(css_type) , intent(in) , contiguous :: array(:)
8799 integer(TKR) , intent(out) , contiguous :: rank(:)
8800 procedure(logical(LK)) :: isSorted
8801 end subroutine
8802
8803 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8804
8805 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8806 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8807 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8808
8809 end interface
8810
8811!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8812
8962
8963 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8964 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8965 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8966
8967 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8968
8969#if SK5_ENABLED
8970 module function getRankStandardDefCom_D0_SK5(array) result(rank)
8971#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8972 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D0_SK5
8973#endif
8974 use pm_kind, only: TKR => IK, SKG => SK5
8975 character(*,SKG) , intent(in) :: array
8976 integer(TKR) :: rank(len(array, IK))
8977 end function
8978#endif
8979
8980#if SK4_ENABLED
8981 module function getRankStandardDefCom_D0_SK4(array) result(rank)
8982#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8983 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D0_SK4
8984#endif
8985 use pm_kind, only: TKR => IK, SKG => SK4
8986 character(*,SKG) , intent(in) :: array
8987 integer(TKR) :: rank(len(array, IK))
8988 end function
8989#endif
8990
8991#if SK3_ENABLED
8992 module function getRankStandardDefCom_D0_SK3(array) result(rank)
8993#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8994 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D0_SK3
8995#endif
8996 use pm_kind, only: TKR => IK, SKG => SK3
8997 character(*,SKG) , intent(in) :: array
8998 integer(TKR) :: rank(len(array, IK))
8999 end function
9000#endif
9001
9002#if SK2_ENABLED
9003 module function getRankStandardDefCom_D0_SK2(array) result(rank)
9004#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9005 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D0_SK2
9006#endif
9007 use pm_kind, only: TKR => IK, SKG => SK2
9008 character(*,SKG) , intent(in) :: array
9009 integer(TKR) :: rank(len(array, IK))
9010 end function
9011#endif
9012
9013#if SK1_ENABLED
9014 module function getRankStandardDefCom_D0_SK1(array) result(rank)
9015#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9016 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D0_SK1
9017#endif
9018 use pm_kind, only: TKR => IK, SKG => SK1
9019 character(*,SKG) , intent(in) :: array
9020 integer(TKR) :: rank(len(array, IK))
9021 end function
9022#endif
9023
9024 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9025
9026#if SK5_ENABLED
9027 module function getRankStandardDefCom_D1_SK5(array) result(rank)
9028#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9029 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_SK5
9030#endif
9031 use pm_kind, only: TKR => IK, SKG => SK5
9032 character(*,SKG) , intent(in) , contiguous :: array(:)
9033 integer(TKR) :: rank(size(array, kind = IK))
9034 end function
9035#endif
9036
9037#if SK4_ENABLED
9038 module function getRankStandardDefCom_D1_SK4(array) result(rank)
9039#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9040 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_SK4
9041#endif
9042 use pm_kind, only: TKR => IK, SKG => SK4
9043 character(*,SKG) , intent(in) , contiguous :: array(:)
9044 integer(TKR) :: rank(size(array, kind = IK))
9045 end function
9046#endif
9047
9048#if SK3_ENABLED
9049 module function getRankStandardDefCom_D1_SK3(array) result(rank)
9050#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9051 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_SK3
9052#endif
9053 use pm_kind, only: TKR => IK, SKG => SK3
9054 character(*,SKG) , intent(in) , contiguous :: array(:)
9055 integer(TKR) :: rank(size(array, kind = IK))
9056 end function
9057#endif
9058
9059#if SK2_ENABLED
9060 module function getRankStandardDefCom_D1_SK2(array) result(rank)
9061#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9062 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_SK2
9063#endif
9064 use pm_kind, only: TKR => IK, SKG => SK2
9065 character(*,SKG) , intent(in) , contiguous :: array(:)
9066 integer(TKR) :: rank(size(array, kind = IK))
9067 end function
9068#endif
9069
9070#if SK1_ENABLED
9071 module function getRankStandardDefCom_D1_SK1(array) result(rank)
9072#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9073 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_SK1
9074#endif
9075 use pm_kind, only: TKR => IK, SKG => SK1
9076 character(*,SKG) , intent(in) , contiguous :: array(:)
9077 integer(TKR) :: rank(size(array, kind = IK))
9078 end function
9079#endif
9080
9081 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9082
9083#if IK5_ENABLED
9084 module function getRankStandardDefCom_D1_IK5(array) result(rank)
9085#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9086 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_IK5
9087#endif
9088 use pm_kind, only: TKR => IK, IKG => IK5
9089 integer(IKG) , intent(in) , contiguous :: array(:)
9090 integer(TKR) :: rank(size(array, kind = IK))
9091 end function
9092#endif
9093
9094#if IK4_ENABLED
9095 module function getRankStandardDefCom_D1_IK4(array) result(rank)
9096#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9097 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_IK4
9098#endif
9099 use pm_kind, only: TKR => IK, IKG => IK4
9100 integer(IKG) , intent(in) , contiguous :: array(:)
9101 integer(TKR) :: rank(size(array, kind = IK))
9102 end function
9103#endif
9104
9105#if IK3_ENABLED
9106 module function getRankStandardDefCom_D1_IK3(array) result(rank)
9107#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9108 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_IK3
9109#endif
9110 use pm_kind, only: TKR => IK, IKG => IK3
9111 integer(IKG) , intent(in) , contiguous :: array(:)
9112 integer(TKR) :: rank(size(array, kind = IK))
9113 end function
9114#endif
9115
9116#if IK2_ENABLED
9117 module function getRankStandardDefCom_D1_IK2(array) result(rank)
9118#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9119 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_IK2
9120#endif
9121 use pm_kind, only: TKR => IK, IKG => IK2
9122 integer(IKG) , intent(in) , contiguous :: array(:)
9123 integer(TKR) :: rank(size(array, kind = IK))
9124 end function
9125#endif
9126
9127#if IK1_ENABLED
9128 module function getRankStandardDefCom_D1_IK1(array) result(rank)
9129#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9130 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_IK1
9131#endif
9132 use pm_kind, only: TKR => IK, IKG => IK1
9133 integer(IKG) , intent(in) , contiguous :: array(:)
9134 integer(TKR) :: rank(size(array, kind = IK))
9135 end function
9136#endif
9137
9138 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9139
9140#if LK5_ENABLED
9141 module function getRankStandardDefCom_D1_LK5(array) result(rank)
9142#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9143 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_LK5
9144#endif
9145 use pm_kind, only: TKR => IK, LKG => LK5
9146 logical(LKG) , intent(in) , contiguous :: array(:)
9147 integer(TKR) :: rank(size(array, kind = IK))
9148 end function
9149#endif
9150
9151#if LK4_ENABLED
9152 module function getRankStandardDefCom_D1_LK4(array) result(rank)
9153#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9154 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_LK4
9155#endif
9156 use pm_kind, only: TKR => IK, LKG => LK4
9157 logical(LKG) , intent(in) , contiguous :: array(:)
9158 integer(TKR) :: rank(size(array, kind = IK))
9159 end function
9160#endif
9161
9162#if LK3_ENABLED
9163 module function getRankStandardDefCom_D1_LK3(array) result(rank)
9164#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9165 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_LK3
9166#endif
9167 use pm_kind, only: TKR => IK, LKG => LK3
9168 logical(LKG) , intent(in) , contiguous :: array(:)
9169 integer(TKR) :: rank(size(array, kind = IK))
9170 end function
9171#endif
9172
9173#if LK2_ENABLED
9174 module function getRankStandardDefCom_D1_LK2(array) result(rank)
9175#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9176 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_LK2
9177#endif
9178 use pm_kind, only: TKR => IK, LKG => LK2
9179 logical(LKG) , intent(in) , contiguous :: array(:)
9180 integer(TKR) :: rank(size(array, kind = IK))
9181 end function
9182#endif
9183
9184#if LK1_ENABLED
9185 module function getRankStandardDefCom_D1_LK1(array) result(rank)
9186#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9187 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_LK1
9188#endif
9189 use pm_kind, only: TKR => IK, LKG => LK1
9190 logical(LKG) , intent(in) , contiguous :: array(:)
9191 integer(TKR) :: rank(size(array, kind = IK))
9192 end function
9193#endif
9194
9195 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9196
9197#if CK5_ENABLED
9198 module function getRankStandardDefCom_D1_CK5(array) result(rank)
9199#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9200 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_CK5
9201#endif
9202 use pm_kind, only: TKR => IK, CKG => CK5
9203 complex(CKG) , intent(in) , contiguous :: array(:)
9204 integer(TKR) :: rank(size(array, kind = IK))
9205 end function
9206#endif
9207
9208#if CK4_ENABLED
9209 module function getRankStandardDefCom_D1_CK4(array) result(rank)
9210#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9211 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_CK4
9212#endif
9213 use pm_kind, only: TKR => IK, CKG => CK4
9214 complex(CKG) , intent(in) , contiguous :: array(:)
9215 integer(TKR) :: rank(size(array, kind = IK))
9216 end function
9217#endif
9218
9219#if CK3_ENABLED
9220 module function getRankStandardDefCom_D1_CK3(array) result(rank)
9221#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9222 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_CK3
9223#endif
9224 use pm_kind, only: TKR => IK, CKG => CK3
9225 complex(CKG) , intent(in) , contiguous :: array(:)
9226 integer(TKR) :: rank(size(array, kind = IK))
9227 end function
9228#endif
9229
9230#if CK2_ENABLED
9231 module function getRankStandardDefCom_D1_CK2(array) result(rank)
9232#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9233 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_CK2
9234#endif
9235 use pm_kind, only: TKR => IK, CKG => CK2
9236 complex(CKG) , intent(in) , contiguous :: array(:)
9237 integer(TKR) :: rank(size(array, kind = IK))
9238 end function
9239#endif
9240
9241#if CK1_ENABLED
9242 module function getRankStandardDefCom_D1_CK1(array) result(rank)
9243#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9244 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_CK1
9245#endif
9246 use pm_kind, only: TKR => IK, CKG => CK1
9247 complex(CKG) , intent(in) , contiguous :: array(:)
9248 integer(TKR) :: rank(size(array, kind = IK))
9249 end function
9250#endif
9251
9252 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9253
9254#if RK5_ENABLED
9255 module function getRankStandardDefCom_D1_RK5(array) result(rank)
9256#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9257 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_RK5
9258#endif
9259 use pm_kind, only: TKR => IK, RKG => RK5
9260 real(RKG) , intent(in) , contiguous :: array(:)
9261 integer(TKR) :: rank(size(array, kind = IK))
9262 end function
9263#endif
9264
9265#if RK4_ENABLED
9266 module function getRankStandardDefCom_D1_RK4(array) result(rank)
9267#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9268 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_RK4
9269#endif
9270 use pm_kind, only: TKR => IK, RKG => RK4
9271 real(RKG) , intent(in) , contiguous :: array(:)
9272 integer(TKR) :: rank(size(array, kind = IK))
9273 end function
9274#endif
9275
9276#if RK3_ENABLED
9277 module function getRankStandardDefCom_D1_RK3(array) result(rank)
9278#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9279 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_RK3
9280#endif
9281 use pm_kind, only: TKR => IK, RKG => RK3
9282 real(RKG) , intent(in) , contiguous :: array(:)
9283 integer(TKR) :: rank(size(array, kind = IK))
9284 end function
9285#endif
9286
9287#if RK2_ENABLED
9288 module function getRankStandardDefCom_D1_RK2(array) result(rank)
9289#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9290 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_RK2
9291#endif
9292 use pm_kind, only: TKR => IK, RKG => RK2
9293 real(RKG) , intent(in) , contiguous :: array(:)
9294 integer(TKR) :: rank(size(array, kind = IK))
9295 end function
9296#endif
9297
9298#if RK1_ENABLED
9299 module function getRankStandardDefCom_D1_RK1(array) result(rank)
9300#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9301 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_RK1
9302#endif
9303 use pm_kind, only: TKR => IK, RKG => RK1
9304 real(RKG) , intent(in) , contiguous :: array(:)
9305 integer(TKR) :: rank(size(array, kind = IK))
9306 end function
9307#endif
9308
9309 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9310
9311#if PDT_ENABLED
9312
9313#if SK5_ENABLED
9314 module function getRankStandardDefCom_D1_PSSK5(array) result(rank)
9315#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9316 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_PSSK5
9317#endif
9318 use pm_kind, only: TKR => IK, SKG => SK5
9319 use pm_container, only: css_pdt
9320 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
9321 integer(TKR) :: rank(size(array, kind = IK))
9322 end function
9323#endif
9324
9325#if SK4_ENABLED
9326 module function getRankStandardDefCom_D1_PSSK4(array) result(rank)
9327#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9328 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_PSSK4
9329#endif
9330 use pm_kind, only: TKR => IK, SKG => SK4
9331 use pm_container, only: css_pdt
9332 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
9333 integer(TKR) :: rank(size(array, kind = IK))
9334 end function
9335#endif
9336
9337#if SK3_ENABLED
9338 module function getRankStandardDefCom_D1_PSSK3(array) result(rank)
9339#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9340 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_PSSK3
9341#endif
9342 use pm_kind, only: TKR => IK, SKG => SK3
9343 use pm_container, only: css_pdt
9344 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
9345 integer(TKR) :: rank(size(array, kind = IK))
9346 end function
9347#endif
9348
9349#if SK2_ENABLED
9350 module function getRankStandardDefCom_D1_PSSK2(array) result(rank)
9351#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9352 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_PSSK2
9353#endif
9354 use pm_kind, only: TKR => IK, SKG => SK2
9355 use pm_container, only: css_pdt
9356 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
9357 integer(TKR) :: rank(size(array, kind = IK))
9358 end function
9359#endif
9360
9361#if SK1_ENABLED
9362 module function getRankStandardDefCom_D1_PSSK1(array) result(rank)
9363#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9364 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_PSSK1
9365#endif
9366 use pm_kind, only: TKR => IK, SKG => SK1
9367 use pm_container, only: css_pdt
9368 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
9369 integer(TKR) :: rank(size(array, kind = IK))
9370 end function
9371#endif
9372
9373#endif
9374!PDT_ENABLED
9375
9376 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9377
9378 module function getRankStandardDefCom_D1_BSSK(array) result(rank)
9379#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9380 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardDefCom_D1_BSSK
9381#endif
9382 use pm_kind, only: TKR => IK, SKG => SK
9383 use pm_container, only: css_type
9384 type(css_type) , intent(in) , contiguous :: array(:)
9385 integer(TKR) :: rank(size(array, kind = IK))
9386 end function
9387
9388 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9389
9390 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9391 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9392 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9393
9394 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9395
9396#if SK5_ENABLED
9397 module function getRankStandardCusCom_D0_SK5(array, isSorted) result(rank)
9398#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9399 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D0_SK5
9400#endif
9401 use pm_kind, only: TKR => IK, SKG => SK5
9402 character(*,SKG) , intent(in) :: array
9403 procedure(logical(LK)) :: isSorted
9404 integer(TKR) :: rank(len(array, IK))
9405 end function
9406#endif
9407
9408#if SK4_ENABLED
9409 module function getRankStandardCusCom_D0_SK4(array, isSorted) result(rank)
9410#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9411 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D0_SK4
9412#endif
9413 use pm_kind, only: TKR => IK, SKG => SK4
9414 character(*,SKG) , intent(in) :: array
9415 procedure(logical(LK)) :: isSorted
9416 integer(TKR) :: rank(len(array, IK))
9417 end function
9418#endif
9419
9420#if SK3_ENABLED
9421 module function getRankStandardCusCom_D0_SK3(array, isSorted) result(rank)
9422#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9423 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D0_SK3
9424#endif
9425 use pm_kind, only: TKR => IK, SKG => SK3
9426 character(*,SKG) , intent(in) :: array
9427 procedure(logical(LK)) :: isSorted
9428 integer(TKR) :: rank(len(array, IK))
9429 end function
9430#endif
9431
9432#if SK2_ENABLED
9433 module function getRankStandardCusCom_D0_SK2(array, isSorted) result(rank)
9434#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9435 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D0_SK2
9436#endif
9437 use pm_kind, only: TKR => IK, SKG => SK2
9438 character(*,SKG) , intent(in) :: array
9439 procedure(logical(LK)) :: isSorted
9440 integer(TKR) :: rank(len(array, IK))
9441 end function
9442#endif
9443
9444#if SK1_ENABLED
9445 module function getRankStandardCusCom_D0_SK1(array, isSorted) result(rank)
9446#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9447 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D0_SK1
9448#endif
9449 use pm_kind, only: TKR => IK, SKG => SK1
9450 character(*,SKG) , intent(in) :: array
9451 procedure(logical(LK)) :: isSorted
9452 integer(TKR) :: rank(len(array, IK))
9453 end function
9454#endif
9455
9456 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9457
9458#if SK5_ENABLED
9459 module function getRankStandardCusCom_D1_SK5(array, isSorted) result(rank)
9460#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9461 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_SK5
9462#endif
9463 use pm_kind, only: TKR => IK, SKG => SK5
9464 character(*,SKG) , intent(in) , contiguous :: array(:)
9465 procedure(logical(LK)) :: isSorted
9466 integer(TKR) :: rank(size(array, kind = IK))
9467 end function
9468#endif
9469
9470#if SK4_ENABLED
9471 module function getRankStandardCusCom_D1_SK4(array, isSorted) result(rank)
9472#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9473 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_SK4
9474#endif
9475 use pm_kind, only: TKR => IK, SKG => SK4
9476 character(*,SKG) , intent(in) , contiguous :: array(:)
9477 procedure(logical(LK)) :: isSorted
9478 integer(TKR) :: rank(size(array, kind = IK))
9479 end function
9480#endif
9481
9482#if SK3_ENABLED
9483 module function getRankStandardCusCom_D1_SK3(array, isSorted) result(rank)
9484#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9485 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_SK3
9486#endif
9487 use pm_kind, only: TKR => IK, SKG => SK3
9488 character(*,SKG) , intent(in) , contiguous :: array(:)
9489 procedure(logical(LK)) :: isSorted
9490 integer(TKR) :: rank(size(array, kind = IK))
9491 end function
9492#endif
9493
9494#if SK2_ENABLED
9495 module function getRankStandardCusCom_D1_SK2(array, isSorted) result(rank)
9496#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9497 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_SK2
9498#endif
9499 use pm_kind, only: TKR => IK, SKG => SK2
9500 character(*,SKG) , intent(in) , contiguous :: array(:)
9501 procedure(logical(LK)) :: isSorted
9502 integer(TKR) :: rank(size(array, kind = IK))
9503 end function
9504#endif
9505
9506#if SK1_ENABLED
9507 module function getRankStandardCusCom_D1_SK1(array, isSorted) result(rank)
9508#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9509 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_SK1
9510#endif
9511 use pm_kind, only: TKR => IK, SKG => SK1
9512 character(*,SKG) , intent(in) , contiguous :: array(:)
9513 procedure(logical(LK)) :: isSorted
9514 integer(TKR) :: rank(size(array, kind = IK))
9515 end function
9516#endif
9517
9518 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9519
9520#if IK5_ENABLED
9521 module function getRankStandardCusCom_D1_IK5(array, isSorted) result(rank)
9522#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9523 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_IK5
9524#endif
9525 use pm_kind, only: TKR => IK, IKG => IK5
9526 integer(IKG) , intent(in) , contiguous :: array(:)
9527 procedure(logical(LK)) :: isSorted
9528 integer(TKR) :: rank(size(array, kind = IK))
9529 end function
9530#endif
9531
9532#if IK4_ENABLED
9533 module function getRankStandardCusCom_D1_IK4(array, isSorted) result(rank)
9534#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9535 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_IK4
9536#endif
9537 use pm_kind, only: TKR => IK, IKG => IK4
9538 integer(IKG) , intent(in) , contiguous :: array(:)
9539 procedure(logical(LK)) :: isSorted
9540 integer(TKR) :: rank(size(array, kind = IK))
9541 end function
9542#endif
9543
9544#if IK3_ENABLED
9545 module function getRankStandardCusCom_D1_IK3(array, isSorted) result(rank)
9546#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9547 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_IK3
9548#endif
9549 use pm_kind, only: TKR => IK, IKG => IK3
9550 integer(IKG) , intent(in) , contiguous :: array(:)
9551 procedure(logical(LK)) :: isSorted
9552 integer(TKR) :: rank(size(array, kind = IK))
9553 end function
9554#endif
9555
9556#if IK2_ENABLED
9557 module function getRankStandardCusCom_D1_IK2(array, isSorted) result(rank)
9558#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9559 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_IK2
9560#endif
9561 use pm_kind, only: TKR => IK, IKG => IK2
9562 integer(IKG) , intent(in) , contiguous :: array(:)
9563 procedure(logical(LK)) :: isSorted
9564 integer(TKR) :: rank(size(array, kind = IK))
9565 end function
9566#endif
9567
9568#if IK1_ENABLED
9569 module function getRankStandardCusCom_D1_IK1(array, isSorted) result(rank)
9570#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9571 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_IK1
9572#endif
9573 use pm_kind, only: TKR => IK, IKG => IK1
9574 integer(IKG) , intent(in) , contiguous :: array(:)
9575 procedure(logical(LK)) :: isSorted
9576 integer(TKR) :: rank(size(array, kind = IK))
9577 end function
9578#endif
9579
9580 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9581
9582#if LK5_ENABLED
9583 module function getRankStandardCusCom_D1_LK5(array, isSorted) result(rank)
9584#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9585 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_LK5
9586#endif
9587 use pm_kind, only: TKR => IK, LKG => LK5
9588 logical(LKG) , intent(in) , contiguous :: array(:)
9589 procedure(logical(LK)) :: isSorted
9590 integer(TKR) :: rank(size(array, kind = IK))
9591 end function
9592#endif
9593
9594#if LK4_ENABLED
9595 module function getRankStandardCusCom_D1_LK4(array, isSorted) result(rank)
9596#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9597 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_LK4
9598#endif
9599 use pm_kind, only: TKR => IK, LKG => LK4
9600 logical(LKG) , intent(in) , contiguous :: array(:)
9601 procedure(logical(LK)) :: isSorted
9602 integer(TKR) :: rank(size(array, kind = IK))
9603 end function
9604#endif
9605
9606#if LK3_ENABLED
9607 module function getRankStandardCusCom_D1_LK3(array, isSorted) result(rank)
9608#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9609 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_LK3
9610#endif
9611 use pm_kind, only: TKR => IK, LKG => LK3
9612 logical(LKG) , intent(in) , contiguous :: array(:)
9613 procedure(logical(LK)) :: isSorted
9614 integer(TKR) :: rank(size(array, kind = IK))
9615 end function
9616#endif
9617
9618#if LK2_ENABLED
9619 module function getRankStandardCusCom_D1_LK2(array, isSorted) result(rank)
9620#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9621 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_LK2
9622#endif
9623 use pm_kind, only: TKR => IK, LKG => LK2
9624 logical(LKG) , intent(in) , contiguous :: array(:)
9625 procedure(logical(LK)) :: isSorted
9626 integer(TKR) :: rank(size(array, kind = IK))
9627 end function
9628#endif
9629
9630#if LK1_ENABLED
9631 module function getRankStandardCusCom_D1_LK1(array, isSorted) result(rank)
9632#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9633 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_LK1
9634#endif
9635 use pm_kind, only: TKR => IK, LKG => LK1
9636 logical(LKG) , intent(in) , contiguous :: array(:)
9637 procedure(logical(LK)) :: isSorted
9638 integer(TKR) :: rank(size(array, kind = IK))
9639 end function
9640#endif
9641
9642 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9643
9644#if CK5_ENABLED
9645 module function getRankStandardCusCom_D1_CK5(array, isSorted) result(rank)
9646#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9647 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_CK5
9648#endif
9649 use pm_kind, only: TKR => IK, CKG => CK5
9650 complex(CKG) , intent(in) , contiguous :: array(:)
9651 procedure(logical(LK)) :: isSorted
9652 integer(TKR) :: rank(size(array, kind = IK))
9653 end function
9654#endif
9655
9656#if CK4_ENABLED
9657 module function getRankStandardCusCom_D1_CK4(array, isSorted) result(rank)
9658#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9659 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_CK4
9660#endif
9661 use pm_kind, only: TKR => IK, CKG => CK4
9662 complex(CKG) , intent(in) , contiguous :: array(:)
9663 procedure(logical(LK)) :: isSorted
9664 integer(TKR) :: rank(size(array, kind = IK))
9665 end function
9666#endif
9667
9668#if CK3_ENABLED
9669 module function getRankStandardCusCom_D1_CK3(array, isSorted) result(rank)
9670#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9671 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_CK3
9672#endif
9673 use pm_kind, only: TKR => IK, CKG => CK3
9674 complex(CKG) , intent(in) , contiguous :: array(:)
9675 procedure(logical(LK)) :: isSorted
9676 integer(TKR) :: rank(size(array, kind = IK))
9677 end function
9678#endif
9679
9680#if CK2_ENABLED
9681 module function getRankStandardCusCom_D1_CK2(array, isSorted) result(rank)
9682#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9683 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_CK2
9684#endif
9685 use pm_kind, only: TKR => IK, CKG => CK2
9686 complex(CKG) , intent(in) , contiguous :: array(:)
9687 procedure(logical(LK)) :: isSorted
9688 integer(TKR) :: rank(size(array, kind = IK))
9689 end function
9690#endif
9691
9692#if CK1_ENABLED
9693 module function getRankStandardCusCom_D1_CK1(array, isSorted) result(rank)
9694#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9695 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_CK1
9696#endif
9697 use pm_kind, only: TKR => IK, CKG => CK1
9698 complex(CKG) , intent(in) , contiguous :: array(:)
9699 procedure(logical(LK)) :: isSorted
9700 integer(TKR) :: rank(size(array, kind = IK))
9701 end function
9702#endif
9703
9704 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9705
9706#if RK5_ENABLED
9707 module function getRankStandardCusCom_D1_RK5(array, isSorted) result(rank)
9708#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9709 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_RK5
9710#endif
9711 use pm_kind, only: TKR => IK, RKG => RK5
9712 real(RKG) , intent(in) , contiguous :: array(:)
9713 procedure(logical(LK)) :: isSorted
9714 integer(TKR) :: rank(size(array, kind = IK))
9715 end function
9716#endif
9717
9718#if RK4_ENABLED
9719 module function getRankStandardCusCom_D1_RK4(array, isSorted) result(rank)
9720#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9721 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_RK4
9722#endif
9723 use pm_kind, only: TKR => IK, RKG => RK4
9724 real(RKG) , intent(in) , contiguous :: array(:)
9725 procedure(logical(LK)) :: isSorted
9726 integer(TKR) :: rank(size(array, kind = IK))
9727 end function
9728#endif
9729
9730#if RK3_ENABLED
9731 module function getRankStandardCusCom_D1_RK3(array, isSorted) result(rank)
9732#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9733 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_RK3
9734#endif
9735 use pm_kind, only: TKR => IK, RKG => RK3
9736 real(RKG) , intent(in) , contiguous :: array(:)
9737 procedure(logical(LK)) :: isSorted
9738 integer(TKR) :: rank(size(array, kind = IK))
9739 end function
9740#endif
9741
9742#if RK2_ENABLED
9743 module function getRankStandardCusCom_D1_RK2(array, isSorted) result(rank)
9744#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9745 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_RK2
9746#endif
9747 use pm_kind, only: TKR => IK, RKG => RK2
9748 real(RKG) , intent(in) , contiguous :: array(:)
9749 procedure(logical(LK)) :: isSorted
9750 integer(TKR) :: rank(size(array, kind = IK))
9751 end function
9752#endif
9753
9754#if RK1_ENABLED
9755 module function getRankStandardCusCom_D1_RK1(array, isSorted) result(rank)
9756#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9757 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_RK1
9758#endif
9759 use pm_kind, only: TKR => IK, RKG => RK1
9760 real(RKG) , intent(in) , contiguous :: array(:)
9761 procedure(logical(LK)) :: isSorted
9762 integer(TKR) :: rank(size(array, kind = IK))
9763 end function
9764#endif
9765
9766 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9767
9768#if PDT_ENABLED
9769
9770#if SK5_ENABLED
9771 module function getRankStandardCusCom_D1_PSSK5(array, isSorted) result(rank)
9772#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9773 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_PSSK5
9774#endif
9775 use pm_kind, only: TKR => IK, SKG => SK5
9776 use pm_container, only: css_pdt
9777 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
9778 procedure(logical(LK)) :: isSorted
9779 integer(TKR) :: rank(size(array, kind = IK))
9780 end function
9781#endif
9782
9783#if SK4_ENABLED
9784 module function getRankStandardCusCom_D1_PSSK4(array, isSorted) result(rank)
9785#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9786 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_PSSK4
9787#endif
9788 use pm_kind, only: TKR => IK, SKG => SK4
9789 use pm_container, only: css_pdt
9790 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
9791 procedure(logical(LK)) :: isSorted
9792 integer(TKR) :: rank(size(array, kind = IK))
9793 end function
9794#endif
9795
9796#if SK3_ENABLED
9797 module function getRankStandardCusCom_D1_PSSK3(array, isSorted) result(rank)
9798#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9799 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_PSSK3
9800#endif
9801 use pm_kind, only: TKR => IK, SKG => SK3
9802 use pm_container, only: css_pdt
9803 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
9804 procedure(logical(LK)) :: isSorted
9805 integer(TKR) :: rank(size(array, kind = IK))
9806 end function
9807#endif
9808
9809#if SK2_ENABLED
9810 module function getRankStandardCusCom_D1_PSSK2(array, isSorted) result(rank)
9811#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9812 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_PSSK2
9813#endif
9814 use pm_kind, only: TKR => IK, SKG => SK2
9815 use pm_container, only: css_pdt
9816 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
9817 procedure(logical(LK)) :: isSorted
9818 integer(TKR) :: rank(size(array, kind = IK))
9819 end function
9820#endif
9821
9822#if SK1_ENABLED
9823 module function getRankStandardCusCom_D1_PSSK1(array, isSorted) result(rank)
9824#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9825 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_PSSK1
9826#endif
9827 use pm_kind, only: TKR => IK, SKG => SK1
9828 use pm_container, only: css_pdt
9829 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
9830 integer(TKR) :: rank(size(array, kind = IK))
9831 procedure(logical(LK)) :: isSorted
9832 end function
9833#endif
9834
9835#endif
9836!PDT_ENABLED
9837
9838 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9839
9840 module function getRankStandardCusCom_D1_BSSK(array, isSorted) result(rank)
9841#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9842 !DEC$ ATTRIBUTES DLLEXPORT :: getRankStandardCusCom_D1_BSSK
9843#endif
9844 use pm_kind, only: TKR => IK, SKG => SK
9845 use pm_container, only: css_type
9846 type(css_type) , intent(in) , contiguous :: array(:)
9847 procedure(logical(LK)) :: isSorted
9848 integer(TKR) :: rank(size(array, kind = IK))
9849 end function
9850
9851 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9852
9853 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9854 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9855 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9856
9857 end interface
9858
9859!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9860
10005
10006 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10007 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10008 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10009
10010 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10011
10012#if SK5_ENABLED
10013 PURE module subroutine setRankStandardDefCom_D0_SK5(rank, array)
10014#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10015 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D0_SK5
10016#endif
10017 use pm_kind, only: TKR => IK, SKG => SK5
10018 character(*,SKG) , intent(in) :: array
10019 integer(TKR) , intent(out) , contiguous :: rank(:)
10020 end subroutine
10021#endif
10022
10023#if SK4_ENABLED
10024 PURE module subroutine setRankStandardDefCom_D0_SK4(rank, array)
10025#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10026 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D0_SK4
10027#endif
10028 use pm_kind, only: TKR => IK, SKG => SK4
10029 character(*,SKG) , intent(in) :: array
10030 integer(TKR) , intent(out) , contiguous :: rank(:)
10031 end subroutine
10032#endif
10033
10034#if SK3_ENABLED
10035 PURE module subroutine setRankStandardDefCom_D0_SK3(rank, array)
10036#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10037 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D0_SK3
10038#endif
10039 use pm_kind, only: TKR => IK, SKG => SK3
10040 character(*,SKG) , intent(in) :: array
10041 integer(TKR) , intent(out) , contiguous :: rank(:)
10042 end subroutine
10043#endif
10044
10045#if SK2_ENABLED
10046 PURE module subroutine setRankStandardDefCom_D0_SK2(rank, array)
10047#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10048 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D0_SK2
10049#endif
10050 use pm_kind, only: TKR => IK, SKG => SK2
10051 character(*,SKG) , intent(in) :: array
10052 integer(TKR) , intent(out) , contiguous :: rank(:)
10053 end subroutine
10054#endif
10055
10056#if SK1_ENABLED
10057 PURE module subroutine setRankStandardDefCom_D0_SK1(rank, array)
10058#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10059 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D0_SK1
10060#endif
10061 use pm_kind, only: TKR => IK, SKG => SK1
10062 character(*,SKG) , intent(in) :: array
10063 integer(TKR) , intent(out) , contiguous :: rank(:)
10064 end subroutine
10065#endif
10066
10067 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10068
10069#if SK5_ENABLED
10070 PURE module subroutine setRankStandardDefCom_D1_SK5(rank, array)
10071#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10072 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_SK5
10073#endif
10074 use pm_kind, only: TKR => IK, SKG => SK5
10075 character(*,SKG) , intent(in) , contiguous :: array(:)
10076 integer(TKR) , intent(out) , contiguous :: rank(:)
10077 end subroutine
10078#endif
10079
10080#if SK4_ENABLED
10081 PURE module subroutine setRankStandardDefCom_D1_SK4(rank, array)
10082#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10083 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_SK4
10084#endif
10085 use pm_kind, only: TKR => IK, SKG => SK4
10086 character(*,SKG) , intent(in) , contiguous :: array(:)
10087 integer(TKR) , intent(out) , contiguous :: rank(:)
10088 end subroutine
10089#endif
10090
10091#if SK3_ENABLED
10092 PURE module subroutine setRankStandardDefCom_D1_SK3(rank, array)
10093#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10094 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_SK3
10095#endif
10096 use pm_kind, only: TKR => IK, SKG => SK3
10097 character(*,SKG) , intent(in) , contiguous :: array(:)
10098 integer(TKR) , intent(out) , contiguous :: rank(:)
10099 end subroutine
10100#endif
10101
10102#if SK2_ENABLED
10103 PURE module subroutine setRankStandardDefCom_D1_SK2(rank, array)
10104#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10105 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_SK2
10106#endif
10107 use pm_kind, only: TKR => IK, SKG => SK2
10108 character(*,SKG) , intent(in) , contiguous :: array(:)
10109 integer(TKR) , intent(out) , contiguous :: rank(:)
10110 end subroutine
10111#endif
10112
10113#if SK1_ENABLED
10114 PURE module subroutine setRankStandardDefCom_D1_SK1(rank, array)
10115#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10116 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_SK1
10117#endif
10118 use pm_kind, only: TKR => IK, SKG => SK1
10119 character(*,SKG) , intent(in) , contiguous :: array(:)
10120 integer(TKR) , intent(out) , contiguous :: rank(:)
10121 end subroutine
10122#endif
10123
10124 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10125
10126#if IK5_ENABLED
10127 PURE module subroutine setRankStandardDefCom_D1_IK5(rank, array)
10128#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10129 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_IK5
10130#endif
10131 use pm_kind, only: TKR => IK, IKG => IK5
10132 integer(IKG) , intent(in) , contiguous :: array(:)
10133 integer(TKR) , intent(out) , contiguous :: rank(:)
10134 end subroutine
10135#endif
10136
10137#if IK4_ENABLED
10138 PURE module subroutine setRankStandardDefCom_D1_IK4(rank, array)
10139#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10140 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_IK4
10141#endif
10142 use pm_kind, only: TKR => IK, IKG => IK4
10143 integer(IKG) , intent(in) , contiguous :: array(:)
10144 integer(TKR) , intent(out) , contiguous :: rank(:)
10145 end subroutine
10146#endif
10147
10148#if IK3_ENABLED
10149 PURE module subroutine setRankStandardDefCom_D1_IK3(rank, array)
10150#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10151 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_IK3
10152#endif
10153 use pm_kind, only: TKR => IK, IKG => IK3
10154 integer(IKG) , intent(in) , contiguous :: array(:)
10155 integer(TKR) , intent(out) , contiguous :: rank(:)
10156 end subroutine
10157#endif
10158
10159#if IK2_ENABLED
10160 PURE module subroutine setRankStandardDefCom_D1_IK2(rank, array)
10161#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10162 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_IK2
10163#endif
10164 use pm_kind, only: TKR => IK, IKG => IK2
10165 integer(IKG) , intent(in) , contiguous :: array(:)
10166 integer(TKR) , intent(out) , contiguous :: rank(:)
10167 end subroutine
10168#endif
10169
10170#if IK1_ENABLED
10171 PURE module subroutine setRankStandardDefCom_D1_IK1(rank, array)
10172#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10173 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_IK1
10174#endif
10175 use pm_kind, only: TKR => IK, IKG => IK1
10176 integer(IKG) , intent(in) , contiguous :: array(:)
10177 integer(TKR) , intent(out) , contiguous :: rank(:)
10178 end subroutine
10179#endif
10180
10181 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10182
10183#if LK5_ENABLED
10184 PURE module subroutine setRankStandardDefCom_D1_LK5(rank, array)
10185#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10186 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_LK5
10187#endif
10188 use pm_kind, only: TKR => IK, LKG => LK5
10189 logical(LKG) , intent(in) , contiguous :: array(:)
10190 integer(TKR) , intent(out) , contiguous :: rank(:)
10191 end subroutine
10192#endif
10193
10194#if LK4_ENABLED
10195 PURE module subroutine setRankStandardDefCom_D1_LK4(rank, array)
10196#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10197 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_LK4
10198#endif
10199 use pm_kind, only: TKR => IK, LKG => LK4
10200 logical(LKG) , intent(in) , contiguous :: array(:)
10201 integer(TKR) , intent(out) , contiguous :: rank(:)
10202 end subroutine
10203#endif
10204
10205#if LK3_ENABLED
10206 PURE module subroutine setRankStandardDefCom_D1_LK3(rank, array)
10207#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10208 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_LK3
10209#endif
10210 use pm_kind, only: TKR => IK, LKG => LK3
10211 logical(LKG) , intent(in) , contiguous :: array(:)
10212 integer(TKR) , intent(out) , contiguous :: rank(:)
10213 end subroutine
10214#endif
10215
10216#if LK2_ENABLED
10217 PURE module subroutine setRankStandardDefCom_D1_LK2(rank, array)
10218#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10219 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_LK2
10220#endif
10221 use pm_kind, only: TKR => IK, LKG => LK2
10222 logical(LKG) , intent(in) , contiguous :: array(:)
10223 integer(TKR) , intent(out) , contiguous :: rank(:)
10224 end subroutine
10225#endif
10226
10227#if LK1_ENABLED
10228 PURE module subroutine setRankStandardDefCom_D1_LK1(rank, array)
10229#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10230 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_LK1
10231#endif
10232 use pm_kind, only: TKR => IK, LKG => LK1
10233 logical(LKG) , intent(in) , contiguous :: array(:)
10234 integer(TKR) , intent(out) , contiguous :: rank(:)
10235 end subroutine
10236#endif
10237
10238 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10239
10240#if CK5_ENABLED
10241 PURE module subroutine setRankStandardDefCom_D1_CK5(rank, array)
10242#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10243 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_CK5
10244#endif
10245 use pm_kind, only: TKR => IK, CKG => CK5
10246 complex(CKG) , intent(in) , contiguous :: array(:)
10247 integer(TKR) , intent(out) , contiguous :: rank(:)
10248 end subroutine
10249#endif
10250
10251#if CK4_ENABLED
10252 PURE module subroutine setRankStandardDefCom_D1_CK4(rank, array)
10253#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10254 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_CK4
10255#endif
10256 use pm_kind, only: TKR => IK, CKG => CK4
10257 complex(CKG) , intent(in) , contiguous :: array(:)
10258 integer(TKR) , intent(out) , contiguous :: rank(:)
10259 end subroutine
10260#endif
10261
10262#if CK3_ENABLED
10263 PURE module subroutine setRankStandardDefCom_D1_CK3(rank, array)
10264#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10265 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_CK3
10266#endif
10267 use pm_kind, only: TKR => IK, CKG => CK3
10268 complex(CKG) , intent(in) , contiguous :: array(:)
10269 integer(TKR) , intent(out) , contiguous :: rank(:)
10270 end subroutine
10271#endif
10272
10273#if CK2_ENABLED
10274 PURE module subroutine setRankStandardDefCom_D1_CK2(rank, array)
10275#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10276 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_CK2
10277#endif
10278 use pm_kind, only: TKR => IK, CKG => CK2
10279 complex(CKG) , intent(in) , contiguous :: array(:)
10280 integer(TKR) , intent(out) , contiguous :: rank(:)
10281 end subroutine
10282#endif
10283
10284#if CK1_ENABLED
10285 PURE module subroutine setRankStandardDefCom_D1_CK1(rank, array)
10286#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10287 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_CK1
10288#endif
10289 use pm_kind, only: TKR => IK, CKG => CK1
10290 complex(CKG) , intent(in) , contiguous :: array(:)
10291 integer(TKR) , intent(out) , contiguous :: rank(:)
10292 end subroutine
10293#endif
10294
10295 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10296
10297#if RK5_ENABLED
10298 PURE module subroutine setRankStandardDefCom_D1_RK5(rank, array)
10299#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10300 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_RK5
10301#endif
10302 use pm_kind, only: TKR => IK, RKG => RK5
10303 real(RKG) , intent(in) , contiguous :: array(:)
10304 integer(TKR) , intent(out) , contiguous :: rank(:)
10305 end subroutine
10306#endif
10307
10308#if RK4_ENABLED
10309 PURE module subroutine setRankStandardDefCom_D1_RK4(rank, array)
10310#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10311 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_RK4
10312#endif
10313 use pm_kind, only: TKR => IK, RKG => RK4
10314 real(RKG) , intent(in) , contiguous :: array(:)
10315 integer(TKR) , intent(out) , contiguous :: rank(:)
10316 end subroutine
10317#endif
10318
10319#if RK3_ENABLED
10320 PURE module subroutine setRankStandardDefCom_D1_RK3(rank, array)
10321#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10322 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_RK3
10323#endif
10324 use pm_kind, only: TKR => IK, RKG => RK3
10325 real(RKG) , intent(in) , contiguous :: array(:)
10326 integer(TKR) , intent(out) , contiguous :: rank(:)
10327 end subroutine
10328#endif
10329
10330#if RK2_ENABLED
10331 PURE module subroutine setRankStandardDefCom_D1_RK2(rank, array)
10332#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10333 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_RK2
10334#endif
10335 use pm_kind, only: TKR => IK, RKG => RK2
10336 real(RKG) , intent(in) , contiguous :: array(:)
10337 integer(TKR) , intent(out) , contiguous :: rank(:)
10338 end subroutine
10339#endif
10340
10341#if RK1_ENABLED
10342 PURE module subroutine setRankStandardDefCom_D1_RK1(rank, array)
10343#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10344 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_RK1
10345#endif
10346 use pm_kind, only: TKR => IK, RKG => RK1
10347 real(RKG) , intent(in) , contiguous :: array(:)
10348 integer(TKR) , intent(out) , contiguous :: rank(:)
10349 end subroutine
10350#endif
10351
10352 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10353
10354#if PDT_ENABLED
10355
10356#if SK5_ENABLED
10357 PURE module subroutine setRankStandardDefCom_D1_PSSK5(rank, array)
10358#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10359 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_PSSK5
10360#endif
10361 use pm_kind, only: TKR => IK, SKG => SK5
10362 use pm_container, only: css_pdt
10363 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
10364 integer(TKR) , intent(out) , contiguous :: rank(:)
10365 end subroutine
10366#endif
10367
10368#if SK4_ENABLED
10369 PURE module subroutine setRankStandardDefCom_D1_PSSK4(rank, array)
10370#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10371 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_PSSK4
10372#endif
10373 use pm_kind, only: TKR => IK, SKG => SK4
10374 use pm_container, only: css_pdt
10375 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
10376 integer(TKR) , intent(out) , contiguous :: rank(:)
10377 end subroutine
10378#endif
10379
10380#if SK3_ENABLED
10381 PURE module subroutine setRankStandardDefCom_D1_PSSK3(rank, array)
10382#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10383 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_PSSK3
10384#endif
10385 use pm_kind, only: TKR => IK, SKG => SK3
10386 use pm_container, only: css_pdt
10387 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
10388 integer(TKR) , intent(out) , contiguous :: rank(:)
10389 end subroutine
10390#endif
10391
10392#if SK2_ENABLED
10393 PURE module subroutine setRankStandardDefCom_D1_PSSK2(rank, array)
10394#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10395 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_PSSK2
10396#endif
10397 use pm_kind, only: TKR => IK, SKG => SK2
10398 use pm_container, only: css_pdt
10399 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
10400 integer(TKR) , intent(out) , contiguous :: rank(:)
10401 end subroutine
10402#endif
10403
10404#if SK1_ENABLED
10405 PURE module subroutine setRankStandardDefCom_D1_PSSK1(rank, array)
10406#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10407 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_PSSK1
10408#endif
10409 use pm_kind, only: TKR => IK, SKG => SK1
10410 use pm_container, only: css_pdt
10411 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
10412 integer(TKR) , intent(out) , contiguous :: rank(:)
10413 end subroutine
10414#endif
10415
10416#endif
10417!PDT_ENABLED
10418
10419 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10420
10421 PURE module subroutine setRankStandardDefCom_D1_BSSK(rank, array)
10422#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10423 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardDefCom_D1_BSSK
10424#endif
10425 use pm_kind, only: TKR => IK, SKG => SK
10426 use pm_container, only: css_type
10427 type(css_type) , intent(in) , contiguous :: array(:)
10428 integer(TKR) , intent(out) , contiguous :: rank(:)
10429 end subroutine
10430
10431 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10432
10433 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10434 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10435 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10436
10437 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10438
10439#if SK5_ENABLED
10440 module subroutine setRankStandardCusCom_D0_SK5(rank, array, isSorted)
10441#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10442 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D0_SK5
10443#endif
10444 use pm_kind, only: TKR => IK, SKG => SK5
10445 character(*,SKG) , intent(in) :: array
10446 integer(TKR) , intent(out) , contiguous :: rank(:)
10447 procedure(logical(LK)) :: isSorted
10448 end subroutine
10449#endif
10450
10451#if SK4_ENABLED
10452 module subroutine setRankStandardCusCom_D0_SK4(rank, array, isSorted)
10453#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10454 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D0_SK4
10455#endif
10456 use pm_kind, only: TKR => IK, SKG => SK4
10457 character(*,SKG) , intent(in) :: array
10458 integer(TKR) , intent(out) , contiguous :: rank(:)
10459 procedure(logical(LK)) :: isSorted
10460 end subroutine
10461#endif
10462
10463#if SK3_ENABLED
10464 module subroutine setRankStandardCusCom_D0_SK3(rank, array, isSorted)
10465#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10466 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D0_SK3
10467#endif
10468 use pm_kind, only: TKR => IK, SKG => SK3
10469 character(*,SKG) , intent(in) :: array
10470 integer(TKR) , intent(out) , contiguous :: rank(:)
10471 procedure(logical(LK)) :: isSorted
10472 end subroutine
10473#endif
10474
10475#if SK2_ENABLED
10476 module subroutine setRankStandardCusCom_D0_SK2(rank, array, isSorted)
10477#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10478 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D0_SK2
10479#endif
10480 use pm_kind, only: TKR => IK, SKG => SK2
10481 character(*,SKG) , intent(in) :: array
10482 integer(TKR) , intent(out) , contiguous :: rank(:)
10483 procedure(logical(LK)) :: isSorted
10484 end subroutine
10485#endif
10486
10487#if SK1_ENABLED
10488 module subroutine setRankStandardCusCom_D0_SK1(rank, array, isSorted)
10489#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10490 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D0_SK1
10491#endif
10492 use pm_kind, only: TKR => IK, SKG => SK1
10493 character(*,SKG) , intent(in) :: array
10494 integer(TKR) , intent(out) , contiguous :: rank(:)
10495 procedure(logical(LK)) :: isSorted
10496 end subroutine
10497#endif
10498
10499 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10500
10501#if SK5_ENABLED
10502 module subroutine setRankStandardCusCom_D1_SK5(rank, array, isSorted)
10503#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10504 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_SK5
10505#endif
10506 use pm_kind, only: TKR => IK, SKG => SK5
10507 character(*,SKG) , intent(in) , contiguous :: array(:)
10508 integer(TKR) , intent(out) , contiguous :: rank(:)
10509 procedure(logical(LK)) :: isSorted
10510 end subroutine
10511#endif
10512
10513#if SK4_ENABLED
10514 module subroutine setRankStandardCusCom_D1_SK4(rank, array, isSorted)
10515#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10516 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_SK4
10517#endif
10518 use pm_kind, only: TKR => IK, SKG => SK4
10519 character(*,SKG) , intent(in) , contiguous :: array(:)
10520 integer(TKR) , intent(out) , contiguous :: rank(:)
10521 procedure(logical(LK)) :: isSorted
10522 end subroutine
10523#endif
10524
10525#if SK3_ENABLED
10526 module subroutine setRankStandardCusCom_D1_SK3(rank, array, isSorted)
10527#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10528 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_SK3
10529#endif
10530 use pm_kind, only: TKR => IK, SKG => SK3
10531 character(*,SKG) , intent(in) , contiguous :: array(:)
10532 integer(TKR) , intent(out) , contiguous :: rank(:)
10533 procedure(logical(LK)) :: isSorted
10534 end subroutine
10535#endif
10536
10537#if SK2_ENABLED
10538 module subroutine setRankStandardCusCom_D1_SK2(rank, array, isSorted)
10539#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10540 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_SK2
10541#endif
10542 use pm_kind, only: TKR => IK, SKG => SK2
10543 character(*,SKG) , intent(in) , contiguous :: array(:)
10544 integer(TKR) , intent(out) , contiguous :: rank(:)
10545 procedure(logical(LK)) :: isSorted
10546 end subroutine
10547#endif
10548
10549#if SK1_ENABLED
10550 module subroutine setRankStandardCusCom_D1_SK1(rank, array, isSorted)
10551#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10552 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_SK1
10553#endif
10554 use pm_kind, only: TKR => IK, SKG => SK1
10555 character(*,SKG) , intent(in) , contiguous :: array(:)
10556 integer(TKR) , intent(out) , contiguous :: rank(:)
10557 procedure(logical(LK)) :: isSorted
10558 end subroutine
10559#endif
10560
10561 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10562
10563#if IK5_ENABLED
10564 module subroutine setRankStandardCusCom_D1_IK5(rank, array, isSorted)
10565#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10566 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_IK5
10567#endif
10568 use pm_kind, only: TKR => IK, IKG => IK5
10569 integer(IKG) , intent(in) , contiguous :: array(:)
10570 integer(TKR) , intent(out) , contiguous :: rank(:)
10571 procedure(logical(LK)) :: isSorted
10572 end subroutine
10573#endif
10574
10575#if IK4_ENABLED
10576 module subroutine setRankStandardCusCom_D1_IK4(rank, array, isSorted)
10577#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10578 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_IK4
10579#endif
10580 use pm_kind, only: TKR => IK, IKG => IK4
10581 integer(IKG) , intent(in) , contiguous :: array(:)
10582 integer(TKR) , intent(out) , contiguous :: rank(:)
10583 procedure(logical(LK)) :: isSorted
10584 end subroutine
10585#endif
10586
10587#if IK3_ENABLED
10588 module subroutine setRankStandardCusCom_D1_IK3(rank, array, isSorted)
10589#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10590 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_IK3
10591#endif
10592 use pm_kind, only: TKR => IK, IKG => IK3
10593 integer(IKG) , intent(in) , contiguous :: array(:)
10594 integer(TKR) , intent(out) , contiguous :: rank(:)
10595 procedure(logical(LK)) :: isSorted
10596 end subroutine
10597#endif
10598
10599#if IK2_ENABLED
10600 module subroutine setRankStandardCusCom_D1_IK2(rank, array, isSorted)
10601#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10602 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_IK2
10603#endif
10604 use pm_kind, only: TKR => IK, IKG => IK2
10605 integer(IKG) , intent(in) , contiguous :: array(:)
10606 integer(TKR) , intent(out) , contiguous :: rank(:)
10607 procedure(logical(LK)) :: isSorted
10608 end subroutine
10609#endif
10610
10611#if IK1_ENABLED
10612 module subroutine setRankStandardCusCom_D1_IK1(rank, array, isSorted)
10613#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10614 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_IK1
10615#endif
10616 use pm_kind, only: TKR => IK, IKG => IK1
10617 integer(IKG) , intent(in) , contiguous :: array(:)
10618 integer(TKR) , intent(out) , contiguous :: rank(:)
10619 procedure(logical(LK)) :: isSorted
10620 end subroutine
10621#endif
10622
10623 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10624
10625#if LK5_ENABLED
10626 module subroutine setRankStandardCusCom_D1_LK5(rank, array, isSorted)
10627#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10628 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_LK5
10629#endif
10630 use pm_kind, only: TKR => IK, LKG => LK5
10631 logical(LKG) , intent(in) , contiguous :: array(:)
10632 integer(TKR) , intent(out) , contiguous :: rank(:)
10633 procedure(logical(LK)) :: isSorted
10634 end subroutine
10635#endif
10636
10637#if LK4_ENABLED
10638 module subroutine setRankStandardCusCom_D1_LK4(rank, array, isSorted)
10639#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10640 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_LK4
10641#endif
10642 use pm_kind, only: TKR => IK, LKG => LK4
10643 logical(LKG) , intent(in) , contiguous :: array(:)
10644 integer(TKR) , intent(out) , contiguous :: rank(:)
10645 procedure(logical(LK)) :: isSorted
10646 end subroutine
10647#endif
10648
10649#if LK3_ENABLED
10650 module subroutine setRankStandardCusCom_D1_LK3(rank, array, isSorted)
10651#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10652 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_LK3
10653#endif
10654 use pm_kind, only: TKR => IK, LKG => LK3
10655 logical(LKG) , intent(in) , contiguous :: array(:)
10656 integer(TKR) , intent(out) , contiguous :: rank(:)
10657 procedure(logical(LK)) :: isSorted
10658 end subroutine
10659#endif
10660
10661#if LK2_ENABLED
10662 module subroutine setRankStandardCusCom_D1_LK2(rank, array, isSorted)
10663#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10664 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_LK2
10665#endif
10666 use pm_kind, only: TKR => IK, LKG => LK2
10667 logical(LKG) , intent(in) , contiguous :: array(:)
10668 integer(TKR) , intent(out) , contiguous :: rank(:)
10669 procedure(logical(LK)) :: isSorted
10670 end subroutine
10671#endif
10672
10673#if LK1_ENABLED
10674 module subroutine setRankStandardCusCom_D1_LK1(rank, array, isSorted)
10675#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10676 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_LK1
10677#endif
10678 use pm_kind, only: TKR => IK, LKG => LK1
10679 logical(LKG) , intent(in) , contiguous :: array(:)
10680 integer(TKR) , intent(out) , contiguous :: rank(:)
10681 procedure(logical(LK)) :: isSorted
10682 end subroutine
10683#endif
10684
10685 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10686
10687#if CK5_ENABLED
10688 module subroutine setRankStandardCusCom_D1_CK5(rank, array, isSorted)
10689#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10690 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_CK5
10691#endif
10692 use pm_kind, only: TKR => IK, CKG => CK5
10693 complex(CKG) , intent(in) , contiguous :: array(:)
10694 integer(TKR) , intent(out) , contiguous :: rank(:)
10695 procedure(logical(LK)) :: isSorted
10696 end subroutine
10697#endif
10698
10699#if CK4_ENABLED
10700 module subroutine setRankStandardCusCom_D1_CK4(rank, array, isSorted)
10701#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10702 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_CK4
10703#endif
10704 use pm_kind, only: TKR => IK, CKG => CK4
10705 complex(CKG) , intent(in) , contiguous :: array(:)
10706 integer(TKR) , intent(out) , contiguous :: rank(:)
10707 procedure(logical(LK)) :: isSorted
10708 end subroutine
10709#endif
10710
10711#if CK3_ENABLED
10712 module subroutine setRankStandardCusCom_D1_CK3(rank, array, isSorted)
10713#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10714 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_CK3
10715#endif
10716 use pm_kind, only: TKR => IK, CKG => CK3
10717 complex(CKG) , intent(in) , contiguous :: array(:)
10718 integer(TKR) , intent(out) , contiguous :: rank(:)
10719 procedure(logical(LK)) :: isSorted
10720 end subroutine
10721#endif
10722
10723#if CK2_ENABLED
10724 module subroutine setRankStandardCusCom_D1_CK2(rank, array, isSorted)
10725#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10726 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_CK2
10727#endif
10728 use pm_kind, only: TKR => IK, CKG => CK2
10729 complex(CKG) , intent(in) , contiguous :: array(:)
10730 integer(TKR) , intent(out) , contiguous :: rank(:)
10731 procedure(logical(LK)) :: isSorted
10732 end subroutine
10733#endif
10734
10735#if CK1_ENABLED
10736 module subroutine setRankStandardCusCom_D1_CK1(rank, array, isSorted)
10737#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10738 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_CK1
10739#endif
10740 use pm_kind, only: TKR => IK, CKG => CK1
10741 complex(CKG) , intent(in) , contiguous :: array(:)
10742 integer(TKR) , intent(out) , contiguous :: rank(:)
10743 procedure(logical(LK)) :: isSorted
10744 end subroutine
10745#endif
10746
10747 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10748
10749#if RK5_ENABLED
10750 module subroutine setRankStandardCusCom_D1_RK5(rank, array, isSorted)
10751#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10752 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_RK5
10753#endif
10754 use pm_kind, only: TKR => IK, RKG => RK5
10755 real(RKG) , intent(in) , contiguous :: array(:)
10756 integer(TKR) , intent(out) , contiguous :: rank(:)
10757 procedure(logical(LK)) :: isSorted
10758 end subroutine
10759#endif
10760
10761#if RK4_ENABLED
10762 module subroutine setRankStandardCusCom_D1_RK4(rank, array, isSorted)
10763#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10764 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_RK4
10765#endif
10766 use pm_kind, only: TKR => IK, RKG => RK4
10767 real(RKG) , intent(in) , contiguous :: array(:)
10768 integer(TKR) , intent(out) , contiguous :: rank(:)
10769 procedure(logical(LK)) :: isSorted
10770 end subroutine
10771#endif
10772
10773#if RK3_ENABLED
10774 module subroutine setRankStandardCusCom_D1_RK3(rank, array, isSorted)
10775#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10776 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_RK3
10777#endif
10778 use pm_kind, only: TKR => IK, RKG => RK3
10779 real(RKG) , intent(in) , contiguous :: array(:)
10780 integer(TKR) , intent(out) , contiguous :: rank(:)
10781 procedure(logical(LK)) :: isSorted
10782 end subroutine
10783#endif
10784
10785#if RK2_ENABLED
10786 module subroutine setRankStandardCusCom_D1_RK2(rank, array, isSorted)
10787#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10788 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_RK2
10789#endif
10790 use pm_kind, only: TKR => IK, RKG => RK2
10791 real(RKG) , intent(in) , contiguous :: array(:)
10792 integer(TKR) , intent(out) , contiguous :: rank(:)
10793 procedure(logical(LK)) :: isSorted
10794 end subroutine
10795#endif
10796
10797#if RK1_ENABLED
10798 module subroutine setRankStandardCusCom_D1_RK1(rank, array, isSorted)
10799#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10800 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_RK1
10801#endif
10802 use pm_kind, only: TKR => IK, RKG => RK1
10803 real(RKG) , intent(in) , contiguous :: array(:)
10804 integer(TKR) , intent(out) , contiguous :: rank(:)
10805 procedure(logical(LK)) :: isSorted
10806 end subroutine
10807#endif
10808
10809 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10810
10811#if PDT_ENABLED
10812
10813#if SK5_ENABLED
10814 module subroutine setRankStandardCusCom_D1_PSSK5(rank, array, isSorted)
10815#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10816 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_PSSK5
10817#endif
10818 use pm_kind, only: TKR => IK, SKG => SK5
10819 use pm_container, only: css_pdt
10820 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
10821 integer(TKR) , intent(out) , contiguous :: rank(:)
10822 procedure(logical(LK)) :: isSorted
10823 end subroutine
10824#endif
10825
10826#if SK4_ENABLED
10827 module subroutine setRankStandardCusCom_D1_PSSK4(rank, array, isSorted)
10828#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10829 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_PSSK4
10830#endif
10831 use pm_kind, only: TKR => IK, SKG => SK4
10832 use pm_container, only: css_pdt
10833 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
10834 integer(TKR) , intent(out) , contiguous :: rank(:)
10835 procedure(logical(LK)) :: isSorted
10836 end subroutine
10837#endif
10838
10839#if SK3_ENABLED
10840 module subroutine setRankStandardCusCom_D1_PSSK3(rank, array, isSorted)
10841#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10842 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_PSSK3
10843#endif
10844 use pm_kind, only: TKR => IK, SKG => SK3
10845 use pm_container, only: css_pdt
10846 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
10847 integer(TKR) , intent(out) , contiguous :: rank(:)
10848 procedure(logical(LK)) :: isSorted
10849 end subroutine
10850#endif
10851
10852#if SK2_ENABLED
10853 module subroutine setRankStandardCusCom_D1_PSSK2(rank, array, isSorted)
10854#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10855 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_PSSK2
10856#endif
10857 use pm_kind, only: TKR => IK, SKG => SK2
10858 use pm_container, only: css_pdt
10859 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
10860 integer(TKR) , intent(out) , contiguous :: rank(:)
10861 procedure(logical(LK)) :: isSorted
10862 end subroutine
10863#endif
10864
10865#if SK1_ENABLED
10866 module subroutine setRankStandardCusCom_D1_PSSK1(rank, array, isSorted)
10867#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10868 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_PSSK1
10869#endif
10870 use pm_kind, only: TKR => IK, SKG => SK1
10871 use pm_container, only: css_pdt
10872 type(css_pdt(SKG)) , intent(in) , contiguous :: array(:)
10873 integer(TKR) , intent(out) , contiguous :: rank(:)
10874 procedure(logical(LK)) :: isSorted
10875 end subroutine
10876#endif
10877
10878#endif
10879!PDT_ENABLED
10880
10881 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10882
10883 module subroutine setRankStandardCusCom_D1_BSSK(rank, array, isSorted)
10884#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10885 !DEC$ ATTRIBUTES DLLEXPORT :: setRankStandardCusCom_D1_BSSK
10886#endif
10887 use pm_kind, only: TKR => IK, SKG => SK
10888 use pm_container, only: css_type
10889 type(css_type) , intent(in) , contiguous :: array(:)
10890 integer(TKR) , intent(out) , contiguous :: rank(:)
10891 procedure(logical(LK)) :: isSorted
10892 end subroutine
10893
10894 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10895
10896 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10897 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10898 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10899
10900 end interface
10901
10902!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10903
10904end 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.