ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_matrixSubset.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
36
37!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
38
40
41 use pm_kind, only: SK
42 use pm_array, only: nothing_type
43
44 implicit none
45
46 character(*,SK), parameter :: MODULE_NAME = "@pm_matrixSubset"
47
48!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
49
77 type, abstract :: subset_type
78 end type
79
80!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
81!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
82!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
83
117 type, extends(subset_type) :: upp_type
118 end type
119
146 type(upp_type), parameter :: upp = upp_type()
147#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
148 !DIR$ ATTRIBUTES DLLEXPORT :: upp
149#endif
150
151!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
152!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
153!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
154
188 type, extends(subset_type) :: low_type
189 end type
190
217 type(low_type), parameter :: low = low_type()
218#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
219 !DIR$ ATTRIBUTES DLLEXPORT :: low
220#endif
221
222!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
223!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
224!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
225
259 type, extends(subset_type) :: dia_type
260 end type
261
288 type(dia_type), parameter :: dia = dia_type()
289#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
290 !DIR$ ATTRIBUTES DLLEXPORT :: dia
291#endif
292
293!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
294!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
295!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
296
330 type, extends(subset_type) :: uppLow_type
331 end type
332
359 type(uppLow_type), parameter :: uppLow = uppLow_type()
360#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
361 !DIR$ ATTRIBUTES DLLEXPORT :: uppLow
362#endif
363
364!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
365!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
366!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
367
401 type, extends(subset_type) :: uppLowDia_type
402 end type
403
431#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
432 !DIR$ ATTRIBUTES DLLEXPORT :: uppLowDia
433#endif
434
435!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
436!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
437!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
438
472 type, extends(subset_type) :: uppDia_type
473 end type
474
501 type(uppDia_type), parameter :: uppDia = uppDia_type()
502#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
503 !DIR$ ATTRIBUTES DLLEXPORT :: uppDia
504#endif
505
506!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
507!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
508!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
509
538 type, extends(subset_type) :: lowDia_type
539 end type
540
567 type(lowDia_type), parameter :: lowDia = lowDia_type()
568#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
569 !DIR$ ATTRIBUTES DLLEXPORT :: lowDia
570#endif
571
572!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
573!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
574!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
575
627 interface getSubComp
628
629 pure elemental module function getSubCompUXX(sub) result(subComp)
630#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
631 !DEC$ ATTRIBUTES DLLEXPORT :: getSubCompUXX
632#endif
633 type(upp_type) , intent(in) :: sub
634 type(lowDia_type) :: subComp
635 end function
636
637 pure elemental module function getSubCompXLX(sub) result(subComp)
638#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
639 !DEC$ ATTRIBUTES DLLEXPORT :: getSubCompXLX
640#endif
641 type(low_type) , intent(in) :: sub
642 type(uppDia_type) :: subComp
643 end function
644
645 pure elemental module function getSubCompXXD(sub) result(subComp)
646#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
647 !DEC$ ATTRIBUTES DLLEXPORT :: getSubCompXXD
648#endif
649 type(dia_type) , intent(in) :: sub
650 type(uppLow_type) :: subComp
651 end function
652
653 pure elemental module function getSubCompUXD(sub) result(subComp)
654#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
655 !DEC$ ATTRIBUTES DLLEXPORT :: getSubCompUXD
656#endif
657 type(uppDia_type) , intent(in) :: sub
658 type(low_type) :: subComp
659 end function
660
661 pure elemental module function getSubCompXLD(sub) result(subComp)
662#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
663 !DEC$ ATTRIBUTES DLLEXPORT :: getSubCompXLD
664#endif
665 type(lowDia_type) , intent(in) :: sub
666 type(upp_type) :: subComp
667 end function
668
669 pure elemental module function getSubCompULX(sub) result(subComp)
670#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
671 !DEC$ ATTRIBUTES DLLEXPORT :: getSubCompULX
672#endif
673 type(uppLow_type) , intent(in) :: sub
674 type(dia_type) :: subComp
675 end function
676
677 pure elemental module function getSubCompULD(sub) result(subComp)
678#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
679 !DEC$ ATTRIBUTES DLLEXPORT :: getSubCompULD
680#endif
681 type(uppLowDia_type), intent(in) :: sub
682 type(nothing_type) :: subComp
683 end function
684
685 end interface
686
687!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
688
740 interface getSubSymm
741
742 pure elemental module function getSubSymmUXX(sub) result(subSymm)
743#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
744 !DEC$ ATTRIBUTES DLLEXPORT :: getSubSymmUXX
745#endif
746 type(upp_type) , intent(in) :: sub
747 type(low_type) :: subSymm
748 end function
749
750 pure elemental module function getSubSymmXLX(sub) result(subSymm)
751#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
752 !DEC$ ATTRIBUTES DLLEXPORT :: getSubSymmXLX
753#endif
754 type(low_type) , intent(in) :: sub
755 type(upp_type) :: subSymm
756 end function
757
758 pure elemental module function getSubSymmXXD(sub) result(subSymm)
759#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
760 !DEC$ ATTRIBUTES DLLEXPORT :: getSubSymmXXD
761#endif
762 type(dia_type) , intent(in) :: sub
763 type(dia_type) :: subSymm
764 end function
765
766 pure elemental module function getSubSymmUXD(sub) result(subSymm)
767#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
768 !DEC$ ATTRIBUTES DLLEXPORT :: getSubSymmUXD
769#endif
770 type(uppDia_type) , intent(in) :: sub
771 type(lowDia_type) :: subSymm
772 end function
773
774 pure elemental module function getSubSymmXLD(sub) result(subSymm)
775#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
776 !DEC$ ATTRIBUTES DLLEXPORT :: getSubSymmXLD
777#endif
778 type(lowDia_type) , intent(in) :: sub
779 type(uppDia_type) :: subSymm
780 end function
781
782 pure elemental module function getSubSymmULX(sub) result(subSymm)
783#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
784 !DEC$ ATTRIBUTES DLLEXPORT :: getSubSymmULX
785#endif
786 type(uppLow_type) , intent(in) :: sub
787 type(uppLow_type) :: subSymm
788 end function
789
790 pure elemental module function getSubSymmULD(sub) result(subSymm)
791#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
792 !DEC$ ATTRIBUTES DLLEXPORT :: getSubSymmULD
793#endif
794 type(uppLowDia_type), intent(in) :: sub
795 type(uppLowDia_type) :: subSymm
796 end function
797
798 end interface
799
800!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
801
859
860 ! XXX
861
862 interface getSubUnion
863
864 pure elemental module function getSubUnion_XXX_XXX(sub1, sub2) result(subUnion)
865#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
866 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XXX_XXX
867#endif
868 type(nothing_type) , intent(in) :: sub1
869 type(nothing_type) , intent(in) :: sub2
870 type(nothing_type) :: subUnion
871 end function
872
873 pure elemental module function getSubUnion_XXX_UXX(sub1, sub2) result(subUnion)
874#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
875 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XXX_UXX
876#endif
877 type(nothing_type) , intent(in) :: sub1
878 type(upp_type) , intent(in) :: sub2
879 type(upp_type) :: subUnion
880 end function
881
882 pure elemental module function getSubUnion_XXX_XLX(sub1, sub2) result(subUnion)
883#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
884 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XXX_XLX
885#endif
886 type(nothing_type) , intent(in) :: sub1
887 type(low_type) , intent(in) :: sub2
888 type(low_type) :: subUnion
889 end function
890
891 pure elemental module function getSubUnion_XXX_XXD(sub1, sub2) result(subUnion)
892#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
893 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XXX_XXD
894#endif
895 type(nothing_type) , intent(in) :: sub1
896 type(dia_type) , intent(in) :: sub2
897 type(dia_type) :: subUnion
898 end function
899
900 pure elemental module function getSubUnion_XXX_UXD(sub1, sub2) result(subUnion)
901#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
902 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XXX_UXD
903#endif
904 type(nothing_type) , intent(in) :: sub1
905 type(uppDia_type) , intent(in) :: sub2
906 type(uppDia_type) :: subUnion
907 end function
908
909 pure elemental module function getSubUnion_XXX_XLD(sub1, sub2) result(subUnion)
910#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
911 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XXX_XLD
912#endif
913 type(nothing_type) , intent(in) :: sub1
914 type(lowDia_type) , intent(in) :: sub2
915 type(lowDia_type) :: subUnion
916 end function
917
918 pure elemental module function getSubUnion_XXX_ULX(sub1, sub2) result(subUnion)
919#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
920 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XXX_ULX
921#endif
922 type(nothing_type) , intent(in) :: sub1
923 type(uppLow_type) , intent(in) :: sub2
924 type(uppLow_type) :: subUnion
925 end function
926
927 pure elemental module function getSubUnion_XXX_ULD(sub1, sub2) result(subUnion)
928#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
929 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XXX_ULD
930#endif
931 type(nothing_type) , intent(in) :: sub1
932 type(uppLowDia_type), intent(in) :: sub2
933 type(uppLowDia_type) :: subUnion
934 end function
935
936 end interface
937
938 ! UXX
939
940 interface getSubUnion
941
942 pure elemental module function getSubUnion_UXX_XXX(sub1, sub2) result(subUnion)
943#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
944 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_UXX_XXX
945#endif
946 type(upp_type) , intent(in) :: sub1
947 type(nothing_type) , intent(in) :: sub2
948 type(upp_type) :: subUnion
949 end function
950
951 pure elemental module function getSubUnion_UXX_UXX(sub1, sub2) result(subUnion)
952#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
953 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_UXX_UXX
954#endif
955 type(upp_type) , intent(in) :: sub1
956 type(upp_type) , intent(in) :: sub2
957 type(upp_type) :: subUnion
958 end function
959
960 pure elemental module function getSubUnion_UXX_XLX(sub1, sub2) result(subUnion)
961#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
962 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_UXX_XLX
963#endif
964 type(upp_type) , intent(in) :: sub1
965 type(low_type) , intent(in) :: sub2
966 type(uppLow_type) :: subUnion
967 end function
968
969 pure elemental module function getSubUnion_UXX_XXD(sub1, sub2) result(subUnion)
970#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
971 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_UXX_XXD
972#endif
973 type(upp_type) , intent(in) :: sub1
974 type(dia_type) , intent(in) :: sub2
975 type(uppDia_type) :: subUnion
976 end function
977
978 pure elemental module function getSubUnion_UXX_UXD(sub1, sub2) result(subUnion)
979#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
980 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_UXX_UXD
981#endif
982 type(upp_type) , intent(in) :: sub1
983 type(uppDia_type) , intent(in) :: sub2
984 type(uppDia_type) :: subUnion
985 end function
986
987 pure elemental module function getSubUnion_UXX_XLD(sub1, sub2) result(subUnion)
988#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
989 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_UXX_XLD
990#endif
991 type(upp_type) , intent(in) :: sub1
992 type(lowDia_type) , intent(in) :: sub2
993 type(uppLowDia_type) :: subUnion
994 end function
995
996 pure elemental module function getSubUnion_UXX_ULX(sub1, sub2) result(subUnion)
997#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
998 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_UXX_ULX
999#endif
1000 type(upp_type) , intent(in) :: sub1
1001 type(uppLow_type) , intent(in) :: sub2
1002 type(uppLow_type) :: subUnion
1003 end function
1004
1005 pure elemental module function getSubUnion_UXX_ULD(sub1, sub2) result(subUnion)
1006#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1007 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_UXX_ULD
1008#endif
1009 type(upp_type) , intent(in) :: sub1
1010 type(uppLowDia_type), intent(in) :: sub2
1011 type(uppLowDia_type) :: subUnion
1012 end function
1013
1014 end interface
1015
1016 ! XLX
1017
1018 interface getSubUnion
1019
1020 pure elemental module function getSubUnion_XLX_XXX(sub1, sub2) result(subUnion)
1021#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1022 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XLX_XXX
1023#endif
1024 type(low_type) , intent(in) :: sub1
1025 type(nothing_type) , intent(in) :: sub2
1026 type(low_type) :: subUnion
1027 end function
1028
1029 pure elemental module function getSubUnion_XLX_UXX(sub1, sub2) result(subUnion)
1030#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1031 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XLX_UXX
1032#endif
1033 type(low_type) , intent(in) :: sub1
1034 type(upp_type) , intent(in) :: sub2
1035 type(uppLow_type) :: subUnion
1036 end function
1037
1038 pure elemental module function getSubUnion_XLX_XLX(sub1, sub2) result(subUnion)
1039#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1040 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XLX_XLX
1041#endif
1042 type(low_type) , intent(in) :: sub1
1043 type(low_type) , intent(in) :: sub2
1044 type(low_type) :: subUnion
1045 end function
1046
1047 pure elemental module function getSubUnion_XLX_XXD(sub1, sub2) result(subUnion)
1048#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1049 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XLX_XXD
1050#endif
1051 type(low_type) , intent(in) :: sub1
1052 type(dia_type) , intent(in) :: sub2
1053 type(lowDia_type) :: subUnion
1054 end function
1055
1056 pure elemental module function getSubUnion_XLX_UXD(sub1, sub2) result(subUnion)
1057#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1058 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XLX_UXD
1059#endif
1060 type(low_type) , intent(in) :: sub1
1061 type(uppDia_type) , intent(in) :: sub2
1062 type(uppLowDia_type) :: subUnion
1063 end function
1064
1065 pure elemental module function getSubUnion_XLX_XLD(sub1, sub2) result(subUnion)
1066#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1067 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XLX_XLD
1068#endif
1069 type(low_type) , intent(in) :: sub1
1070 type(lowDia_type) , intent(in) :: sub2
1071 type(lowDia_type) :: subUnion
1072 end function
1073
1074 pure elemental module function getSubUnion_XLX_ULX(sub1, sub2) result(subUnion)
1075#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1076 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XLX_ULX
1077#endif
1078 type(low_type) , intent(in) :: sub1
1079 type(uppLow_type) , intent(in) :: sub2
1080 type(uppLow_type) :: subUnion
1081 end function
1082
1083 pure elemental module function getSubUnion_XLX_ULD(sub1, sub2) result(subUnion)
1084#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1085 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XLX_ULD
1086#endif
1087 type(low_type) , intent(in) :: sub1
1088 type(uppLowDia_type), intent(in) :: sub2
1089 type(uppLowDia_type) :: subUnion
1090 end function
1091
1092 end interface
1093
1094 ! XXD
1095
1096 interface getSubUnion
1097
1098 pure elemental module function getSubUnion_XXD_XXX(sub1, sub2) result(subUnion)
1099#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1100 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XXD_XXX
1101#endif
1102 type(dia_type) , intent(in) :: sub1
1103 type(nothing_type) , intent(in) :: sub2
1104 type(dia_type) :: subUnion
1105 end function
1106
1107 pure elemental module function getSubUnion_XXD_UXX(sub1, sub2) result(subUnion)
1108#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1109 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XXD_UXX
1110#endif
1111 type(dia_type) , intent(in) :: sub1
1112 type(upp_type) , intent(in) :: sub2
1113 type(uppDia_type) :: subUnion
1114 end function
1115
1116 pure elemental module function getSubUnion_XXD_XLX(sub1, sub2) result(subUnion)
1117#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1118 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XXD_XLX
1119#endif
1120 type(dia_type) , intent(in) :: sub1
1121 type(low_type) , intent(in) :: sub2
1122 type(lowDia_type) :: subUnion
1123 end function
1124
1125 pure elemental module function getSubUnion_XXD_XXD(sub1, sub2) result(subUnion)
1126#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1127 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XXD_XXD
1128#endif
1129 type(dia_type) , intent(in) :: sub1
1130 type(dia_type) , intent(in) :: sub2
1131 type(dia_type) :: subUnion
1132 end function
1133
1134 pure elemental module function getSubUnion_XXD_UXD(sub1, sub2) result(subUnion)
1135#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1136 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XXD_UXD
1137#endif
1138 type(dia_type) , intent(in) :: sub1
1139 type(uppDia_type) , intent(in) :: sub2
1140 type(uppDia_type) :: subUnion
1141 end function
1142
1143 pure elemental module function getSubUnion_XXD_XLD(sub1, sub2) result(subUnion)
1144#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1145 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XXD_XLD
1146#endif
1147 type(dia_type) , intent(in) :: sub1
1148 type(lowDia_type) , intent(in) :: sub2
1149 type(lowDia_type) :: subUnion
1150 end function
1151
1152 pure elemental module function getSubUnion_XXD_ULX(sub1, sub2) result(subUnion)
1153#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1154 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XXD_ULX
1155#endif
1156 type(dia_type) , intent(in) :: sub1
1157 type(uppLow_type) , intent(in) :: sub2
1158 type(uppLowDia_type) :: subUnion
1159 end function
1160
1161 pure elemental module function getSubUnion_XXD_ULD(sub1, sub2) result(subUnion)
1162#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1163 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XXD_ULD
1164#endif
1165 type(dia_type) , intent(in) :: sub1
1166 type(uppLowDia_type), intent(in) :: sub2
1167 type(uppLowDia_type) :: subUnion
1168 end function
1169
1170 end interface
1171
1172 ! UXD
1173
1174 interface getSubUnion
1175
1176 pure elemental module function getSubUnion_UXD_XXX(sub1, sub2) result(subUnion)
1177#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1178 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_UXD_XXX
1179#endif
1180 type(uppDia_type) , intent(in) :: sub1
1181 type(nothing_type) , intent(in) :: sub2
1182 type(uppDia_type) :: subUnion
1183 end function
1184
1185 pure elemental module function getSubUnion_UXD_UXX(sub1, sub2) result(subUnion)
1186#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1187 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_UXD_UXX
1188#endif
1189 type(uppDia_type) , intent(in) :: sub1
1190 type(upp_type) , intent(in) :: sub2
1191 type(uppDia_type) :: subUnion
1192 end function
1193
1194 pure elemental module function getSubUnion_UXD_XLX(sub1, sub2) result(subUnion)
1195#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1196 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_UXD_XLX
1197#endif
1198 type(uppDia_type) , intent(in) :: sub1
1199 type(low_type) , intent(in) :: sub2
1200 type(uppLowDia_type) :: subUnion
1201 end function
1202
1203 pure elemental module function getSubUnion_UXD_XXD(sub1, sub2) result(subUnion)
1204#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1205 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_UXD_XXD
1206#endif
1207 type(uppDia_type) , intent(in) :: sub1
1208 type(dia_type) , intent(in) :: sub2
1209 type(uppDia_type) :: subUnion
1210 end function
1211
1212 pure elemental module function getSubUnion_UXD_UXD(sub1, sub2) result(subUnion)
1213#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1214 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_UXD_UXD
1215#endif
1216 type(uppDia_type) , intent(in) :: sub1
1217 type(uppDia_type) , intent(in) :: sub2
1218 type(uppDia_type) :: subUnion
1219 end function
1220
1221 pure elemental module function getSubUnion_UXD_XLD(sub1, sub2) result(subUnion)
1222#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1223 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_UXD_XLD
1224#endif
1225 type(uppDia_type) , intent(in) :: sub1
1226 type(lowDia_type) , intent(in) :: sub2
1227 type(uppLowDia_type) :: subUnion
1228 end function
1229
1230 pure elemental module function getSubUnion_UXD_ULX(sub1, sub2) result(subUnion)
1231#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1232 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_UXD_ULX
1233#endif
1234 type(uppDia_type) , intent(in) :: sub1
1235 type(uppLow_type) , intent(in) :: sub2
1236 type(uppLowDia_type) :: subUnion
1237 end function
1238
1239 pure elemental module function getSubUnion_UXD_ULD(sub1, sub2) result(subUnion)
1240#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1241 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_UXD_ULD
1242#endif
1243 type(uppDia_type) , intent(in) :: sub1
1244 type(uppLowDia_type), intent(in) :: sub2
1245 type(uppLowDia_type) :: subUnion
1246 end function
1247
1248 end interface
1249
1250 ! XLD
1251
1252 interface getSubUnion
1253
1254 pure elemental module function getSubUnion_XLD_XXX(sub1, sub2) result(subUnion)
1255#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1256 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XLD_XXX
1257#endif
1258 type(lowDia_type) , intent(in) :: sub1
1259 type(nothing_type) , intent(in) :: sub2
1260 type(lowDia_type) :: subUnion
1261 end function
1262
1263 pure elemental module function getSubUnion_XLD_UXX(sub1, sub2) result(subUnion)
1264#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1265 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XLD_UXX
1266#endif
1267 type(lowDia_type) , intent(in) :: sub1
1268 type(upp_type) , intent(in) :: sub2
1269 type(uppLowDia_type) :: subUnion
1270 end function
1271
1272 pure elemental module function getSubUnion_XLD_XLX(sub1, sub2) result(subUnion)
1273#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1274 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XLD_XLX
1275#endif
1276 type(lowDia_type) , intent(in) :: sub1
1277 type(low_type) , intent(in) :: sub2
1278 type(lowDia_type) :: subUnion
1279 end function
1280
1281 pure elemental module function getSubUnion_XLD_XXD(sub1, sub2) result(subUnion)
1282#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1283 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XLD_XXD
1284#endif
1285 type(lowDia_type) , intent(in) :: sub1
1286 type(dia_type) , intent(in) :: sub2
1287 type(lowDia_type) :: subUnion
1288 end function
1289
1290 pure elemental module function getSubUnion_XLD_UXD(sub1, sub2) result(subUnion)
1291#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1292 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XLD_UXD
1293#endif
1294 type(lowDia_type) , intent(in) :: sub1
1295 type(uppDia_type) , intent(in) :: sub2
1296 type(uppLowDia_type) :: subUnion
1297 end function
1298
1299 pure elemental module function getSubUnion_XLD_XLD(sub1, sub2) result(subUnion)
1300#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1301 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XLD_XLD
1302#endif
1303 type(lowDia_type) , intent(in) :: sub1
1304 type(lowDia_type) , intent(in) :: sub2
1305 type(lowDia_type) :: subUnion
1306 end function
1307
1308 pure elemental module function getSubUnion_XLD_ULX(sub1, sub2) result(subUnion)
1309#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1310 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XLD_ULX
1311#endif
1312 type(lowDia_type) , intent(in) :: sub1
1313 type(uppLow_type) , intent(in) :: sub2
1314 type(uppLowDia_type) :: subUnion
1315 end function
1316
1317 pure elemental module function getSubUnion_XLD_ULD(sub1, sub2) result(subUnion)
1318#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1319 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_XLD_ULD
1320#endif
1321 type(lowDia_type) , intent(in) :: sub1
1322 type(uppLowDia_type), intent(in) :: sub2
1323 type(uppLowDia_type) :: subUnion
1324 end function
1325
1326 end interface
1327
1328 ! ULX
1329
1330 interface getSubUnion
1331
1332 pure elemental module function getSubUnion_ULX_XXX(sub1, sub2) result(subUnion)
1333#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1334 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_ULX_XXX
1335#endif
1336 type(uppLow_type) , intent(in) :: sub1
1337 type(nothing_type) , intent(in) :: sub2
1338 type(uppLow_type) :: subUnion
1339 end function
1340
1341 pure elemental module function getSubUnion_ULX_UXX(sub1, sub2) result(subUnion)
1342#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1343 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_ULX_UXX
1344#endif
1345 type(uppLow_type) , intent(in) :: sub1
1346 type(upp_type) , intent(in) :: sub2
1347 type(uppLow_type) :: subUnion
1348 end function
1349
1350 pure elemental module function getSubUnion_ULX_XLX(sub1, sub2) result(subUnion)
1351#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1352 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_ULX_XLX
1353#endif
1354 type(uppLow_type) , intent(in) :: sub1
1355 type(low_type) , intent(in) :: sub2
1356 type(uppLow_type) :: subUnion
1357 end function
1358
1359 pure elemental module function getSubUnion_ULX_XXD(sub1, sub2) result(subUnion)
1360#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1361 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_ULX_XXD
1362#endif
1363 type(uppLow_type) , intent(in) :: sub1
1364 type(dia_type) , intent(in) :: sub2
1365 type(uppLowDia_type) :: subUnion
1366 end function
1367
1368 pure elemental module function getSubUnion_ULX_UXD(sub1, sub2) result(subUnion)
1369#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1370 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_ULX_UXD
1371#endif
1372 type(uppLow_type) , intent(in) :: sub1
1373 type(uppDia_type) , intent(in) :: sub2
1374 type(uppLowDia_type) :: subUnion
1375 end function
1376
1377 pure elemental module function getSubUnion_ULX_XLD(sub1, sub2) result(subUnion)
1378#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1379 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_ULX_XLD
1380#endif
1381 type(uppLow_type) , intent(in) :: sub1
1382 type(lowDia_type) , intent(in) :: sub2
1383 type(uppLowDia_type) :: subUnion
1384 end function
1385
1386 pure elemental module function getSubUnion_ULX_ULX(sub1, sub2) result(subUnion)
1387#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1388 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_ULX_ULX
1389#endif
1390 type(uppLow_type) , intent(in) :: sub1
1391 type(uppLow_type) , intent(in) :: sub2
1392 type(uppLow_type) :: subUnion
1393 end function
1394
1395 pure elemental module function getSubUnion_ULX_ULD(sub1, sub2) result(subUnion)
1396#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1397 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_ULX_ULD
1398#endif
1399 type(uppLow_type) , intent(in) :: sub1
1400 type(uppLowDia_type), intent(in) :: sub2
1401 type(uppLowDia_type) :: subUnion
1402 end function
1403
1404 end interface
1405
1406 ! ULD
1407
1408 interface getSubUnion
1409
1410 pure elemental module function getSubUnion_ULD_XXX(sub1, sub2) result(subUnion)
1411#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1412 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_ULD_XXX
1413#endif
1414 type(uppLowDia_type), intent(in) :: sub1
1415 type(nothing_type) , intent(in) :: sub2
1416 type(uppLowDia_type) :: subUnion
1417 end function
1418
1419 pure elemental module function getSubUnion_ULD_UXX(sub1, sub2) result(subUnion)
1420#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1421 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_ULD_UXX
1422#endif
1423 type(uppLowDia_type), intent(in) :: sub1
1424 type(upp_type) , intent(in) :: sub2
1425 type(uppLowDia_type) :: subUnion
1426 end function
1427
1428 pure elemental module function getSubUnion_ULD_XLX(sub1, sub2) result(subUnion)
1429#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1430 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_ULD_XLX
1431#endif
1432 type(uppLowDia_type), intent(in) :: sub1
1433 type(low_type) , intent(in) :: sub2
1434 type(uppLowDia_type) :: subUnion
1435 end function
1436
1437 pure elemental module function getSubUnion_ULD_XXD(sub1, sub2) result(subUnion)
1438#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1439 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_ULD_XXD
1440#endif
1441 type(uppLowDia_type), intent(in) :: sub1
1442 type(dia_type) , intent(in) :: sub2
1443 type(uppLowDia_type) :: subUnion
1444 end function
1445
1446 pure elemental module function getSubUnion_ULD_UXD(sub1, sub2) result(subUnion)
1447#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1448 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_ULD_UXD
1449#endif
1450 type(uppLowDia_type), intent(in) :: sub1
1451 type(uppDia_type) , intent(in) :: sub2
1452 type(uppLowDia_type) :: subUnion
1453 end function
1454
1455 pure elemental module function getSubUnion_ULD_XLD(sub1, sub2) result(subUnion)
1456#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1457 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_ULD_XLD
1458#endif
1459 type(uppLowDia_type), intent(in) :: sub1
1460 type(lowDia_type) , intent(in) :: sub2
1461 type(uppLowDia_type) :: subUnion
1462 end function
1463
1464 pure elemental module function getSubUnion_ULD_ULX(sub1, sub2) result(subUnion)
1465#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1466 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_ULD_ULX
1467#endif
1468 type(uppLowDia_type), intent(in) :: sub1
1469 type(uppLow_type) , intent(in) :: sub2
1470 type(uppLowDia_type) :: subUnion
1471 end function
1472
1473 pure elemental module function getSubUnion_ULD_ULD(sub1, sub2) result(subUnion)
1474#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1475 !DEC$ ATTRIBUTES DLLEXPORT :: getSubUnion_ULD_ULD
1476#endif
1477 type(uppLowDia_type), intent(in) :: sub1
1478 type(uppLowDia_type), intent(in) :: sub2
1479 type(uppLowDia_type) :: subUnion
1480 end function
1481
1482 end interface
1483
1484!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1485
1486end module pm_matrixSubset ! LCOV_EXCL_LINE
Generate and return the objects representing the complementary subset of the input matrix subset sub ...
Generate and return the objects representing the symmetric subset of the input matrix subset sub with...
Generate and return the object representing the union of two input matrix subsets.
This module contains abstract and concrete derived types that are required for compile-time resolutio...
Definition: pm_array.F90:44
character(*, SK), parameter MODULE_NAME
Definition: pm_array.F90:50
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
integer, parameter SK
The default character kind in the ParaMonte library: kind("a") in Fortran, c_char in C-Fortran Intero...
Definition: pm_kind.F90:539
This module contains abstract and concrete derived types that are required for compile-time resolutio...
type(lowDia_type), parameter lowDia
This is a scalar parameter object of type lowDia_type that is exclusively used to request lower-diago...
type(uppLowDia_type), parameter uppLowDia
This is a scalar parameter object of type uppLowDia_type that is exclusively used to request full dia...
type(uppLow_type), parameter uppLow
This is a scalar parameter object of type uppLow_type that is exclusively used to request upper-lower...
type(low_type), parameter low
This is a scalar parameter object of type low_type that is exclusively used to request lower-triangul...
type(upp_type), parameter upp
This is a scalar parameter object of type upp_type that is exclusively used to request upper-triangul...
type(uppDia_type), parameter uppDia
This is a scalar parameter object of type uppDia_type that is exclusively used to request upper-diago...
type(dia_type), parameter dia
This is a scalar parameter object of type dia_type that is exclusively used to request unit (or Ident...
This is a concrete derived type whose instances are exclusively used to request no action on a given ...
Definition: pm_array.F90:132
This is a concrete derived type whose instances are exclusively used to request unit (or Identity or ...
This is a concrete derived type whose instances are exclusively used to request lower-diagonal triang...
This is a concrete derived type whose instances are exclusively used to request lower-triangular stor...
This is an abstract derived type for constructing concrete derived types to distinguish various proce...
This is a concrete derived type whose instances are exclusively used to request upper-diagonal triang...
This is a concrete derived type whose instances are exclusively used to request full diagonal and upp...
This is a concrete derived type whose instances are exclusively used to request upper-lower triangula...
This is a concrete derived type whose instances are exclusively used to request upper-triangular stor...