ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_sampleCor.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
275
276!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
277
279
280 use pm_kind, only: SK, IK, LK, RK
283 use pm_matrixSubset, only: upp_type, upp
284 use pm_matrixSubset, only: low_type, low
285 use pm_container, only: css_type
286#if PDT_ENABLED
287 use pm_container, only: css_pdt
288#endif
289
290 implicit none
291
292 character(*, SK), parameter :: MODULE_NAME = "@pm_sampleCor"
293
294!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
295
317 type, abstract :: corcoef_type
318 end type
319
320!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
321
349 type, extends(corcoef_type) :: kendall_type
350 end type
351
372 type(kendall_type), parameter :: kendall = kendall_type()
373#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
374 !DIR$ ATTRIBUTES DLLEXPORT :: kendall
375#endif
376
377!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
378
410 type, extends(kendall_type) :: kendallA_type
411 end type
412
437 type(kendallA_type), parameter :: kendallA = kendallA_type()
438#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
439 !DIR$ ATTRIBUTES DLLEXPORT :: kendallA
440#endif
441
442!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
443
475 type, extends(kendall_type) :: kendallB_type
476 end type
477
502 type(kendallB_type), parameter :: kendallB = kendallB_type()
503#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
504 !DIR$ ATTRIBUTES DLLEXPORT :: kendallB
505#endif
506
507!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
508
537 type, extends(corcoef_type) :: pearson_type
538 end type
539
560 type(pearson_type), parameter :: pearson = pearson_type()
561#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
562 !DIR$ ATTRIBUTES DLLEXPORT :: pearson
563#endif
564
565!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
566
594 type, extends(corcoef_type) :: spearman_type
595 end type
596
617 type(spearman_type), parameter :: spearman = spearman_type()
618#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
619 !DIR$ ATTRIBUTES DLLEXPORT :: spearman
620#endif
621
622!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
623
762
763 ! cov2cor.
764
765 interface getCor
766
767 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
768 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
769 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
770
771 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
772
773#if CK5_ENABLED
774 PURE module function getCFC_RULD_VUXD_CK5(cov, subsetv) result(cor)
775#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
776 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VUXD_CK5
777#endif
778 use pm_kind, only: TKG => CK5
779 type(uppDia_type) , intent(in) :: subsetv
780 complex(TKG) , intent(in) , contiguous :: cov(:,:)
781 complex(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
782 end function
783#endif
784
785#if CK4_ENABLED
786 PURE module function getCFC_RULD_VUXD_CK4(cov, subsetv) result(cor)
787#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
788 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VUXD_CK4
789#endif
790 use pm_kind, only: TKG => CK4
791 type(uppDia_type) , intent(in) :: subsetv
792 complex(TKG) , intent(in) , contiguous :: cov(:,:)
793 complex(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
794 end function
795#endif
796
797#if CK3_ENABLED
798 PURE module function getCFC_RULD_VUXD_CK3(cov, subsetv) result(cor)
799#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
800 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VUXD_CK3
801#endif
802 use pm_kind, only: TKG => CK3
803 type(uppDia_type) , intent(in) :: subsetv
804 complex(TKG) , intent(in) , contiguous :: cov(:,:)
805 complex(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
806 end function
807#endif
808
809#if CK2_ENABLED
810 PURE module function getCFC_RULD_VUXD_CK2(cov, subsetv) result(cor)
811#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
812 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VUXD_CK2
813#endif
814 use pm_kind, only: TKG => CK2
815 type(uppDia_type) , intent(in) :: subsetv
816 complex(TKG) , intent(in) , contiguous :: cov(:,:)
817 complex(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
818 end function
819#endif
820
821#if CK1_ENABLED
822 PURE module function getCFC_RULD_VUXD_CK1(cov, subsetv) result(cor)
823#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
824 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VUXD_CK1
825#endif
826 use pm_kind, only: TKG => CK1
827 type(uppDia_type) , intent(in) :: subsetv
828 complex(TKG) , intent(in) , contiguous :: cov(:,:)
829 complex(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
830 end function
831#endif
832
833 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
834
835#if RK5_ENABLED
836 PURE module function getCFC_RULD_VUXD_RK5(cov, subsetv) result(cor)
837#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
838 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VUXD_RK5
839#endif
840 use pm_kind, only: TKG => RK5
841 type(uppDia_type) , intent(in) :: subsetv
842 real(TKG) , intent(in) , contiguous :: cov(:,:)
843 real(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
844 end function
845#endif
846
847#if RK4_ENABLED
848 PURE module function getCFC_RULD_VUXD_RK4(cov, subsetv) result(cor)
849#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
850 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VUXD_RK4
851#endif
852 use pm_kind, only: TKG => RK4
853 type(uppDia_type) , intent(in) :: subsetv
854 real(TKG) , intent(in) , contiguous :: cov(:,:)
855 real(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
856 end function
857#endif
858
859#if RK3_ENABLED
860 PURE module function getCFC_RULD_VUXD_RK3(cov, subsetv) result(cor)
861#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
862 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VUXD_RK3
863#endif
864 use pm_kind, only: TKG => RK3
865 type(uppDia_type) , intent(in) :: subsetv
866 real(TKG) , intent(in) , contiguous :: cov(:,:)
867 real(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
868 end function
869#endif
870
871#if RK2_ENABLED
872 PURE module function getCFC_RULD_VUXD_RK2(cov, subsetv) result(cor)
873#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
874 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VUXD_RK2
875#endif
876 use pm_kind, only: TKG => RK2
877 type(uppDia_type) , intent(in) :: subsetv
878 real(TKG) , intent(in) , contiguous :: cov(:,:)
879 real(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
880 end function
881#endif
882
883#if RK1_ENABLED
884 PURE module function getCFC_RULD_VUXD_RK1(cov, subsetv) result(cor)
885#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
886 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VUXD_RK1
887#endif
888 use pm_kind, only: TKG => RK1
889 type(uppDia_type) , intent(in) :: subsetv
890 real(TKG) , intent(in) , contiguous :: cov(:,:)
891 real(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
892 end function
893#endif
894
895 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
896
897 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
898 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
899 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
900
901 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
902
903#if CK5_ENABLED
904 PURE module function getCFC_RULD_VXLD_CK5(cov, subsetv) result(cor)
905#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
906 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VXLD_CK5
907#endif
908 use pm_kind, only: TKG => CK5
909 type(lowDia_type) , intent(in) :: subsetv
910 complex(TKG) , intent(in) , contiguous :: cov(:,:)
911 complex(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
912 end function
913#endif
914
915#if CK4_ENABLED
916 PURE module function getCFC_RULD_VXLD_CK4(cov, subsetv) result(cor)
917#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
918 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VXLD_CK4
919#endif
920 use pm_kind, only: TKG => CK4
921 type(lowDia_type) , intent(in) :: subsetv
922 complex(TKG) , intent(in) , contiguous :: cov(:,:)
923 complex(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
924 end function
925#endif
926
927#if CK3_ENABLED
928 PURE module function getCFC_RULD_VXLD_CK3(cov, subsetv) result(cor)
929#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
930 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VXLD_CK3
931#endif
932 use pm_kind, only: TKG => CK3
933 type(lowDia_type) , intent(in) :: subsetv
934 complex(TKG) , intent(in) , contiguous :: cov(:,:)
935 complex(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
936 end function
937#endif
938
939#if CK2_ENABLED
940 PURE module function getCFC_RULD_VXLD_CK2(cov, subsetv) result(cor)
941#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
942 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VXLD_CK2
943#endif
944 use pm_kind, only: TKG => CK2
945 type(lowDia_type) , intent(in) :: subsetv
946 complex(TKG) , intent(in) , contiguous :: cov(:,:)
947 complex(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
948 end function
949#endif
950
951#if CK1_ENABLED
952 PURE module function getCFC_RULD_VXLD_CK1(cov, subsetv) result(cor)
953#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
954 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VXLD_CK1
955#endif
956 use pm_kind, only: TKG => CK1
957 type(lowDia_type) , intent(in) :: subsetv
958 complex(TKG) , intent(in) , contiguous :: cov(:,:)
959 complex(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
960 end function
961#endif
962
963 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
964
965#if RK5_ENABLED
966 PURE module function getCFC_RULD_VXLD_RK5(cov, subsetv) result(cor)
967#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
968 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VXLD_RK5
969#endif
970 use pm_kind, only: TKG => RK5
971 type(lowDia_type) , intent(in) :: subsetv
972 real(TKG) , intent(in) , contiguous :: cov(:,:)
973 real(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
974 end function
975#endif
976
977#if RK4_ENABLED
978 PURE module function getCFC_RULD_VXLD_RK4(cov, subsetv) result(cor)
979#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
980 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VXLD_RK4
981#endif
982 use pm_kind, only: TKG => RK4
983 type(lowDia_type) , intent(in) :: subsetv
984 real(TKG) , intent(in) , contiguous :: cov(:,:)
985 real(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
986 end function
987#endif
988
989#if RK3_ENABLED
990 PURE module function getCFC_RULD_VXLD_RK3(cov, subsetv) result(cor)
991#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
992 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VXLD_RK3
993#endif
994 use pm_kind, only: TKG => RK3
995 type(lowDia_type) , intent(in) :: subsetv
996 real(TKG) , intent(in) , contiguous :: cov(:,:)
997 real(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
998 end function
999#endif
1000
1001#if RK2_ENABLED
1002 PURE module function getCFC_RULD_VXLD_RK2(cov, subsetv) result(cor)
1003#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1004 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VXLD_RK2
1005#endif
1006 use pm_kind, only: TKG => RK2
1007 type(lowDia_type) , intent(in) :: subsetv
1008 real(TKG) , intent(in) , contiguous :: cov(:,:)
1009 real(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
1010 end function
1011#endif
1012
1013#if RK1_ENABLED
1014 PURE module function getCFC_RULD_VXLD_RK1(cov, subsetv) result(cor)
1015#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1016 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VXLD_RK1
1017#endif
1018 use pm_kind, only: TKG => RK1
1019 type(lowDia_type) , intent(in) :: subsetv
1020 real(TKG) , intent(in) , contiguous :: cov(:,:)
1021 real(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
1022 end function
1023#endif
1024
1025 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1026
1027 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1028 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1029 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1030
1031 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1032
1033#if CK5_ENABLED
1034 PURE module function getCFC_RULD_VUXX_CK5(cov, subsetv, stdinv) result(cor)
1035#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1036 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VUXX_CK5
1037#endif
1038 use pm_kind, only: TKG => CK5
1039 type(upp_type) , intent(in) :: subsetv
1040 real(TKG) , intent(in) , contiguous :: stdinv(:)
1041 complex(TKG) , intent(in) , contiguous :: cov(:,:)
1042 complex(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
1043 end function
1044#endif
1045
1046#if CK4_ENABLED
1047 PURE module function getCFC_RULD_VUXX_CK4(cov, subsetv, stdinv) result(cor)
1048#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1049 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VUXX_CK4
1050#endif
1051 use pm_kind, only: TKG => CK4
1052 type(upp_type) , intent(in) :: subsetv
1053 real(TKG) , intent(in) , contiguous :: stdinv(:)
1054 complex(TKG) , intent(in) , contiguous :: cov(:,:)
1055 complex(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
1056 end function
1057#endif
1058
1059#if CK3_ENABLED
1060 PURE module function getCFC_RULD_VUXX_CK3(cov, subsetv, stdinv) result(cor)
1061#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1062 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VUXX_CK3
1063#endif
1064 use pm_kind, only: TKG => CK3
1065 type(upp_type) , intent(in) :: subsetv
1066 real(TKG) , intent(in) , contiguous :: stdinv(:)
1067 complex(TKG) , intent(in) , contiguous :: cov(:,:)
1068 complex(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
1069 end function
1070#endif
1071
1072#if CK2_ENABLED
1073 PURE module function getCFC_RULD_VUXX_CK2(cov, subsetv, stdinv) result(cor)
1074#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1075 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VUXX_CK2
1076#endif
1077 use pm_kind, only: TKG => CK2
1078 type(upp_type) , intent(in) :: subsetv
1079 real(TKG) , intent(in) , contiguous :: stdinv(:)
1080 complex(TKG) , intent(in) , contiguous :: cov(:,:)
1081 complex(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
1082 end function
1083#endif
1084
1085#if CK1_ENABLED
1086 PURE module function getCFC_RULD_VUXX_CK1(cov, subsetv, stdinv) result(cor)
1087#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1088 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VUXX_CK1
1089#endif
1090 use pm_kind, only: TKG => CK1
1091 type(upp_type) , intent(in) :: subsetv
1092 real(TKG) , intent(in) , contiguous :: stdinv(:)
1093 complex(TKG) , intent(in) , contiguous :: cov(:,:)
1094 complex(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
1095 end function
1096#endif
1097
1098 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1099
1100#if RK5_ENABLED
1101 PURE module function getCFC_RULD_VUXX_RK5(cov, subsetv, stdinv) result(cor)
1102#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1103 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VUXX_RK5
1104#endif
1105 use pm_kind, only: TKG => RK5
1106 type(upp_type) , intent(in) :: subsetv
1107 real(TKG) , intent(in) , contiguous :: stdinv(:)
1108 real(TKG) , intent(in) , contiguous :: cov(:,:)
1109 real(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
1110 end function
1111#endif
1112
1113#if RK4_ENABLED
1114 PURE module function getCFC_RULD_VUXX_RK4(cov, subsetv, stdinv) result(cor)
1115#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1116 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VUXX_RK4
1117#endif
1118 use pm_kind, only: TKG => RK4
1119 type(upp_type) , intent(in) :: subsetv
1120 real(TKG) , intent(in) , contiguous :: stdinv(:)
1121 real(TKG) , intent(in) , contiguous :: cov(:,:)
1122 real(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
1123 end function
1124#endif
1125
1126#if RK3_ENABLED
1127 PURE module function getCFC_RULD_VUXX_RK3(cov, subsetv, stdinv) result(cor)
1128#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1129 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VUXX_RK3
1130#endif
1131 use pm_kind, only: TKG => RK3
1132 type(upp_type) , intent(in) :: subsetv
1133 real(TKG) , intent(in) , contiguous :: stdinv(:)
1134 real(TKG) , intent(in) , contiguous :: cov(:,:)
1135 real(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
1136 end function
1137#endif
1138
1139#if RK2_ENABLED
1140 PURE module function getCFC_RULD_VUXX_RK2(cov, subsetv, stdinv) result(cor)
1141#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1142 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VUXX_RK2
1143#endif
1144 use pm_kind, only: TKG => RK2
1145 type(upp_type) , intent(in) :: subsetv
1146 real(TKG) , intent(in) , contiguous :: stdinv(:)
1147 real(TKG) , intent(in) , contiguous :: cov(:,:)
1148 real(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
1149 end function
1150#endif
1151
1152#if RK1_ENABLED
1153 PURE module function getCFC_RULD_VUXX_RK1(cov, subsetv, stdinv) result(cor)
1154#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1155 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VUXX_RK1
1156#endif
1157 use pm_kind, only: TKG => RK1
1158 type(upp_type) , intent(in) :: subsetv
1159 real(TKG) , intent(in) , contiguous :: stdinv(:)
1160 real(TKG) , intent(in) , contiguous :: cov(:,:)
1161 real(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
1162 end function
1163#endif
1164
1165 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1166
1167 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1168 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1169 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1170
1171 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1172
1173#if CK5_ENABLED
1174 PURE module function getCFC_RULD_VXLX_CK5(cov, subsetv, stdinv) result(cor)
1175#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1176 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VXLX_CK5
1177#endif
1178 use pm_kind, only: TKG => CK5
1179 type(low_type) , intent(in) :: subsetv
1180 real(TKG) , intent(in) , contiguous :: stdinv(:)
1181 complex(TKG) , intent(in) , contiguous :: cov(:,:)
1182 complex(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
1183 end function
1184#endif
1185
1186#if CK4_ENABLED
1187 PURE module function getCFC_RULD_VXLX_CK4(cov, subsetv, stdinv) result(cor)
1188#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1189 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VXLX_CK4
1190#endif
1191 use pm_kind, only: TKG => CK4
1192 type(low_type) , intent(in) :: subsetv
1193 real(TKG) , intent(in) , contiguous :: stdinv(:)
1194 complex(TKG) , intent(in) , contiguous :: cov(:,:)
1195 complex(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
1196 end function
1197#endif
1198
1199#if CK3_ENABLED
1200 PURE module function getCFC_RULD_VXLX_CK3(cov, subsetv, stdinv) result(cor)
1201#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1202 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VXLX_CK3
1203#endif
1204 use pm_kind, only: TKG => CK3
1205 type(low_type) , intent(in) :: subsetv
1206 real(TKG) , intent(in) , contiguous :: stdinv(:)
1207 complex(TKG) , intent(in) , contiguous :: cov(:,:)
1208 complex(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
1209 end function
1210#endif
1211
1212#if CK2_ENABLED
1213 PURE module function getCFC_RULD_VXLX_CK2(cov, subsetv, stdinv) result(cor)
1214#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1215 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VXLX_CK2
1216#endif
1217 use pm_kind, only: TKG => CK2
1218 type(low_type) , intent(in) :: subsetv
1219 real(TKG) , intent(in) , contiguous :: stdinv(:)
1220 complex(TKG) , intent(in) , contiguous :: cov(:,:)
1221 complex(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
1222 end function
1223#endif
1224
1225#if CK1_ENABLED
1226 PURE module function getCFC_RULD_VXLX_CK1(cov, subsetv, stdinv) result(cor)
1227#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1228 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VXLX_CK1
1229#endif
1230 use pm_kind, only: TKG => CK1
1231 type(low_type) , intent(in) :: subsetv
1232 real(TKG) , intent(in) , contiguous :: stdinv(:)
1233 complex(TKG) , intent(in) , contiguous :: cov(:,:)
1234 complex(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
1235 end function
1236#endif
1237
1238 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1239
1240#if RK5_ENABLED
1241 PURE module function getCFC_RULD_VXLX_RK5(cov, subsetv, stdinv) result(cor)
1242#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1243 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VXLX_RK5
1244#endif
1245 use pm_kind, only: TKG => RK5
1246 type(low_type) , intent(in) :: subsetv
1247 real(TKG) , intent(in) , contiguous :: stdinv(:)
1248 real(TKG) , intent(in) , contiguous :: cov(:,:)
1249 real(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
1250 end function
1251#endif
1252
1253#if RK4_ENABLED
1254 PURE module function getCFC_RULD_VXLX_RK4(cov, subsetv, stdinv) result(cor)
1255#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1256 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VXLX_RK4
1257#endif
1258 use pm_kind, only: TKG => RK4
1259 type(low_type) , intent(in) :: subsetv
1260 real(TKG) , intent(in) , contiguous :: stdinv(:)
1261 real(TKG) , intent(in) , contiguous :: cov(:,:)
1262 real(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
1263 end function
1264#endif
1265
1266#if RK3_ENABLED
1267 PURE module function getCFC_RULD_VXLX_RK3(cov, subsetv, stdinv) result(cor)
1268#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1269 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VXLX_RK3
1270#endif
1271 use pm_kind, only: TKG => RK3
1272 type(low_type) , intent(in) :: subsetv
1273 real(TKG) , intent(in) , contiguous :: stdinv(:)
1274 real(TKG) , intent(in) , contiguous :: cov(:,:)
1275 real(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
1276 end function
1277#endif
1278
1279#if RK2_ENABLED
1280 PURE module function getCFC_RULD_VXLX_RK2(cov, subsetv, stdinv) result(cor)
1281#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1282 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VXLX_RK2
1283#endif
1284 use pm_kind, only: TKG => RK2
1285 type(low_type) , intent(in) :: subsetv
1286 real(TKG) , intent(in) , contiguous :: stdinv(:)
1287 real(TKG) , intent(in) , contiguous :: cov(:,:)
1288 real(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
1289 end function
1290#endif
1291
1292#if RK1_ENABLED
1293 PURE module function getCFC_RULD_VXLX_RK1(cov, subsetv, stdinv) result(cor)
1294#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1295 !DEC$ ATTRIBUTES DLLEXPORT :: getCFC_RULD_VXLX_RK1
1296#endif
1297 use pm_kind, only: TKG => RK1
1298 type(low_type) , intent(in) :: subsetv
1299 real(TKG) , intent(in) , contiguous :: stdinv(:)
1300 real(TKG) , intent(in) , contiguous :: cov(:,:)
1301 real(TKG) :: cor(size(cov, 1, IK), size(cov, 2, IK))
1302 end function
1303#endif
1304
1305 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1306
1307 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1308 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1309 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1310
1311 end interface
1312
1313 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1314
1315 ! no weight: XY.
1316
1317 interface getCor
1318
1319 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1320
1321#if CK5_ENABLED
1322 PURE module function getPrsWNO_XY_CK5(x, y) result(cor)
1323#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1324 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWNO_XY_CK5
1325#endif
1326 use pm_kind, only: TKG => CK5
1327 complex(TKG) , intent(in) , contiguous :: x(:), y(:)
1328 complex(TKG) :: cor
1329 end function
1330#endif
1331
1332#if CK4_ENABLED
1333 PURE module function getPrsWNO_XY_CK4(x, y) result(cor)
1334#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1335 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWNO_XY_CK4
1336#endif
1337 use pm_kind, only: TKG => CK4
1338 complex(TKG) , intent(in) , contiguous :: x(:), y(:)
1339 complex(TKG) :: cor
1340 end function
1341#endif
1342
1343#if CK3_ENABLED
1344 PURE module function getPrsWNO_XY_CK3(x, y) result(cor)
1345#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1346 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWNO_XY_CK3
1347#endif
1348 use pm_kind, only: TKG => CK3
1349 complex(TKG) , intent(in) , contiguous :: x(:), y(:)
1350 complex(TKG) :: cor
1351 end function
1352#endif
1353
1354#if CK2_ENABLED
1355 PURE module function getPrsWNO_XY_CK2(x, y) result(cor)
1356#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1357 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWNO_XY_CK2
1358#endif
1359 use pm_kind, only: TKG => CK2
1360 complex(TKG) , intent(in) , contiguous :: x(:), y(:)
1361 complex(TKG) :: cor
1362 end function
1363#endif
1364
1365#if CK1_ENABLED
1366 PURE module function getPrsWNO_XY_CK1(x, y) result(cor)
1367#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1368 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWNO_XY_CK1
1369#endif
1370 use pm_kind, only: TKG => CK1
1371 complex(TKG) , intent(in) , contiguous :: x(:), y(:)
1372 complex(TKG) :: cor
1373 end function
1374#endif
1375
1376 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1377
1378#if RK5_ENABLED
1379 PURE module function getPrsWNO_XY_RK5(x, y) result(cor)
1380#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1381 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWNO_XY_RK5
1382#endif
1383 use pm_kind, only: TKG => RK5
1384 real(TKG) , intent(in) , contiguous :: x(:), y(:)
1385 real(TKG) :: cor
1386 end function
1387#endif
1388
1389#if RK4_ENABLED
1390 PURE module function getPrsWNO_XY_RK4(x, y) result(cor)
1391#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1392 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWNO_XY_RK4
1393#endif
1394 use pm_kind, only: TKG => RK4
1395 real(TKG) , intent(in) , contiguous :: x(:), y(:)
1396 real(TKG) :: cor
1397 end function
1398#endif
1399
1400#if RK3_ENABLED
1401 PURE module function getPrsWNO_XY_RK3(x, y) result(cor)
1402#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1403 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWNO_XY_RK3
1404#endif
1405 use pm_kind, only: TKG => RK3
1406 real(TKG) , intent(in) , contiguous :: x(:), y(:)
1407 real(TKG) :: cor
1408 end function
1409#endif
1410
1411#if RK2_ENABLED
1412 PURE module function getPrsWNO_XY_RK2(x, y) result(cor)
1413#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1414 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWNO_XY_RK2
1415#endif
1416 use pm_kind, only: TKG => RK2
1417 real(TKG) , intent(in) , contiguous :: x(:), y(:)
1418 real(TKG) :: cor
1419 end function
1420#endif
1421
1422#if RK1_ENABLED
1423 PURE module function getPrsWNO_XY_RK1(x, y) result(cor)
1424#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1425 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWNO_XY_RK1
1426#endif
1427 use pm_kind, only: TKG => RK1
1428 real(TKG) , intent(in) , contiguous :: x(:), y(:)
1429 real(TKG) :: cor
1430 end function
1431#endif
1432
1433 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1434
1435 end interface getCor
1436
1437 ! integer weight: XY.
1438
1439 interface getCor
1440
1441 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1442
1443#if CK5_ENABLED
1444 PURE module function getPrsWTI_XY_CK5(x, y, weight) result(cor)
1445#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1446 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTI_XY_CK5
1447#endif
1448 use pm_kind, only: TKG => CK5
1449 integer(IK) , intent(in) , contiguous :: weight(:)
1450 complex(TKG) , intent(in) , contiguous :: x(:), y(:)
1451 complex(TKG) :: cor
1452 end function
1453#endif
1454
1455#if CK4_ENABLED
1456 PURE module function getPrsWTI_XY_CK4(x, y, weight) result(cor)
1457#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1458 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTI_XY_CK4
1459#endif
1460 use pm_kind, only: TKG => CK4
1461 integer(IK) , intent(in) , contiguous :: weight(:)
1462 complex(TKG) , intent(in) , contiguous :: x(:), y(:)
1463 complex(TKG) :: cor
1464 end function
1465#endif
1466
1467#if CK3_ENABLED
1468 PURE module function getPrsWTI_XY_CK3(x, y, weight) result(cor)
1469#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1470 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTI_XY_CK3
1471#endif
1472 use pm_kind, only: TKG => CK3
1473 integer(IK) , intent(in) , contiguous :: weight(:)
1474 complex(TKG) , intent(in) , contiguous :: x(:), y(:)
1475 complex(TKG) :: cor
1476 end function
1477#endif
1478
1479#if CK2_ENABLED
1480 PURE module function getPrsWTI_XY_CK2(x, y, weight) result(cor)
1481#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1482 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTI_XY_CK2
1483#endif
1484 use pm_kind, only: TKG => CK2
1485 integer(IK) , intent(in) , contiguous :: weight(:)
1486 complex(TKG) , intent(in) , contiguous :: x(:), y(:)
1487 complex(TKG) :: cor
1488 end function
1489#endif
1490
1491#if CK1_ENABLED
1492 PURE module function getPrsWTI_XY_CK1(x, y, weight) result(cor)
1493#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1494 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTI_XY_CK1
1495#endif
1496 use pm_kind, only: TKG => CK1
1497 integer(IK) , intent(in) , contiguous :: weight(:)
1498 complex(TKG) , intent(in) , contiguous :: x(:), y(:)
1499 complex(TKG) :: cor
1500 end function
1501#endif
1502
1503 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1504
1505#if RK5_ENABLED
1506 PURE module function getPrsWTI_XY_RK5(x, y, weight) result(cor)
1507#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1508 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTI_XY_RK5
1509#endif
1510 use pm_kind, only: TKG => RK5
1511 integer(IK) , intent(in) , contiguous :: weight(:)
1512 real(TKG) , intent(in) , contiguous :: x(:), y(:)
1513 real(TKG) :: cor
1514 end function
1515#endif
1516
1517#if RK4_ENABLED
1518 PURE module function getPrsWTI_XY_RK4(x, y, weight) result(cor)
1519#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1520 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTI_XY_RK4
1521#endif
1522 use pm_kind, only: TKG => RK4
1523 integer(IK) , intent(in) , contiguous :: weight(:)
1524 real(TKG) , intent(in) , contiguous :: x(:), y(:)
1525 real(TKG) :: cor
1526 end function
1527#endif
1528
1529#if RK3_ENABLED
1530 PURE module function getPrsWTI_XY_RK3(x, y, weight) result(cor)
1531#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1532 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTI_XY_RK3
1533#endif
1534 use pm_kind, only: TKG => RK3
1535 integer(IK) , intent(in) , contiguous :: weight(:)
1536 real(TKG) , intent(in) , contiguous :: x(:), y(:)
1537 real(TKG) :: cor
1538 end function
1539#endif
1540
1541#if RK2_ENABLED
1542 PURE module function getPrsWTI_XY_RK2(x, y, weight) result(cor)
1543#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1544 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTI_XY_RK2
1545#endif
1546 use pm_kind, only: TKG => RK2
1547 integer(IK) , intent(in) , contiguous :: weight(:)
1548 real(TKG) , intent(in) , contiguous :: x(:), y(:)
1549 real(TKG) :: cor
1550 end function
1551#endif
1552
1553#if RK1_ENABLED
1554 PURE module function getPrsWTI_XY_RK1(x, y, weight) result(cor)
1555#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1556 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTI_XY_RK1
1557#endif
1558 use pm_kind, only: TKG => RK1
1559 integer(IK) , intent(in) , contiguous :: weight(:)
1560 real(TKG) , intent(in) , contiguous :: x(:), y(:)
1561 real(TKG) :: cor
1562 end function
1563#endif
1564
1565 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1566
1567 end interface getCor
1568
1569 ! real weight: XY.
1570
1571 interface getCor
1572
1573 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1574
1575#if CK5_ENABLED
1576 PURE module function getPrsWTR_XY_CK5(x, y, weight) result(cor)
1577#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1578 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTR_XY_CK5
1579#endif
1580 use pm_kind, only: TKG => CK5
1581 real(TKG) , intent(in) , contiguous :: weight(:)
1582 complex(TKG) , intent(in) , contiguous :: x(:), y(:)
1583 complex(TKG) :: cor
1584 end function
1585#endif
1586
1587#if CK4_ENABLED
1588 PURE module function getPrsWTR_XY_CK4(x, y, weight) result(cor)
1589#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1590 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTR_XY_CK4
1591#endif
1592 use pm_kind, only: TKG => CK4
1593 real(TKG) , intent(in) , contiguous :: weight(:)
1594 complex(TKG) , intent(in) , contiguous :: x(:), y(:)
1595 complex(TKG) :: cor
1596 end function
1597#endif
1598
1599#if CK3_ENABLED
1600 PURE module function getPrsWTR_XY_CK3(x, y, weight) result(cor)
1601#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1602 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTR_XY_CK3
1603#endif
1604 use pm_kind, only: TKG => CK3
1605 real(TKG) , intent(in) , contiguous :: weight(:)
1606 complex(TKG) , intent(in) , contiguous :: x(:), y(:)
1607 complex(TKG) :: cor
1608 end function
1609#endif
1610
1611#if CK2_ENABLED
1612 PURE module function getPrsWTR_XY_CK2(x, y, weight) result(cor)
1613#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1614 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTR_XY_CK2
1615#endif
1616 use pm_kind, only: TKG => CK2
1617 real(TKG) , intent(in) , contiguous :: weight(:)
1618 complex(TKG) , intent(in) , contiguous :: x(:), y(:)
1619 complex(TKG) :: cor
1620 end function
1621#endif
1622
1623#if CK1_ENABLED
1624 PURE module function getPrsWTR_XY_CK1(x, y, weight) result(cor)
1625#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1626 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTR_XY_CK1
1627#endif
1628 use pm_kind, only: TKG => CK1
1629 real(TKG) , intent(in) , contiguous :: weight(:)
1630 complex(TKG) , intent(in) , contiguous :: x(:), y(:)
1631 complex(TKG) :: cor
1632 end function
1633#endif
1634
1635 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1636
1637#if RK5_ENABLED
1638 PURE module function getPrsWTR_XY_RK5(x, y, weight) result(cor)
1639#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1640 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTR_XY_RK5
1641#endif
1642 use pm_kind, only: TKG => RK5
1643 real(TKG) , intent(in) , contiguous :: weight(:)
1644 real(TKG) , intent(in) , contiguous :: x(:), y(:)
1645 real(TKG) :: cor
1646 end function
1647#endif
1648
1649#if RK4_ENABLED
1650 PURE module function getPrsWTR_XY_RK4(x, y, weight) result(cor)
1651#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1652 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTR_XY_RK4
1653#endif
1654 use pm_kind, only: TKG => RK4
1655 real(TKG) , intent(in) , contiguous :: weight(:)
1656 real(TKG) , intent(in) , contiguous :: x(:), y(:)
1657 real(TKG) :: cor
1658 end function
1659#endif
1660
1661#if RK3_ENABLED
1662 PURE module function getPrsWTR_XY_RK3(x, y, weight) result(cor)
1663#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1664 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTR_XY_RK3
1665#endif
1666 use pm_kind, only: TKG => RK3
1667 real(TKG) , intent(in) , contiguous :: weight(:)
1668 real(TKG) , intent(in) , contiguous :: x(:), y(:)
1669 real(TKG) :: cor
1670 end function
1671#endif
1672
1673#if RK2_ENABLED
1674 PURE module function getPrsWTR_XY_RK2(x, y, weight) result(cor)
1675#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1676 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTR_XY_RK2
1677#endif
1678 use pm_kind, only: TKG => RK2
1679 real(TKG) , intent(in) , contiguous :: weight(:)
1680 real(TKG) , intent(in) , contiguous :: x(:), y(:)
1681 real(TKG) :: cor
1682 end function
1683#endif
1684
1685#if RK1_ENABLED
1686 PURE module function getPrsWTR_XY_RK1(x, y, weight) result(cor)
1687#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1688 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTR_XY_RK1
1689#endif
1690 use pm_kind, only: TKG => RK1
1691 real(TKG) , intent(in) , contiguous :: weight(:)
1692 real(TKG) , intent(in) , contiguous :: x(:), y(:)
1693 real(TKG) :: cor
1694 end function
1695#endif
1696
1697 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1698
1699 end interface getCor
1700
1701 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1702
1703 ! no weight: ULD.
1704
1705 interface getCor
1706
1707 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1708
1709#if CK5_ENABLED
1710 PURE module function getPrsWNO_ULD_CK5(sample, dim) result(cor)
1711#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1712 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWNO_ULD_CK5
1713#endif
1714 use pm_kind, only: TKG => CK5
1715 integer(IK) , intent(in) :: dim
1716 complex(TKG) , intent(in) , contiguous :: sample(:,:)
1717 complex(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
1718 end function
1719#endif
1720
1721#if CK4_ENABLED
1722 PURE module function getPrsWNO_ULD_CK4(sample, dim) result(cor)
1723#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1724 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWNO_ULD_CK4
1725#endif
1726 use pm_kind, only: TKG => CK4
1727 integer(IK) , intent(in) :: dim
1728 complex(TKG) , intent(in) , contiguous :: sample(:,:)
1729 complex(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
1730 end function
1731#endif
1732
1733#if CK3_ENABLED
1734 PURE module function getPrsWNO_ULD_CK3(sample, dim) result(cor)
1735#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1736 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWNO_ULD_CK3
1737#endif
1738 use pm_kind, only: TKG => CK3
1739 integer(IK) , intent(in) :: dim
1740 complex(TKG) , intent(in) , contiguous :: sample(:,:)
1741 complex(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
1742 end function
1743#endif
1744
1745#if CK2_ENABLED
1746 PURE module function getPrsWNO_ULD_CK2(sample, dim) result(cor)
1747#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1748 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWNO_ULD_CK2
1749#endif
1750 use pm_kind, only: TKG => CK2
1751 integer(IK) , intent(in) :: dim
1752 complex(TKG) , intent(in) , contiguous :: sample(:,:)
1753 complex(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
1754 end function
1755#endif
1756
1757#if CK1_ENABLED
1758 PURE module function getPrsWNO_ULD_CK1(sample, dim) result(cor)
1759#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1760 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWNO_ULD_CK1
1761#endif
1762 use pm_kind, only: TKG => CK1
1763 integer(IK) , intent(in) :: dim
1764 complex(TKG) , intent(in) , contiguous :: sample(:,:)
1765 complex(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
1766 end function
1767#endif
1768
1769 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1770
1771#if RK5_ENABLED
1772 PURE module function getPrsWNO_ULD_RK5(sample, dim) result(cor)
1773#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1774 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWNO_ULD_RK5
1775#endif
1776 use pm_kind, only: TKG => RK5
1777 integer(IK) , intent(in) :: dim
1778 real(TKG) , intent(in) , contiguous :: sample(:,:)
1779 real(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
1780 end function
1781#endif
1782
1783#if RK4_ENABLED
1784 PURE module function getPrsWNO_ULD_RK4(sample, dim) result(cor)
1785#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1786 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWNO_ULD_RK4
1787#endif
1788 use pm_kind, only: TKG => RK4
1789 integer(IK) , intent(in) :: dim
1790 real(TKG) , intent(in) , contiguous :: sample(:,:)
1791 real(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
1792 end function
1793#endif
1794
1795#if RK3_ENABLED
1796 PURE module function getPrsWNO_ULD_RK3(sample, dim) result(cor)
1797#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1798 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWNO_ULD_RK3
1799#endif
1800 use pm_kind, only: TKG => RK3
1801 integer(IK) , intent(in) :: dim
1802 real(TKG) , intent(in) , contiguous :: sample(:,:)
1803 real(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
1804 end function
1805#endif
1806
1807#if RK2_ENABLED
1808 PURE module function getPrsWNO_ULD_RK2(sample, dim) result(cor)
1809#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1810 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWNO_ULD_RK2
1811#endif
1812 use pm_kind, only: TKG => RK2
1813 integer(IK) , intent(in) :: dim
1814 real(TKG) , intent(in) , contiguous :: sample(:,:)
1815 real(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
1816 end function
1817#endif
1818
1819#if RK1_ENABLED
1820 PURE module function getPrsWNO_ULD_RK1(sample, dim) result(cor)
1821#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1822 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWNO_ULD_RK1
1823#endif
1824 use pm_kind, only: TKG => RK1
1825 integer(IK) , intent(in) :: dim
1826 real(TKG) , intent(in) , contiguous :: sample(:,:)
1827 real(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
1828 end function
1829#endif
1830
1831 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1832
1833 end interface getCor
1834
1835 ! integer weight: ULD.
1836
1837 interface getCor
1838
1839 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1840
1841#if CK5_ENABLED
1842 PURE module function getPrsWTI_ULD_CK5(sample, dim, weight) result(cor)
1843#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1844 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTI_ULD_CK5
1845#endif
1846 use pm_kind, only: TKG => CK5
1847 integer(IK) , intent(in) :: dim
1848 integer(IK) , intent(in) , contiguous :: weight(:)
1849 complex(TKG) , intent(in) , contiguous :: sample(:,:)
1850 complex(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
1851 end function
1852#endif
1853
1854#if CK4_ENABLED
1855 PURE module function getPrsWTI_ULD_CK4(sample, dim, weight) result(cor)
1856#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1857 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTI_ULD_CK4
1858#endif
1859 use pm_kind, only: TKG => CK4
1860 integer(IK) , intent(in) :: dim
1861 integer(IK) , intent(in) , contiguous :: weight(:)
1862 complex(TKG) , intent(in) , contiguous :: sample(:,:)
1863 complex(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
1864 end function
1865#endif
1866
1867#if CK3_ENABLED
1868 PURE module function getPrsWTI_ULD_CK3(sample, dim, weight) result(cor)
1869#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1870 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTI_ULD_CK3
1871#endif
1872 use pm_kind, only: TKG => CK3
1873 integer(IK) , intent(in) :: dim
1874 integer(IK) , intent(in) , contiguous :: weight(:)
1875 complex(TKG) , intent(in) , contiguous :: sample(:,:)
1876 complex(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
1877 end function
1878#endif
1879
1880#if CK2_ENABLED
1881 PURE module function getPrsWTI_ULD_CK2(sample, dim, weight) result(cor)
1882#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1883 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTI_ULD_CK2
1884#endif
1885 use pm_kind, only: TKG => CK2
1886 integer(IK) , intent(in) :: dim
1887 integer(IK) , intent(in) , contiguous :: weight(:)
1888 complex(TKG) , intent(in) , contiguous :: sample(:,:)
1889 complex(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
1890 end function
1891#endif
1892
1893#if CK1_ENABLED
1894 PURE module function getPrsWTI_ULD_CK1(sample, dim, weight) result(cor)
1895#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1896 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTI_ULD_CK1
1897#endif
1898 use pm_kind, only: TKG => CK1
1899 integer(IK) , intent(in) :: dim
1900 integer(IK) , intent(in) , contiguous :: weight(:)
1901 complex(TKG) , intent(in) , contiguous :: sample(:,:)
1902 complex(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
1903 end function
1904#endif
1905
1906 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1907
1908#if RK5_ENABLED
1909 PURE module function getPrsWTI_ULD_RK5(sample, dim, weight) result(cor)
1910#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1911 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTI_ULD_RK5
1912#endif
1913 use pm_kind, only: TKG => RK5
1914 integer(IK) , intent(in) :: dim
1915 integer(IK) , intent(in) , contiguous :: weight(:)
1916 real(TKG) , intent(in) , contiguous :: sample(:,:)
1917 real(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
1918 end function
1919#endif
1920
1921#if RK4_ENABLED
1922 PURE module function getPrsWTI_ULD_RK4(sample, dim, weight) result(cor)
1923#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1924 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTI_ULD_RK4
1925#endif
1926 use pm_kind, only: TKG => RK4
1927 integer(IK) , intent(in) :: dim
1928 integer(IK) , intent(in) , contiguous :: weight(:)
1929 real(TKG) , intent(in) , contiguous :: sample(:,:)
1930 real(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
1931 end function
1932#endif
1933
1934#if RK3_ENABLED
1935 PURE module function getPrsWTI_ULD_RK3(sample, dim, weight) result(cor)
1936#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1937 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTI_ULD_RK3
1938#endif
1939 use pm_kind, only: TKG => RK3
1940 integer(IK) , intent(in) :: dim
1941 integer(IK) , intent(in) , contiguous :: weight(:)
1942 real(TKG) , intent(in) , contiguous :: sample(:,:)
1943 real(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
1944 end function
1945#endif
1946
1947#if RK2_ENABLED
1948 PURE module function getPrsWTI_ULD_RK2(sample, dim, weight) result(cor)
1949#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1950 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTI_ULD_RK2
1951#endif
1952 use pm_kind, only: TKG => RK2
1953 integer(IK) , intent(in) :: dim
1954 integer(IK) , intent(in) , contiguous :: weight(:)
1955 real(TKG) , intent(in) , contiguous :: sample(:,:)
1956 real(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
1957 end function
1958#endif
1959
1960#if RK1_ENABLED
1961 PURE module function getPrsWTI_ULD_RK1(sample, dim, weight) result(cor)
1962#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1963 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTI_ULD_RK1
1964#endif
1965 use pm_kind, only: TKG => RK1
1966 integer(IK) , intent(in) :: dim
1967 integer(IK) , intent(in) , contiguous :: weight(:)
1968 real(TKG) , intent(in) , contiguous :: sample(:,:)
1969 real(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
1970 end function
1971#endif
1972
1973 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1974
1975 end interface getCor
1976
1977 ! real weight: ULD.
1978
1979 interface getCor
1980
1981 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1982
1983#if CK5_ENABLED
1984 PURE module function getPrsWTR_ULD_CK5(sample, dim, weight) result(cor)
1985#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1986 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTR_ULD_CK5
1987#endif
1988 use pm_kind, only: TKG => CK5
1989 integer(IK) , intent(in) :: dim
1990 real(TKG) , intent(in) , contiguous :: weight(:)
1991 complex(TKG) , intent(in) , contiguous :: sample(:,:)
1992 complex(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
1993 end function
1994#endif
1995
1996#if CK4_ENABLED
1997 PURE module function getPrsWTR_ULD_CK4(sample, dim, weight) result(cor)
1998#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1999 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTR_ULD_CK4
2000#endif
2001 use pm_kind, only: TKG => CK4
2002 integer(IK) , intent(in) :: dim
2003 real(TKG) , intent(in) , contiguous :: weight(:)
2004 complex(TKG) , intent(in) , contiguous :: sample(:,:)
2005 complex(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
2006 end function
2007#endif
2008
2009#if CK3_ENABLED
2010 PURE module function getPrsWTR_ULD_CK3(sample, dim, weight) result(cor)
2011#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2012 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTR_ULD_CK3
2013#endif
2014 use pm_kind, only: TKG => CK3
2015 integer(IK) , intent(in) :: dim
2016 real(TKG) , intent(in) , contiguous :: weight(:)
2017 complex(TKG) , intent(in) , contiguous :: sample(:,:)
2018 complex(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
2019 end function
2020#endif
2021
2022#if CK2_ENABLED
2023 PURE module function getPrsWTR_ULD_CK2(sample, dim, weight) result(cor)
2024#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2025 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTR_ULD_CK2
2026#endif
2027 use pm_kind, only: TKG => CK2
2028 integer(IK) , intent(in) :: dim
2029 real(TKG) , intent(in) , contiguous :: weight(:)
2030 complex(TKG) , intent(in) , contiguous :: sample(:,:)
2031 complex(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
2032 end function
2033#endif
2034
2035#if CK1_ENABLED
2036 PURE module function getPrsWTR_ULD_CK1(sample, dim, weight) result(cor)
2037#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2038 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTR_ULD_CK1
2039#endif
2040 use pm_kind, only: TKG => CK1
2041 integer(IK) , intent(in) :: dim
2042 real(TKG) , intent(in) , contiguous :: weight(:)
2043 complex(TKG) , intent(in) , contiguous :: sample(:,:)
2044 complex(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
2045 end function
2046#endif
2047
2048 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2049
2050#if RK5_ENABLED
2051 PURE module function getPrsWTR_ULD_RK5(sample, dim, weight) result(cor)
2052#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2053 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTR_ULD_RK5
2054#endif
2055 use pm_kind, only: TKG => RK5
2056 integer(IK) , intent(in) :: dim
2057 real(TKG) , intent(in) , contiguous :: weight(:)
2058 real(TKG) , intent(in) , contiguous :: sample(:,:)
2059 real(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
2060 end function
2061#endif
2062
2063#if RK4_ENABLED
2064 PURE module function getPrsWTR_ULD_RK4(sample, dim, weight) result(cor)
2065#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2066 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTR_ULD_RK4
2067#endif
2068 use pm_kind, only: TKG => RK4
2069 integer(IK) , intent(in) :: dim
2070 real(TKG) , intent(in) , contiguous :: weight(:)
2071 real(TKG) , intent(in) , contiguous :: sample(:,:)
2072 real(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
2073 end function
2074#endif
2075
2076#if RK3_ENABLED
2077 PURE module function getPrsWTR_ULD_RK3(sample, dim, weight) result(cor)
2078#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2079 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTR_ULD_RK3
2080#endif
2081 use pm_kind, only: TKG => RK3
2082 integer(IK) , intent(in) :: dim
2083 real(TKG) , intent(in) , contiguous :: weight(:)
2084 real(TKG) , intent(in) , contiguous :: sample(:,:)
2085 real(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
2086 end function
2087#endif
2088
2089#if RK2_ENABLED
2090 PURE module function getPrsWTR_ULD_RK2(sample, dim, weight) result(cor)
2091#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2092 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTR_ULD_RK2
2093#endif
2094 use pm_kind, only: TKG => RK2
2095 integer(IK) , intent(in) :: dim
2096 real(TKG) , intent(in) , contiguous :: weight(:)
2097 real(TKG) , intent(in) , contiguous :: sample(:,:)
2098 real(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
2099 end function
2100#endif
2101
2102#if RK1_ENABLED
2103 PURE module function getPrsWTR_ULD_RK1(sample, dim, weight) result(cor)
2104#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2105 !DEC$ ATTRIBUTES DLLEXPORT :: getPrsWTR_ULD_RK1
2106#endif
2107 use pm_kind, only: TKG => RK1
2108 integer(IK) , intent(in) :: dim
2109 real(TKG) , intent(in) , contiguous :: weight(:)
2110 real(TKG) , intent(in) , contiguous :: sample(:,:)
2111 real(TKG) :: cor(size(sample, 3 - dim, IK), size(sample, 3 - dim, IK))
2112 end function
2113#endif
2114
2115 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2116
2117 end interface getCor
2118
2119!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2120
2316
2317 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2318 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2319 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2320
2321 ! RK CFC: upp/low from upp/low.
2322
2323 interface setCor
2324
2325 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2326 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2327 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2328
2329 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2330
2331#if RK5_ENABLED
2332 PURE module subroutine setCFC_RUXX_VUXX_RK5(cor, subset, cov, subsetv, stdinv)
2333#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2334 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VUXX_RK5
2335#endif
2336 use pm_kind, only: TKG => RK5
2337 type(upp_type) , intent(in) :: subset
2338 type(upp_type) , intent(in) :: subsetv
2339 real(TKG) , intent(in) , contiguous :: stdinv(:)
2340 real(TKG) , intent(in) , contiguous :: cov(:,:)
2341 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2342 end subroutine
2343#endif
2344
2345#if RK4_ENABLED
2346 PURE module subroutine setCFC_RUXX_VUXX_RK4(cor, subset, cov, subsetv, stdinv)
2347#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2348 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VUXX_RK4
2349#endif
2350 use pm_kind, only: TKG => RK4
2351 type(upp_type) , intent(in) :: subset
2352 type(upp_type) , intent(in) :: subsetv
2353 real(TKG) , intent(in) , contiguous :: stdinv(:)
2354 real(TKG) , intent(in) , contiguous :: cov(:,:)
2355 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2356 end subroutine
2357#endif
2358
2359#if RK3_ENABLED
2360 PURE module subroutine setCFC_RUXX_VUXX_RK3(cor, subset, cov, subsetv, stdinv)
2361#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2362 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VUXX_RK3
2363#endif
2364 use pm_kind, only: TKG => RK3
2365 type(upp_type) , intent(in) :: subset
2366 type(upp_type) , intent(in) :: subsetv
2367 real(TKG) , intent(in) , contiguous :: stdinv(:)
2368 real(TKG) , intent(in) , contiguous :: cov(:,:)
2369 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2370 end subroutine
2371#endif
2372
2373#if RK2_ENABLED
2374 PURE module subroutine setCFC_RUXX_VUXX_RK2(cor, subset, cov, subsetv, stdinv)
2375#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2376 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VUXX_RK2
2377#endif
2378 use pm_kind, only: TKG => RK2
2379 type(upp_type) , intent(in) :: subset
2380 type(upp_type) , intent(in) :: subsetv
2381 real(TKG) , intent(in) , contiguous :: stdinv(:)
2382 real(TKG) , intent(in) , contiguous :: cov(:,:)
2383 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2384 end subroutine
2385#endif
2386
2387#if RK1_ENABLED
2388 PURE module subroutine setCFC_RUXX_VUXX_RK1(cor, subset, cov, subsetv, stdinv)
2389#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2390 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VUXX_RK1
2391#endif
2392 use pm_kind, only: TKG => RK1
2393 type(upp_type) , intent(in) :: subset
2394 type(upp_type) , intent(in) :: subsetv
2395 real(TKG) , intent(in) , contiguous :: stdinv(:)
2396 real(TKG) , intent(in) , contiguous :: cov(:,:)
2397 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2398 end subroutine
2399#endif
2400
2401 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2402
2403#if RK5_ENABLED
2404 PURE module subroutine setCFC_RUXX_VXLX_RK5(cor, subset, cov, subsetv, stdinv)
2405#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2406 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VXLX_RK5
2407#endif
2408 use pm_kind, only: TKG => RK5
2409 type(upp_type) , intent(in) :: subset
2410 type(low_type) , intent(in) :: subsetv
2411 real(TKG) , intent(in) , contiguous :: stdinv(:)
2412 real(TKG) , intent(in) , contiguous :: cov(:,:)
2413 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2414 end subroutine
2415#endif
2416
2417#if RK4_ENABLED
2418 PURE module subroutine setCFC_RUXX_VXLX_RK4(cor, subset, cov, subsetv, stdinv)
2419#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2420 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VXLX_RK4
2421#endif
2422 use pm_kind, only: TKG => RK4
2423 type(upp_type) , intent(in) :: subset
2424 type(low_type) , intent(in) :: subsetv
2425 real(TKG) , intent(in) , contiguous :: stdinv(:)
2426 real(TKG) , intent(in) , contiguous :: cov(:,:)
2427 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2428 end subroutine
2429#endif
2430
2431#if RK3_ENABLED
2432 PURE module subroutine setCFC_RUXX_VXLX_RK3(cor, subset, cov, subsetv, stdinv)
2433#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2434 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VXLX_RK3
2435#endif
2436 use pm_kind, only: TKG => RK3
2437 type(upp_type) , intent(in) :: subset
2438 type(low_type) , intent(in) :: subsetv
2439 real(TKG) , intent(in) , contiguous :: stdinv(:)
2440 real(TKG) , intent(in) , contiguous :: cov(:,:)
2441 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2442 end subroutine
2443#endif
2444
2445#if RK2_ENABLED
2446 PURE module subroutine setCFC_RUXX_VXLX_RK2(cor, subset, cov, subsetv, stdinv)
2447#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2448 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VXLX_RK2
2449#endif
2450 use pm_kind, only: TKG => RK2
2451 type(upp_type) , intent(in) :: subset
2452 type(low_type) , intent(in) :: subsetv
2453 real(TKG) , intent(in) , contiguous :: stdinv(:)
2454 real(TKG) , intent(in) , contiguous :: cov(:,:)
2455 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2456 end subroutine
2457#endif
2458
2459#if RK1_ENABLED
2460 PURE module subroutine setCFC_RUXX_VXLX_RK1(cor, subset, cov, subsetv, stdinv)
2461#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2462 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VXLX_RK1
2463#endif
2464 use pm_kind, only: TKG => RK1
2465 type(upp_type) , intent(in) :: subset
2466 type(low_type) , intent(in) :: subsetv
2467 real(TKG) , intent(in) , contiguous :: stdinv(:)
2468 real(TKG) , intent(in) , contiguous :: cov(:,:)
2469 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2470 end subroutine
2471#endif
2472
2473 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2474
2475 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2476 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2477 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2478
2479 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2480
2481#if RK5_ENABLED
2482 PURE module subroutine setCFC_RXLX_VUXX_RK5(cor, subset, cov, subsetv, stdinv)
2483#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2484 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VUXX_RK5
2485#endif
2486 use pm_kind, only: TKG => RK5
2487 type(low_type) , intent(in) :: subset
2488 type(upp_type) , intent(in) :: subsetv
2489 real(TKG) , intent(in) , contiguous :: stdinv(:)
2490 real(TKG) , intent(in) , contiguous :: cov(:,:)
2491 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2492 end subroutine
2493#endif
2494
2495#if RK4_ENABLED
2496 PURE module subroutine setCFC_RXLX_VUXX_RK4(cor, subset, cov, subsetv, stdinv)
2497#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2498 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VUXX_RK4
2499#endif
2500 use pm_kind, only: TKG => RK4
2501 type(low_type) , intent(in) :: subset
2502 type(upp_type) , intent(in) :: subsetv
2503 real(TKG) , intent(in) , contiguous :: stdinv(:)
2504 real(TKG) , intent(in) , contiguous :: cov(:,:)
2505 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2506 end subroutine
2507#endif
2508
2509#if RK3_ENABLED
2510 PURE module subroutine setCFC_RXLX_VUXX_RK3(cor, subset, cov, subsetv, stdinv)
2511#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2512 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VUXX_RK3
2513#endif
2514 use pm_kind, only: TKG => RK3
2515 type(low_type) , intent(in) :: subset
2516 type(upp_type) , intent(in) :: subsetv
2517 real(TKG) , intent(in) , contiguous :: stdinv(:)
2518 real(TKG) , intent(in) , contiguous :: cov(:,:)
2519 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2520 end subroutine
2521#endif
2522
2523#if RK2_ENABLED
2524 PURE module subroutine setCFC_RXLX_VUXX_RK2(cor, subset, cov, subsetv, stdinv)
2525#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2526 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VUXX_RK2
2527#endif
2528 use pm_kind, only: TKG => RK2
2529 type(low_type) , intent(in) :: subset
2530 type(upp_type) , intent(in) :: subsetv
2531 real(TKG) , intent(in) , contiguous :: stdinv(:)
2532 real(TKG) , intent(in) , contiguous :: cov(:,:)
2533 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2534 end subroutine
2535#endif
2536
2537#if RK1_ENABLED
2538 PURE module subroutine setCFC_RXLX_VUXX_RK1(cor, subset, cov, subsetv, stdinv)
2539#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2540 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VUXX_RK1
2541#endif
2542 use pm_kind, only: TKG => RK1
2543 type(low_type) , intent(in) :: subset
2544 type(upp_type) , intent(in) :: subsetv
2545 real(TKG) , intent(in) , contiguous :: stdinv(:)
2546 real(TKG) , intent(in) , contiguous :: cov(:,:)
2547 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2548 end subroutine
2549#endif
2550
2551 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2552
2553#if RK5_ENABLED
2554 PURE module subroutine setCFC_RXLX_VXLX_RK5(cor, subset, cov, subsetv, stdinv)
2555#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2556 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VXLX_RK5
2557#endif
2558 use pm_kind, only: TKG => RK5
2559 type(low_type) , intent(in) :: subset
2560 type(low_type) , intent(in) :: subsetv
2561 real(TKG) , intent(in) , contiguous :: stdinv(:)
2562 real(TKG) , intent(in) , contiguous :: cov(:,:)
2563 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2564 end subroutine
2565#endif
2566
2567#if RK4_ENABLED
2568 PURE module subroutine setCFC_RXLX_VXLX_RK4(cor, subset, cov, subsetv, stdinv)
2569#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2570 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VXLX_RK4
2571#endif
2572 use pm_kind, only: TKG => RK4
2573 type(low_type) , intent(in) :: subset
2574 type(low_type) , intent(in) :: subsetv
2575 real(TKG) , intent(in) , contiguous :: stdinv(:)
2576 real(TKG) , intent(in) , contiguous :: cov(:,:)
2577 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2578 end subroutine
2579#endif
2580
2581#if RK3_ENABLED
2582 PURE module subroutine setCFC_RXLX_VXLX_RK3(cor, subset, cov, subsetv, stdinv)
2583#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2584 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VXLX_RK3
2585#endif
2586 use pm_kind, only: TKG => RK3
2587 type(low_type) , intent(in) :: subset
2588 type(low_type) , intent(in) :: subsetv
2589 real(TKG) , intent(in) , contiguous :: stdinv(:)
2590 real(TKG) , intent(in) , contiguous :: cov(:,:)
2591 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2592 end subroutine
2593#endif
2594
2595#if RK2_ENABLED
2596 PURE module subroutine setCFC_RXLX_VXLX_RK2(cor, subset, cov, subsetv, stdinv)
2597#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2598 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VXLX_RK2
2599#endif
2600 use pm_kind, only: TKG => RK2
2601 type(low_type) , intent(in) :: subset
2602 type(low_type) , intent(in) :: subsetv
2603 real(TKG) , intent(in) , contiguous :: stdinv(:)
2604 real(TKG) , intent(in) , contiguous :: cov(:,:)
2605 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2606 end subroutine
2607#endif
2608
2609#if RK1_ENABLED
2610 PURE module subroutine setCFC_RXLX_VXLX_RK1(cor, subset, cov, subsetv, stdinv)
2611#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2612 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VXLX_RK1
2613#endif
2614 use pm_kind, only: TKG => RK1
2615 type(low_type) , intent(in) :: subset
2616 type(low_type) , intent(in) :: subsetv
2617 real(TKG) , intent(in) , contiguous :: stdinv(:)
2618 real(TKG) , intent(in) , contiguous :: cov(:,:)
2619 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2620 end subroutine
2621#endif
2622
2623 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2624
2625 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2626 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2627 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2628
2629 end interface
2630
2631 ! RK CFC: uppDia/lowDia from upp/low.
2632
2633 interface setCor
2634
2635 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2636 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2637 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2638
2639 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2640
2641#if RK5_ENABLED
2642 PURE module subroutine setCFC_RUXD_VUXX_RK5(cor, subset, cov, subsetv, stdinv)
2643#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2644 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VUXX_RK5
2645#endif
2646 use pm_kind, only: TKG => RK5
2647 type(uppDia_type) , intent(in) :: subset
2648 type(upp_type) , intent(in) :: subsetv
2649 real(TKG) , intent(in) , contiguous :: stdinv(:)
2650 real(TKG) , intent(in) , contiguous :: cov(:,:)
2651 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2652 end subroutine
2653#endif
2654
2655#if RK4_ENABLED
2656 PURE module subroutine setCFC_RUXD_VUXX_RK4(cor, subset, cov, subsetv, stdinv)
2657#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2658 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VUXX_RK4
2659#endif
2660 use pm_kind, only: TKG => RK4
2661 type(uppDia_type) , intent(in) :: subset
2662 type(upp_type) , intent(in) :: subsetv
2663 real(TKG) , intent(in) , contiguous :: stdinv(:)
2664 real(TKG) , intent(in) , contiguous :: cov(:,:)
2665 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2666 end subroutine
2667#endif
2668
2669#if RK3_ENABLED
2670 PURE module subroutine setCFC_RUXD_VUXX_RK3(cor, subset, cov, subsetv, stdinv)
2671#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2672 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VUXX_RK3
2673#endif
2674 use pm_kind, only: TKG => RK3
2675 type(uppDia_type) , intent(in) :: subset
2676 type(upp_type) , intent(in) :: subsetv
2677 real(TKG) , intent(in) , contiguous :: stdinv(:)
2678 real(TKG) , intent(in) , contiguous :: cov(:,:)
2679 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2680 end subroutine
2681#endif
2682
2683#if RK2_ENABLED
2684 PURE module subroutine setCFC_RUXD_VUXX_RK2(cor, subset, cov, subsetv, stdinv)
2685#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2686 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VUXX_RK2
2687#endif
2688 use pm_kind, only: TKG => RK2
2689 type(uppDia_type) , intent(in) :: subset
2690 type(upp_type) , intent(in) :: subsetv
2691 real(TKG) , intent(in) , contiguous :: stdinv(:)
2692 real(TKG) , intent(in) , contiguous :: cov(:,:)
2693 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2694 end subroutine
2695#endif
2696
2697#if RK1_ENABLED
2698 PURE module subroutine setCFC_RUXD_VUXX_RK1(cor, subset, cov, subsetv, stdinv)
2699#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2700 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VUXX_RK1
2701#endif
2702 use pm_kind, only: TKG => RK1
2703 type(uppDia_type) , intent(in) :: subset
2704 type(upp_type) , intent(in) :: subsetv
2705 real(TKG) , intent(in) , contiguous :: stdinv(:)
2706 real(TKG) , intent(in) , contiguous :: cov(:,:)
2707 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2708 end subroutine
2709#endif
2710
2711 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2712
2713#if RK5_ENABLED
2714 PURE module subroutine setCFC_RUXD_VXLX_RK5(cor, subset, cov, subsetv, stdinv)
2715#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2716 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VXLX_RK5
2717#endif
2718 use pm_kind, only: TKG => RK5
2719 type(uppDia_type) , intent(in) :: subset
2720 type(low_type) , intent(in) :: subsetv
2721 real(TKG) , intent(in) , contiguous :: stdinv(:)
2722 real(TKG) , intent(in) , contiguous :: cov(:,:)
2723 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2724 end subroutine
2725#endif
2726
2727#if RK4_ENABLED
2728 PURE module subroutine setCFC_RUXD_VXLX_RK4(cor, subset, cov, subsetv, stdinv)
2729#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2730 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VXLX_RK4
2731#endif
2732 use pm_kind, only: TKG => RK4
2733 type(uppDia_type) , intent(in) :: subset
2734 type(low_type) , intent(in) :: subsetv
2735 real(TKG) , intent(in) , contiguous :: stdinv(:)
2736 real(TKG) , intent(in) , contiguous :: cov(:,:)
2737 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2738 end subroutine
2739#endif
2740
2741#if RK3_ENABLED
2742 PURE module subroutine setCFC_RUXD_VXLX_RK3(cor, subset, cov, subsetv, stdinv)
2743#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2744 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VXLX_RK3
2745#endif
2746 use pm_kind, only: TKG => RK3
2747 type(uppDia_type) , intent(in) :: subset
2748 type(low_type) , intent(in) :: subsetv
2749 real(TKG) , intent(in) , contiguous :: stdinv(:)
2750 real(TKG) , intent(in) , contiguous :: cov(:,:)
2751 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2752 end subroutine
2753#endif
2754
2755#if RK2_ENABLED
2756 PURE module subroutine setCFC_RUXD_VXLX_RK2(cor, subset, cov, subsetv, stdinv)
2757#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2758 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VXLX_RK2
2759#endif
2760 use pm_kind, only: TKG => RK2
2761 type(uppDia_type) , intent(in) :: subset
2762 type(low_type) , intent(in) :: subsetv
2763 real(TKG) , intent(in) , contiguous :: stdinv(:)
2764 real(TKG) , intent(in) , contiguous :: cov(:,:)
2765 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2766 end subroutine
2767#endif
2768
2769#if RK1_ENABLED
2770 PURE module subroutine setCFC_RUXD_VXLX_RK1(cor, subset, cov, subsetv, stdinv)
2771#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2772 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VXLX_RK1
2773#endif
2774 use pm_kind, only: TKG => RK1
2775 type(uppDia_type) , intent(in) :: subset
2776 type(low_type) , intent(in) :: subsetv
2777 real(TKG) , intent(in) , contiguous :: stdinv(:)
2778 real(TKG) , intent(in) , contiguous :: cov(:,:)
2779 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2780 end subroutine
2781#endif
2782
2783 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2784
2785 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2786 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2787 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2788
2789 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2790
2791#if RK5_ENABLED
2792 PURE module subroutine setCFC_RXLD_VUXX_RK5(cor, subset, cov, subsetv, stdinv)
2793#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2794 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VUXX_RK5
2795#endif
2796 use pm_kind, only: TKG => RK5
2797 type(lowDia_type) , intent(in) :: subset
2798 type(upp_type) , intent(in) :: subsetv
2799 real(TKG) , intent(in) , contiguous :: stdinv(:)
2800 real(TKG) , intent(in) , contiguous :: cov(:,:)
2801 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2802 end subroutine
2803#endif
2804
2805#if RK4_ENABLED
2806 PURE module subroutine setCFC_RXLD_VUXX_RK4(cor, subset, cov, subsetv, stdinv)
2807#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2808 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VUXX_RK4
2809#endif
2810 use pm_kind, only: TKG => RK4
2811 type(lowDia_type) , intent(in) :: subset
2812 type(upp_type) , intent(in) :: subsetv
2813 real(TKG) , intent(in) , contiguous :: stdinv(:)
2814 real(TKG) , intent(in) , contiguous :: cov(:,:)
2815 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2816 end subroutine
2817#endif
2818
2819#if RK3_ENABLED
2820 PURE module subroutine setCFC_RXLD_VUXX_RK3(cor, subset, cov, subsetv, stdinv)
2821#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2822 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VUXX_RK3
2823#endif
2824 use pm_kind, only: TKG => RK3
2825 type(lowDia_type) , intent(in) :: subset
2826 type(upp_type) , intent(in) :: subsetv
2827 real(TKG) , intent(in) , contiguous :: stdinv(:)
2828 real(TKG) , intent(in) , contiguous :: cov(:,:)
2829 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2830 end subroutine
2831#endif
2832
2833#if RK2_ENABLED
2834 PURE module subroutine setCFC_RXLD_VUXX_RK2(cor, subset, cov, subsetv, stdinv)
2835#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2836 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VUXX_RK2
2837#endif
2838 use pm_kind, only: TKG => RK2
2839 type(lowDia_type) , intent(in) :: subset
2840 type(upp_type) , intent(in) :: subsetv
2841 real(TKG) , intent(in) , contiguous :: stdinv(:)
2842 real(TKG) , intent(in) , contiguous :: cov(:,:)
2843 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2844 end subroutine
2845#endif
2846
2847#if RK1_ENABLED
2848 PURE module subroutine setCFC_RXLD_VUXX_RK1(cor, subset, cov, subsetv, stdinv)
2849#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2850 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VUXX_RK1
2851#endif
2852 use pm_kind, only: TKG => RK1
2853 type(lowDia_type) , intent(in) :: subset
2854 type(upp_type) , intent(in) :: subsetv
2855 real(TKG) , intent(in) , contiguous :: stdinv(:)
2856 real(TKG) , intent(in) , contiguous :: cov(:,:)
2857 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2858 end subroutine
2859#endif
2860
2861 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2862
2863#if RK5_ENABLED
2864 PURE module subroutine setCFC_RXLD_VXLX_RK5(cor, subset, cov, subsetv, stdinv)
2865#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2866 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VXLX_RK5
2867#endif
2868 use pm_kind, only: TKG => RK5
2869 type(lowDia_type) , intent(in) :: subset
2870 type(low_type) , intent(in) :: subsetv
2871 real(TKG) , intent(in) , contiguous :: stdinv(:)
2872 real(TKG) , intent(in) , contiguous :: cov(:,:)
2873 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2874 end subroutine
2875#endif
2876
2877#if RK4_ENABLED
2878 PURE module subroutine setCFC_RXLD_VXLX_RK4(cor, subset, cov, subsetv, stdinv)
2879#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2880 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VXLX_RK4
2881#endif
2882 use pm_kind, only: TKG => RK4
2883 type(lowDia_type) , intent(in) :: subset
2884 type(low_type) , intent(in) :: subsetv
2885 real(TKG) , intent(in) , contiguous :: stdinv(:)
2886 real(TKG) , intent(in) , contiguous :: cov(:,:)
2887 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2888 end subroutine
2889#endif
2890
2891#if RK3_ENABLED
2892 PURE module subroutine setCFC_RXLD_VXLX_RK3(cor, subset, cov, subsetv, stdinv)
2893#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2894 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VXLX_RK3
2895#endif
2896 use pm_kind, only: TKG => RK3
2897 type(lowDia_type) , intent(in) :: subset
2898 type(low_type) , intent(in) :: subsetv
2899 real(TKG) , intent(in) , contiguous :: stdinv(:)
2900 real(TKG) , intent(in) , contiguous :: cov(:,:)
2901 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2902 end subroutine
2903#endif
2904
2905#if RK2_ENABLED
2906 PURE module subroutine setCFC_RXLD_VXLX_RK2(cor, subset, cov, subsetv, stdinv)
2907#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2908 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VXLX_RK2
2909#endif
2910 use pm_kind, only: TKG => RK2
2911 type(lowDia_type) , intent(in) :: subset
2912 type(low_type) , intent(in) :: subsetv
2913 real(TKG) , intent(in) , contiguous :: stdinv(:)
2914 real(TKG) , intent(in) , contiguous :: cov(:,:)
2915 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2916 end subroutine
2917#endif
2918
2919#if RK1_ENABLED
2920 PURE module subroutine setCFC_RXLD_VXLX_RK1(cor, subset, cov, subsetv, stdinv)
2921#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2922 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VXLX_RK1
2923#endif
2924 use pm_kind, only: TKG => RK1
2925 type(lowDia_type) , intent(in) :: subset
2926 type(low_type) , intent(in) :: subsetv
2927 real(TKG) , intent(in) , contiguous :: stdinv(:)
2928 real(TKG) , intent(in) , contiguous :: cov(:,:)
2929 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2930 end subroutine
2931#endif
2932
2933 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2934
2935 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2936 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2937 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2938
2939 end interface
2940
2941 ! RK CFC: upp/low from uppDia/lowDia.
2942
2943 interface setCor
2944
2945 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2946 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2947 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2948
2949 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2950
2951#if RK5_ENABLED
2952 PURE module subroutine setCFC_RUXX_VUXD_RK5(cor, subset, cov, subsetv)
2953#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2954 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VUXD_RK5
2955#endif
2956 use pm_kind, only: TKG => RK5
2957 type(upp_type) , intent(in) :: subset
2958 type(uppDia_type) , intent(in) :: subsetv
2959 real(TKG) , intent(in) , contiguous :: cov(:,:)
2960 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2961 end subroutine
2962#endif
2963
2964#if RK4_ENABLED
2965 PURE module subroutine setCFC_RUXX_VUXD_RK4(cor, subset, cov, subsetv)
2966#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2967 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VUXD_RK4
2968#endif
2969 use pm_kind, only: TKG => RK4
2970 type(upp_type) , intent(in) :: subset
2971 type(uppDia_type) , intent(in) :: subsetv
2972 real(TKG) , intent(in) , contiguous :: cov(:,:)
2973 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2974 end subroutine
2975#endif
2976
2977#if RK3_ENABLED
2978 PURE module subroutine setCFC_RUXX_VUXD_RK3(cor, subset, cov, subsetv)
2979#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2980 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VUXD_RK3
2981#endif
2982 use pm_kind, only: TKG => RK3
2983 type(upp_type) , intent(in) :: subset
2984 type(uppDia_type) , intent(in) :: subsetv
2985 real(TKG) , intent(in) , contiguous :: cov(:,:)
2986 real(TKG) , intent(inout) , contiguous :: cor(:,:)
2987 end subroutine
2988#endif
2989
2990#if RK2_ENABLED
2991 PURE module subroutine setCFC_RUXX_VUXD_RK2(cor, subset, cov, subsetv)
2992#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2993 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VUXD_RK2
2994#endif
2995 use pm_kind, only: TKG => RK2
2996 type(upp_type) , intent(in) :: subset
2997 type(uppDia_type) , intent(in) :: subsetv
2998 real(TKG) , intent(in) , contiguous :: cov(:,:)
2999 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3000 end subroutine
3001#endif
3002
3003#if RK1_ENABLED
3004 PURE module subroutine setCFC_RUXX_VUXD_RK1(cor, subset, cov, subsetv)
3005#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3006 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VUXD_RK1
3007#endif
3008 use pm_kind, only: TKG => RK1
3009 type(upp_type) , intent(in) :: subset
3010 type(uppDia_type) , intent(in) :: subsetv
3011 real(TKG) , intent(in) , contiguous :: cov(:,:)
3012 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3013 end subroutine
3014#endif
3015
3016 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3017
3018#if RK5_ENABLED
3019 PURE module subroutine setCFC_RUXX_VXLD_RK5(cor, subset, cov, subsetv)
3020#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3021 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VXLD_RK5
3022#endif
3023 use pm_kind, only: TKG => RK5
3024 type(upp_type) , intent(in) :: subset
3025 type(lowDia_type) , intent(in) :: subsetv
3026 real(TKG) , intent(in) , contiguous :: cov(:,:)
3027 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3028 end subroutine
3029#endif
3030
3031#if RK4_ENABLED
3032 PURE module subroutine setCFC_RUXX_VXLD_RK4(cor, subset, cov, subsetv)
3033#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3034 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VXLD_RK4
3035#endif
3036 use pm_kind, only: TKG => RK4
3037 type(upp_type) , intent(in) :: subset
3038 type(lowDia_type) , intent(in) :: subsetv
3039 real(TKG) , intent(in) , contiguous :: cov(:,:)
3040 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3041 end subroutine
3042#endif
3043
3044#if RK3_ENABLED
3045 PURE module subroutine setCFC_RUXX_VXLD_RK3(cor, subset, cov, subsetv)
3046#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3047 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VXLD_RK3
3048#endif
3049 use pm_kind, only: TKG => RK3
3050 type(upp_type) , intent(in) :: subset
3051 type(lowDia_type) , intent(in) :: subsetv
3052 real(TKG) , intent(in) , contiguous :: cov(:,:)
3053 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3054 end subroutine
3055#endif
3056
3057#if RK2_ENABLED
3058 PURE module subroutine setCFC_RUXX_VXLD_RK2(cor, subset, cov, subsetv)
3059#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3060 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VXLD_RK2
3061#endif
3062 use pm_kind, only: TKG => RK2
3063 type(upp_type) , intent(in) :: subset
3064 type(lowDia_type) , intent(in) :: subsetv
3065 real(TKG) , intent(in) , contiguous :: cov(:,:)
3066 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3067 end subroutine
3068#endif
3069
3070#if RK1_ENABLED
3071 PURE module subroutine setCFC_RUXX_VXLD_RK1(cor, subset, cov, subsetv)
3072#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3073 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VXLD_RK1
3074#endif
3075 use pm_kind, only: TKG => RK1
3076 type(upp_type) , intent(in) :: subset
3077 type(lowDia_type) , intent(in) :: subsetv
3078 real(TKG) , intent(in) , contiguous :: cov(:,:)
3079 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3080 end subroutine
3081#endif
3082
3083 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3084
3085 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3086 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3087 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3088
3089 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3090
3091#if RK5_ENABLED
3092 PURE module subroutine setCFC_RXLX_VUXD_RK5(cor, subset, cov, subsetv)
3093#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3094 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VUXD_RK5
3095#endif
3096 use pm_kind, only: TKG => RK5
3097 type(low_type) , intent(in) :: subset
3098 type(uppDia_type) , intent(in) :: subsetv
3099 real(TKG) , intent(in) , contiguous :: cov(:,:)
3100 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3101 end subroutine
3102#endif
3103
3104#if RK4_ENABLED
3105 PURE module subroutine setCFC_RXLX_VUXD_RK4(cor, subset, cov, subsetv)
3106#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3107 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VUXD_RK4
3108#endif
3109 use pm_kind, only: TKG => RK4
3110 type(low_type) , intent(in) :: subset
3111 type(uppDia_type) , intent(in) :: subsetv
3112 real(TKG) , intent(in) , contiguous :: cov(:,:)
3113 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3114 end subroutine
3115#endif
3116
3117#if RK3_ENABLED
3118 PURE module subroutine setCFC_RXLX_VUXD_RK3(cor, subset, cov, subsetv)
3119#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3120 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VUXD_RK3
3121#endif
3122 use pm_kind, only: TKG => RK3
3123 type(low_type) , intent(in) :: subset
3124 type(uppDia_type) , intent(in) :: subsetv
3125 real(TKG) , intent(in) , contiguous :: cov(:,:)
3126 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3127 end subroutine
3128#endif
3129
3130#if RK2_ENABLED
3131 PURE module subroutine setCFC_RXLX_VUXD_RK2(cor, subset, cov, subsetv)
3132#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3133 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VUXD_RK2
3134#endif
3135 use pm_kind, only: TKG => RK2
3136 type(low_type) , intent(in) :: subset
3137 type(uppDia_type) , intent(in) :: subsetv
3138 real(TKG) , intent(in) , contiguous :: cov(:,:)
3139 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3140 end subroutine
3141#endif
3142
3143#if RK1_ENABLED
3144 PURE module subroutine setCFC_RXLX_VUXD_RK1(cor, subset, cov, subsetv)
3145#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3146 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VUXD_RK1
3147#endif
3148 use pm_kind, only: TKG => RK1
3149 type(low_type) , intent(in) :: subset
3150 type(uppDia_type) , intent(in) :: subsetv
3151 real(TKG) , intent(in) , contiguous :: cov(:,:)
3152 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3153 end subroutine
3154#endif
3155
3156 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3157
3158#if RK5_ENABLED
3159 PURE module subroutine setCFC_RXLX_VXLD_RK5(cor, subset, cov, subsetv)
3160#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3161 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VXLD_RK5
3162#endif
3163 use pm_kind, only: TKG => RK5
3164 type(low_type) , intent(in) :: subset
3165 type(lowDia_type) , intent(in) :: subsetv
3166 real(TKG) , intent(in) , contiguous :: cov(:,:)
3167 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3168 end subroutine
3169#endif
3170
3171#if RK4_ENABLED
3172 PURE module subroutine setCFC_RXLX_VXLD_RK4(cor, subset, cov, subsetv)
3173#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3174 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VXLD_RK4
3175#endif
3176 use pm_kind, only: TKG => RK4
3177 type(low_type) , intent(in) :: subset
3178 type(lowDia_type) , intent(in) :: subsetv
3179 real(TKG) , intent(in) , contiguous :: cov(:,:)
3180 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3181 end subroutine
3182#endif
3183
3184#if RK3_ENABLED
3185 PURE module subroutine setCFC_RXLX_VXLD_RK3(cor, subset, cov, subsetv)
3186#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3187 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VXLD_RK3
3188#endif
3189 use pm_kind, only: TKG => RK3
3190 type(low_type) , intent(in) :: subset
3191 type(lowDia_type) , intent(in) :: subsetv
3192 real(TKG) , intent(in) , contiguous :: cov(:,:)
3193 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3194 end subroutine
3195#endif
3196
3197#if RK2_ENABLED
3198 PURE module subroutine setCFC_RXLX_VXLD_RK2(cor, subset, cov, subsetv)
3199#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3200 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VXLD_RK2
3201#endif
3202 use pm_kind, only: TKG => RK2
3203 type(low_type) , intent(in) :: subset
3204 type(lowDia_type) , intent(in) :: subsetv
3205 real(TKG) , intent(in) , contiguous :: cov(:,:)
3206 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3207 end subroutine
3208#endif
3209
3210#if RK1_ENABLED
3211 PURE module subroutine setCFC_RXLX_VXLD_RK1(cor, subset, cov, subsetv)
3212#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3213 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VXLD_RK1
3214#endif
3215 use pm_kind, only: TKG => RK1
3216 type(low_type) , intent(in) :: subset
3217 type(lowDia_type) , intent(in) :: subsetv
3218 real(TKG) , intent(in) , contiguous :: cov(:,:)
3219 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3220 end subroutine
3221#endif
3222
3223 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3224
3225 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3226 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3227 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3228
3229 end interface
3230
3231 ! RK CFC: uppDia/lowDia from uppDia/lowDia.
3232
3233 interface setCor
3234
3235 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3236 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3237 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3238
3239 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3240
3241#if RK5_ENABLED
3242 PURE module subroutine setCFC_RUXD_VUXD_RK5(cor, subset, cov, subsetv)
3243#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3244 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VUXD_RK5
3245#endif
3246 use pm_kind, only: TKG => RK5
3247 type(uppDia_type) , intent(in) :: subset
3248 type(uppDia_type) , intent(in) :: subsetv
3249 real(TKG) , intent(in) , contiguous :: cov(:,:)
3250 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3251 end subroutine
3252#endif
3253
3254#if RK4_ENABLED
3255 PURE module subroutine setCFC_RUXD_VUXD_RK4(cor, subset, cov, subsetv)
3256#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3257 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VUXD_RK4
3258#endif
3259 use pm_kind, only: TKG => RK4
3260 type(uppDia_type) , intent(in) :: subset
3261 type(uppDia_type) , intent(in) :: subsetv
3262 real(TKG) , intent(in) , contiguous :: cov(:,:)
3263 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3264 end subroutine
3265#endif
3266
3267#if RK3_ENABLED
3268 PURE module subroutine setCFC_RUXD_VUXD_RK3(cor, subset, cov, subsetv)
3269#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3270 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VUXD_RK3
3271#endif
3272 use pm_kind, only: TKG => RK3
3273 type(uppDia_type) , intent(in) :: subset
3274 type(uppDia_type) , intent(in) :: subsetv
3275 real(TKG) , intent(in) , contiguous :: cov(:,:)
3276 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3277 end subroutine
3278#endif
3279
3280#if RK2_ENABLED
3281 PURE module subroutine setCFC_RUXD_VUXD_RK2(cor, subset, cov, subsetv)
3282#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3283 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VUXD_RK2
3284#endif
3285 use pm_kind, only: TKG => RK2
3286 type(uppDia_type) , intent(in) :: subset
3287 type(uppDia_type) , intent(in) :: subsetv
3288 real(TKG) , intent(in) , contiguous :: cov(:,:)
3289 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3290 end subroutine
3291#endif
3292
3293#if RK1_ENABLED
3294 PURE module subroutine setCFC_RUXD_VUXD_RK1(cor, subset, cov, subsetv)
3295#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3296 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VUXD_RK1
3297#endif
3298 use pm_kind, only: TKG => RK1
3299 type(uppDia_type) , intent(in) :: subset
3300 type(uppDia_type) , intent(in) :: subsetv
3301 real(TKG) , intent(in) , contiguous :: cov(:,:)
3302 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3303 end subroutine
3304#endif
3305
3306 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3307
3308#if RK5_ENABLED
3309 PURE module subroutine setCFC_RUXD_VXLD_RK5(cor, subset, cov, subsetv)
3310#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3311 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VXLD_RK5
3312#endif
3313 use pm_kind, only: TKG => RK5
3314 type(uppDia_type) , intent(in) :: subset
3315 type(lowDia_type) , intent(in) :: subsetv
3316 real(TKG) , intent(in) , contiguous :: cov(:,:)
3317 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3318 end subroutine
3319#endif
3320
3321#if RK4_ENABLED
3322 PURE module subroutine setCFC_RUXD_VXLD_RK4(cor, subset, cov, subsetv)
3323#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3324 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VXLD_RK4
3325#endif
3326 use pm_kind, only: TKG => RK4
3327 type(uppDia_type) , intent(in) :: subset
3328 type(lowDia_type) , intent(in) :: subsetv
3329 real(TKG) , intent(in) , contiguous :: cov(:,:)
3330 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3331 end subroutine
3332#endif
3333
3334#if RK3_ENABLED
3335 PURE module subroutine setCFC_RUXD_VXLD_RK3(cor, subset, cov, subsetv)
3336#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3337 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VXLD_RK3
3338#endif
3339 use pm_kind, only: TKG => RK3
3340 type(uppDia_type) , intent(in) :: subset
3341 type(lowDia_type) , intent(in) :: subsetv
3342 real(TKG) , intent(in) , contiguous :: cov(:,:)
3343 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3344 end subroutine
3345#endif
3346
3347#if RK2_ENABLED
3348 PURE module subroutine setCFC_RUXD_VXLD_RK2(cor, subset, cov, subsetv)
3349#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3350 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VXLD_RK2
3351#endif
3352 use pm_kind, only: TKG => RK2
3353 type(uppDia_type) , intent(in) :: subset
3354 type(lowDia_type) , intent(in) :: subsetv
3355 real(TKG) , intent(in) , contiguous :: cov(:,:)
3356 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3357 end subroutine
3358#endif
3359
3360#if RK1_ENABLED
3361 PURE module subroutine setCFC_RUXD_VXLD_RK1(cor, subset, cov, subsetv)
3362#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3363 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VXLD_RK1
3364#endif
3365 use pm_kind, only: TKG => RK1
3366 type(uppDia_type) , intent(in) :: subset
3367 type(lowDia_type) , intent(in) :: subsetv
3368 real(TKG) , intent(in) , contiguous :: cov(:,:)
3369 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3370 end subroutine
3371#endif
3372
3373 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3374
3375 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3376 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3377 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3378
3379 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3380
3381#if RK5_ENABLED
3382 PURE module subroutine setCFC_RXLD_VUXD_RK5(cor, subset, cov, subsetv)
3383#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3384 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VUXD_RK5
3385#endif
3386 use pm_kind, only: TKG => RK5
3387 type(lowDia_type) , intent(in) :: subset
3388 type(uppDia_type) , intent(in) :: subsetv
3389 real(TKG) , intent(in) , contiguous :: cov(:,:)
3390 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3391 end subroutine
3392#endif
3393
3394#if RK4_ENABLED
3395 PURE module subroutine setCFC_RXLD_VUXD_RK4(cor, subset, cov, subsetv)
3396#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3397 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VUXD_RK4
3398#endif
3399 use pm_kind, only: TKG => RK4
3400 type(lowDia_type) , intent(in) :: subset
3401 type(uppDia_type) , intent(in) :: subsetv
3402 real(TKG) , intent(in) , contiguous :: cov(:,:)
3403 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3404 end subroutine
3405#endif
3406
3407#if RK3_ENABLED
3408 PURE module subroutine setCFC_RXLD_VUXD_RK3(cor, subset, cov, subsetv)
3409#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3410 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VUXD_RK3
3411#endif
3412 use pm_kind, only: TKG => RK3
3413 type(lowDia_type) , intent(in) :: subset
3414 type(uppDia_type) , intent(in) :: subsetv
3415 real(TKG) , intent(in) , contiguous :: cov(:,:)
3416 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3417 end subroutine
3418#endif
3419
3420#if RK2_ENABLED
3421 PURE module subroutine setCFC_RXLD_VUXD_RK2(cor, subset, cov, subsetv)
3422#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3423 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VUXD_RK2
3424#endif
3425 use pm_kind, only: TKG => RK2
3426 type(lowDia_type) , intent(in) :: subset
3427 type(uppDia_type) , intent(in) :: subsetv
3428 real(TKG) , intent(in) , contiguous :: cov(:,:)
3429 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3430 end subroutine
3431#endif
3432
3433#if RK1_ENABLED
3434 PURE module subroutine setCFC_RXLD_VUXD_RK1(cor, subset, cov, subsetv)
3435#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3436 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VUXD_RK1
3437#endif
3438 use pm_kind, only: TKG => RK1
3439 type(lowDia_type) , intent(in) :: subset
3440 type(uppDia_type) , intent(in) :: subsetv
3441 real(TKG) , intent(in) , contiguous :: cov(:,:)
3442 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3443 end subroutine
3444#endif
3445
3446 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3447
3448#if RK5_ENABLED
3449 PURE module subroutine setCFC_RXLD_VXLD_RK5(cor, subset, cov, subsetv)
3450#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3451 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VXLD_RK5
3452#endif
3453 use pm_kind, only: TKG => RK5
3454 type(lowDia_type) , intent(in) :: subset
3455 type(lowDia_type) , intent(in) :: subsetv
3456 real(TKG) , intent(in) , contiguous :: cov(:,:)
3457 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3458 end subroutine
3459#endif
3460
3461#if RK4_ENABLED
3462 PURE module subroutine setCFC_RXLD_VXLD_RK4(cor, subset, cov, subsetv)
3463#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3464 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VXLD_RK4
3465#endif
3466 use pm_kind, only: TKG => RK4
3467 type(lowDia_type) , intent(in) :: subset
3468 type(lowDia_type) , intent(in) :: subsetv
3469 real(TKG) , intent(in) , contiguous :: cov(:,:)
3470 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3471 end subroutine
3472#endif
3473
3474#if RK3_ENABLED
3475 PURE module subroutine setCFC_RXLD_VXLD_RK3(cor, subset, cov, subsetv)
3476#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3477 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VXLD_RK3
3478#endif
3479 use pm_kind, only: TKG => RK3
3480 type(lowDia_type) , intent(in) :: subset
3481 type(lowDia_type) , intent(in) :: subsetv
3482 real(TKG) , intent(in) , contiguous :: cov(:,:)
3483 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3484 end subroutine
3485#endif
3486
3487#if RK2_ENABLED
3488 PURE module subroutine setCFC_RXLD_VXLD_RK2(cor, subset, cov, subsetv)
3489#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3490 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VXLD_RK2
3491#endif
3492 use pm_kind, only: TKG => RK2
3493 type(lowDia_type) , intent(in) :: subset
3494 type(lowDia_type) , intent(in) :: subsetv
3495 real(TKG) , intent(in) , contiguous :: cov(:,:)
3496 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3497 end subroutine
3498#endif
3499
3500#if RK1_ENABLED
3501 PURE module subroutine setCFC_RXLD_VXLD_RK1(cor, subset, cov, subsetv)
3502#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3503 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VXLD_RK1
3504#endif
3505 use pm_kind, only: TKG => RK1
3506 type(lowDia_type) , intent(in) :: subset
3507 type(lowDia_type) , intent(in) :: subsetv
3508 real(TKG) , intent(in) , contiguous :: cov(:,:)
3509 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3510 end subroutine
3511#endif
3512
3513 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3514
3515 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3516 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3517 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3518
3519 end interface
3520
3521 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3522
3523 ! RK XY - Prs - WNO
3524
3525 interface setCor
3526
3527 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3528
3529#if RK5_ENABLED
3530 PURE module subroutine setPrsOrgWNO_XY_RK5(cor, x, y)
3531#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3532 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWNO_XY_RK5
3533#endif
3534 use pm_kind, only: TKG => RK5
3535 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3536 real(TKG) , intent(out) :: cor
3537 end subroutine
3538#endif
3539
3540#if RK4_ENABLED
3541 PURE module subroutine setPrsOrgWNO_XY_RK4(cor, x, y)
3542#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3543 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWNO_XY_RK4
3544#endif
3545 use pm_kind, only: TKG => RK4
3546 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3547 real(TKG) , intent(out) :: cor
3548 end subroutine
3549#endif
3550
3551#if RK3_ENABLED
3552 PURE module subroutine setPrsOrgWNO_XY_RK3(cor, x, y)
3553#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3554 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWNO_XY_RK3
3555#endif
3556 use pm_kind, only: TKG => RK3
3557 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3558 real(TKG) , intent(out) :: cor
3559 end subroutine
3560#endif
3561
3562#if RK2_ENABLED
3563 PURE module subroutine setPrsOrgWNO_XY_RK2(cor, x, y)
3564#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3565 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWNO_XY_RK2
3566#endif
3567 use pm_kind, only: TKG => RK2
3568 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3569 real(TKG) , intent(out) :: cor
3570 end subroutine
3571#endif
3572
3573#if RK1_ENABLED
3574 PURE module subroutine setPrsOrgWNO_XY_RK1(cor, x, y)
3575#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3576 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWNO_XY_RK1
3577#endif
3578 use pm_kind, only: TKG => RK1
3579 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3580 real(TKG) , intent(out) :: cor
3581 end subroutine
3582#endif
3583
3584 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3585
3586#if RK5_ENABLED
3587 PURE module subroutine setPrsAvgWNO_XY_RK5(cor, mean, x, y)
3588#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3589 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWNO_XY_RK5
3590#endif
3591 use pm_kind, only: TKG => RK5
3592 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3593 real(TKG) , intent(in) , contiguous :: mean(:)
3594 real(TKG) , intent(out) :: cor
3595 end subroutine
3596#endif
3597
3598#if RK4_ENABLED
3599 PURE module subroutine setPrsAvgWNO_XY_RK4(cor, mean, x, y)
3600#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3601 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWNO_XY_RK4
3602#endif
3603 use pm_kind, only: TKG => RK4
3604 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3605 real(TKG) , intent(in) , contiguous :: mean(:)
3606 real(TKG) , intent(out) :: cor
3607 end subroutine
3608#endif
3609
3610#if RK3_ENABLED
3611 PURE module subroutine setPrsAvgWNO_XY_RK3(cor, mean, x, y)
3612#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3613 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWNO_XY_RK3
3614#endif
3615 use pm_kind, only: TKG => RK3
3616 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3617 real(TKG) , intent(in) , contiguous :: mean(:)
3618 real(TKG) , intent(out) :: cor
3619 end subroutine
3620#endif
3621
3622#if RK2_ENABLED
3623 PURE module subroutine setPrsAvgWNO_XY_RK2(cor, mean, x, y)
3624#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3625 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWNO_XY_RK2
3626#endif
3627 use pm_kind, only: TKG => RK2
3628 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3629 real(TKG) , intent(in) , contiguous :: mean(:)
3630 real(TKG) , intent(out) :: cor
3631 end subroutine
3632#endif
3633
3634#if RK1_ENABLED
3635 PURE module subroutine setPrsAvgWNO_XY_RK1(cor, mean, x, y)
3636#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3637 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWNO_XY_RK1
3638#endif
3639 use pm_kind, only: TKG => RK1
3640 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3641 real(TKG) , intent(in) , contiguous :: mean(:)
3642 real(TKG) , intent(out) :: cor
3643 end subroutine
3644#endif
3645
3646 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3647
3648 end interface setCor
3649
3650 ! RK XY - Prs - WTI
3651
3652 interface setCor
3653
3654 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3655
3656#if RK5_ENABLED
3657 PURE module subroutine setPrsOrgWTI_XY_RK5(cor, x, y, weight, weisum)
3658#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3659 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTI_XY_RK5
3660#endif
3661 use pm_kind, only: TKG => RK5
3662 integer(IK) , intent(in) :: weisum
3663 integer(IK) , intent(in) , contiguous :: weight(:)
3664 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3665 real(TKG) , intent(out) :: cor
3666 end subroutine
3667#endif
3668
3669#if RK4_ENABLED
3670 PURE module subroutine setPrsOrgWTI_XY_RK4(cor, x, y, weight, weisum)
3671#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3672 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTI_XY_RK4
3673#endif
3674 use pm_kind, only: TKG => RK4
3675 integer(IK) , intent(in) :: weisum
3676 integer(IK) , intent(in) , contiguous :: weight(:)
3677 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3678 real(TKG) , intent(out) :: cor
3679 end subroutine
3680#endif
3681
3682#if RK3_ENABLED
3683 PURE module subroutine setPrsOrgWTI_XY_RK3(cor, x, y, weight, weisum)
3684#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3685 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTI_XY_RK3
3686#endif
3687 use pm_kind, only: TKG => RK3
3688 integer(IK) , intent(in) :: weisum
3689 integer(IK) , intent(in) , contiguous :: weight(:)
3690 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3691 real(TKG) , intent(out) :: cor
3692 end subroutine
3693#endif
3694
3695#if RK2_ENABLED
3696 PURE module subroutine setPrsOrgWTI_XY_RK2(cor, x, y, weight, weisum)
3697#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3698 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTI_XY_RK2
3699#endif
3700 use pm_kind, only: TKG => RK2
3701 integer(IK) , intent(in) :: weisum
3702 integer(IK) , intent(in) , contiguous :: weight(:)
3703 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3704 real(TKG) , intent(out) :: cor
3705 end subroutine
3706#endif
3707
3708#if RK1_ENABLED
3709 PURE module subroutine setPrsOrgWTI_XY_RK1(cor, x, y, weight, weisum)
3710#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3711 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTI_XY_RK1
3712#endif
3713 use pm_kind, only: TKG => RK1
3714 integer(IK) , intent(in) :: weisum
3715 integer(IK) , intent(in) , contiguous :: weight(:)
3716 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3717 real(TKG) , intent(out) :: cor
3718 end subroutine
3719#endif
3720
3721 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3722
3723#if RK5_ENABLED
3724 PURE module subroutine setPrsAvgWTI_XY_RK5(cor, mean, x, y, weight, weisum)
3725#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3726 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTI_XY_RK5
3727#endif
3728 use pm_kind, only: TKG => RK5
3729 integer(IK) , intent(in) :: weisum
3730 integer(IK) , intent(in) , contiguous :: weight(:)
3731 real(TKG) , intent(in) , contiguous :: mean(:)
3732 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3733 real(TKG) , intent(out) :: cor
3734 end subroutine
3735#endif
3736
3737#if RK4_ENABLED
3738 PURE module subroutine setPrsAvgWTI_XY_RK4(cor, mean, x, y, weight, weisum)
3739#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3740 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTI_XY_RK4
3741#endif
3742 use pm_kind, only: TKG => RK4
3743 integer(IK) , intent(in) :: weisum
3744 integer(IK) , intent(in) , contiguous :: weight(:)
3745 real(TKG) , intent(in) , contiguous :: mean(:)
3746 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3747 real(TKG) , intent(out) :: cor
3748 end subroutine
3749#endif
3750
3751#if RK3_ENABLED
3752 PURE module subroutine setPrsAvgWTI_XY_RK3(cor, mean, x, y, weight, weisum)
3753#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3754 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTI_XY_RK3
3755#endif
3756 use pm_kind, only: TKG => RK3
3757 integer(IK) , intent(in) :: weisum
3758 integer(IK) , intent(in) , contiguous :: weight(:)
3759 real(TKG) , intent(in) , contiguous :: mean(:)
3760 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3761 real(TKG) , intent(out) :: cor
3762 end subroutine
3763#endif
3764
3765#if RK2_ENABLED
3766 PURE module subroutine setPrsAvgWTI_XY_RK2(cor, mean, x, y, weight, weisum)
3767#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3768 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTI_XY_RK2
3769#endif
3770 use pm_kind, only: TKG => RK2
3771 integer(IK) , intent(in) :: weisum
3772 integer(IK) , intent(in) , contiguous :: weight(:)
3773 real(TKG) , intent(in) , contiguous :: mean(:)
3774 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3775 real(TKG) , intent(out) :: cor
3776 end subroutine
3777#endif
3778
3779#if RK1_ENABLED
3780 PURE module subroutine setPrsAvgWTI_XY_RK1(cor, mean, x, y, weight, weisum)
3781#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3782 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTI_XY_RK1
3783#endif
3784 use pm_kind, only: TKG => RK1
3785 integer(IK) , intent(in) :: weisum
3786 integer(IK) , intent(in) , contiguous :: weight(:)
3787 real(TKG) , intent(in) , contiguous :: mean(:)
3788 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3789 real(TKG) , intent(out) :: cor
3790 end subroutine
3791#endif
3792
3793 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3794
3795 end interface setCor
3796
3797 ! RK XY - Prs - WTR
3798
3799 interface setCor
3800
3801 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3802
3803#if RK5_ENABLED
3804 PURE module subroutine setPrsOrgWTR_XY_RK5(cor, x, y, weight, weisum)
3805#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3806 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTR_XY_RK5
3807#endif
3808 use pm_kind, only: TKG => RK5
3809 real(TKG) , intent(in) :: weisum
3810 real(TKG) , intent(in) , contiguous :: weight(:)
3811 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3812 real(TKG) , intent(out) :: cor
3813 end subroutine
3814#endif
3815
3816#if RK4_ENABLED
3817 PURE module subroutine setPrsOrgWTR_XY_RK4(cor, x, y, weight, weisum)
3818#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3819 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTR_XY_RK4
3820#endif
3821 use pm_kind, only: TKG => RK4
3822 real(TKG) , intent(in) :: weisum
3823 real(TKG) , intent(in) , contiguous :: weight(:)
3824 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3825 real(TKG) , intent(out) :: cor
3826 end subroutine
3827#endif
3828
3829#if RK3_ENABLED
3830 PURE module subroutine setPrsOrgWTR_XY_RK3(cor, x, y, weight, weisum)
3831#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3832 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTR_XY_RK3
3833#endif
3834 use pm_kind, only: TKG => RK3
3835 real(TKG) , intent(in) :: weisum
3836 real(TKG) , intent(in) , contiguous :: weight(:)
3837 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3838 real(TKG) , intent(out) :: cor
3839 end subroutine
3840#endif
3841
3842#if RK2_ENABLED
3843 PURE module subroutine setPrsOrgWTR_XY_RK2(cor, x, y, weight, weisum)
3844#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3845 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTR_XY_RK2
3846#endif
3847 use pm_kind, only: TKG => RK2
3848 real(TKG) , intent(in) :: weisum
3849 real(TKG) , intent(in) , contiguous :: weight(:)
3850 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3851 real(TKG) , intent(out) :: cor
3852 end subroutine
3853#endif
3854
3855#if RK1_ENABLED
3856 PURE module subroutine setPrsOrgWTR_XY_RK1(cor, x, y, weight, weisum)
3857#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3858 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTR_XY_RK1
3859#endif
3860 use pm_kind, only: TKG => RK1
3861 real(TKG) , intent(in) :: weisum
3862 real(TKG) , intent(in) , contiguous :: weight(:)
3863 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3864 real(TKG) , intent(out) :: cor
3865 end subroutine
3866#endif
3867
3868 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3869
3870#if RK5_ENABLED
3871 PURE module subroutine setPrsAvgWTR_XY_RK5(cor, mean, x, y, weight, weisum)
3872#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3873 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTR_XY_RK5
3874#endif
3875 use pm_kind, only: TKG => RK5
3876 real(TKG) , intent(in) :: weisum
3877 real(TKG) , intent(in) , contiguous :: mean(:)
3878 real(TKG) , intent(in) , contiguous :: weight(:)
3879 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3880 real(TKG) , intent(out) :: cor
3881 end subroutine
3882#endif
3883
3884#if RK4_ENABLED
3885 PURE module subroutine setPrsAvgWTR_XY_RK4(cor, mean, x, y, weight, weisum)
3886#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3887 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTR_XY_RK4
3888#endif
3889 use pm_kind, only: TKG => RK4
3890 real(TKG) , intent(in) :: weisum
3891 real(TKG) , intent(in) , contiguous :: mean(:)
3892 real(TKG) , intent(in) , contiguous :: weight(:)
3893 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3894 real(TKG) , intent(out) :: cor
3895 end subroutine
3896#endif
3897
3898#if RK3_ENABLED
3899 PURE module subroutine setPrsAvgWTR_XY_RK3(cor, mean, x, y, weight, weisum)
3900#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3901 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTR_XY_RK3
3902#endif
3903 use pm_kind, only: TKG => RK3
3904 real(TKG) , intent(in) :: weisum
3905 real(TKG) , intent(in) , contiguous :: mean(:)
3906 real(TKG) , intent(in) , contiguous :: weight(:)
3907 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3908 real(TKG) , intent(out) :: cor
3909 end subroutine
3910#endif
3911
3912#if RK2_ENABLED
3913 PURE module subroutine setPrsAvgWTR_XY_RK2(cor, mean, x, y, weight, weisum)
3914#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3915 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTR_XY_RK2
3916#endif
3917 use pm_kind, only: TKG => RK2
3918 real(TKG) , intent(in) :: weisum
3919 real(TKG) , intent(in) , contiguous :: mean(:)
3920 real(TKG) , intent(in) , contiguous :: weight(:)
3921 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3922 real(TKG) , intent(out) :: cor
3923 end subroutine
3924#endif
3925
3926#if RK1_ENABLED
3927 PURE module subroutine setPrsAvgWTR_XY_RK1(cor, mean, x, y, weight, weisum)
3928#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3929 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTR_XY_RK1
3930#endif
3931 use pm_kind, only: TKG => RK1
3932 real(TKG) , intent(in) :: weisum
3933 real(TKG) , intent(in) , contiguous :: mean(:)
3934 real(TKG) , intent(in) , contiguous :: weight(:)
3935 real(TKG) , intent(in) , contiguous :: x(:), y(:)
3936 real(TKG) , intent(out) :: cor
3937 end subroutine
3938#endif
3939
3940 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3941
3942 end interface setCor
3943
3944 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3945
3946 ! RK UXD - Prs - WNO
3947
3948 interface setCor
3949
3950 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3951
3952#if RK5_ENABLED
3953 PURE module subroutine setPrsOrgWNO_UXD_RK5(cor, subset, sample, dim)
3954#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3955 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWNO_UXD_RK5
3956#endif
3957 use pm_kind, only: TKG => RK5
3958 integer(IK) , intent(in) :: dim
3959 real(TKG) , intent(in) , contiguous :: sample(:,:)
3960 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3961 type(uppDia_type) , intent(in) :: subset
3962 end subroutine
3963#endif
3964
3965#if RK4_ENABLED
3966 PURE module subroutine setPrsOrgWNO_UXD_RK4(cor, subset, sample, dim)
3967#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3968 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWNO_UXD_RK4
3969#endif
3970 use pm_kind, only: TKG => RK4
3971 integer(IK) , intent(in) :: dim
3972 real(TKG) , intent(in) , contiguous :: sample(:,:)
3973 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3974 type(uppDia_type) , intent(in) :: subset
3975 end subroutine
3976#endif
3977
3978#if RK3_ENABLED
3979 PURE module subroutine setPrsOrgWNO_UXD_RK3(cor, subset, sample, dim)
3980#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3981 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWNO_UXD_RK3
3982#endif
3983 use pm_kind, only: TKG => RK3
3984 integer(IK) , intent(in) :: dim
3985 real(TKG) , intent(in) , contiguous :: sample(:,:)
3986 real(TKG) , intent(inout) , contiguous :: cor(:,:)
3987 type(uppDia_type) , intent(in) :: subset
3988 end subroutine
3989#endif
3990
3991#if RK2_ENABLED
3992 PURE module subroutine setPrsOrgWNO_UXD_RK2(cor, subset, sample, dim)
3993#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3994 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWNO_UXD_RK2
3995#endif
3996 use pm_kind, only: TKG => RK2
3997 integer(IK) , intent(in) :: dim
3998 real(TKG) , intent(in) , contiguous :: sample(:,:)
3999 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4000 type(uppDia_type) , intent(in) :: subset
4001 end subroutine
4002#endif
4003
4004#if RK1_ENABLED
4005 PURE module subroutine setPrsOrgWNO_UXD_RK1(cor, subset, sample, dim)
4006#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4007 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWNO_UXD_RK1
4008#endif
4009 use pm_kind, only: TKG => RK1
4010 integer(IK) , intent(in) :: dim
4011 real(TKG) , intent(in) , contiguous :: sample(:,:)
4012 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4013 type(uppDia_type) , intent(in) :: subset
4014 end subroutine
4015#endif
4016
4017 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4018
4019#if RK5_ENABLED
4020 PURE module subroutine setPrsAvgWNO_UXD_RK5(cor, subset, mean, sample, dim)
4021#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4022 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWNO_UXD_RK5
4023#endif
4024 use pm_kind, only: TKG => RK5
4025 integer(IK) , intent(in) :: dim
4026 real(TKG) , intent(in) , contiguous :: sample(:,:)
4027 real(TKG) , intent(in) , contiguous :: mean(:)
4028 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4029 type(uppDia_type) , intent(in) :: subset
4030 end subroutine
4031#endif
4032
4033#if RK4_ENABLED
4034 PURE module subroutine setPrsAvgWNO_UXD_RK4(cor, subset, mean, sample, dim)
4035#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4036 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWNO_UXD_RK4
4037#endif
4038 use pm_kind, only: TKG => RK4
4039 integer(IK) , intent(in) :: dim
4040 real(TKG) , intent(in) , contiguous :: sample(:,:)
4041 real(TKG) , intent(in) , contiguous :: mean(:)
4042 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4043 type(uppDia_type) , intent(in) :: subset
4044 end subroutine
4045#endif
4046
4047#if RK3_ENABLED
4048 PURE module subroutine setPrsAvgWNO_UXD_RK3(cor, subset, mean, sample, dim)
4049#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4050 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWNO_UXD_RK3
4051#endif
4052 use pm_kind, only: TKG => RK3
4053 integer(IK) , intent(in) :: dim
4054 real(TKG) , intent(in) , contiguous :: sample(:,:)
4055 real(TKG) , intent(in) , contiguous :: mean(:)
4056 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4057 type(uppDia_type) , intent(in) :: subset
4058 end subroutine
4059#endif
4060
4061#if RK2_ENABLED
4062 PURE module subroutine setPrsAvgWNO_UXD_RK2(cor, subset, mean, sample, dim)
4063#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4064 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWNO_UXD_RK2
4065#endif
4066 use pm_kind, only: TKG => RK2
4067 integer(IK) , intent(in) :: dim
4068 real(TKG) , intent(in) , contiguous :: sample(:,:)
4069 real(TKG) , intent(in) , contiguous :: mean(:)
4070 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4071 type(uppDia_type) , intent(in) :: subset
4072 end subroutine
4073#endif
4074
4075#if RK1_ENABLED
4076 PURE module subroutine setPrsAvgWNO_UXD_RK1(cor, subset, mean, sample, dim)
4077#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4078 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWNO_UXD_RK1
4079#endif
4080 use pm_kind, only: TKG => RK1
4081 integer(IK) , intent(in) :: dim
4082 real(TKG) , intent(in) , contiguous :: sample(:,:)
4083 real(TKG) , intent(in) , contiguous :: mean(:)
4084 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4085 type(uppDia_type) , intent(in) :: subset
4086 end subroutine
4087#endif
4088
4089 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4090
4091 end interface setCor
4092
4093 ! RK UXD - Prs - WTI
4094
4095 interface setCor
4096
4097 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4098
4099#if RK5_ENABLED
4100 PURE module subroutine setPrsOrgWTI_UXD_RK5(cor, subset, sample, dim, weight, weisum)
4101#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4102 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTI_UXD_RK5
4103#endif
4104 use pm_kind, only: TKG => RK5
4105 integer(IK) , intent(in) :: dim
4106 integer(IK) , intent(in) :: weisum
4107 integer(IK) , intent(in) , contiguous :: weight(:)
4108 real(TKG) , intent(in) , contiguous :: sample(:,:)
4109 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4110 type(uppDia_type) , intent(in) :: subset
4111 end subroutine
4112#endif
4113
4114#if RK4_ENABLED
4115 PURE module subroutine setPrsOrgWTI_UXD_RK4(cor, subset, sample, dim, weight, weisum)
4116#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4117 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTI_UXD_RK4
4118#endif
4119 use pm_kind, only: TKG => RK4
4120 integer(IK) , intent(in) :: dim
4121 integer(IK) , intent(in) :: weisum
4122 integer(IK) , intent(in) , contiguous :: weight(:)
4123 real(TKG) , intent(in) , contiguous :: sample(:,:)
4124 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4125 type(uppDia_type) , intent(in) :: subset
4126 end subroutine
4127#endif
4128
4129#if RK3_ENABLED
4130 PURE module subroutine setPrsOrgWTI_UXD_RK3(cor, subset, sample, dim, weight, weisum)
4131#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4132 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTI_UXD_RK3
4133#endif
4134 use pm_kind, only: TKG => RK3
4135 integer(IK) , intent(in) :: dim
4136 integer(IK) , intent(in) :: weisum
4137 integer(IK) , intent(in) , contiguous :: weight(:)
4138 real(TKG) , intent(in) , contiguous :: sample(:,:)
4139 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4140 type(uppDia_type) , intent(in) :: subset
4141 end subroutine
4142#endif
4143
4144#if RK2_ENABLED
4145 PURE module subroutine setPrsOrgWTI_UXD_RK2(cor, subset, sample, dim, weight, weisum)
4146#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4147 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTI_UXD_RK2
4148#endif
4149 use pm_kind, only: TKG => RK2
4150 integer(IK) , intent(in) :: dim
4151 integer(IK) , intent(in) :: weisum
4152 integer(IK) , intent(in) , contiguous :: weight(:)
4153 real(TKG) , intent(in) , contiguous :: sample(:,:)
4154 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4155 type(uppDia_type) , intent(in) :: subset
4156 end subroutine
4157#endif
4158
4159#if RK1_ENABLED
4160 PURE module subroutine setPrsOrgWTI_UXD_RK1(cor, subset, sample, dim, weight, weisum)
4161#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4162 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTI_UXD_RK1
4163#endif
4164 use pm_kind, only: TKG => RK1
4165 integer(IK) , intent(in) :: dim
4166 integer(IK) , intent(in) :: weisum
4167 integer(IK) , intent(in) , contiguous :: weight(:)
4168 real(TKG) , intent(in) , contiguous :: sample(:,:)
4169 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4170 type(uppDia_type) , intent(in) :: subset
4171 end subroutine
4172#endif
4173
4174 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4175
4176#if RK5_ENABLED
4177 PURE module subroutine setPrsAvgWTI_UXD_RK5(cor, subset, mean, sample, dim, weight, weisum)
4178#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4179 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTI_UXD_RK5
4180#endif
4181 use pm_kind, only: TKG => RK5
4182 integer(IK) , intent(in) :: dim
4183 integer(IK) , intent(in) :: weisum
4184 integer(IK) , intent(in) , contiguous :: weight(:)
4185 real(TKG) , intent(in) , contiguous :: mean(:)
4186 real(TKG) , intent(in) , contiguous :: sample(:,:)
4187 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4188 type(uppDia_type) , intent(in) :: subset
4189 end subroutine
4190#endif
4191
4192#if RK4_ENABLED
4193 PURE module subroutine setPrsAvgWTI_UXD_RK4(cor, subset, mean, sample, dim, weight, weisum)
4194#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4195 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTI_UXD_RK4
4196#endif
4197 use pm_kind, only: TKG => RK4
4198 integer(IK) , intent(in) :: dim
4199 integer(IK) , intent(in) :: weisum
4200 integer(IK) , intent(in) , contiguous :: weight(:)
4201 real(TKG) , intent(in) , contiguous :: mean(:)
4202 real(TKG) , intent(in) , contiguous :: sample(:,:)
4203 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4204 type(uppDia_type) , intent(in) :: subset
4205 end subroutine
4206#endif
4207
4208#if RK3_ENABLED
4209 PURE module subroutine setPrsAvgWTI_UXD_RK3(cor, subset, mean, sample, dim, weight, weisum)
4210#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4211 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTI_UXD_RK3
4212#endif
4213 use pm_kind, only: TKG => RK3
4214 integer(IK) , intent(in) :: dim
4215 integer(IK) , intent(in) :: weisum
4216 integer(IK) , intent(in) , contiguous :: weight(:)
4217 real(TKG) , intent(in) , contiguous :: mean(:)
4218 real(TKG) , intent(in) , contiguous :: sample(:,:)
4219 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4220 type(uppDia_type) , intent(in) :: subset
4221 end subroutine
4222#endif
4223
4224#if RK2_ENABLED
4225 PURE module subroutine setPrsAvgWTI_UXD_RK2(cor, subset, mean, sample, dim, weight, weisum)
4226#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4227 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTI_UXD_RK2
4228#endif
4229 use pm_kind, only: TKG => RK2
4230 integer(IK) , intent(in) :: dim
4231 integer(IK) , intent(in) :: weisum
4232 integer(IK) , intent(in) , contiguous :: weight(:)
4233 real(TKG) , intent(in) , contiguous :: mean(:)
4234 real(TKG) , intent(in) , contiguous :: sample(:,:)
4235 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4236 type(uppDia_type) , intent(in) :: subset
4237 end subroutine
4238#endif
4239
4240#if RK1_ENABLED
4241 PURE module subroutine setPrsAvgWTI_UXD_RK1(cor, subset, mean, sample, dim, weight, weisum)
4242#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4243 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTI_UXD_RK1
4244#endif
4245 use pm_kind, only: TKG => RK1
4246 integer(IK) , intent(in) :: dim
4247 integer(IK) , intent(in) :: weisum
4248 integer(IK) , intent(in) , contiguous :: weight(:)
4249 real(TKG) , intent(in) , contiguous :: mean(:)
4250 real(TKG) , intent(in) , contiguous :: sample(:,:)
4251 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4252 type(uppDia_type) , intent(in) :: subset
4253 end subroutine
4254#endif
4255
4256 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4257
4258 end interface setCor
4259
4260 ! RK UXD - Prs - WTI real
4261
4262 interface setCor
4263
4264 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4265
4266#if RK5_ENABLED
4267 PURE module subroutine setPrsOrgWTR_UXD_RK5(cor, subset, sample, dim, weight, weisum)
4268#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4269 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTR_UXD_RK5
4270#endif
4271 use pm_kind, only: TKG => RK5
4272 integer(IK) , intent(in) :: dim
4273 real(TKG) , intent(in) :: weisum
4274 real(TKG) , intent(in) , contiguous :: weight(:)
4275 real(TKG) , intent(in) , contiguous :: sample(:,:)
4276 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4277 type(uppDia_type) , intent(in) :: subset
4278 end subroutine
4279#endif
4280
4281#if RK4_ENABLED
4282 PURE module subroutine setPrsOrgWTR_UXD_RK4(cor, subset, sample, dim, weight, weisum)
4283#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4284 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTR_UXD_RK4
4285#endif
4286 use pm_kind, only: TKG => RK4
4287 integer(IK) , intent(in) :: dim
4288 real(TKG) , intent(in) :: weisum
4289 real(TKG) , intent(in) , contiguous :: weight(:)
4290 real(TKG) , intent(in) , contiguous :: sample(:,:)
4291 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4292 type(uppDia_type) , intent(in) :: subset
4293 end subroutine
4294#endif
4295
4296#if RK3_ENABLED
4297 PURE module subroutine setPrsOrgWTR_UXD_RK3(cor, subset, sample, dim, weight, weisum)
4298#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4299 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTR_UXD_RK3
4300#endif
4301 use pm_kind, only: TKG => RK3
4302 integer(IK) , intent(in) :: dim
4303 real(TKG) , intent(in) :: weisum
4304 real(TKG) , intent(in) , contiguous :: weight(:)
4305 real(TKG) , intent(in) , contiguous :: sample(:,:)
4306 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4307 type(uppDia_type) , intent(in) :: subset
4308 end subroutine
4309#endif
4310
4311#if RK2_ENABLED
4312 PURE module subroutine setPrsOrgWTR_UXD_RK2(cor, subset, sample, dim, weight, weisum)
4313#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4314 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTR_UXD_RK2
4315#endif
4316 use pm_kind, only: TKG => RK2
4317 integer(IK) , intent(in) :: dim
4318 real(TKG) , intent(in) :: weisum
4319 real(TKG) , intent(in) , contiguous :: weight(:)
4320 real(TKG) , intent(in) , contiguous :: sample(:,:)
4321 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4322 type(uppDia_type) , intent(in) :: subset
4323 end subroutine
4324#endif
4325
4326#if RK1_ENABLED
4327 PURE module subroutine setPrsOrgWTR_UXD_RK1(cor, subset, sample, dim, weight, weisum)
4328#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4329 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTR_UXD_RK1
4330#endif
4331 use pm_kind, only: TKG => RK1
4332 integer(IK) , intent(in) :: dim
4333 real(TKG) , intent(in) :: weisum
4334 real(TKG) , intent(in) , contiguous :: weight(:)
4335 real(TKG) , intent(in) , contiguous :: sample(:,:)
4336 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4337 type(uppDia_type) , intent(in) :: subset
4338 end subroutine
4339#endif
4340
4341 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4342
4343#if RK5_ENABLED
4344 PURE module subroutine setPrsAvgWTR_UXD_RK5(cor, subset, mean, sample, dim, weight, weisum)
4345#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4346 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTR_UXD_RK5
4347#endif
4348 use pm_kind, only: TKG => RK5
4349 integer(IK) , intent(in) :: dim
4350 real(TKG) , intent(in) :: weisum
4351 real(TKG) , intent(in) , contiguous :: mean(:)
4352 real(TKG) , intent(in) , contiguous :: weight(:)
4353 real(TKG) , intent(in) , contiguous :: sample(:,:)
4354 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4355 type(uppDia_type) , intent(in) :: subset
4356 end subroutine
4357#endif
4358
4359#if RK4_ENABLED
4360 PURE module subroutine setPrsAvgWTR_UXD_RK4(cor, subset, mean, sample, dim, weight, weisum)
4361#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4362 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTR_UXD_RK4
4363#endif
4364 use pm_kind, only: TKG => RK4
4365 integer(IK) , intent(in) :: dim
4366 real(TKG) , intent(in) :: weisum
4367 real(TKG) , intent(in) , contiguous :: mean(:)
4368 real(TKG) , intent(in) , contiguous :: weight(:)
4369 real(TKG) , intent(in) , contiguous :: sample(:,:)
4370 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4371 type(uppDia_type) , intent(in) :: subset
4372 end subroutine
4373#endif
4374
4375#if RK3_ENABLED
4376 PURE module subroutine setPrsAvgWTR_UXD_RK3(cor, subset, mean, sample, dim, weight, weisum)
4377#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4378 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTR_UXD_RK3
4379#endif
4380 use pm_kind, only: TKG => RK3
4381 integer(IK) , intent(in) :: dim
4382 real(TKG) , intent(in) :: weisum
4383 real(TKG) , intent(in) , contiguous :: mean(:)
4384 real(TKG) , intent(in) , contiguous :: weight(:)
4385 real(TKG) , intent(in) , contiguous :: sample(:,:)
4386 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4387 type(uppDia_type) , intent(in) :: subset
4388 end subroutine
4389#endif
4390
4391#if RK2_ENABLED
4392 PURE module subroutine setPrsAvgWTR_UXD_RK2(cor, subset, mean, sample, dim, weight, weisum)
4393#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4394 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTR_UXD_RK2
4395#endif
4396 use pm_kind, only: TKG => RK2
4397 integer(IK) , intent(in) :: dim
4398 real(TKG) , intent(in) :: weisum
4399 real(TKG) , intent(in) , contiguous :: mean(:)
4400 real(TKG) , intent(in) , contiguous :: weight(:)
4401 real(TKG) , intent(in) , contiguous :: sample(:,:)
4402 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4403 type(uppDia_type) , intent(in) :: subset
4404 end subroutine
4405#endif
4406
4407#if RK1_ENABLED
4408 PURE module subroutine setPrsAvgWTR_UXD_RK1(cor, subset, mean, sample, dim, weight, weisum)
4409#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4410 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTR_UXD_RK1
4411#endif
4412 use pm_kind, only: TKG => RK1
4413 integer(IK) , intent(in) :: dim
4414 real(TKG) , intent(in) :: weisum
4415 real(TKG) , intent(in) , contiguous :: mean(:)
4416 real(TKG) , intent(in) , contiguous :: weight(:)
4417 real(TKG) , intent(in) , contiguous :: sample(:,:)
4418 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4419 type(uppDia_type) , intent(in) :: subset
4420 end subroutine
4421#endif
4422
4423 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4424
4425 end interface setCor
4426
4427 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4428
4429 ! RK XLD - Prs - WNO
4430
4431 interface setCor
4432
4433 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4434
4435#if RK5_ENABLED
4436 PURE module subroutine setPrsOrgWNO_XLD_RK5(cor, subset, sample, dim)
4437#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4438 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWNO_XLD_RK5
4439#endif
4440 use pm_kind, only: TKG => RK5
4441 integer(IK) , intent(in) :: dim
4442 real(TKG) , intent(in) , contiguous :: sample(:,:)
4443 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4444 type(lowDia_type) , intent(in) :: subset
4445 end subroutine
4446#endif
4447
4448#if RK4_ENABLED
4449 PURE module subroutine setPrsOrgWNO_XLD_RK4(cor, subset, sample, dim)
4450#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4451 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWNO_XLD_RK4
4452#endif
4453 use pm_kind, only: TKG => RK4
4454 integer(IK) , intent(in) :: dim
4455 real(TKG) , intent(in) , contiguous :: sample(:,:)
4456 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4457 type(lowDia_type) , intent(in) :: subset
4458 end subroutine
4459#endif
4460
4461#if RK3_ENABLED
4462 PURE module subroutine setPrsOrgWNO_XLD_RK3(cor, subset, sample, dim)
4463#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4464 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWNO_XLD_RK3
4465#endif
4466 use pm_kind, only: TKG => RK3
4467 integer(IK) , intent(in) :: dim
4468 real(TKG) , intent(in) , contiguous :: sample(:,:)
4469 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4470 type(lowDia_type) , intent(in) :: subset
4471 end subroutine
4472#endif
4473
4474#if RK2_ENABLED
4475 PURE module subroutine setPrsOrgWNO_XLD_RK2(cor, subset, sample, dim)
4476#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4477 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWNO_XLD_RK2
4478#endif
4479 use pm_kind, only: TKG => RK2
4480 integer(IK) , intent(in) :: dim
4481 real(TKG) , intent(in) , contiguous :: sample(:,:)
4482 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4483 type(lowDia_type) , intent(in) :: subset
4484 end subroutine
4485#endif
4486
4487#if RK1_ENABLED
4488 PURE module subroutine setPrsOrgWNO_XLD_RK1(cor, subset, sample, dim)
4489#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4490 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWNO_XLD_RK1
4491#endif
4492 use pm_kind, only: TKG => RK1
4493 integer(IK) , intent(in) :: dim
4494 real(TKG) , intent(in) , contiguous :: sample(:,:)
4495 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4496 type(lowDia_type) , intent(in) :: subset
4497 end subroutine
4498#endif
4499
4500 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4501
4502#if RK5_ENABLED
4503 PURE module subroutine setPrsAvgWNO_XLD_RK5(cor, subset, mean, sample, dim)
4504#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4505 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWNO_XLD_RK5
4506#endif
4507 use pm_kind, only: TKG => RK5
4508 integer(IK) , intent(in) :: dim
4509 real(TKG) , intent(in) , contiguous :: sample(:,:)
4510 real(TKG) , intent(in) , contiguous :: mean(:)
4511 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4512 type(lowDia_type) , intent(in) :: subset
4513 end subroutine
4514#endif
4515
4516#if RK4_ENABLED
4517 PURE module subroutine setPrsAvgWNO_XLD_RK4(cor, subset, mean, sample, dim)
4518#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4519 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWNO_XLD_RK4
4520#endif
4521 use pm_kind, only: TKG => RK4
4522 integer(IK) , intent(in) :: dim
4523 real(TKG) , intent(in) , contiguous :: sample(:,:)
4524 real(TKG) , intent(in) , contiguous :: mean(:)
4525 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4526 type(lowDia_type) , intent(in) :: subset
4527 end subroutine
4528#endif
4529
4530#if RK3_ENABLED
4531 PURE module subroutine setPrsAvgWNO_XLD_RK3(cor, subset, mean, sample, dim)
4532#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4533 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWNO_XLD_RK3
4534#endif
4535 use pm_kind, only: TKG => RK3
4536 integer(IK) , intent(in) :: dim
4537 real(TKG) , intent(in) , contiguous :: sample(:,:)
4538 real(TKG) , intent(in) , contiguous :: mean(:)
4539 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4540 type(lowDia_type) , intent(in) :: subset
4541 end subroutine
4542#endif
4543
4544#if RK2_ENABLED
4545 PURE module subroutine setPrsAvgWNO_XLD_RK2(cor, subset, mean, sample, dim)
4546#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4547 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWNO_XLD_RK2
4548#endif
4549 use pm_kind, only: TKG => RK2
4550 integer(IK) , intent(in) :: dim
4551 real(TKG) , intent(in) , contiguous :: sample(:,:)
4552 real(TKG) , intent(in) , contiguous :: mean(:)
4553 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4554 type(lowDia_type) , intent(in) :: subset
4555 end subroutine
4556#endif
4557
4558#if RK1_ENABLED
4559 PURE module subroutine setPrsAvgWNO_XLD_RK1(cor, subset, mean, sample, dim)
4560#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4561 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWNO_XLD_RK1
4562#endif
4563 use pm_kind, only: TKG => RK1
4564 integer(IK) , intent(in) :: dim
4565 real(TKG) , intent(in) , contiguous :: sample(:,:)
4566 real(TKG) , intent(in) , contiguous :: mean(:)
4567 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4568 type(lowDia_type) , intent(in) :: subset
4569 end subroutine
4570#endif
4571
4572 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4573
4574 end interface setCor
4575
4576 ! RK XLD - Prs - WTI
4577
4578 interface setCor
4579
4580 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4581
4582#if RK5_ENABLED
4583 PURE module subroutine setPrsOrgWTI_XLD_RK5(cor, subset, sample, dim, weight, weisum)
4584#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4585 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTI_XLD_RK5
4586#endif
4587 use pm_kind, only: TKG => RK5
4588 integer(IK) , intent(in) :: dim
4589 integer(IK) , intent(in) :: weisum
4590 integer(IK) , intent(in) , contiguous :: weight(:)
4591 real(TKG) , intent(in) , contiguous :: sample(:,:)
4592 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4593 type(lowDia_type) , intent(in) :: subset
4594 end subroutine
4595#endif
4596
4597#if RK4_ENABLED
4598 PURE module subroutine setPrsOrgWTI_XLD_RK4(cor, subset, sample, dim, weight, weisum)
4599#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4600 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTI_XLD_RK4
4601#endif
4602 use pm_kind, only: TKG => RK4
4603 integer(IK) , intent(in) :: dim
4604 integer(IK) , intent(in) :: weisum
4605 integer(IK) , intent(in) , contiguous :: weight(:)
4606 real(TKG) , intent(in) , contiguous :: sample(:,:)
4607 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4608 type(lowDia_type) , intent(in) :: subset
4609 end subroutine
4610#endif
4611
4612#if RK3_ENABLED
4613 PURE module subroutine setPrsOrgWTI_XLD_RK3(cor, subset, sample, dim, weight, weisum)
4614#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4615 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTI_XLD_RK3
4616#endif
4617 use pm_kind, only: TKG => RK3
4618 integer(IK) , intent(in) :: dim
4619 integer(IK) , intent(in) :: weisum
4620 integer(IK) , intent(in) , contiguous :: weight(:)
4621 real(TKG) , intent(in) , contiguous :: sample(:,:)
4622 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4623 type(lowDia_type) , intent(in) :: subset
4624 end subroutine
4625#endif
4626
4627#if RK2_ENABLED
4628 PURE module subroutine setPrsOrgWTI_XLD_RK2(cor, subset, sample, dim, weight, weisum)
4629#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4630 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTI_XLD_RK2
4631#endif
4632 use pm_kind, only: TKG => RK2
4633 integer(IK) , intent(in) :: dim
4634 integer(IK) , intent(in) :: weisum
4635 integer(IK) , intent(in) , contiguous :: weight(:)
4636 real(TKG) , intent(in) , contiguous :: sample(:,:)
4637 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4638 type(lowDia_type) , intent(in) :: subset
4639 end subroutine
4640#endif
4641
4642#if RK1_ENABLED
4643 PURE module subroutine setPrsOrgWTI_XLD_RK1(cor, subset, sample, dim, weight, weisum)
4644#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4645 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTI_XLD_RK1
4646#endif
4647 use pm_kind, only: TKG => RK1
4648 integer(IK) , intent(in) :: dim
4649 integer(IK) , intent(in) :: weisum
4650 integer(IK) , intent(in) , contiguous :: weight(:)
4651 real(TKG) , intent(in) , contiguous :: sample(:,:)
4652 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4653 type(lowDia_type) , intent(in) :: subset
4654 end subroutine
4655#endif
4656
4657 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4658
4659#if RK5_ENABLED
4660 PURE module subroutine setPrsAvgWTI_XLD_RK5(cor, subset, mean, sample, dim, weight, weisum)
4661#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4662 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTI_XLD_RK5
4663#endif
4664 use pm_kind, only: TKG => RK5
4665 integer(IK) , intent(in) :: dim
4666 integer(IK) , intent(in) :: weisum
4667 integer(IK) , intent(in) , contiguous :: weight(:)
4668 real(TKG) , intent(in) , contiguous :: mean(:)
4669 real(TKG) , intent(in) , contiguous :: sample(:,:)
4670 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4671 type(lowDia_type) , intent(in) :: subset
4672 end subroutine
4673#endif
4674
4675#if RK4_ENABLED
4676 PURE module subroutine setPrsAvgWTI_XLD_RK4(cor, subset, mean, sample, dim, weight, weisum)
4677#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4678 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTI_XLD_RK4
4679#endif
4680 use pm_kind, only: TKG => RK4
4681 integer(IK) , intent(in) :: dim
4682 integer(IK) , intent(in) :: weisum
4683 integer(IK) , intent(in) , contiguous :: weight(:)
4684 real(TKG) , intent(in) , contiguous :: mean(:)
4685 real(TKG) , intent(in) , contiguous :: sample(:,:)
4686 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4687 type(lowDia_type) , intent(in) :: subset
4688 end subroutine
4689#endif
4690
4691#if RK3_ENABLED
4692 PURE module subroutine setPrsAvgWTI_XLD_RK3(cor, subset, mean, sample, dim, weight, weisum)
4693#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4694 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTI_XLD_RK3
4695#endif
4696 use pm_kind, only: TKG => RK3
4697 integer(IK) , intent(in) :: dim
4698 integer(IK) , intent(in) :: weisum
4699 integer(IK) , intent(in) , contiguous :: weight(:)
4700 real(TKG) , intent(in) , contiguous :: mean(:)
4701 real(TKG) , intent(in) , contiguous :: sample(:,:)
4702 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4703 type(lowDia_type) , intent(in) :: subset
4704 end subroutine
4705#endif
4706
4707#if RK2_ENABLED
4708 PURE module subroutine setPrsAvgWTI_XLD_RK2(cor, subset, mean, sample, dim, weight, weisum)
4709#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4710 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTI_XLD_RK2
4711#endif
4712 use pm_kind, only: TKG => RK2
4713 integer(IK) , intent(in) :: dim
4714 integer(IK) , intent(in) :: weisum
4715 integer(IK) , intent(in) , contiguous :: weight(:)
4716 real(TKG) , intent(in) , contiguous :: mean(:)
4717 real(TKG) , intent(in) , contiguous :: sample(:,:)
4718 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4719 type(lowDia_type) , intent(in) :: subset
4720 end subroutine
4721#endif
4722
4723#if RK1_ENABLED
4724 PURE module subroutine setPrsAvgWTI_XLD_RK1(cor, subset, mean, sample, dim, weight, weisum)
4725#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4726 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTI_XLD_RK1
4727#endif
4728 use pm_kind, only: TKG => RK1
4729 integer(IK) , intent(in) :: dim
4730 integer(IK) , intent(in) :: weisum
4731 integer(IK) , intent(in) , contiguous :: weight(:)
4732 real(TKG) , intent(in) , contiguous :: mean(:)
4733 real(TKG) , intent(in) , contiguous :: sample(:,:)
4734 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4735 type(lowDia_type) , intent(in) :: subset
4736 end subroutine
4737#endif
4738
4739 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4740
4741 end interface setCor
4742
4743 ! RK XLD - Prs - WTI real
4744
4745 interface setCor
4746
4747 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4748
4749#if RK5_ENABLED
4750 PURE module subroutine setPrsOrgWTR_XLD_RK5(cor, subset, sample, dim, weight, weisum)
4751#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4752 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTR_XLD_RK5
4753#endif
4754 use pm_kind, only: TKG => RK5
4755 integer(IK) , intent(in) :: dim
4756 real(TKG) , intent(in) :: weisum
4757 real(TKG) , intent(in) , contiguous :: weight(:)
4758 real(TKG) , intent(in) , contiguous :: sample(:,:)
4759 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4760 type(lowDia_type) , intent(in) :: subset
4761 end subroutine
4762#endif
4763
4764#if RK4_ENABLED
4765 PURE module subroutine setPrsOrgWTR_XLD_RK4(cor, subset, sample, dim, weight, weisum)
4766#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4767 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTR_XLD_RK4
4768#endif
4769 use pm_kind, only: TKG => RK4
4770 integer(IK) , intent(in) :: dim
4771 real(TKG) , intent(in) :: weisum
4772 real(TKG) , intent(in) , contiguous :: weight(:)
4773 real(TKG) , intent(in) , contiguous :: sample(:,:)
4774 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4775 type(lowDia_type) , intent(in) :: subset
4776 end subroutine
4777#endif
4778
4779#if RK3_ENABLED
4780 PURE module subroutine setPrsOrgWTR_XLD_RK3(cor, subset, sample, dim, weight, weisum)
4781#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4782 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTR_XLD_RK3
4783#endif
4784 use pm_kind, only: TKG => RK3
4785 integer(IK) , intent(in) :: dim
4786 real(TKG) , intent(in) :: weisum
4787 real(TKG) , intent(in) , contiguous :: weight(:)
4788 real(TKG) , intent(in) , contiguous :: sample(:,:)
4789 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4790 type(lowDia_type) , intent(in) :: subset
4791 end subroutine
4792#endif
4793
4794#if RK2_ENABLED
4795 PURE module subroutine setPrsOrgWTR_XLD_RK2(cor, subset, sample, dim, weight, weisum)
4796#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4797 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTR_XLD_RK2
4798#endif
4799 use pm_kind, only: TKG => RK2
4800 integer(IK) , intent(in) :: dim
4801 real(TKG) , intent(in) :: weisum
4802 real(TKG) , intent(in) , contiguous :: weight(:)
4803 real(TKG) , intent(in) , contiguous :: sample(:,:)
4804 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4805 type(lowDia_type) , intent(in) :: subset
4806 end subroutine
4807#endif
4808
4809#if RK1_ENABLED
4810 PURE module subroutine setPrsOrgWTR_XLD_RK1(cor, subset, sample, dim, weight, weisum)
4811#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4812 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsOrgWTR_XLD_RK1
4813#endif
4814 use pm_kind, only: TKG => RK1
4815 integer(IK) , intent(in) :: dim
4816 real(TKG) , intent(in) :: weisum
4817 real(TKG) , intent(in) , contiguous :: weight(:)
4818 real(TKG) , intent(in) , contiguous :: sample(:,:)
4819 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4820 type(lowDia_type) , intent(in) :: subset
4821 end subroutine
4822#endif
4823
4824 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4825
4826#if RK5_ENABLED
4827 PURE module subroutine setPrsAvgWTR_XLD_RK5(cor, subset, mean, sample, dim, weight, weisum)
4828#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4829 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTR_XLD_RK5
4830#endif
4831 use pm_kind, only: TKG => RK5
4832 integer(IK) , intent(in) :: dim
4833 real(TKG) , intent(in) :: weisum
4834 real(TKG) , intent(in) , contiguous :: mean(:)
4835 real(TKG) , intent(in) , contiguous :: weight(:)
4836 real(TKG) , intent(in) , contiguous :: sample(:,:)
4837 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4838 type(lowDia_type) , intent(in) :: subset
4839 end subroutine
4840#endif
4841
4842#if RK4_ENABLED
4843 PURE module subroutine setPrsAvgWTR_XLD_RK4(cor, subset, mean, sample, dim, weight, weisum)
4844#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4845 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTR_XLD_RK4
4846#endif
4847 use pm_kind, only: TKG => RK4
4848 integer(IK) , intent(in) :: dim
4849 real(TKG) , intent(in) :: weisum
4850 real(TKG) , intent(in) , contiguous :: mean(:)
4851 real(TKG) , intent(in) , contiguous :: weight(:)
4852 real(TKG) , intent(in) , contiguous :: sample(:,:)
4853 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4854 type(lowDia_type) , intent(in) :: subset
4855 end subroutine
4856#endif
4857
4858#if RK3_ENABLED
4859 PURE module subroutine setPrsAvgWTR_XLD_RK3(cor, subset, mean, sample, dim, weight, weisum)
4860#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4861 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTR_XLD_RK3
4862#endif
4863 use pm_kind, only: TKG => RK3
4864 integer(IK) , intent(in) :: dim
4865 real(TKG) , intent(in) :: weisum
4866 real(TKG) , intent(in) , contiguous :: mean(:)
4867 real(TKG) , intent(in) , contiguous :: weight(:)
4868 real(TKG) , intent(in) , contiguous :: sample(:,:)
4869 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4870 type(lowDia_type) , intent(in) :: subset
4871 end subroutine
4872#endif
4873
4874#if RK2_ENABLED
4875 PURE module subroutine setPrsAvgWTR_XLD_RK2(cor, subset, mean, sample, dim, weight, weisum)
4876#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4877 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTR_XLD_RK2
4878#endif
4879 use pm_kind, only: TKG => RK2
4880 integer(IK) , intent(in) :: dim
4881 real(TKG) , intent(in) :: weisum
4882 real(TKG) , intent(in) , contiguous :: mean(:)
4883 real(TKG) , intent(in) , contiguous :: weight(:)
4884 real(TKG) , intent(in) , contiguous :: sample(:,:)
4885 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4886 type(lowDia_type) , intent(in) :: subset
4887 end subroutine
4888#endif
4889
4890#if RK1_ENABLED
4891 PURE module subroutine setPrsAvgWTR_XLD_RK1(cor, subset, mean, sample, dim, weight, weisum)
4892#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4893 !DEC$ ATTRIBUTES DLLEXPORT :: setPrsAvgWTR_XLD_RK1
4894#endif
4895 use pm_kind, only: TKG => RK1
4896 integer(IK) , intent(in) :: dim
4897 real(TKG) , intent(in) :: weisum
4898 real(TKG) , intent(in) , contiguous :: mean(:)
4899 real(TKG) , intent(in) , contiguous :: weight(:)
4900 real(TKG) , intent(in) , contiguous :: sample(:,:)
4901 real(TKG) , intent(inout) , contiguous :: cor(:,:)
4902 type(lowDia_type) , intent(in) :: subset
4903 end subroutine
4904#endif
4905
4906 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4907
4908 end interface setCor
4909
4910 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4911 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4912 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4913
4914 ! CK CFC: upp/low from upp/low.
4915
4916 interface setCor
4917
4918 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4919 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4920 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4921
4922 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4923
4924#if CK5_ENABLED
4925 PURE module subroutine setCFC_RUXX_VUXX_CK5(cor, subset, cov, subsetv, stdinv)
4926#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4927 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VUXX_CK5
4928#endif
4929 use pm_kind, only: TKG => CK5
4930 type(upp_type) , intent(in) :: subset
4931 type(upp_type) , intent(in) :: subsetv
4932 real(TKG) , intent(in) , contiguous :: stdinv(:)
4933 complex(TKG) , intent(in) , contiguous :: cov(:,:)
4934 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
4935 end subroutine
4936#endif
4937
4938#if CK4_ENABLED
4939 PURE module subroutine setCFC_RUXX_VUXX_CK4(cor, subset, cov, subsetv, stdinv)
4940#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4941 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VUXX_CK4
4942#endif
4943 use pm_kind, only: TKG => CK4
4944 type(upp_type) , intent(in) :: subset
4945 type(upp_type) , intent(in) :: subsetv
4946 real(TKG) , intent(in) , contiguous :: stdinv(:)
4947 complex(TKG) , intent(in) , contiguous :: cov(:,:)
4948 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
4949 end subroutine
4950#endif
4951
4952#if CK3_ENABLED
4953 PURE module subroutine setCFC_RUXX_VUXX_CK3(cor, subset, cov, subsetv, stdinv)
4954#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4955 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VUXX_CK3
4956#endif
4957 use pm_kind, only: TKG => CK3
4958 type(upp_type) , intent(in) :: subset
4959 type(upp_type) , intent(in) :: subsetv
4960 real(TKG) , intent(in) , contiguous :: stdinv(:)
4961 complex(TKG) , intent(in) , contiguous :: cov(:,:)
4962 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
4963 end subroutine
4964#endif
4965
4966#if CK2_ENABLED
4967 PURE module subroutine setCFC_RUXX_VUXX_CK2(cor, subset, cov, subsetv, stdinv)
4968#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4969 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VUXX_CK2
4970#endif
4971 use pm_kind, only: TKG => CK2
4972 type(upp_type) , intent(in) :: subset
4973 type(upp_type) , intent(in) :: subsetv
4974 real(TKG) , intent(in) , contiguous :: stdinv(:)
4975 complex(TKG) , intent(in) , contiguous :: cov(:,:)
4976 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
4977 end subroutine
4978#endif
4979
4980#if CK1_ENABLED
4981 PURE module subroutine setCFC_RUXX_VUXX_CK1(cor, subset, cov, subsetv, stdinv)
4982#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4983 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VUXX_CK1
4984#endif
4985 use pm_kind, only: TKG => CK1
4986 type(upp_type) , intent(in) :: subset
4987 type(upp_type) , intent(in) :: subsetv
4988 real(TKG) , intent(in) , contiguous :: stdinv(:)
4989 complex(TKG) , intent(in) , contiguous :: cov(:,:)
4990 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
4991 end subroutine
4992#endif
4993
4994 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4995
4996#if CK5_ENABLED
4997 PURE module subroutine setCFC_RUXX_VXLX_CK5(cor, subset, cov, subsetv, stdinv)
4998#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4999 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VXLX_CK5
5000#endif
5001 use pm_kind, only: TKG => CK5
5002 type(upp_type) , intent(in) :: subset
5003 type(low_type) , intent(in) :: subsetv
5004 real(TKG) , intent(in) , contiguous :: stdinv(:)
5005 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5006 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5007 end subroutine
5008#endif
5009
5010#if CK4_ENABLED
5011 PURE module subroutine setCFC_RUXX_VXLX_CK4(cor, subset, cov, subsetv, stdinv)
5012#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5013 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VXLX_CK4
5014#endif
5015 use pm_kind, only: TKG => CK4
5016 type(upp_type) , intent(in) :: subset
5017 type(low_type) , intent(in) :: subsetv
5018 real(TKG) , intent(in) , contiguous :: stdinv(:)
5019 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5020 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5021 end subroutine
5022#endif
5023
5024#if CK3_ENABLED
5025 PURE module subroutine setCFC_RUXX_VXLX_CK3(cor, subset, cov, subsetv, stdinv)
5026#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5027 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VXLX_CK3
5028#endif
5029 use pm_kind, only: TKG => CK3
5030 type(upp_type) , intent(in) :: subset
5031 type(low_type) , intent(in) :: subsetv
5032 real(TKG) , intent(in) , contiguous :: stdinv(:)
5033 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5034 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5035 end subroutine
5036#endif
5037
5038#if CK2_ENABLED
5039 PURE module subroutine setCFC_RUXX_VXLX_CK2(cor, subset, cov, subsetv, stdinv)
5040#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5041 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VXLX_CK2
5042#endif
5043 use pm_kind, only: TKG => CK2
5044 type(upp_type) , intent(in) :: subset
5045 type(low_type) , intent(in) :: subsetv
5046 real(TKG) , intent(in) , contiguous :: stdinv(:)
5047 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5048 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5049 end subroutine
5050#endif
5051
5052#if CK1_ENABLED
5053 PURE module subroutine setCFC_RUXX_VXLX_CK1(cor, subset, cov, subsetv, stdinv)
5054#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5055 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXX_VXLX_CK1
5056#endif
5057 use pm_kind, only: TKG => CK1
5058 type(upp_type) , intent(in) :: subset
5059 type(low_type) , intent(in) :: subsetv
5060 real(TKG) , intent(in) , contiguous :: stdinv(:)
5061 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5062 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5063 end subroutine
5064#endif
5065
5066 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5067
5068 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5069 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5070 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5071
5072 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5073
5074#if CK5_ENABLED
5075 PURE module subroutine setCFC_RXLX_VUXX_CK5(cor, subset, cov, subsetv, stdinv)
5076#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5077 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VUXX_CK5
5078#endif
5079 use pm_kind, only: TKG => CK5
5080 type(low_type) , intent(in) :: subset
5081 type(upp_type) , intent(in) :: subsetv
5082 real(TKG) , intent(in) , contiguous :: stdinv(:)
5083 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5084 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5085 end subroutine
5086#endif
5087
5088#if CK4_ENABLED
5089 PURE module subroutine setCFC_RXLX_VUXX_CK4(cor, subset, cov, subsetv, stdinv)
5090#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5091 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VUXX_CK4
5092#endif
5093 use pm_kind, only: TKG => CK4
5094 type(low_type) , intent(in) :: subset
5095 type(upp_type) , intent(in) :: subsetv
5096 real(TKG) , intent(in) , contiguous :: stdinv(:)
5097 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5098 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5099 end subroutine
5100#endif
5101
5102#if CK3_ENABLED
5103 PURE module subroutine setCFC_RXLX_VUXX_CK3(cor, subset, cov, subsetv, stdinv)
5104#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5105 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VUXX_CK3
5106#endif
5107 use pm_kind, only: TKG => CK3
5108 type(low_type) , intent(in) :: subset
5109 type(upp_type) , intent(in) :: subsetv
5110 real(TKG) , intent(in) , contiguous :: stdinv(:)
5111 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5112 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5113 end subroutine
5114#endif
5115
5116#if CK2_ENABLED
5117 PURE module subroutine setCFC_RXLX_VUXX_CK2(cor, subset, cov, subsetv, stdinv)
5118#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5119 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VUXX_CK2
5120#endif
5121 use pm_kind, only: TKG => CK2
5122 type(low_type) , intent(in) :: subset
5123 type(upp_type) , intent(in) :: subsetv
5124 real(TKG) , intent(in) , contiguous :: stdinv(:)
5125 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5126 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5127 end subroutine
5128#endif
5129
5130#if CK1_ENABLED
5131 PURE module subroutine setCFC_RXLX_VUXX_CK1(cor, subset, cov, subsetv, stdinv)
5132#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5133 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VUXX_CK1
5134#endif
5135 use pm_kind, only: TKG => CK1
5136 type(low_type) , intent(in) :: subset
5137 type(upp_type) , intent(in) :: subsetv
5138 real(TKG) , intent(in) , contiguous :: stdinv(:)
5139 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5140 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5141 end subroutine
5142#endif
5143
5144 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5145
5146#if CK5_ENABLED
5147 PURE module subroutine setCFC_RXLX_VXLX_CK5(cor, subset, cov, subsetv, stdinv)
5148#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5149 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VXLX_CK5
5150#endif
5151 use pm_kind, only: TKG => CK5
5152 type(low_type) , intent(in) :: subset
5153 type(low_type) , intent(in) :: subsetv
5154 real(TKG) , intent(in) , contiguous :: stdinv(:)
5155 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5156 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5157 end subroutine
5158#endif
5159
5160#if CK4_ENABLED
5161 PURE module subroutine setCFC_RXLX_VXLX_CK4(cor, subset, cov, subsetv, stdinv)
5162#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5163 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VXLX_CK4
5164#endif
5165 use pm_kind, only: TKG => CK4
5166 type(low_type) , intent(in) :: subset
5167 type(low_type) , intent(in) :: subsetv
5168 real(TKG) , intent(in) , contiguous :: stdinv(:)
5169 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5170 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5171 end subroutine
5172#endif
5173
5174#if CK3_ENABLED
5175 PURE module subroutine setCFC_RXLX_VXLX_CK3(cor, subset, cov, subsetv, stdinv)
5176#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5177 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VXLX_CK3
5178#endif
5179 use pm_kind, only: TKG => CK3
5180 type(low_type) , intent(in) :: subset
5181 type(low_type) , intent(in) :: subsetv
5182 real(TKG) , intent(in) , contiguous :: stdinv(:)
5183 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5184 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5185 end subroutine
5186#endif
5187
5188#if CK2_ENABLED
5189 PURE module subroutine setCFC_RXLX_VXLX_CK2(cor, subset, cov, subsetv, stdinv)
5190#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5191 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VXLX_CK2
5192#endif
5193 use pm_kind, only: TKG => CK2
5194 type(low_type) , intent(in) :: subset
5195 type(low_type) , intent(in) :: subsetv
5196 real(TKG) , intent(in) , contiguous :: stdinv(:)
5197 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5198 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5199 end subroutine
5200#endif
5201
5202#if CK1_ENABLED
5203 PURE module subroutine setCFC_RXLX_VXLX_CK1(cor, subset, cov, subsetv, stdinv)
5204#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5205 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLX_VXLX_CK1
5206#endif
5207 use pm_kind, only: TKG => CK1
5208 type(low_type) , intent(in) :: subset
5209 type(low_type) , intent(in) :: subsetv
5210 real(TKG) , intent(in) , contiguous :: stdinv(:)
5211 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5212 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5213 end subroutine
5214#endif
5215
5216 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5217
5218 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5219 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5220 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5221
5222 end interface
5223
5224 ! CK CFC: uppDia/lowDia from upp/low.
5225
5226 interface setCor
5227
5228 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5229 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5230 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5231
5232 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5233
5234#if CK5_ENABLED
5235 PURE module subroutine setCFC_RUXD_VUXX_CK5(cor, subset, cov, subsetv, stdinv)
5236#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5237 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VUXX_CK5
5238#endif
5239 use pm_kind, only: TKG => CK5
5240 type(uppDia_type) , intent(in) :: subset
5241 type(upp_type) , intent(in) :: subsetv
5242 real(TKG) , intent(in) , contiguous :: stdinv(:)
5243 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5244 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5245 end subroutine
5246#endif
5247
5248#if CK4_ENABLED
5249 PURE module subroutine setCFC_RUXD_VUXX_CK4(cor, subset, cov, subsetv, stdinv)
5250#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5251 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VUXX_CK4
5252#endif
5253 use pm_kind, only: TKG => CK4
5254 type(uppDia_type) , intent(in) :: subset
5255 type(upp_type) , intent(in) :: subsetv
5256 real(TKG) , intent(in) , contiguous :: stdinv(:)
5257 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5258 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5259 end subroutine
5260#endif
5261
5262#if CK3_ENABLED
5263 PURE module subroutine setCFC_RUXD_VUXX_CK3(cor, subset, cov, subsetv, stdinv)
5264#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5265 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VUXX_CK3
5266#endif
5267 use pm_kind, only: TKG => CK3
5268 type(uppDia_type) , intent(in) :: subset
5269 type(upp_type) , intent(in) :: subsetv
5270 real(TKG) , intent(in) , contiguous :: stdinv(:)
5271 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5272 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5273 end subroutine
5274#endif
5275
5276#if CK2_ENABLED
5277 PURE module subroutine setCFC_RUXD_VUXX_CK2(cor, subset, cov, subsetv, stdinv)
5278#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5279 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VUXX_CK2
5280#endif
5281 use pm_kind, only: TKG => CK2
5282 type(uppDia_type) , intent(in) :: subset
5283 type(upp_type) , intent(in) :: subsetv
5284 real(TKG) , intent(in) , contiguous :: stdinv(:)
5285 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5286 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5287 end subroutine
5288#endif
5289
5290#if CK1_ENABLED
5291 PURE module subroutine setCFC_RUXD_VUXX_CK1(cor, subset, cov, subsetv, stdinv)
5292#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5293 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VUXX_CK1
5294#endif
5295 use pm_kind, only: TKG => CK1
5296 type(uppDia_type) , intent(in) :: subset
5297 type(upp_type) , intent(in) :: subsetv
5298 real(TKG) , intent(in) , contiguous :: stdinv(:)
5299 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5300 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5301 end subroutine
5302#endif
5303
5304 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5305
5306#if CK5_ENABLED
5307 PURE module subroutine setCFC_RUXD_VXLX_CK5(cor, subset, cov, subsetv, stdinv)
5308#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5309 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VXLX_CK5
5310#endif
5311 use pm_kind, only: TKG => CK5
5312 type(uppDia_type) , intent(in) :: subset
5313 type(low_type) , intent(in) :: subsetv
5314 real(TKG) , intent(in) , contiguous :: stdinv(:)
5315 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5316 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5317 end subroutine
5318#endif
5319
5320#if CK4_ENABLED
5321 PURE module subroutine setCFC_RUXD_VXLX_CK4(cor, subset, cov, subsetv, stdinv)
5322#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5323 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VXLX_CK4
5324#endif
5325 use pm_kind, only: TKG => CK4
5326 type(uppDia_type) , intent(in) :: subset
5327 type(low_type) , intent(in) :: subsetv
5328 real(TKG) , intent(in) , contiguous :: stdinv(:)
5329 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5330 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5331 end subroutine
5332#endif
5333
5334#if CK3_ENABLED
5335 PURE module subroutine setCFC_RUXD_VXLX_CK3(cor, subset, cov, subsetv, stdinv)
5336#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5337 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VXLX_CK3
5338#endif
5339 use pm_kind, only: TKG => CK3
5340 type(uppDia_type) , intent(in) :: subset
5341 type(low_type) , intent(in) :: subsetv
5342 real(TKG) , intent(in) , contiguous :: stdinv(:)
5343 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5344 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5345 end subroutine
5346#endif
5347
5348#if CK2_ENABLED
5349 PURE module subroutine setCFC_RUXD_VXLX_CK2(cor, subset, cov, subsetv, stdinv)
5350#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5351 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VXLX_CK2
5352#endif
5353 use pm_kind, only: TKG => CK2
5354 type(uppDia_type) , intent(in) :: subset
5355 type(low_type) , intent(in) :: subsetv
5356 real(TKG) , intent(in) , contiguous :: stdinv(:)
5357 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5358 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5359 end subroutine
5360#endif
5361
5362#if CK1_ENABLED
5363 PURE module subroutine setCFC_RUXD_VXLX_CK1(cor, subset, cov, subsetv, stdinv)
5364#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5365 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RUXD_VXLX_CK1
5366#endif
5367 use pm_kind, only: TKG => CK1
5368 type(uppDia_type) , intent(in) :: subset
5369 type(low_type) , intent(in) :: subsetv
5370 real(TKG) , intent(in) , contiguous :: stdinv(:)
5371 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5372 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5373 end subroutine
5374#endif
5375
5376 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5377
5378 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5379 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5380 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5381
5382 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5383
5384#if CK5_ENABLED
5385 PURE module subroutine setCFC_RXLD_VUXX_CK5(cor, subset, cov, subsetv, stdinv)
5386#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5387 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VUXX_CK5
5388#endif
5389 use pm_kind, only: TKG => CK5
5390 type(lowDia_type) , intent(in) :: subset
5391 type(upp_type) , intent(in) :: subsetv
5392 real(TKG) , intent(in) , contiguous :: stdinv(:)
5393 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5394 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5395 end subroutine
5396#endif
5397
5398#if CK4_ENABLED
5399 PURE module subroutine setCFC_RXLD_VUXX_CK4(cor, subset, cov, subsetv, stdinv)
5400#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5401 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VUXX_CK4
5402#endif
5403 use pm_kind, only: TKG => CK4
5404 type(lowDia_type) , intent(in) :: subset
5405 type(upp_type) , intent(in) :: subsetv
5406 real(TKG) , intent(in) , contiguous :: stdinv(:)
5407 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5408 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5409 end subroutine
5410#endif
5411
5412#if CK3_ENABLED
5413 PURE module subroutine setCFC_RXLD_VUXX_CK3(cor, subset, cov, subsetv, stdinv)
5414#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5415 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VUXX_CK3
5416#endif
5417 use pm_kind, only: TKG => CK3
5418 type(lowDia_type) , intent(in) :: subset
5419 type(upp_type) , intent(in) :: subsetv
5420 real(TKG) , intent(in) , contiguous :: stdinv(:)
5421 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5422 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5423 end subroutine
5424#endif
5425
5426#if CK2_ENABLED
5427 PURE module subroutine setCFC_RXLD_VUXX_CK2(cor, subset, cov, subsetv, stdinv)
5428#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5429 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VUXX_CK2
5430#endif
5431 use pm_kind, only: TKG => CK2
5432 type(lowDia_type) , intent(in) :: subset
5433 type(upp_type) , intent(in) :: subsetv
5434 real(TKG) , intent(in) , contiguous :: stdinv(:)
5435 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5436 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5437 end subroutine
5438#endif
5439
5440#if CK1_ENABLED
5441 PURE module subroutine setCFC_RXLD_VUXX_CK1(cor, subset, cov, subsetv, stdinv)
5442#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5443 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VUXX_CK1
5444#endif
5445 use pm_kind, only: TKG => CK1
5446 type(lowDia_type) , intent(in) :: subset
5447 type(upp_type) , intent(in) :: subsetv
5448 real(TKG) , intent(in) , contiguous :: stdinv(:)
5449 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5450 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5451 end subroutine
5452#endif
5453
5454 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5455
5456#if CK5_ENABLED
5457 PURE module subroutine setCFC_RXLD_VXLX_CK5(cor, subset, cov, subsetv, stdinv)
5458#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5459 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VXLX_CK5
5460#endif
5461 use pm_kind, only: TKG => CK5
5462 type(lowDia_type) , intent(in) :: subset
5463 type(low_type) , intent(in) :: subsetv
5464 real(TKG) , intent(in) , contiguous :: stdinv(:)
5465 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5466 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5467 end subroutine
5468#endif
5469
5470#if CK4_ENABLED
5471 PURE module subroutine setCFC_RXLD_VXLX_CK4(cor, subset, cov, subsetv, stdinv)
5472#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5473 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VXLX_CK4
5474#endif
5475 use pm_kind, only: TKG => CK4
5476 type(lowDia_type) , intent(in) :: subset
5477 type(low_type) , intent(in) :: subsetv
5478 real(TKG) , intent(in) , contiguous :: stdinv(:)
5479 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5480 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5481 end subroutine
5482#endif
5483
5484#if CK3_ENABLED
5485 PURE module subroutine setCFC_RXLD_VXLX_CK3(cor, subset, cov, subsetv, stdinv)
5486#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5487 !DEC$ ATTRIBUTES DLLEXPORT :: setCFC_RXLD_VXLX_CK3
5488#endif
5489 use pm_kind, only: TKG => CK3
5490 type(lowDia_type) , intent(in) :: subset
5491 type(low_type) , intent(in) :: subsetv
5492 real(TKG) , intent(in) , contiguous :: stdinv(:)
5493 complex(TKG) , intent(in) , contiguous :: cov(:,:)
5494 complex(TKG) , intent(inout) , contiguous :: cor(:,:)
5495 end subroutine
5496#endif
5497
5498#if CK2_ENABLED
5499 PURE module subroutine setCFC_RXLD_VXLX_CK2(cor, subset, cov, subsetv, stdinv)
5500#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5501 !DEC$ ATTRIBUTE