ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_matrixChol.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 end do end do
123
124!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
125
127#if 1
128#define _CONTIGUOUS_
129#else
130#define _CONTIGUOUS_, contiguous
131#endif
132
134module pm_matrixChol
135
136 use pm_kind, only: SK, IK, LK
144 use pm_array, only: nothing, nothing_type
146 use pm_matrixTrans, only: trans_type
147
148 implicit none
150 character(*, SK), parameter :: MODULE_NAME = "@pm_matrixChol"
151
152!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
153
210 interface setChoLow
211
212 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
213
214#if RK5_ENABLED
215 PURE module subroutine setChoLow_RK5(mat, dia, ndim)
216#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
217 !DEC$ ATTRIBUTES DLLEXPORT :: setChoLow_RK5
218#endif
219 use pm_kind, only: RKG => RK5
220 integer(IK), intent(in) :: ndim
221 real(RKG) , intent(inout) :: mat(ndim,ndim)
222 real(RKG) , intent(out) :: dia(ndim)
223 end subroutine
224#endif
225
226#if RK4_ENABLED
227 PURE module subroutine setChoLow_RK4(mat, dia, ndim)
228#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
229 !DEC$ ATTRIBUTES DLLEXPORT :: setChoLow_RK4
230#endif
231 use pm_kind, only: RKG => RK4
232 integer(IK), intent(in) :: ndim
233 real(RKG) , intent(inout) :: mat(ndim,ndim)
234 real(RKG) , intent(out) :: dia(ndim)
235 end subroutine
236#endif
237
238#if RK3_ENABLED
239 PURE module subroutine setChoLow_RK3(mat, dia, ndim)
240#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
241 !DEC$ ATTRIBUTES DLLEXPORT :: setChoLow_RK3
242#endif
243 use pm_kind, only: RKG => RK3
244 integer(IK), intent(in) :: ndim
245 real(RKG) , intent(inout) :: mat(ndim,ndim)
246 real(RKG) , intent(out) :: dia(ndim)
247 end subroutine
248#endif
249
250#if RK2_ENABLED
251 PURE module subroutine setChoLow_RK2(mat, dia, ndim)
252#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
253 !DEC$ ATTRIBUTES DLLEXPORT :: setChoLow_RK2
254#endif
255 use pm_kind, only: IK, RKG => RK2
256 integer(IK), intent(in) :: ndim
257 real(RKG) , intent(inout) :: mat(ndim,ndim)
258 real(RKG) , intent(out) :: dia(ndim)
259 end subroutine
260#endif
261
262#if RK1_ENABLED
263 PURE module subroutine setChoLow_RK1(mat, dia, ndim)
264#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
265 !DEC$ ATTRIBUTES DLLEXPORT :: setChoLow_RK1
266#endif
267 use pm_kind, only: IK, RKG => RK1
268 integer(IK), intent(in) :: ndim
269 real(RKG) , intent(inout) :: mat(ndim,ndim)
270 real(RKG) , intent(out) :: dia(ndim)
271 end subroutine
272#endif
273
274 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
275
276 end interface setChoLow
277
278!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
279
366
367 ! subset UXD
369 interface getMatChol
370
371 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
372 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
373 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
374
375 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
376
377#if CK5_ENABLED
378 PURE module function getMatChol_UXD_CK5(mat, subset, operation) result(chol)
379#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
380 !DEC$ ATTRIBUTES DLLEXPORT :: getMatChol_UXD_CK5
381#endif
382 use pm_kind, only: CKG => CK5
383 class(*) , intent(in) , optional :: operation
384 type(uppDia_type) , intent(in) :: subset
385 complex(CKG) , intent(in) :: mat(:,:)
386 complex(CKG) :: chol(size(mat, 1, IK), size(mat, 2, IK))
387 end function
388#endif
389
390#if CK4_ENABLED
391 PURE module function getMatChol_UXD_CK4(mat, subset, operation) result(chol)
392#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
393 !DEC$ ATTRIBUTES DLLEXPORT :: getMatChol_UXD_CK4
394#endif
395 use pm_kind, only: CKG => CK4
396 class(*) , intent(in) , optional :: operation
397 type(uppDia_type) , intent(in) :: subset
398 complex(CKG) , intent(in) :: mat(:,:)
399 complex(CKG) :: chol(size(mat, 1, IK), size(mat, 2, IK))
400 end function
401#endif
402
403#if CK3_ENABLED
404 PURE module function getMatChol_UXD_CK3(mat, subset, operation) result(chol)
405#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
406 !DEC$ ATTRIBUTES DLLEXPORT :: getMatChol_UXD_CK3
407#endif
408 use pm_kind, only: CKG => CK3
409 class(*) , intent(in) , optional :: operation
410 type(uppDia_type) , intent(in) :: subset
411 complex(CKG) , intent(in) :: mat(:,:)
412 complex(CKG) :: chol(size(mat, 1, IK), size(mat, 2, IK))
413 end function
414#endif
415
416#if CK2_ENABLED
417 PURE module function getMatChol_UXD_CK2(mat, subset, operation) result(chol)
418#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
419 !DEC$ ATTRIBUTES DLLEXPORT :: getMatChol_UXD_CK2
420#endif
421 use pm_kind, only: CKG => CK2
422 class(*) , intent(in) , optional :: operation
423 type(uppDia_type) , intent(in) :: subset
424 complex(CKG) , intent(in) :: mat(:,:)
425 complex(CKG) :: chol(size(mat, 1, IK), size(mat, 2, IK))
426 end function
427#endif
428
429#if CK1_ENABLED
430 PURE module function getMatChol_UXD_CK1(mat, subset, operation) result(chol)
431#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
432 !DEC$ ATTRIBUTES DLLEXPORT :: getMatChol_UXD_CK1
433#endif
434 use pm_kind, only: CKG => CK1
435 class(*) , intent(in) , optional :: operation
436 type(uppDia_type) , intent(in) :: subset
437 complex(CKG) , intent(in) :: mat(:,:)
438 complex(CKG) :: chol(size(mat, 1, IK), size(mat, 2, IK))
439 end function
440#endif
441
442 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
443
444#if RK5_ENABLED
445 PURE module function getMatChol_UXD_RK5(mat, subset, operation) result(chol)
446#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
447 !DEC$ ATTRIBUTES DLLEXPORT :: getMatChol_UXD_RK5
448#endif
449 use pm_kind, only: RKG => RK5
450 class(*) , intent(in) , optional :: operation
451 type(uppDia_type) , intent(in) :: subset
452 real(RKG) , intent(in) :: mat(:,:)
453 real(RKG) :: chol(size(mat, 1, IK), size(mat, 2, IK))
454 end function
455#endif
456
457#if RK4_ENABLED
458 PURE module function getMatChol_UXD_RK4(mat, subset, operation) result(chol)
459#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
460 !DEC$ ATTRIBUTES DLLEXPORT :: getMatChol_UXD_RK4
461#endif
462 use pm_kind, only: RKG => RK4
463 class(*) , intent(in) , optional :: operation
464 type(uppDia_type) , intent(in) :: subset
465 real(RKG) , intent(in) :: mat(:,:)
466 real(RKG) :: chol(size(mat, 1, IK), size(mat, 2, IK))
467 end function
468#endif
469
470#if RK3_ENABLED
471 PURE module function getMatChol_UXD_RK3(mat, subset, operation) result(chol)
472#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
473 !DEC$ ATTRIBUTES DLLEXPORT :: getMatChol_UXD_RK3
474#endif
475 use pm_kind, only: RKG => RK3
476 class(*) , intent(in) , optional :: operation
477 type(uppDia_type) , intent(in) :: subset
478 real(RKG) , intent(in) :: mat(:,:)
479 real(RKG) :: chol(size(mat, 1, IK), size(mat, 2, IK))
480 end function
481#endif
482
483#if RK2_ENABLED
484 PURE module function getMatChol_UXD_RK2(mat, subset, operation) result(chol)
485#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
486 !DEC$ ATTRIBUTES DLLEXPORT :: getMatChol_UXD_RK2
487#endif
488 use pm_kind, only: RKG => RK2
489 class(*) , intent(in) , optional :: operation
490 type(uppDia_type) , intent(in) :: subset
491 real(RKG) , intent(in) :: mat(:,:)
492 real(RKG) :: chol(size(mat, 1, IK), size(mat, 2, IK))
493 end function
494#endif
495
496#if RK1_ENABLED
497 PURE module function getMatChol_UXD_RK1(mat, subset, operation) result(chol)
498#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
499 !DEC$ ATTRIBUTES DLLEXPORT :: getMatChol_UXD_RK1
500#endif
501 use pm_kind, only: RKG => RK1
502 class(*) , intent(in) , optional :: operation
503 type(uppDia_type) , intent(in) :: subset
504 real(RKG) , intent(in) :: mat(:,:)
505 real(RKG) :: chol(size(mat, 1, IK), size(mat, 2, IK))
506 end function
507#endif
508
509 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
510
511 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
512 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
513 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
514
515 end interface
516
517 ! subset XLD
518
519 interface getMatChol
520
521 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
522 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
523 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
524
525 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
526
527#if CK5_ENABLED
528 PURE module function getMatChol_XLD_CK5(mat, subset, operation) result(chol)
529#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
530 !DEC$ ATTRIBUTES DLLEXPORT :: getMatChol_XLD_CK5
531#endif
532 use pm_kind, only: CKG => CK5
533 class(*) , intent(in) , optional :: operation
534 type(lowDia_type) , intent(in) :: subset
535 complex(CKG) , intent(in) :: mat(:,:)
536 complex(CKG) :: chol(size(mat, 1, IK), size(mat, 2, IK))
537 end function
538#endif
539
540#if CK4_ENABLED
541 PURE module function getMatChol_XLD_CK4(mat, subset, operation) result(chol)
542#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
543 !DEC$ ATTRIBUTES DLLEXPORT :: getMatChol_XLD_CK4
544#endif
545 use pm_kind, only: CKG => CK4
546 class(*) , intent(in) , optional :: operation
547 type(lowDia_type) , intent(in) :: subset
548 complex(CKG) , intent(in) :: mat(:,:)
549 complex(CKG) :: chol(size(mat, 1, IK), size(mat, 2, IK))
550 end function
551#endif
552
553#if CK3_ENABLED
554 PURE module function getMatChol_XLD_CK3(mat, subset, operation) result(chol)
555#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
556 !DEC$ ATTRIBUTES DLLEXPORT :: getMatChol_XLD_CK3
557#endif
558 use pm_kind, only: CKG => CK3
559 class(*) , intent(in) , optional :: operation
560 type(lowDia_type) , intent(in) :: subset
561 complex(CKG) , intent(in) :: mat(:,:)
562 complex(CKG) :: chol(size(mat, 1, IK), size(mat, 2, IK))
563 end function
564#endif
565
566#if CK2_ENABLED
567 PURE module function getMatChol_XLD_CK2(mat, subset, operation) result(chol)
568#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
569 !DEC$ ATTRIBUTES DLLEXPORT :: getMatChol_XLD_CK2
570#endif
571 use pm_kind, only: CKG => CK2
572 class(*) , intent(in) , optional :: operation
573 type(lowDia_type) , intent(in) :: subset
574 complex(CKG) , intent(in) :: mat(:,:)
575 complex(CKG) :: chol(size(mat, 1, IK), size(mat, 2, IK))
576 end function
577#endif
578
579#if CK1_ENABLED
580 PURE module function getMatChol_XLD_CK1(mat, subset, operation) result(chol)
581#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
582 !DEC$ ATTRIBUTES DLLEXPORT :: getMatChol_XLD_CK1
583#endif
584 use pm_kind, only: CKG => CK1
585 class(*) , intent(in) , optional :: operation
586 type(lowDia_type) , intent(in) :: subset
587 complex(CKG) , intent(in) :: mat(:,:)
588 complex(CKG) :: chol(size(mat, 1, IK), size(mat, 2, IK))
589 end function
590#endif
591
592 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
593
594#if RK5_ENABLED
595 PURE module function getMatChol_XLD_RK5(mat, subset, operation) result(chol)
596#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
597 !DEC$ ATTRIBUTES DLLEXPORT :: getMatChol_XLD_RK5
598#endif
599 use pm_kind, only: RKG => RK5
600 class(*) , intent(in) , optional :: operation
601 type(lowDia_type) , intent(in) :: subset
602 real(RKG) , intent(in) :: mat(:,:)
603 real(RKG) :: chol(size(mat, 1, IK), size(mat, 2, IK))
604 end function
605#endif
606
607#if RK4_ENABLED
608 PURE module function getMatChol_XLD_RK4(mat, subset, operation) result(chol)
609#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
610 !DEC$ ATTRIBUTES DLLEXPORT :: getMatChol_XLD_RK4
611#endif
612 use pm_kind, only: RKG => RK4
613 class(*) , intent(in) , optional :: operation
614 type(lowDia_type) , intent(in) :: subset
615 real(RKG) , intent(in) :: mat(:,:)
616 real(RKG) :: chol(size(mat, 1, IK), size(mat, 2, IK))
617 end function
618#endif
619
620#if RK3_ENABLED
621 PURE module function getMatChol_XLD_RK3(mat, subset, operation) result(chol)
622#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
623 !DEC$ ATTRIBUTES DLLEXPORT :: getMatChol_XLD_RK3
624#endif
625 use pm_kind, only: RKG => RK3
626 class(*) , intent(in) , optional :: operation
627 type(lowDia_type) , intent(in) :: subset
628 real(RKG) , intent(in) :: mat(:,:)
629 real(RKG) :: chol(size(mat, 1, IK), size(mat, 2, IK))
630 end function
631#endif
632
633#if RK2_ENABLED
634 PURE module function getMatChol_XLD_RK2(mat, subset, operation) result(chol)
635#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
636 !DEC$ ATTRIBUTES DLLEXPORT :: getMatChol_XLD_RK2
637#endif
638 use pm_kind, only: RKG => RK2
639 class(*) , intent(in) , optional :: operation
640 type(lowDia_type) , intent(in) :: subset
641 real(RKG) , intent(in) :: mat(:,:)
642 real(RKG) :: chol(size(mat, 1, IK), size(mat, 2, IK))
643 end function
644#endif
645
646#if RK1_ENABLED
647 PURE module function getMatChol_XLD_RK1(mat, subset, operation) result(chol)
648#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
649 !DEC$ ATTRIBUTES DLLEXPORT :: getMatChol_XLD_RK1
650#endif
651 use pm_kind, only: RKG => RK1
652 class(*) , intent(in) , optional :: operation
653 type(lowDia_type) , intent(in) :: subset
654 real(RKG) , intent(in) :: mat(:,:)
655 real(RKG) :: chol(size(mat, 1, IK), size(mat, 2, IK))
656 end function
657#endif
658
659 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
660
661 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
662 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
663 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
664
665 end interface
666
667!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
668
825
826 ! implicit default
828 interface setMatChol
829
830 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
831 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
832 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
833
834 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
835
836#if CK5_ENABLED
837 PURE module subroutine setMC_IMP_AXX_UXD_ONO_CK5(mat, subset, info)
838#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
839 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_AXX_UXD_ONO_CK5
840#endif
841 use pm_kind, only: CKG => CK5
842 integer(IK) , intent(out) :: info
843 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
844 type(uppDia_type) , intent(in) :: subset
845 end subroutine
846#endif
847
848#if CK4_ENABLED
849 PURE module subroutine setMC_IMP_AXX_UXD_ONO_CK4(mat, subset, info)
850#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
851 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_AXX_UXD_ONO_CK4
852#endif
853 use pm_kind, only: CKG => CK4
854 integer(IK) , intent(out) :: info
855 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
856 type(uppDia_type) , intent(in) :: subset
857 end subroutine
858#endif
859
860#if CK3_ENABLED
861 PURE module subroutine setMC_IMP_AXX_UXD_ONO_CK3(mat, subset, info)
862#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
863 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_AXX_UXD_ONO_CK3
864#endif
865 use pm_kind, only: CKG => CK3
866 integer(IK) , intent(out) :: info
867 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
868 type(uppDia_type) , intent(in) :: subset
869 end subroutine
870#endif
871
872#if CK2_ENABLED
873 PURE module subroutine setMC_IMP_AXX_UXD_ONO_CK2(mat, subset, info)
874#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
875 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_AXX_UXD_ONO_CK2
876#endif
877 use pm_kind, only: CKG => CK2
878 integer(IK) , intent(out) :: info
879 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
880 type(uppDia_type) , intent(in) :: subset
881 end subroutine
882#endif
883
884#if CK1_ENABLED
885 PURE module subroutine setMC_IMP_AXX_UXD_ONO_CK1(mat, subset, info)
886#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
887 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_AXX_UXD_ONO_CK1
888#endif
889 use pm_kind, only: CKG => CK1
890 integer(IK) , intent(out) :: info
891 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
892 type(uppDia_type) , intent(in) :: subset
893 end subroutine
894#endif
895
896 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
897
898#if RK5_ENABLED
899 PURE module subroutine setMC_IMP_AXX_UXD_ONO_RK5(mat, subset, info)
900#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
901 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_AXX_UXD_ONO_RK5
902#endif
903 use pm_kind, only: RKG => RK5
904 integer(IK) , intent(out) :: info
905 real(RKG) , intent(inout) , contiguous :: mat(:,:)
906 type(uppDia_type) , intent(in) :: subset
907 end subroutine
908#endif
909
910#if RK4_ENABLED
911 PURE module subroutine setMC_IMP_AXX_UXD_ONO_RK4(mat, subset, info)
912#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
913 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_AXX_UXD_ONO_RK4
914#endif
915 use pm_kind, only: RKG => RK4
916 integer(IK) , intent(out) :: info
917 real(RKG) , intent(inout) , contiguous :: mat(:,:)
918 type(uppDia_type) , intent(in) :: subset
919 end subroutine
920#endif
921
922#if RK3_ENABLED
923 PURE module subroutine setMC_IMP_AXX_UXD_ONO_RK3(mat, subset, info)
924#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
925 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_AXX_UXD_ONO_RK3
926#endif
927 use pm_kind, only: RKG => RK3
928 integer(IK) , intent(out) :: info
929 real(RKG) , intent(inout) , contiguous :: mat(:,:)
930 type(uppDia_type) , intent(in) :: subset
931 end subroutine
932#endif
933
934#if RK2_ENABLED
935 PURE module subroutine setMC_IMP_AXX_UXD_ONO_RK2(mat, subset, info)
936#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
937 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_AXX_UXD_ONO_RK2
938#endif
939 use pm_kind, only: RKG => RK2
940 integer(IK) , intent(out) :: info
941 real(RKG) , intent(inout) , contiguous :: mat(:,:)
942 type(uppDia_type) , intent(in) :: subset
943 end subroutine
944#endif
945
946#if RK1_ENABLED
947 PURE module subroutine setMC_IMP_AXX_UXD_ONO_RK1(mat, subset, info)
948#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
949 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_AXX_UXD_ONO_RK1
950#endif
951 use pm_kind, only: RKG => RK1
952 integer(IK) , intent(out) :: info
953 real(RKG) , intent(inout) , contiguous :: mat(:,:)
954 type(uppDia_type) , intent(in) :: subset
955 end subroutine
956#endif
957
958 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
959
960 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
961 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
962 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
963
964 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
965
966#if CK5_ENABLED
967 PURE module subroutine setMC_IMP_AXX_XLD_ONO_CK5(mat, subset, info)
968#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
969 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_AXX_XLD_ONO_CK5
970#endif
971 use pm_kind, only: CKG => CK5
972 integer(IK) , intent(out) :: info
973 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
974 type(lowDia_type) , intent(in) :: subset
975 end subroutine
976#endif
977
978#if CK4_ENABLED
979 PURE module subroutine setMC_IMP_AXX_XLD_ONO_CK4(mat, subset, info)
980#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
981 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_AXX_XLD_ONO_CK4
982#endif
983 use pm_kind, only: CKG => CK4
984 integer(IK) , intent(out) :: info
985 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
986 type(lowDia_type) , intent(in) :: subset
987 end subroutine
988#endif
989
990#if CK3_ENABLED
991 PURE module subroutine setMC_IMP_AXX_XLD_ONO_CK3(mat, subset, info)
992#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
993 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_AXX_XLD_ONO_CK3
994#endif
995 use pm_kind, only: CKG => CK3
996 integer(IK) , intent(out) :: info
997 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
998 type(lowDia_type) , intent(in) :: subset
999 end subroutine
1000#endif
1001
1002#if CK2_ENABLED
1003 PURE module subroutine setMC_IMP_AXX_XLD_ONO_CK2(mat, subset, info)
1004#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1005 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_AXX_XLD_ONO_CK2
1006#endif
1007 use pm_kind, only: CKG => CK2
1008 integer(IK) , intent(out) :: info
1009 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
1010 type(lowDia_type) , intent(in) :: subset
1011 end subroutine
1012#endif
1013
1014#if CK1_ENABLED
1015 PURE module subroutine setMC_IMP_AXX_XLD_ONO_CK1(mat, subset, info)
1016#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1017 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_AXX_XLD_ONO_CK1
1018#endif
1019 use pm_kind, only: CKG => CK1
1020 integer(IK) , intent(out) :: info
1021 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
1022 type(lowDia_type) , intent(in) :: subset
1023 end subroutine
1024#endif
1025
1026 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1027
1028#if RK5_ENABLED
1029 PURE module subroutine setMC_IMP_AXX_XLD_ONO_RK5(mat, subset, info)
1030#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1031 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_AXX_XLD_ONO_RK5
1032#endif
1033 use pm_kind, only: RKG => RK5
1034 integer(IK) , intent(out) :: info
1035 real(RKG) , intent(inout) , contiguous :: mat(:,:)
1036 type(lowDia_type) , intent(in) :: subset
1037 end subroutine
1038#endif
1039
1040#if RK4_ENABLED
1041 PURE module subroutine setMC_IMP_AXX_XLD_ONO_RK4(mat, subset, info)
1042#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1043 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_AXX_XLD_ONO_RK4
1044#endif
1045 use pm_kind, only: RKG => RK4
1046 integer(IK) , intent(out) :: info
1047 real(RKG) , intent(inout) , contiguous :: mat(:,:)
1048 type(lowDia_type) , intent(in) :: subset
1049 end subroutine
1050#endif
1051
1052#if RK3_ENABLED
1053 PURE module subroutine setMC_IMP_AXX_XLD_ONO_RK3(mat, subset, info)
1054#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1055 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_AXX_XLD_ONO_RK3
1056#endif
1057 use pm_kind, only: RKG => RK3
1058 integer(IK) , intent(out) :: info
1059 real(RKG) , intent(inout) , contiguous :: mat(:,:)
1060 type(lowDia_type) , intent(in) :: subset
1061 end subroutine
1062#endif
1063
1064#if RK2_ENABLED
1065 PURE module subroutine setMC_IMP_AXX_XLD_ONO_RK2(mat, subset, info)
1066#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1067 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_AXX_XLD_ONO_RK2
1068#endif
1069 use pm_kind, only: RKG => RK2
1070 integer(IK) , intent(out) :: info
1071 real(RKG) , intent(inout) , contiguous :: mat(:,:)
1072 type(lowDia_type) , intent(in) :: subset
1073 end subroutine
1074#endif
1075
1076#if RK1_ENABLED
1077 PURE module subroutine setMC_IMP_AXX_XLD_ONO_RK1(mat, subset, info)
1078#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1079 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_AXX_XLD_ONO_RK1
1080#endif
1081 use pm_kind, only: RKG => RK1
1082 integer(IK) , intent(out) :: info
1083 real(RKG) , intent(inout) , contiguous :: mat(:,:)
1084 type(lowDia_type) , intent(in) :: subset
1085 end subroutine
1086#endif
1087
1088 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1089
1090 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1091 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1092 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1093
1094 end interface
1095
1096 ! implicit, unblocked, nothing
1097
1098 interface setMatChol
1099
1100 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1101 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1102 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1103
1104 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1105
1106#if CK5_ENABLED
1107 PURE module subroutine setMC_IMP_ANI_UXD_ONO_CK5(mat, subset, info, chol, operation)
1108#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1109 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_UXD_ONO_CK5
1110#endif
1111 use pm_kind, only: CKG => CK5
1112 integer(IK) , intent(out) :: info
1113 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1114 complex(CKG) , intent(inout) , contiguous :: chol(:,:)
1115 type(nothing_type) , intent(in) :: operation
1116 type(uppDia_type) , intent(in) :: subset
1117 end subroutine
1118#endif
1119
1120#if CK4_ENABLED
1121 PURE module subroutine setMC_IMP_ANI_UXD_ONO_CK4(mat, subset, info, chol, operation)
1122#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1123 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_UXD_ONO_CK4
1124#endif
1125 use pm_kind, only: CKG => CK4
1126 integer(IK) , intent(out) :: info
1127 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1128 complex(CKG) , intent(inout) , contiguous :: chol(:,:)
1129 type(nothing_type) , intent(in) :: operation
1130 type(uppDia_type) , intent(in) :: subset
1131 end subroutine
1132#endif
1133
1134#if CK3_ENABLED
1135 PURE module subroutine setMC_IMP_ANI_UXD_ONO_CK3(mat, subset, info, chol, operation)
1136#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1137 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_UXD_ONO_CK3
1138#endif
1139 use pm_kind, only: CKG => CK3
1140 integer(IK) , intent(out) :: info
1141 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1142 complex(CKG) , intent(inout) , contiguous :: chol(:,:)
1143 type(nothing_type) , intent(in) :: operation
1144 type(uppDia_type) , intent(in) :: subset
1145 end subroutine
1146#endif
1147
1148#if CK2_ENABLED
1149 PURE module subroutine setMC_IMP_ANI_UXD_ONO_CK2(mat, subset, info, chol, operation)
1150#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1151 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_UXD_ONO_CK2
1152#endif
1153 use pm_kind, only: CKG => CK2
1154 integer(IK) , intent(out) :: info
1155 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1156 complex(CKG) , intent(inout) , contiguous :: chol(:,:)
1157 type(nothing_type) , intent(in) :: operation
1158 type(uppDia_type) , intent(in) :: subset
1159 end subroutine
1160#endif
1161
1162#if CK1_ENABLED
1163 PURE module subroutine setMC_IMP_ANI_UXD_ONO_CK1(mat, subset, info, chol, operation)
1164#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1165 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_UXD_ONO_CK1
1166#endif
1167 use pm_kind, only: CKG => CK1
1168 integer(IK) , intent(out) :: info
1169 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1170 complex(CKG) , intent(inout) , contiguous :: chol(:,:)
1171 type(nothing_type) , intent(in) :: operation
1172 type(uppDia_type) , intent(in) :: subset
1173 end subroutine
1174#endif
1175
1176 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1177
1178#if RK5_ENABLED
1179 PURE module subroutine setMC_IMP_ANI_UXD_ONO_RK5(mat, subset, info, chol, operation)
1180#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1181 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_UXD_ONO_RK5
1182#endif
1183 use pm_kind, only: RKG => RK5
1184 integer(IK) , intent(out) :: info
1185 real(RKG) , intent(in) , contiguous :: mat(:,:)
1186 real(RKG) , intent(inout) , contiguous :: chol(:,:)
1187 type(nothing_type) , intent(in) :: operation
1188 type(uppDia_type) , intent(in) :: subset
1189 end subroutine
1190#endif
1191
1192#if RK4_ENABLED
1193 PURE module subroutine setMC_IMP_ANI_UXD_ONO_RK4(mat, subset, info, chol, operation)
1194#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1195 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_UXD_ONO_RK4
1196#endif
1197 use pm_kind, only: RKG => RK4
1198 integer(IK) , intent(out) :: info
1199 real(RKG) , intent(in) , contiguous :: mat(:,:)
1200 real(RKG) , intent(inout) , contiguous :: chol(:,:)
1201 type(nothing_type) , intent(in) :: operation
1202 type(uppDia_type) , intent(in) :: subset
1203 end subroutine
1204#endif
1205
1206#if RK3_ENABLED
1207 PURE module subroutine setMC_IMP_ANI_UXD_ONO_RK3(mat, subset, info, chol, operation)
1208#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1209 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_UXD_ONO_RK3
1210#endif
1211 use pm_kind, only: RKG => RK3
1212 integer(IK) , intent(out) :: info
1213 real(RKG) , intent(in) , contiguous :: mat(:,:)
1214 real(RKG) , intent(inout) , contiguous :: chol(:,:)
1215 type(nothing_type) , intent(in) :: operation
1216 type(uppDia_type) , intent(in) :: subset
1217 end subroutine
1218#endif
1219
1220#if RK2_ENABLED
1221 PURE module subroutine setMC_IMP_ANI_UXD_ONO_RK2(mat, subset, info, chol, operation)
1222#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1223 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_UXD_ONO_RK2
1224#endif
1225 use pm_kind, only: RKG => RK2
1226 integer(IK) , intent(out) :: info
1227 real(RKG) , intent(in) , contiguous :: mat(:,:)
1228 real(RKG) , intent(inout) , contiguous :: chol(:,:)
1229 type(nothing_type) , intent(in) :: operation
1230 type(uppDia_type) , intent(in) :: subset
1231 end subroutine
1232#endif
1233
1234#if RK1_ENABLED
1235 PURE module subroutine setMC_IMP_ANI_UXD_ONO_RK1(mat, subset, info, chol, operation)
1236#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1237 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_UXD_ONO_RK1
1238#endif
1239 use pm_kind, only: RKG => RK1
1240 integer(IK) , intent(out) :: info
1241 real(RKG) , intent(in) , contiguous :: mat(:,:)
1242 real(RKG) , intent(inout) , contiguous :: chol(:,:)
1243 type(nothing_type) , intent(in) :: operation
1244 type(uppDia_type) , intent(in) :: subset
1245 end subroutine
1246#endif
1247
1248 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1249
1250 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1251 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1252 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1253
1254 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1255
1256#if CK5_ENABLED
1257 PURE module subroutine setMC_IMP_ANI_XLD_ONO_CK5(mat, subset, info, chol, operation)
1258#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1259 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_XLD_ONO_CK5
1260#endif
1261 use pm_kind, only: CKG => CK5
1262 integer(IK) , intent(out) :: info
1263 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1264 complex(CKG) , intent(inout) , contiguous :: chol(:,:)
1265 type(nothing_type) , intent(in) :: operation
1266 type(lowDia_type) , intent(in) :: subset
1267 end subroutine
1268#endif
1269
1270#if CK4_ENABLED
1271 PURE module subroutine setMC_IMP_ANI_XLD_ONO_CK4(mat, subset, info, chol, operation)
1272#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1273 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_XLD_ONO_CK4
1274#endif
1275 use pm_kind, only: CKG => CK4
1276 integer(IK) , intent(out) :: info
1277 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1278 complex(CKG) , intent(inout) , contiguous :: chol(:,:)
1279 type(nothing_type) , intent(in) :: operation
1280 type(lowDia_type) , intent(in) :: subset
1281 end subroutine
1282#endif
1283
1284#if CK3_ENABLED
1285 PURE module subroutine setMC_IMP_ANI_XLD_ONO_CK3(mat, subset, info, chol, operation)
1286#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1287 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_XLD_ONO_CK3
1288#endif
1289 use pm_kind, only: CKG => CK3
1290 integer(IK) , intent(out) :: info
1291 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1292 complex(CKG) , intent(inout) , contiguous :: chol(:,:)
1293 type(nothing_type) , intent(in) :: operation
1294 type(lowDia_type) , intent(in) :: subset
1295 end subroutine
1296#endif
1297
1298#if CK2_ENABLED
1299 PURE module subroutine setMC_IMP_ANI_XLD_ONO_CK2(mat, subset, info, chol, operation)
1300#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1301 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_XLD_ONO_CK2
1302#endif
1303 use pm_kind, only: CKG => CK2
1304 integer(IK) , intent(out) :: info
1305 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1306 complex(CKG) , intent(inout) , contiguous :: chol(:,:)
1307 type(nothing_type) , intent(in) :: operation
1308 type(lowDia_type) , intent(in) :: subset
1309 end subroutine
1310#endif
1311
1312#if CK1_ENABLED
1313 PURE module subroutine setMC_IMP_ANI_XLD_ONO_CK1(mat, subset, info, chol, operation)
1314#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1315 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_XLD_ONO_CK1
1316#endif
1317 use pm_kind, only: CKG => CK1
1318 integer(IK) , intent(out) :: info
1319 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1320 complex(CKG) , intent(inout) , contiguous :: chol(:,:)
1321 type(nothing_type) , intent(in) :: operation
1322 type(lowDia_type) , intent(in) :: subset
1323 end subroutine
1324#endif
1325
1326 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1327
1328#if RK5_ENABLED
1329 PURE module subroutine setMC_IMP_ANI_XLD_ONO_RK5(mat, subset, info, chol, operation)
1330#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1331 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_XLD_ONO_RK5
1332#endif
1333 use pm_kind, only: RKG => RK5
1334 integer(IK) , intent(out) :: info
1335 real(RKG) , intent(in) , contiguous :: mat(:,:)
1336 real(RKG) , intent(inout) , contiguous :: chol(:,:)
1337 type(nothing_type) , intent(in) :: operation
1338 type(lowDia_type) , intent(in) :: subset
1339 end subroutine
1340#endif
1341
1342#if RK4_ENABLED
1343 PURE module subroutine setMC_IMP_ANI_XLD_ONO_RK4(mat, subset, info, chol, operation)
1344#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1345 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_XLD_ONO_RK4
1346#endif
1347 use pm_kind, only: RKG => RK4
1348 integer(IK) , intent(out) :: info
1349 real(RKG) , intent(in) , contiguous :: mat(:,:)
1350 real(RKG) , intent(inout) , contiguous :: chol(:,:)
1351 type(nothing_type) , intent(in) :: operation
1352 type(lowDia_type) , intent(in) :: subset
1353 end subroutine
1354#endif
1355
1356#if RK3_ENABLED
1357 PURE module subroutine setMC_IMP_ANI_XLD_ONO_RK3(mat, subset, info, chol, operation)
1358#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1359 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_XLD_ONO_RK3
1360#endif
1361 use pm_kind, only: RKG => RK3
1362 integer(IK) , intent(out) :: info
1363 real(RKG) , intent(in) , contiguous :: mat(:,:)
1364 real(RKG) , intent(inout) , contiguous :: chol(:,:)
1365 type(nothing_type) , intent(in) :: operation
1366 type(lowDia_type) , intent(in) :: subset
1367 end subroutine
1368#endif
1369
1370#if RK2_ENABLED
1371 PURE module subroutine setMC_IMP_ANI_XLD_ONO_RK2(mat, subset, info, chol, operation)
1372#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1373 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_XLD_ONO_RK2
1374#endif
1375 use pm_kind, only: RKG => RK2
1376 integer(IK) , intent(out) :: info
1377 real(RKG) , intent(in) , contiguous :: mat(:,:)
1378 real(RKG) , intent(inout) , contiguous :: chol(:,:)
1379 type(nothing_type) , intent(in) :: operation
1380 type(lowDia_type) , intent(in) :: subset
1381 end subroutine
1382#endif
1383
1384#if RK1_ENABLED
1385 PURE module subroutine setMC_IMP_ANI_XLD_ONO_RK1(mat, subset, info, chol, operation)
1386#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1387 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_XLD_ONO_RK1
1388#endif
1389 use pm_kind, only: RKG => RK1
1390 integer(IK) , intent(out) :: info
1391 real(RKG) , intent(in) , contiguous :: mat(:,:)
1392 real(RKG) , intent(inout) , contiguous :: chol(:,:)
1393 type(nothing_type) , intent(in) :: operation
1394 type(lowDia_type) , intent(in) :: subset
1395 end subroutine
1396#endif
1397
1398 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1399
1400 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1401 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1402 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1403
1404 end interface
1405
1406 ! implicit, unblocked, transHerm
1407
1408 interface setMatChol
1409
1410 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1411 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1412 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1413
1414 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1415
1416#if CK5_ENABLED
1417 PURE module subroutine setMC_IMP_ANI_UXD_OTH_CK5(mat, subset, info, chol, operation)
1418#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1419 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_UXD_OTH_CK5
1420#endif
1421 use pm_kind, only: CKG => CK5
1422 integer(IK) , intent(out) :: info
1423 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1424 complex(CKG) , intent(inout) , contiguous :: chol(:,:)
1425 type(transHerm_type), intent(in) :: operation
1426 type(uppDia_type) , intent(in) :: subset
1427 end subroutine
1428#endif
1429
1430#if CK4_ENABLED
1431 PURE module subroutine setMC_IMP_ANI_UXD_OTH_CK4(mat, subset, info, chol, operation)
1432#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1433 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_UXD_OTH_CK4
1434#endif
1435 use pm_kind, only: CKG => CK4
1436 integer(IK) , intent(out) :: info
1437 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1438 complex(CKG) , intent(inout) , contiguous :: chol(:,:)
1439 type(transHerm_type), intent(in) :: operation
1440 type(uppDia_type) , intent(in) :: subset
1441 end subroutine
1442#endif
1443
1444#if CK3_ENABLED
1445 PURE module subroutine setMC_IMP_ANI_UXD_OTH_CK3(mat, subset, info, chol, operation)
1446#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1447 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_UXD_OTH_CK3
1448#endif
1449 use pm_kind, only: CKG => CK3
1450 integer(IK) , intent(out) :: info
1451 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1452 complex(CKG) , intent(inout) , contiguous :: chol(:,:)
1453 type(transHerm_type), intent(in) :: operation
1454 type(uppDia_type) , intent(in) :: subset
1455 end subroutine
1456#endif
1457
1458#if CK2_ENABLED
1459 PURE module subroutine setMC_IMP_ANI_UXD_OTH_CK2(mat, subset, info, chol, operation)
1460#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1461 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_UXD_OTH_CK2
1462#endif
1463 use pm_kind, only: CKG => CK2
1464 integer(IK) , intent(out) :: info
1465 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1466 complex(CKG) , intent(inout) , contiguous :: chol(:,:)
1467 type(transHerm_type), intent(in) :: operation
1468 type(uppDia_type) , intent(in) :: subset
1469 end subroutine
1470#endif
1471
1472#if CK1_ENABLED
1473 PURE module subroutine setMC_IMP_ANI_UXD_OTH_CK1(mat, subset, info, chol, operation)
1474#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1475 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_UXD_OTH_CK1
1476#endif
1477 use pm_kind, only: CKG => CK1
1478 integer(IK) , intent(out) :: info
1479 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1480 complex(CKG) , intent(inout) , contiguous :: chol(:,:)
1481 type(transHerm_type), intent(in) :: operation
1482 type(uppDia_type) , intent(in) :: subset
1483 end subroutine
1484#endif
1485
1486 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1487
1488#if RK5_ENABLED
1489 PURE module subroutine setMC_IMP_ANI_UXD_OTH_RK5(mat, subset, info, chol, operation)
1490#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1491 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_UXD_OTH_RK5
1492#endif
1493 use pm_kind, only: RKG => RK5
1494 integer(IK) , intent(out) :: info
1495 real(RKG) , intent(in) , contiguous :: mat(:,:)
1496 real(RKG) , intent(inout) , contiguous :: chol(:,:)
1497 type(transHerm_type), intent(in) :: operation
1498 type(uppDia_type) , intent(in) :: subset
1499 end subroutine
1500#endif
1501
1502#if RK4_ENABLED
1503 PURE module subroutine setMC_IMP_ANI_UXD_OTH_RK4(mat, subset, info, chol, operation)
1504#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1505 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_UXD_OTH_RK4
1506#endif
1507 use pm_kind, only: RKG => RK4
1508 integer(IK) , intent(out) :: info
1509 real(RKG) , intent(in) , contiguous :: mat(:,:)
1510 real(RKG) , intent(inout) , contiguous :: chol(:,:)
1511 type(transHerm_type), intent(in) :: operation
1512 type(uppDia_type) , intent(in) :: subset
1513 end subroutine
1514#endif
1515
1516#if RK3_ENABLED
1517 PURE module subroutine setMC_IMP_ANI_UXD_OTH_RK3(mat, subset, info, chol, operation)
1518#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1519 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_UXD_OTH_RK3
1520#endif
1521 use pm_kind, only: RKG => RK3
1522 integer(IK) , intent(out) :: info
1523 real(RKG) , intent(in) , contiguous :: mat(:,:)
1524 real(RKG) , intent(inout) , contiguous :: chol(:,:)
1525 type(transHerm_type), intent(in) :: operation
1526 type(uppDia_type) , intent(in) :: subset
1527 end subroutine
1528#endif
1529
1530#if RK2_ENABLED
1531 PURE module subroutine setMC_IMP_ANI_UXD_OTH_RK2(mat, subset, info, chol, operation)
1532#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1533 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_UXD_OTH_RK2
1534#endif
1535 use pm_kind, only: RKG => RK2
1536 integer(IK) , intent(out) :: info
1537 real(RKG) , intent(in) , contiguous :: mat(:,:)
1538 real(RKG) , intent(inout) , contiguous :: chol(:,:)
1539 type(transHerm_type), intent(in) :: operation
1540 type(uppDia_type) , intent(in) :: subset
1541 end subroutine
1542#endif
1543
1544#if RK1_ENABLED
1545 PURE module subroutine setMC_IMP_ANI_UXD_OTH_RK1(mat, subset, info, chol, operation)
1546#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1547 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_UXD_OTH_RK1
1548#endif
1549 use pm_kind, only: RKG => RK1
1550 integer(IK) , intent(out) :: info
1551 real(RKG) , intent(in) , contiguous :: mat(:,:)
1552 real(RKG) , intent(inout) , contiguous :: chol(:,:)
1553 type(transHerm_type), intent(in) :: operation
1554 type(uppDia_type) , intent(in) :: subset
1555 end subroutine
1556#endif
1557
1558 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1559
1560 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1561 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1562 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1563
1564 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1565
1566#if CK5_ENABLED
1567 PURE module subroutine setMC_IMP_ANI_XLD_OTH_CK5(mat, subset, info, chol, operation)
1568#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1569 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_XLD_OTH_CK5
1570#endif
1571 use pm_kind, only: CKG => CK5
1572 integer(IK) , intent(out) :: info
1573 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1574 complex(CKG) , intent(inout) , contiguous :: chol(:,:)
1575 type(transHerm_type), intent(in) :: operation
1576 type(lowDia_type) , intent(in) :: subset
1577 end subroutine
1578#endif
1579
1580#if CK4_ENABLED
1581 PURE module subroutine setMC_IMP_ANI_XLD_OTH_CK4(mat, subset, info, chol, operation)
1582#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1583 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_XLD_OTH_CK4
1584#endif
1585 use pm_kind, only: CKG => CK4
1586 integer(IK) , intent(out) :: info
1587 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1588 complex(CKG) , intent(inout) , contiguous :: chol(:,:)
1589 type(transHerm_type), intent(in) :: operation
1590 type(lowDia_type) , intent(in) :: subset
1591 end subroutine
1592#endif
1593
1594#if CK3_ENABLED
1595 PURE module subroutine setMC_IMP_ANI_XLD_OTH_CK3(mat, subset, info, chol, operation)
1596#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1597 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_XLD_OTH_CK3
1598#endif
1599 use pm_kind, only: CKG => CK3
1600 integer(IK) , intent(out) :: info
1601 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1602 complex(CKG) , intent(inout) , contiguous :: chol(:,:)
1603 type(transHerm_type), intent(in) :: operation
1604 type(lowDia_type) , intent(in) :: subset
1605 end subroutine
1606#endif
1607
1608#if CK2_ENABLED
1609 PURE module subroutine setMC_IMP_ANI_XLD_OTH_CK2(mat, subset, info, chol, operation)
1610#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1611 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_XLD_OTH_CK2
1612#endif
1613 use pm_kind, only: CKG => CK2
1614 integer(IK) , intent(out) :: info
1615 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1616 complex(CKG) , intent(inout) , contiguous :: chol(:,:)
1617 type(transHerm_type), intent(in) :: operation
1618 type(lowDia_type) , intent(in) :: subset
1619 end subroutine
1620#endif
1621
1622#if CK1_ENABLED
1623 PURE module subroutine setMC_IMP_ANI_XLD_OTH_CK1(mat, subset, info, chol, operation)
1624#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1625 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_XLD_OTH_CK1
1626#endif
1627 use pm_kind, only: CKG => CK1
1628 integer(IK) , intent(out) :: info
1629 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1630 complex(CKG) , intent(inout) , contiguous :: chol(:,:)
1631 type(transHerm_type), intent(in) :: operation
1632 type(lowDia_type) , intent(in) :: subset
1633 end subroutine
1634#endif
1635
1636 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1637
1638#if RK5_ENABLED
1639 PURE module subroutine setMC_IMP_ANI_XLD_OTH_RK5(mat, subset, info, chol, operation)
1640#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1641 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_XLD_OTH_RK5
1642#endif
1643 use pm_kind, only: RKG => RK5
1644 integer(IK) , intent(out) :: info
1645 real(RKG) , intent(in) , contiguous :: mat(:,:)
1646 real(RKG) , intent(inout) , contiguous :: chol(:,:)
1647 type(transHerm_type), intent(in) :: operation
1648 type(lowDia_type) , intent(in) :: subset
1649 end subroutine
1650#endif
1651
1652#if RK4_ENABLED
1653 PURE module subroutine setMC_IMP_ANI_XLD_OTH_RK4(mat, subset, info, chol, operation)
1654#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1655 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_XLD_OTH_RK4
1656#endif
1657 use pm_kind, only: RKG => RK4
1658 integer(IK) , intent(out) :: info
1659 real(RKG) , intent(in) , contiguous :: mat(:,:)
1660 real(RKG) , intent(inout) , contiguous :: chol(:,:)
1661 type(transHerm_type), intent(in) :: operation
1662 type(lowDia_type) , intent(in) :: subset
1663 end subroutine
1664#endif
1665
1666#if RK3_ENABLED
1667 PURE module subroutine setMC_IMP_ANI_XLD_OTH_RK3(mat, subset, info, chol, operation)
1668#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1669 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_XLD_OTH_RK3
1670#endif
1671 use pm_kind, only: RKG => RK3
1672 integer(IK) , intent(out) :: info
1673 real(RKG) , intent(in) , contiguous :: mat(:,:)
1674 real(RKG) , intent(inout) , contiguous :: chol(:,:)
1675 type(transHerm_type), intent(in) :: operation
1676 type(lowDia_type) , intent(in) :: subset
1677 end subroutine
1678#endif
1679
1680#if RK2_ENABLED
1681 PURE module subroutine setMC_IMP_ANI_XLD_OTH_RK2(mat, subset, info, chol, operation)
1682#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1683 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_XLD_OTH_RK2
1684#endif
1685 use pm_kind, only: RKG => RK2
1686 integer(IK) , intent(out) :: info
1687 real(RKG) , intent(in) , contiguous :: mat(:,:)
1688 real(RKG) , intent(inout) , contiguous :: chol(:,:)
1689 type(transHerm_type), intent(in) :: operation
1690 type(lowDia_type) , intent(in) :: subset
1691 end subroutine
1692#endif
1693
1694#if RK1_ENABLED
1695 PURE module subroutine setMC_IMP_ANI_XLD_OTH_RK1(mat, subset, info, chol, operation)
1696#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1697 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ANI_XLD_OTH_RK1
1698#endif
1699 use pm_kind, only: RKG => RK1
1700 integer(IK) , intent(out) :: info
1701 real(RKG) , intent(in) , contiguous :: mat(:,:)
1702 real(RKG) , intent(inout) , contiguous :: chol(:,:)
1703 type(transHerm_type), intent(in) :: operation
1704 type(lowDia_type) , intent(in) :: subset
1705 end subroutine
1706#endif
1707
1708 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1709
1710 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1711 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1712 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1713
1714 end interface
1715
1716 ! implicit, blocking, iteration
1717
1718 interface setMatChol
1719
1720 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1721 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1722 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1723
1724 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1725
1726#if CK5_ENABLED
1727 PURE recursive module subroutine setMC_IMP_ABI_UXD_ONO_CK5(mat, subset, info, control, bdim)
1728#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1729 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABI_UXD_ONO_CK5
1730#endif
1731 use pm_kind, only: CKG => CK5
1732 integer(IK) , intent(out) :: info
1733 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
1734 type(uppDia_type) , intent(in) :: subset
1735 type(iteration_type), intent(in) :: control
1736 integer(IK) , intent(in) , optional :: bdim
1737 end subroutine
1738#endif
1739
1740#if CK4_ENABLED
1741 PURE recursive module subroutine setMC_IMP_ABI_UXD_ONO_CK4(mat, subset, info, control, bdim)
1742#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1743 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABI_UXD_ONO_CK4
1744#endif
1745 use pm_kind, only: CKG => CK4
1746 integer(IK) , intent(out) :: info
1747 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
1748 type(uppDia_type) , intent(in) :: subset
1749 type(iteration_type), intent(in) :: control
1750 integer(IK) , intent(in) , optional :: bdim
1751 end subroutine
1752#endif
1753
1754#if CK3_ENABLED
1755 PURE recursive module subroutine setMC_IMP_ABI_UXD_ONO_CK3(mat, subset, info, control, bdim)
1756#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1757 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABI_UXD_ONO_CK3
1758#endif
1759 use pm_kind, only: CKG => CK3
1760 integer(IK) , intent(out) :: info
1761 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
1762 type(uppDia_type) , intent(in) :: subset
1763 type(iteration_type), intent(in) :: control
1764 integer(IK) , intent(in) , optional :: bdim
1765 end subroutine
1766#endif
1767
1768#if CK2_ENABLED
1769 PURE recursive module subroutine setMC_IMP_ABI_UXD_ONO_CK2(mat, subset, info, control, bdim)
1770#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1771 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABI_UXD_ONO_CK2
1772#endif
1773 use pm_kind, only: CKG => CK2
1774 integer(IK) , intent(out) :: info
1775 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
1776 type(uppDia_type) , intent(in) :: subset
1777 type(iteration_type), intent(in) :: control
1778 integer(IK) , intent(in) , optional :: bdim
1779 end subroutine
1780#endif
1781
1782#if CK1_ENABLED
1783 PURE recursive module subroutine setMC_IMP_ABI_UXD_ONO_CK1(mat, subset, info, control, bdim)
1784#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1785 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABI_UXD_ONO_CK1
1786#endif
1787 use pm_kind, only: CKG => CK1
1788 integer(IK) , intent(out) :: info
1789 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
1790 type(uppDia_type) , intent(in) :: subset
1791 type(iteration_type), intent(in) :: control
1792 integer(IK) , intent(in) , optional :: bdim
1793 end subroutine
1794#endif
1795
1796 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1797
1798#if RK5_ENABLED
1799 PURE recursive module subroutine setMC_IMP_ABI_UXD_ONO_RK5(mat, subset, info, control, bdim)
1800#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1801 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABI_UXD_ONO_RK5
1802#endif
1803 use pm_kind, only: RKG => RK5
1804 integer(IK) , intent(out) :: info
1805 real(RKG) , intent(inout) , contiguous :: mat(:,:)
1806 type(uppDia_type) , intent(in) :: subset
1807 type(iteration_type), intent(in) :: control
1808 integer(IK) , intent(in) , optional :: bdim
1809 end subroutine
1810#endif
1811
1812#if RK4_ENABLED
1813 PURE recursive module subroutine setMC_IMP_ABI_UXD_ONO_RK4(mat, subset, info, control, bdim)
1814#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1815 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABI_UXD_ONO_RK4
1816#endif
1817 use pm_kind, only: RKG => RK4
1818 integer(IK) , intent(out) :: info
1819 real(RKG) , intent(inout) , contiguous :: mat(:,:)
1820 type(uppDia_type) , intent(in) :: subset
1821 type(iteration_type), intent(in) :: control
1822 integer(IK) , intent(in) , optional :: bdim
1823 end subroutine
1824#endif
1825
1826#if RK3_ENABLED
1827 PURE recursive module subroutine setMC_IMP_ABI_UXD_ONO_RK3(mat, subset, info, control, bdim)
1828#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1829 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABI_UXD_ONO_RK3
1830#endif
1831 use pm_kind, only: RKG => RK3
1832 integer(IK) , intent(out) :: info
1833 real(RKG) , intent(inout) , contiguous :: mat(:,:)
1834 type(uppDia_type) , intent(in) :: subset
1835 type(iteration_type), intent(in) :: control
1836 integer(IK) , intent(in) , optional :: bdim
1837 end subroutine
1838#endif
1839
1840#if RK2_ENABLED
1841 PURE recursive module subroutine setMC_IMP_ABI_UXD_ONO_RK2(mat, subset, info, control, bdim)
1842#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1843 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABI_UXD_ONO_RK2
1844#endif
1845 use pm_kind, only: RKG => RK2
1846 integer(IK) , intent(out) :: info
1847 real(RKG) , intent(inout) , contiguous :: mat(:,:)
1848 type(uppDia_type) , intent(in) :: subset
1849 type(iteration_type), intent(in) :: control
1850 integer(IK) , intent(in) , optional :: bdim
1851 end subroutine
1852#endif
1853
1854#if RK1_ENABLED
1855 PURE recursive module subroutine setMC_IMP_ABI_UXD_ONO_RK1(mat, subset, info, control, bdim)
1856#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1857 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABI_UXD_ONO_RK1
1858#endif
1859 use pm_kind, only: RKG => RK1
1860 integer(IK) , intent(out) :: info
1861 real(RKG) , intent(inout) , contiguous :: mat(:,:)
1862 type(uppDia_type) , intent(in) :: subset
1863 type(iteration_type), intent(in) :: control
1864 integer(IK) , intent(in) , optional :: bdim
1865 end subroutine
1866#endif
1867
1868 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1869
1870 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1871 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1872 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1873
1874 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1875
1876#if CK5_ENABLED
1877 PURE recursive module subroutine setMC_IMP_ABI_XLD_ONO_CK5(mat, subset, info, control, bdim)
1878#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1879 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABI_XLD_ONO_CK5
1880#endif
1881 use pm_kind, only: CKG => CK5
1882 integer(IK) , intent(out) :: info
1883 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
1884 type(lowDia_type) , intent(in) :: subset
1885 type(iteration_type), intent(in) :: control
1886 integer(IK) , intent(in) , optional :: bdim
1887 end subroutine
1888#endif
1889
1890#if CK4_ENABLED
1891 PURE recursive module subroutine setMC_IMP_ABI_XLD_ONO_CK4(mat, subset, info, control, bdim)
1892#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1893 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABI_XLD_ONO_CK4
1894#endif
1895 use pm_kind, only: CKG => CK4
1896 integer(IK) , intent(out) :: info
1897 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
1898 type(lowDia_type) , intent(in) :: subset
1899 type(iteration_type), intent(in) :: control
1900 integer(IK) , intent(in) , optional :: bdim
1901 end subroutine
1902#endif
1903
1904#if CK3_ENABLED
1905 PURE recursive module subroutine setMC_IMP_ABI_XLD_ONO_CK3(mat, subset, info, control, bdim)
1906#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1907 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABI_XLD_ONO_CK3
1908#endif
1909 use pm_kind, only: CKG => CK3
1910 integer(IK) , intent(out) :: info
1911 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
1912 type(lowDia_type) , intent(in) :: subset
1913 type(iteration_type), intent(in) :: control
1914 integer(IK) , intent(in) , optional :: bdim
1915 end subroutine
1916#endif
1917
1918#if CK2_ENABLED
1919 PURE recursive module subroutine setMC_IMP_ABI_XLD_ONO_CK2(mat, subset, info, control, bdim)
1920#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1921 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABI_XLD_ONO_CK2
1922#endif
1923 use pm_kind, only: CKG => CK2
1924 integer(IK) , intent(out) :: info
1925 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
1926 type(lowDia_type) , intent(in) :: subset
1927 type(iteration_type), intent(in) :: control
1928 integer(IK) , intent(in) , optional :: bdim
1929 end subroutine
1930#endif
1931
1932#if CK1_ENABLED
1933 PURE recursive module subroutine setMC_IMP_ABI_XLD_ONO_CK1(mat, subset, info, control, bdim)
1934#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1935 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABI_XLD_ONO_CK1
1936#endif
1937 use pm_kind, only: CKG => CK1
1938 integer(IK) , intent(out) :: info
1939 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
1940 type(lowDia_type) , intent(in) :: subset
1941 type(iteration_type), intent(in) :: control
1942 integer(IK) , intent(in) , optional :: bdim
1943 end subroutine
1944#endif
1945
1946 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1947
1948#if RK5_ENABLED
1949 PURE recursive module subroutine setMC_IMP_ABI_XLD_ONO_RK5(mat, subset, info, control, bdim)
1950#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1951 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABI_XLD_ONO_RK5
1952#endif
1953 use pm_kind, only: RKG => RK5
1954 integer(IK) , intent(out) :: info
1955 real(RKG) , intent(inout) , contiguous :: mat(:,:)
1956 type(lowDia_type) , intent(in) :: subset
1957 type(iteration_type), intent(in) :: control
1958 integer(IK) , intent(in) , optional :: bdim
1959 end subroutine
1960#endif
1961
1962#if RK4_ENABLED
1963 PURE recursive module subroutine setMC_IMP_ABI_XLD_ONO_RK4(mat, subset, info, control, bdim)
1964#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1965 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABI_XLD_ONO_RK4
1966#endif
1967 use pm_kind, only: RKG => RK4
1968 integer(IK) , intent(out) :: info
1969 real(RKG) , intent(inout) , contiguous :: mat(:,:)
1970 type(lowDia_type) , intent(in) :: subset
1971 type(iteration_type), intent(in) :: control
1972 integer(IK) , intent(in) , optional :: bdim
1973 end subroutine
1974#endif
1975
1976#if RK3_ENABLED
1977 PURE recursive module subroutine setMC_IMP_ABI_XLD_ONO_RK3(mat, subset, info, control, bdim)
1978#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1979 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABI_XLD_ONO_RK3
1980#endif
1981 use pm_kind, only: RKG => RK3
1982 integer(IK) , intent(out) :: info
1983 real(RKG) , intent(inout) , contiguous :: mat(:,:)
1984 type(lowDia_type) , intent(in) :: subset
1985 type(iteration_type), intent(in) :: control
1986 integer(IK) , intent(in) , optional :: bdim
1987 end subroutine
1988#endif
1989
1990#if RK2_ENABLED
1991 PURE recursive module subroutine setMC_IMP_ABI_XLD_ONO_RK2(mat, subset, info, control, bdim)
1992#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1993 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABI_XLD_ONO_RK2
1994#endif
1995 use pm_kind, only: RKG => RK2
1996 integer(IK) , intent(out) :: info
1997 real(RKG) , intent(inout) , contiguous :: mat(:,:)
1998 type(lowDia_type) , intent(in) :: subset
1999 type(iteration_type), intent(in) :: control
2000 integer(IK) , intent(in) , optional :: bdim
2001 end subroutine
2002#endif
2003
2004#if RK1_ENABLED
2005 PURE recursive module subroutine setMC_IMP_ABI_XLD_ONO_RK1(mat, subset, info, control, bdim)
2006#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2007 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABI_XLD_ONO_RK1
2008#endif
2009 use pm_kind, only: RKG => RK1
2010 integer(IK) , intent(out) :: info
2011 real(RKG) , intent(inout) , contiguous :: mat(:,:)
2012 type(lowDia_type) , intent(in) :: subset
2013 type(iteration_type), intent(in) :: control
2014 integer(IK) , intent(in) , optional :: bdim
2015 end subroutine
2016#endif
2017
2018 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2019
2020 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2021 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2022 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2023
2024 end interface
2025
2026 ! implicit, blocking, recursion
2027
2028 interface setMatChol
2029
2030 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2031 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2032 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2033
2034 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2035
2036#if CK5_ENABLED
2037 PURE recursive module subroutine setMC_IMP_ABR_UXD_ONO_CK5(mat, subset, info, control)
2038#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2039 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABR_UXD_ONO_CK5
2040#endif
2041 use pm_kind, only: CKG => CK5
2042 integer(IK) , intent(out) :: info
2043 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
2044 type(uppDia_type) , intent(in) :: subset
2045 type(recursion_type), intent(in) :: control
2046 end subroutine
2047#endif
2048
2049#if CK4_ENABLED
2050 PURE recursive module subroutine setMC_IMP_ABR_UXD_ONO_CK4(mat, subset, info, control)
2051#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2052 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABR_UXD_ONO_CK4
2053#endif
2054 use pm_kind, only: CKG => CK4
2055 integer(IK) , intent(out) :: info
2056 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
2057 type(uppDia_type) , intent(in) :: subset
2058 type(recursion_type), intent(in) :: control
2059 end subroutine
2060#endif
2061
2062#if CK3_ENABLED
2063 PURE recursive module subroutine setMC_IMP_ABR_UXD_ONO_CK3(mat, subset, info, control)
2064#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2065 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABR_UXD_ONO_CK3
2066#endif
2067 use pm_kind, only: CKG => CK3
2068 integer(IK) , intent(out) :: info
2069 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
2070 type(uppDia_type) , intent(in) :: subset
2071 type(recursion_type), intent(in) :: control
2072 end subroutine
2073#endif
2074
2075#if CK2_ENABLED
2076 PURE recursive module subroutine setMC_IMP_ABR_UXD_ONO_CK2(mat, subset, info, control)
2077#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2078 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABR_UXD_ONO_CK2
2079#endif
2080 use pm_kind, only: CKG => CK2
2081 integer(IK) , intent(out) :: info
2082 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
2083 type(uppDia_type) , intent(in) :: subset
2084 type(recursion_type), intent(in) :: control
2085 end subroutine
2086#endif
2087
2088#if CK1_ENABLED
2089 PURE recursive module subroutine setMC_IMP_ABR_UXD_ONO_CK1(mat, subset, info, control)
2090#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2091 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABR_UXD_ONO_CK1
2092#endif
2093 use pm_kind, only: CKG => CK1
2094 integer(IK) , intent(out) :: info
2095 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
2096 type(uppDia_type) , intent(in) :: subset
2097 type(recursion_type), intent(in) :: control
2098 end subroutine
2099#endif
2100
2101 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2102
2103#if RK5_ENABLED
2104 PURE recursive module subroutine setMC_IMP_ABR_UXD_ONO_RK5(mat, subset, info, control)
2105#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2106 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABR_UXD_ONO_RK5
2107#endif
2108 use pm_kind, only: RKG => RK5
2109 integer(IK) , intent(out) :: info
2110 real(RKG) , intent(inout) , contiguous :: mat(:,:)
2111 type(uppDia_type) , intent(in) :: subset
2112 type(recursion_type), intent(in) :: control
2113 end subroutine
2114#endif
2115
2116#if RK4_ENABLED
2117 PURE recursive module subroutine setMC_IMP_ABR_UXD_ONO_RK4(mat, subset, info, control)
2118#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2119 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABR_UXD_ONO_RK4
2120#endif
2121 use pm_kind, only: RKG => RK4
2122 integer(IK) , intent(out) :: info
2123 real(RKG) , intent(inout) , contiguous :: mat(:,:)
2124 type(uppDia_type) , intent(in) :: subset
2125 type(recursion_type), intent(in) :: control
2126 end subroutine
2127#endif
2128
2129#if RK3_ENABLED
2130 PURE recursive module subroutine setMC_IMP_ABR_UXD_ONO_RK3(mat, subset, info, control)
2131#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2132 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABR_UXD_ONO_RK3
2133#endif
2134 use pm_kind, only: RKG => RK3
2135 integer(IK) , intent(out) :: info
2136 real(RKG) , intent(inout) , contiguous :: mat(:,:)
2137 type(uppDia_type) , intent(in) :: subset
2138 type(recursion_type), intent(in) :: control
2139 end subroutine
2140#endif
2141
2142#if RK2_ENABLED
2143 PURE recursive module subroutine setMC_IMP_ABR_UXD_ONO_RK2(mat, subset, info, control)
2144#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2145 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABR_UXD_ONO_RK2
2146#endif
2147 use pm_kind, only: RKG => RK2
2148 integer(IK) , intent(out) :: info
2149 real(RKG) , intent(inout) , contiguous :: mat(:,:)
2150 type(uppDia_type) , intent(in) :: subset
2151 type(recursion_type), intent(in) :: control
2152 end subroutine
2153#endif
2154
2155#if RK1_ENABLED
2156 PURE recursive module subroutine setMC_IMP_ABR_UXD_ONO_RK1(mat, subset, info, control)
2157#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2158 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABR_UXD_ONO_RK1
2159#endif
2160 use pm_kind, only: RKG => RK1
2161 integer(IK) , intent(out) :: info
2162 real(RKG) , intent(inout) , contiguous :: mat(:,:)
2163 type(uppDia_type) , intent(in) :: subset
2164 type(recursion_type), intent(in) :: control
2165 end subroutine
2166#endif
2167
2168 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2169
2170 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2171 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2172 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2173
2174 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2175
2176#if CK5_ENABLED
2177 PURE recursive module subroutine setMC_IMP_ABR_XLD_ONO_CK5(mat, subset, info, control)
2178#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2179 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABR_XLD_ONO_CK5
2180#endif
2181 use pm_kind, only: CKG => CK5
2182 integer(IK) , intent(out) :: info
2183 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
2184 type(lowDia_type) , intent(in) :: subset
2185 type(recursion_type), intent(in) :: control
2186 end subroutine
2187#endif
2188
2189#if CK4_ENABLED
2190 PURE recursive module subroutine setMC_IMP_ABR_XLD_ONO_CK4(mat, subset, info, control)
2191#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2192 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABR_XLD_ONO_CK4
2193#endif
2194 use pm_kind, only: CKG => CK4
2195 integer(IK) , intent(out) :: info
2196 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
2197 type(lowDia_type) , intent(in) :: subset
2198 type(recursion_type), intent(in) :: control
2199 end subroutine
2200#endif
2201
2202#if CK3_ENABLED
2203 PURE recursive module subroutine setMC_IMP_ABR_XLD_ONO_CK3(mat, subset, info, control)
2204#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2205 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABR_XLD_ONO_CK3
2206#endif
2207 use pm_kind, only: CKG => CK3
2208 integer(IK) , intent(out) :: info
2209 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
2210 type(lowDia_type) , intent(in) :: subset
2211 type(recursion_type), intent(in) :: control
2212 end subroutine
2213#endif
2214
2215#if CK2_ENABLED
2216 PURE recursive module subroutine setMC_IMP_ABR_XLD_ONO_CK2(mat, subset, info, control)
2217#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2218 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABR_XLD_ONO_CK2
2219#endif
2220 use pm_kind, only: CKG => CK2
2221 integer(IK) , intent(out) :: info
2222 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
2223 type(lowDia_type) , intent(in) :: subset
2224 type(recursion_type), intent(in) :: control
2225 end subroutine
2226#endif
2227
2228#if CK1_ENABLED
2229 PURE recursive module subroutine setMC_IMP_ABR_XLD_ONO_CK1(mat, subset, info, control)
2230#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2231 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABR_XLD_ONO_CK1
2232#endif
2233 use pm_kind, only: CKG => CK1
2234 integer(IK) , intent(out) :: info
2235 complex(CKG) , intent(inout) , contiguous :: mat(:,:)
2236 type(lowDia_type) , intent(in) :: subset
2237 type(recursion_type), intent(in) :: control
2238 end subroutine
2239#endif
2240
2241 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2242
2243#if RK5_ENABLED
2244 PURE recursive module subroutine setMC_IMP_ABR_XLD_ONO_RK5(mat, subset, info, control)
2245#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2246 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABR_XLD_ONO_RK5
2247#endif
2248 use pm_kind, only: RKG => RK5
2249 integer(IK) , intent(out) :: info
2250 real(RKG) , intent(inout) , contiguous :: mat(:,:)
2251 type(lowDia_type) , intent(in) :: subset
2252 type(recursion_type), intent(in) :: control
2253 end subroutine
2254#endif
2255
2256#if RK4_ENABLED
2257 PURE recursive module subroutine setMC_IMP_ABR_XLD_ONO_RK4(mat, subset, info, control)
2258#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2259 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABR_XLD_ONO_RK4
2260#endif
2261 use pm_kind, only: RKG => RK4
2262 integer(IK) , intent(out) :: info
2263 real(RKG) , intent(inout) , contiguous :: mat(:,:)
2264 type(lowDia_type) , intent(in) :: subset
2265 type(recursion_type), intent(in) :: control
2266 end subroutine
2267#endif
2268
2269#if RK3_ENABLED
2270 PURE recursive module subroutine setMC_IMP_ABR_XLD_ONO_RK3(mat, subset, info, control)
2271#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2272 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABR_XLD_ONO_RK3
2273#endif
2274 use pm_kind, only: RKG => RK3
2275 integer(IK) , intent(out) :: info
2276 real(RKG) , intent(inout) , contiguous :: mat(:,:)
2277 type(lowDia_type) , intent(in) :: subset
2278 type(recursion_type), intent(in) :: control
2279 end subroutine
2280#endif
2281
2282#if RK2_ENABLED
2283 PURE recursive module subroutine setMC_IMP_ABR_XLD_ONO_RK2(mat, subset, info, control)
2284#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2285 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABR_XLD_ONO_RK2
2286#endif
2287 use pm_kind, only: RKG => RK2
2288 integer(IK) , intent(out) :: info
2289 real(RKG) , intent(inout) , contiguous :: mat(:,:)
2290 type(lowDia_type) , intent(in) :: subset
2291 type(recursion_type), intent(in) :: control
2292 end subroutine
2293#endif
2294
2295#if RK1_ENABLED
2296 PURE recursive module subroutine setMC_IMP_ABR_XLD_ONO_RK1(mat, subset, info, control)
2297#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2298 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_IMP_ABR_XLD_ONO_RK1
2299#endif
2300 use pm_kind, only: RKG => RK1
2301 integer(IK) , intent(out) :: info
2302 real(RKG) , intent(inout) , contiguous :: mat(:,:)
2303 type(lowDia_type) , intent(in) :: subset
2304 type(recursion_type), intent(in) :: control
2305 end subroutine
2306#endif
2307
2308 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2309
2310 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2311 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2312 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2313
2314 end interface
2315
2316 ! explicit, default
2317
2318 interface setMatChol
2319
2320 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2321 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2322 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2323
2324 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2325
2326#if CK5_ENABLED
2327 PURE module subroutine setMC_EXP_AXX_UXD_ONO_CK5(mat, subset, info, ndim, roff, coff)
2328#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2329 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_AXX_UXD_ONO_CK5
2330#endif
2331 use pm_kind, only: CKG => CK5
2332 integer(IK) , intent(out) :: info
2333 integer(IK) , intent(in) :: ndim, roff, coff
2334 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
2335 type(uppDia_type) , intent(in) :: subset
2336 end subroutine
2337#endif
2338
2339#if CK4_ENABLED
2340 PURE module subroutine setMC_EXP_AXX_UXD_ONO_CK4(mat, subset, info, ndim, roff, coff)
2341#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2342 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_AXX_UXD_ONO_CK4
2343#endif
2344 use pm_kind, only: CKG => CK4
2345 integer(IK) , intent(out) :: info
2346 integer(IK) , intent(in) :: ndim, roff, coff
2347 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
2348 type(uppDia_type) , intent(in) :: subset
2349 end subroutine
2350#endif
2351
2352#if CK3_ENABLED
2353 PURE module subroutine setMC_EXP_AXX_UXD_ONO_CK3(mat, subset, info, ndim, roff, coff)
2354#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2355 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_AXX_UXD_ONO_CK3
2356#endif
2357 use pm_kind, only: CKG => CK3
2358 integer(IK) , intent(out) :: info
2359 integer(IK) , intent(in) :: ndim, roff, coff
2360 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
2361 type(uppDia_type) , intent(in) :: subset
2362 end subroutine
2363#endif
2364
2365#if CK2_ENABLED
2366 PURE module subroutine setMC_EXP_AXX_UXD_ONO_CK2(mat, subset, info, ndim, roff, coff)
2367#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2368 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_AXX_UXD_ONO_CK2
2369#endif
2370 use pm_kind, only: CKG => CK2
2371 integer(IK) , intent(out) :: info
2372 integer(IK) , intent(in) :: ndim, roff, coff
2373 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
2374 type(uppDia_type) , intent(in) :: subset
2375 end subroutine
2376#endif
2377
2378#if CK1_ENABLED
2379 PURE module subroutine setMC_EXP_AXX_UXD_ONO_CK1(mat, subset, info, ndim, roff, coff)
2380#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2381 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_AXX_UXD_ONO_CK1
2382#endif
2383 use pm_kind, only: CKG => CK1
2384 integer(IK) , intent(out) :: info
2385 integer(IK) , intent(in) :: ndim, roff, coff
2386 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
2387 type(uppDia_type) , intent(in) :: subset
2388 end subroutine
2389#endif
2390
2391 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2392
2393#if RK5_ENABLED
2394 PURE module subroutine setMC_EXP_AXX_UXD_ONO_RK5(mat, subset, info, ndim, roff, coff)
2395#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2396 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_AXX_UXD_ONO_RK5
2397#endif
2398 use pm_kind, only: RKG => RK5
2399 integer(IK) , intent(out) :: info
2400 integer(IK) , intent(in) :: ndim, roff, coff
2401 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
2402 type(uppDia_type) , intent(in) :: subset
2403 end subroutine
2404#endif
2405
2406#if RK4_ENABLED
2407 PURE module subroutine setMC_EXP_AXX_UXD_ONO_RK4(mat, subset, info, ndim, roff, coff)
2408#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2409 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_AXX_UXD_ONO_RK4
2410#endif
2411 use pm_kind, only: RKG => RK4
2412 integer(IK) , intent(out) :: info
2413 integer(IK) , intent(in) :: ndim, roff, coff
2414 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
2415 type(uppDia_type) , intent(in) :: subset
2416 end subroutine
2417#endif
2418
2419#if RK3_ENABLED
2420 PURE module subroutine setMC_EXP_AXX_UXD_ONO_RK3(mat, subset, info, ndim, roff, coff)
2421#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2422 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_AXX_UXD_ONO_RK3
2423#endif
2424 use pm_kind, only: RKG => RK3
2425 integer(IK) , intent(out) :: info
2426 integer(IK) , intent(in) :: ndim, roff, coff
2427 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
2428 type(uppDia_type) , intent(in) :: subset
2429 end subroutine
2430#endif
2431
2432#if RK2_ENABLED
2433 PURE module subroutine setMC_EXP_AXX_UXD_ONO_RK2(mat, subset, info, ndim, roff, coff)
2434#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2435 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_AXX_UXD_ONO_RK2
2436#endif
2437 use pm_kind, only: RKG => RK2
2438 integer(IK) , intent(out) :: info
2439 integer(IK) , intent(in) :: ndim, roff, coff
2440 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
2441 type(uppDia_type) , intent(in) :: subset
2442 end subroutine
2443#endif
2444
2445#if RK1_ENABLED
2446 PURE module subroutine setMC_EXP_AXX_UXD_ONO_RK1(mat, subset, info, ndim, roff, coff)
2447#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2448 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_AXX_UXD_ONO_RK1
2449#endif
2450 use pm_kind, only: RKG => RK1
2451 integer(IK) , intent(out) :: info
2452 integer(IK) , intent(in) :: ndim, roff, coff
2453 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
2454 type(uppDia_type) , intent(in) :: subset
2455 end subroutine
2456#endif
2457
2458 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2459
2460 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2461 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2462 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2463
2464 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2465
2466#if CK5_ENABLED
2467 PURE module subroutine setMC_EXP_AXX_XLD_ONO_CK5(mat, subset, info, ndim, roff, coff)
2468#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2469 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_AXX_XLD_ONO_CK5
2470#endif
2471 use pm_kind, only: CKG => CK5
2472 integer(IK) , intent(out) :: info
2473 integer(IK) , intent(in) :: ndim, roff, coff
2474 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
2475 type(lowDia_type) , intent(in) :: subset
2476 end subroutine
2477#endif
2478
2479#if CK4_ENABLED
2480 PURE module subroutine setMC_EXP_AXX_XLD_ONO_CK4(mat, subset, info, ndim, roff, coff)
2481#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2482 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_AXX_XLD_ONO_CK4
2483#endif
2484 use pm_kind, only: CKG => CK4
2485 integer(IK) , intent(out) :: info
2486 integer(IK) , intent(in) :: ndim, roff, coff
2487 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
2488 type(lowDia_type) , intent(in) :: subset
2489 end subroutine
2490#endif
2491
2492#if CK3_ENABLED
2493 PURE module subroutine setMC_EXP_AXX_XLD_ONO_CK3(mat, subset, info, ndim, roff, coff)
2494#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2495 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_AXX_XLD_ONO_CK3
2496#endif
2497 use pm_kind, only: CKG => CK3
2498 integer(IK) , intent(out) :: info
2499 integer(IK) , intent(in) :: ndim, roff, coff
2500 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
2501 type(lowDia_type) , intent(in) :: subset
2502 end subroutine
2503#endif
2504
2505#if CK2_ENABLED
2506 PURE module subroutine setMC_EXP_AXX_XLD_ONO_CK2(mat, subset, info, ndim, roff, coff)
2507#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2508 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_AXX_XLD_ONO_CK2
2509#endif
2510 use pm_kind, only: CKG => CK2
2511 integer(IK) , intent(out) :: info
2512 integer(IK) , intent(in) :: ndim, roff, coff
2513 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
2514 type(lowDia_type) , intent(in) :: subset
2515 end subroutine
2516#endif
2517
2518#if CK1_ENABLED
2519 PURE module subroutine setMC_EXP_AXX_XLD_ONO_CK1(mat, subset, info, ndim, roff, coff)
2520#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2521 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_AXX_XLD_ONO_CK1
2522#endif
2523 use pm_kind, only: CKG => CK1
2524 integer(IK) , intent(out) :: info
2525 integer(IK) , intent(in) :: ndim, roff, coff
2526 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
2527 type(lowDia_type) , intent(in) :: subset
2528 end subroutine
2529#endif
2530
2531 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2532
2533#if RK5_ENABLED
2534 PURE module subroutine setMC_EXP_AXX_XLD_ONO_RK5(mat, subset, info, ndim, roff, coff)
2535#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2536 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_AXX_XLD_ONO_RK5
2537#endif
2538 use pm_kind, only: RKG => RK5
2539 integer(IK) , intent(out) :: info
2540 integer(IK) , intent(in) :: ndim, roff, coff
2541 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
2542 type(lowDia_type) , intent(in) :: subset
2543 end subroutine
2544#endif
2545
2546#if RK4_ENABLED
2547 PURE module subroutine setMC_EXP_AXX_XLD_ONO_RK4(mat, subset, info, ndim, roff, coff)
2548#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2549 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_AXX_XLD_ONO_RK4
2550#endif
2551 use pm_kind, only: RKG => RK4
2552 integer(IK) , intent(out) :: info
2553 integer(IK) , intent(in) :: ndim, roff, coff
2554 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
2555 type(lowDia_type) , intent(in) :: subset
2556 end subroutine
2557#endif
2558
2559#if RK3_ENABLED
2560 PURE module subroutine setMC_EXP_AXX_XLD_ONO_RK3(mat, subset, info, ndim, roff, coff)
2561#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2562 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_AXX_XLD_ONO_RK3
2563#endif
2564 use pm_kind, only: RKG => RK3
2565 integer(IK) , intent(out) :: info
2566 integer(IK) , intent(in) :: ndim, roff, coff
2567 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
2568 type(lowDia_type) , intent(in) :: subset
2569 end subroutine
2570#endif
2571
2572#if RK2_ENABLED
2573 PURE module subroutine setMC_EXP_AXX_XLD_ONO_RK2(mat, subset, info, ndim, roff, coff)
2574#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2575 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_AXX_XLD_ONO_RK2
2576#endif
2577 use pm_kind, only: RKG => RK2
2578 integer(IK) , intent(out) :: info
2579 integer(IK) , intent(in) :: ndim, roff, coff
2580 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
2581 type(lowDia_type) , intent(in) :: subset
2582 end subroutine
2583#endif
2584
2585#if RK1_ENABLED
2586 PURE module subroutine setMC_EXP_AXX_XLD_ONO_RK1(mat, subset, info, ndim, roff, coff)
2587#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2588 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_AXX_XLD_ONO_RK1
2589#endif
2590 use pm_kind, only: RKG => RK1
2591 integer(IK) , intent(out) :: info
2592 integer(IK) , intent(in) :: ndim, roff, coff
2593 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
2594 type(lowDia_type) , intent(in) :: subset
2595 end subroutine
2596#endif
2597
2598 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2599
2600 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2601 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2602 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2603
2604 end interface
2605
2606 ! explicit, unblocked, nothing
2607
2608 interface setMatChol
2609
2610 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2611 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2612 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2613
2614 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2615
2616#if CK5_ENABLED
2617 PURE module subroutine setMC_EXP_ANI_UXD_ONO_CK5(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2618#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2619 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_UXD_ONO_CK5
2620#endif
2621 use pm_kind, only: CKG => CK5
2622 integer(IK) , intent(out) :: info
2623 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2624 complex(CKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2625 complex(CKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2626 type(nothing_type) , intent(in) :: operation
2627 type(uppDia_type) , intent(in) :: subset
2628 end subroutine
2629#endif
2630
2631#if CK4_ENABLED
2632 PURE module subroutine setMC_EXP_ANI_UXD_ONO_CK4(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2633#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2634 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_UXD_ONO_CK4
2635#endif
2636 use pm_kind, only: CKG => CK4
2637 integer(IK) , intent(out) :: info
2638 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2639 complex(CKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2640 complex(CKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2641 type(nothing_type) , intent(in) :: operation
2642 type(uppDia_type) , intent(in) :: subset
2643 end subroutine
2644#endif
2645
2646#if CK3_ENABLED
2647 PURE module subroutine setMC_EXP_ANI_UXD_ONO_CK3(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2648#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2649 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_UXD_ONO_CK3
2650#endif
2651 use pm_kind, only: CKG => CK3
2652 integer(IK) , intent(out) :: info
2653 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2654 complex(CKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2655 complex(CKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2656 type(nothing_type) , intent(in) :: operation
2657 type(uppDia_type) , intent(in) :: subset
2658 end subroutine
2659#endif
2660
2661#if CK2_ENABLED
2662 PURE module subroutine setMC_EXP_ANI_UXD_ONO_CK2(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2663#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2664 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_UXD_ONO_CK2
2665#endif
2666 use pm_kind, only: CKG => CK2
2667 integer(IK) , intent(out) :: info
2668 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2669 complex(CKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2670 complex(CKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2671 type(nothing_type) , intent(in) :: operation
2672 type(uppDia_type) , intent(in) :: subset
2673 end subroutine
2674#endif
2675
2676#if CK1_ENABLED
2677 PURE module subroutine setMC_EXP_ANI_UXD_ONO_CK1(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2678#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2679 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_UXD_ONO_CK1
2680#endif
2681 use pm_kind, only: CKG => CK1
2682 integer(IK) , intent(out) :: info
2683 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2684 complex(CKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2685 complex(CKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2686 type(nothing_type) , intent(in) :: operation
2687 type(uppDia_type) , intent(in) :: subset
2688 end subroutine
2689#endif
2690
2691 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2692
2693#if RK5_ENABLED
2694 PURE module subroutine setMC_EXP_ANI_UXD_ONO_RK5(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2695#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2696 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_UXD_ONO_RK5
2697#endif
2698 use pm_kind, only: RKG => RK5
2699 integer(IK) , intent(out) :: info
2700 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2701 real(RKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2702 real(RKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2703 type(nothing_type) , intent(in) :: operation
2704 type(uppDia_type) , intent(in) :: subset
2705 end subroutine
2706#endif
2707
2708#if RK4_ENABLED
2709 PURE module subroutine setMC_EXP_ANI_UXD_ONO_RK4(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2710#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2711 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_UXD_ONO_RK4
2712#endif
2713 use pm_kind, only: RKG => RK4
2714 integer(IK) , intent(out) :: info
2715 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2716 real(RKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2717 real(RKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2718 type(nothing_type) , intent(in) :: operation
2719 type(uppDia_type) , intent(in) :: subset
2720 end subroutine
2721#endif
2722
2723#if RK3_ENABLED
2724 PURE module subroutine setMC_EXP_ANI_UXD_ONO_RK3(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2725#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2726 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_UXD_ONO_RK3
2727#endif
2728 use pm_kind, only: RKG => RK3
2729 integer(IK) , intent(out) :: info
2730 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2731 real(RKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2732 real(RKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2733 type(nothing_type) , intent(in) :: operation
2734 type(uppDia_type) , intent(in) :: subset
2735 end subroutine
2736#endif
2737
2738#if RK2_ENABLED
2739 PURE module subroutine setMC_EXP_ANI_UXD_ONO_RK2(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2740#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2741 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_UXD_ONO_RK2
2742#endif
2743 use pm_kind, only: RKG => RK2
2744 integer(IK) , intent(out) :: info
2745 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2746 real(RKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2747 real(RKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2748 type(nothing_type) , intent(in) :: operation
2749 type(uppDia_type) , intent(in) :: subset
2750 end subroutine
2751#endif
2752
2753#if RK1_ENABLED
2754 PURE module subroutine setMC_EXP_ANI_UXD_ONO_RK1(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2755#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2756 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_UXD_ONO_RK1
2757#endif
2758 use pm_kind, only: RKG => RK1
2759 integer(IK) , intent(out) :: info
2760 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2761 real(RKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2762 real(RKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2763 type(nothing_type) , intent(in) :: operation
2764 type(uppDia_type) , intent(in) :: subset
2765 end subroutine
2766#endif
2767
2768 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2769
2770 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2771 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2772 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2773
2774 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2775
2776#if CK5_ENABLED
2777 PURE module subroutine setMC_EXP_ANI_XLD_ONO_CK5(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2778#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2779 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_XLD_ONO_CK5
2780#endif
2781 use pm_kind, only: CKG => CK5
2782 integer(IK) , intent(out) :: info
2783 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2784 complex(CKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2785 complex(CKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2786 type(nothing_type) , intent(in) :: operation
2787 type(lowDia_type) , intent(in) :: subset
2788 end subroutine
2789#endif
2790
2791#if CK4_ENABLED
2792 PURE module subroutine setMC_EXP_ANI_XLD_ONO_CK4(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2793#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2794 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_XLD_ONO_CK4
2795#endif
2796 use pm_kind, only: CKG => CK4
2797 integer(IK) , intent(out) :: info
2798 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2799 complex(CKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2800 complex(CKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2801 type(nothing_type) , intent(in) :: operation
2802 type(lowDia_type) , intent(in) :: subset
2803 end subroutine
2804#endif
2805
2806#if CK3_ENABLED
2807 PURE module subroutine setMC_EXP_ANI_XLD_ONO_CK3(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2808#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2809 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_XLD_ONO_CK3
2810#endif
2811 use pm_kind, only: CKG => CK3
2812 integer(IK) , intent(out) :: info
2813 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2814 complex(CKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2815 complex(CKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2816 type(nothing_type) , intent(in) :: operation
2817 type(lowDia_type) , intent(in) :: subset
2818 end subroutine
2819#endif
2820
2821#if CK2_ENABLED
2822 PURE module subroutine setMC_EXP_ANI_XLD_ONO_CK2(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2823#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2824 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_XLD_ONO_CK2
2825#endif
2826 use pm_kind, only: CKG => CK2
2827 integer(IK) , intent(out) :: info
2828 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2829 complex(CKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2830 complex(CKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2831 type(nothing_type) , intent(in) :: operation
2832 type(lowDia_type) , intent(in) :: subset
2833 end subroutine
2834#endif
2835
2836#if CK1_ENABLED
2837 PURE module subroutine setMC_EXP_ANI_XLD_ONO_CK1(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2838#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2839 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_XLD_ONO_CK1
2840#endif
2841 use pm_kind, only: CKG => CK1
2842 integer(IK) , intent(out) :: info
2843 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2844 complex(CKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2845 complex(CKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2846 type(nothing_type) , intent(in) :: operation
2847 type(lowDia_type) , intent(in) :: subset
2848 end subroutine
2849#endif
2850
2851 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2852
2853#if RK5_ENABLED
2854 PURE module subroutine setMC_EXP_ANI_XLD_ONO_RK5(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2855#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2856 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_XLD_ONO_RK5
2857#endif
2858 use pm_kind, only: RKG => RK5
2859 integer(IK) , intent(out) :: info
2860 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2861 real(RKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2862 real(RKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2863 type(nothing_type) , intent(in) :: operation
2864 type(lowDia_type) , intent(in) :: subset
2865 end subroutine
2866#endif
2867
2868#if RK4_ENABLED
2869 PURE module subroutine setMC_EXP_ANI_XLD_ONO_RK4(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2870#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2871 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_XLD_ONO_RK4
2872#endif
2873 use pm_kind, only: RKG => RK4
2874 integer(IK) , intent(out) :: info
2875 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2876 real(RKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2877 real(RKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2878 type(nothing_type) , intent(in) :: operation
2879 type(lowDia_type) , intent(in) :: subset
2880 end subroutine
2881#endif
2882
2883#if RK3_ENABLED
2884 PURE module subroutine setMC_EXP_ANI_XLD_ONO_RK3(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2885#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2886 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_XLD_ONO_RK3
2887#endif
2888 use pm_kind, only: RKG => RK3
2889 integer(IK) , intent(out) :: info
2890 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2891 real(RKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2892 real(RKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2893 type(nothing_type) , intent(in) :: operation
2894 type(lowDia_type) , intent(in) :: subset
2895 end subroutine
2896#endif
2897
2898#if RK2_ENABLED
2899 PURE module subroutine setMC_EXP_ANI_XLD_ONO_RK2(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2900#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2901 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_XLD_ONO_RK2
2902#endif
2903 use pm_kind, only: RKG => RK2
2904 integer(IK) , intent(out) :: info
2905 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2906 real(RKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2907 real(RKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2908 type(nothing_type) , intent(in) :: operation
2909 type(lowDia_type) , intent(in) :: subset
2910 end subroutine
2911#endif
2912
2913#if RK1_ENABLED
2914 PURE module subroutine setMC_EXP_ANI_XLD_ONO_RK1(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2915#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2916 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_XLD_ONO_RK1
2917#endif
2918 use pm_kind, only: RKG => RK1
2919 integer(IK) , intent(out) :: info
2920 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2921 real(RKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2922 real(RKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2923 type(nothing_type) , intent(in) :: operation
2924 type(lowDia_type) , intent(in) :: subset
2925 end subroutine
2926#endif
2927
2928 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2929
2930 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2931 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2932 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2933
2934 end interface
2935
2936 ! explicit, unblocked, transHerm
2937
2938 interface setMatChol
2939
2940 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2941 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2942 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2943
2944 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2945
2946#if CK5_ENABLED
2947 PURE module subroutine setMC_EXP_ANI_UXD_OTH_CK5(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2948#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2949 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_UXD_OTH_CK5
2950#endif
2951 use pm_kind, only: CKG => CK5
2952 integer(IK) , intent(out) :: info
2953 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2954 complex(CKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2955 complex(CKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2956 type(transHerm_type), intent(in) :: operation
2957 type(uppDia_type) , intent(in) :: subset
2958 end subroutine
2959#endif
2960
2961#if CK4_ENABLED
2962 PURE module subroutine setMC_EXP_ANI_UXD_OTH_CK4(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2963#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2964 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_UXD_OTH_CK4
2965#endif
2966 use pm_kind, only: CKG => CK4
2967 integer(IK) , intent(out) :: info
2968 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2969 complex(CKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2970 complex(CKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2971 type(transHerm_type), intent(in) :: operation
2972 type(uppDia_type) , intent(in) :: subset
2973 end subroutine
2974#endif
2975
2976#if CK3_ENABLED
2977 PURE module subroutine setMC_EXP_ANI_UXD_OTH_CK3(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2978#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2979 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_UXD_OTH_CK3
2980#endif
2981 use pm_kind, only: CKG => CK3
2982 integer(IK) , intent(out) :: info
2983 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2984 complex(CKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
2985 complex(CKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
2986 type(transHerm_type), intent(in) :: operation
2987 type(uppDia_type) , intent(in) :: subset
2988 end subroutine
2989#endif
2990
2991#if CK2_ENABLED
2992 PURE module subroutine setMC_EXP_ANI_UXD_OTH_CK2(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
2993#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2994 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_UXD_OTH_CK2
2995#endif
2996 use pm_kind, only: CKG => CK2
2997 integer(IK) , intent(out) :: info
2998 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
2999 complex(CKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
3000 complex(CKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
3001 type(transHerm_type), intent(in) :: operation
3002 type(uppDia_type) , intent(in) :: subset
3003 end subroutine
3004#endif
3005
3006#if CK1_ENABLED
3007 PURE module subroutine setMC_EXP_ANI_UXD_OTH_CK1(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
3008#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3009 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_UXD_OTH_CK1
3010#endif
3011 use pm_kind, only: CKG => CK1
3012 integer(IK) , intent(out) :: info
3013 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
3014 complex(CKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
3015 complex(CKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
3016 type(transHerm_type), intent(in) :: operation
3017 type(uppDia_type) , intent(in) :: subset
3018 end subroutine
3019#endif
3020
3021 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3022
3023#if RK5_ENABLED
3024 PURE module subroutine setMC_EXP_ANI_UXD_OTH_RK5(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
3025#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3026 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_UXD_OTH_RK5
3027#endif
3028 use pm_kind, only: RKG => RK5
3029 integer(IK) , intent(out) :: info
3030 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
3031 real(RKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
3032 real(RKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
3033 type(transHerm_type), intent(in) :: operation
3034 type(uppDia_type) , intent(in) :: subset
3035 end subroutine
3036#endif
3037
3038#if RK4_ENABLED
3039 PURE module subroutine setMC_EXP_ANI_UXD_OTH_RK4(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
3040#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3041 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_UXD_OTH_RK4
3042#endif
3043 use pm_kind, only: RKG => RK4
3044 integer(IK) , intent(out) :: info
3045 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
3046 real(RKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
3047 real(RKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
3048 type(transHerm_type), intent(in) :: operation
3049 type(uppDia_type) , intent(in) :: subset
3050 end subroutine
3051#endif
3052
3053#if RK3_ENABLED
3054 PURE module subroutine setMC_EXP_ANI_UXD_OTH_RK3(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
3055#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3056 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_UXD_OTH_RK3
3057#endif
3058 use pm_kind, only: RKG => RK3
3059 integer(IK) , intent(out) :: info
3060 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
3061 real(RKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
3062 real(RKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
3063 type(transHerm_type), intent(in) :: operation
3064 type(uppDia_type) , intent(in) :: subset
3065 end subroutine
3066#endif
3067
3068#if RK2_ENABLED
3069 PURE module subroutine setMC_EXP_ANI_UXD_OTH_RK2(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
3070#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3071 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_UXD_OTH_RK2
3072#endif
3073 use pm_kind, only: RKG => RK2
3074 integer(IK) , intent(out) :: info
3075 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
3076 real(RKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
3077 real(RKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
3078 type(transHerm_type), intent(in) :: operation
3079 type(uppDia_type) , intent(in) :: subset
3080 end subroutine
3081#endif
3082
3083#if RK1_ENABLED
3084 PURE module subroutine setMC_EXP_ANI_UXD_OTH_RK1(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
3085#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3086 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_UXD_OTH_RK1
3087#endif
3088 use pm_kind, only: RKG => RK1
3089 integer(IK) , intent(out) :: info
3090 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
3091 real(RKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
3092 real(RKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
3093 type(transHerm_type), intent(in) :: operation
3094 type(uppDia_type) , intent(in) :: subset
3095 end subroutine
3096#endif
3097
3098 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3099
3100 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3101 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3102 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3103
3104 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3105
3106#if CK5_ENABLED
3107 PURE module subroutine setMC_EXP_ANI_XLD_OTH_CK5(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
3108#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3109 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_XLD_OTH_CK5
3110#endif
3111 use pm_kind, only: CKG => CK5
3112 integer(IK) , intent(out) :: info
3113 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
3114 complex(CKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
3115 complex(CKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
3116 type(transHerm_type), intent(in) :: operation
3117 type(lowDia_type) , intent(in) :: subset
3118 end subroutine
3119#endif
3120
3121#if CK4_ENABLED
3122 PURE module subroutine setMC_EXP_ANI_XLD_OTH_CK4(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
3123#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3124 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_XLD_OTH_CK4
3125#endif
3126 use pm_kind, only: CKG => CK4
3127 integer(IK) , intent(out) :: info
3128 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
3129 complex(CKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
3130 complex(CKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
3131 type(transHerm_type), intent(in) :: operation
3132 type(lowDia_type) , intent(in) :: subset
3133 end subroutine
3134#endif
3135
3136#if CK3_ENABLED
3137 PURE module subroutine setMC_EXP_ANI_XLD_OTH_CK3(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
3138#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3139 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_XLD_OTH_CK3
3140#endif
3141 use pm_kind, only: CKG => CK3
3142 integer(IK) , intent(out) :: info
3143 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
3144 complex(CKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
3145 complex(CKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
3146 type(transHerm_type), intent(in) :: operation
3147 type(lowDia_type) , intent(in) :: subset
3148 end subroutine
3149#endif
3150
3151#if CK2_ENABLED
3152 PURE module subroutine setMC_EXP_ANI_XLD_OTH_CK2(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
3153#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3154 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_XLD_OTH_CK2
3155#endif
3156 use pm_kind, only: CKG => CK2
3157 integer(IK) , intent(out) :: info
3158 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
3159 complex(CKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
3160 complex(CKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
3161 type(transHerm_type), intent(in) :: operation
3162 type(lowDia_type) , intent(in) :: subset
3163 end subroutine
3164#endif
3165
3166#if CK1_ENABLED
3167 PURE module subroutine setMC_EXP_ANI_XLD_OTH_CK1(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
3168#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3169 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_XLD_OTH_CK1
3170#endif
3171 use pm_kind, only: CKG => CK1
3172 integer(IK) , intent(out) :: info
3173 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
3174 complex(CKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
3175 complex(CKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
3176 type(transHerm_type), intent(in) :: operation
3177 type(lowDia_type) , intent(in) :: subset
3178 end subroutine
3179#endif
3180
3181 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3182
3183#if RK5_ENABLED
3184 PURE module subroutine setMC_EXP_ANI_XLD_OTH_RK5(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
3185#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3186 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_XLD_OTH_RK5
3187#endif
3188 use pm_kind, only: RKG => RK5
3189 integer(IK) , intent(out) :: info
3190 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
3191 real(RKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
3192 real(RKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
3193 type(transHerm_type), intent(in) :: operation
3194 type(lowDia_type) , intent(in) :: subset
3195 end subroutine
3196#endif
3197
3198#if RK4_ENABLED
3199 PURE module subroutine setMC_EXP_ANI_XLD_OTH_RK4(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
3200#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3201 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_XLD_OTH_RK4
3202#endif
3203 use pm_kind, only: RKG => RK4
3204 integer(IK) , intent(out) :: info
3205 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
3206 real(RKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
3207 real(RKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
3208 type(transHerm_type), intent(in) :: operation
3209 type(lowDia_type) , intent(in) :: subset
3210 end subroutine
3211#endif
3212
3213#if RK3_ENABLED
3214 PURE module subroutine setMC_EXP_ANI_XLD_OTH_RK3(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
3215#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3216 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_XLD_OTH_RK3
3217#endif
3218 use pm_kind, only: RKG => RK3
3219 integer(IK) , intent(out) :: info
3220 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
3221 real(RKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
3222 real(RKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
3223 type(transHerm_type), intent(in) :: operation
3224 type(lowDia_type) , intent(in) :: subset
3225 end subroutine
3226#endif
3227
3228#if RK2_ENABLED
3229 PURE module subroutine setMC_EXP_ANI_XLD_OTH_RK2(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
3230#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3231 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_XLD_OTH_RK2
3232#endif
3233 use pm_kind, only: RKG => RK2
3234 integer(IK) , intent(out) :: info
3235 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
3236 real(RKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
3237 real(RKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
3238 type(transHerm_type), intent(in) :: operation
3239 type(lowDia_type) , intent(in) :: subset
3240 end subroutine
3241#endif
3242
3243#if RK1_ENABLED
3244 PURE module subroutine setMC_EXP_ANI_XLD_OTH_RK1(mat, subset, info, chol, operation, ndim, roff, coff, rofc, cofc)
3245#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3246 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ANI_XLD_OTH_RK1
3247#endif
3248 use pm_kind, only: RKG => RK1
3249 integer(IK) , intent(out) :: info
3250 integer(IK) , intent(in) :: ndim, roff, coff, rofc, cofc
3251 real(RKG) , intent(in) , contiguous :: mat(1 - roff :, 1 - coff :)
3252 real(RKG) , intent(inout) , contiguous :: chol(1 - rofc :, 1 - cofc :)
3253 type(transHerm_type), intent(in) :: operation
3254 type(lowDia_type) , intent(in) :: subset
3255 end subroutine
3256#endif
3257
3258 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3259
3260 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3261 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3262 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3263
3264 end interface
3265
3266 ! explicit, blocking, iteration
3267
3268 interface setMatChol
3269
3270 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3271 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3272 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3273
3274 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3275
3276#if CK5_ENABLED
3277 PURE recursive module subroutine setMC_EXP_ABI_UXD_ONO_CK5(mat, subset, info, control, ndim, roff, coff, bdim)
3278#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3279 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABI_UXD_ONO_CK5
3280#endif
3281 use pm_kind, only: CKG => CK5
3282 integer(IK) , intent(out) :: info
3283 integer(IK) , intent(in) :: ndim, roff, coff
3284 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3285 type(uppDia_type) , intent(in) :: subset
3286 type(iteration_type), intent(in) :: control
3287 integer(IK) , intent(in) , optional :: bdim
3288 end subroutine
3289#endif
3290
3291#if CK4_ENABLED
3292 PURE recursive module subroutine setMC_EXP_ABI_UXD_ONO_CK4(mat, subset, info, control, ndim, roff, coff, bdim)
3293#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3294 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABI_UXD_ONO_CK4
3295#endif
3296 use pm_kind, only: CKG => CK4
3297 integer(IK) , intent(out) :: info
3298 integer(IK) , intent(in) :: ndim, roff, coff
3299 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3300 type(uppDia_type) , intent(in) :: subset
3301 type(iteration_type), intent(in) :: control
3302 integer(IK) , intent(in) , optional :: bdim
3303 end subroutine
3304#endif
3305
3306#if CK3_ENABLED
3307 PURE recursive module subroutine setMC_EXP_ABI_UXD_ONO_CK3(mat, subset, info, control, ndim, roff, coff, bdim)
3308#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3309 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABI_UXD_ONO_CK3
3310#endif
3311 use pm_kind, only: CKG => CK3
3312 integer(IK) , intent(out) :: info
3313 integer(IK) , intent(in) :: ndim, roff, coff
3314 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3315 type(uppDia_type) , intent(in) :: subset
3316 type(iteration_type), intent(in) :: control
3317 integer(IK) , intent(in) , optional :: bdim
3318 end subroutine
3319#endif
3320
3321#if CK2_ENABLED
3322 PURE recursive module subroutine setMC_EXP_ABI_UXD_ONO_CK2(mat, subset, info, control, ndim, roff, coff, bdim)
3323#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3324 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABI_UXD_ONO_CK2
3325#endif
3326 use pm_kind, only: CKG => CK2
3327 integer(IK) , intent(out) :: info
3328 integer(IK) , intent(in) :: ndim, roff, coff
3329 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3330 type(uppDia_type) , intent(in) :: subset
3331 type(iteration_type), intent(in) :: control
3332 integer(IK) , intent(in) , optional :: bdim
3333 end subroutine
3334#endif
3335
3336#if CK1_ENABLED
3337 PURE recursive module subroutine setMC_EXP_ABI_UXD_ONO_CK1(mat, subset, info, control, ndim, roff, coff, bdim)
3338#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3339 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABI_UXD_ONO_CK1
3340#endif
3341 use pm_kind, only: CKG => CK1
3342 integer(IK) , intent(out) :: info
3343 integer(IK) , intent(in) :: ndim, roff, coff
3344 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3345 type(uppDia_type) , intent(in) :: subset
3346 type(iteration_type), intent(in) :: control
3347 integer(IK) , intent(in) , optional :: bdim
3348 end subroutine
3349#endif
3350
3351 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3352
3353#if RK5_ENABLED
3354 PURE recursive module subroutine setMC_EXP_ABI_UXD_ONO_RK5(mat, subset, info, control, ndim, roff, coff, bdim)
3355#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3356 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABI_UXD_ONO_RK5
3357#endif
3358 use pm_kind, only: RKG => RK5
3359 integer(IK) , intent(out) :: info
3360 integer(IK) , intent(in) :: ndim, roff, coff
3361 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3362 type(uppDia_type) , intent(in) :: subset
3363 type(iteration_type), intent(in) :: control
3364 integer(IK) , intent(in) , optional :: bdim
3365 end subroutine
3366#endif
3367
3368#if RK4_ENABLED
3369 PURE recursive module subroutine setMC_EXP_ABI_UXD_ONO_RK4(mat, subset, info, control, ndim, roff, coff, bdim)
3370#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3371 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABI_UXD_ONO_RK4
3372#endif
3373 use pm_kind, only: RKG => RK4
3374 integer(IK) , intent(out) :: info
3375 integer(IK) , intent(in) :: ndim, roff, coff
3376 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3377 type(uppDia_type) , intent(in) :: subset
3378 type(iteration_type), intent(in) :: control
3379 integer(IK) , intent(in) , optional :: bdim
3380 end subroutine
3381#endif
3382
3383#if RK3_ENABLED
3384 PURE recursive module subroutine setMC_EXP_ABI_UXD_ONO_RK3(mat, subset, info, control, ndim, roff, coff, bdim)
3385#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3386 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABI_UXD_ONO_RK3
3387#endif
3388 use pm_kind, only: RKG => RK3
3389 integer(IK) , intent(out) :: info
3390 integer(IK) , intent(in) :: ndim, roff, coff
3391 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3392 type(uppDia_type) , intent(in) :: subset
3393 type(iteration_type), intent(in) :: control
3394 integer(IK) , intent(in) , optional :: bdim
3395 end subroutine
3396#endif
3397
3398#if RK2_ENABLED
3399 PURE recursive module subroutine setMC_EXP_ABI_UXD_ONO_RK2(mat, subset, info, control, ndim, roff, coff, bdim)
3400#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3401 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABI_UXD_ONO_RK2
3402#endif
3403 use pm_kind, only: RKG => RK2
3404 integer(IK) , intent(out) :: info
3405 integer(IK) , intent(in) :: ndim, roff, coff
3406 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3407 type(uppDia_type) , intent(in) :: subset
3408 type(iteration_type), intent(in) :: control
3409 integer(IK) , intent(in) , optional :: bdim
3410 end subroutine
3411#endif
3412
3413#if RK1_ENABLED
3414 PURE recursive module subroutine setMC_EXP_ABI_UXD_ONO_RK1(mat, subset, info, control, ndim, roff, coff, bdim)
3415#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3416 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABI_UXD_ONO_RK1
3417#endif
3418 use pm_kind, only: RKG => RK1
3419 integer(IK) , intent(out) :: info
3420 integer(IK) , intent(in) :: ndim, roff, coff
3421 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3422 type(uppDia_type) , intent(in) :: subset
3423 type(iteration_type), intent(in) :: control
3424 integer(IK) , intent(in) , optional :: bdim
3425 end subroutine
3426#endif
3427
3428 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3429
3430 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3431 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3432 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3433
3434 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3435
3436#if CK5_ENABLED
3437 PURE recursive module subroutine setMC_EXP_ABI_XLD_ONO_CK5(mat, subset, info, control, ndim, roff, coff, bdim)
3438#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3439 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABI_XLD_ONO_CK5
3440#endif
3441 use pm_kind, only: CKG => CK5
3442 integer(IK) , intent(out) :: info
3443 integer(IK) , intent(in) :: ndim, roff, coff
3444 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3445 type(lowDia_type) , intent(in) :: subset
3446 type(iteration_type), intent(in) :: control
3447 integer(IK) , intent(in) , optional :: bdim
3448 end subroutine
3449#endif
3450
3451#if CK4_ENABLED
3452 PURE recursive module subroutine setMC_EXP_ABI_XLD_ONO_CK4(mat, subset, info, control, ndim, roff, coff, bdim)
3453#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3454 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABI_XLD_ONO_CK4
3455#endif
3456 use pm_kind, only: CKG => CK4
3457 integer(IK) , intent(out) :: info
3458 integer(IK) , intent(in) :: ndim, roff, coff
3459 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3460 type(lowDia_type) , intent(in) :: subset
3461 type(iteration_type), intent(in) :: control
3462 integer(IK) , intent(in) , optional :: bdim
3463 end subroutine
3464#endif
3465
3466#if CK3_ENABLED
3467 PURE recursive module subroutine setMC_EXP_ABI_XLD_ONO_CK3(mat, subset, info, control, ndim, roff, coff, bdim)
3468#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3469 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABI_XLD_ONO_CK3
3470#endif
3471 use pm_kind, only: CKG => CK3
3472 integer(IK) , intent(out) :: info
3473 integer(IK) , intent(in) :: ndim, roff, coff
3474 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3475 type(lowDia_type) , intent(in) :: subset
3476 type(iteration_type), intent(in) :: control
3477 integer(IK) , intent(in) , optional :: bdim
3478 end subroutine
3479#endif
3480
3481#if CK2_ENABLED
3482 PURE recursive module subroutine setMC_EXP_ABI_XLD_ONO_CK2(mat, subset, info, control, ndim, roff, coff, bdim)
3483#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3484 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABI_XLD_ONO_CK2
3485#endif
3486 use pm_kind, only: CKG => CK2
3487 integer(IK) , intent(out) :: info
3488 integer(IK) , intent(in) :: ndim, roff, coff
3489 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3490 type(lowDia_type) , intent(in) :: subset
3491 type(iteration_type), intent(in) :: control
3492 integer(IK) , intent(in) , optional :: bdim
3493 end subroutine
3494#endif
3495
3496#if CK1_ENABLED
3497 PURE recursive module subroutine setMC_EXP_ABI_XLD_ONO_CK1(mat, subset, info, control, ndim, roff, coff, bdim)
3498#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3499 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABI_XLD_ONO_CK1
3500#endif
3501 use pm_kind, only: CKG => CK1
3502 integer(IK) , intent(out) :: info
3503 integer(IK) , intent(in) :: ndim, roff, coff
3504 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3505 type(lowDia_type) , intent(in) :: subset
3506 type(iteration_type), intent(in) :: control
3507 integer(IK) , intent(in) , optional :: bdim
3508 end subroutine
3509#endif
3510
3511 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3512
3513#if RK5_ENABLED
3514 PURE recursive module subroutine setMC_EXP_ABI_XLD_ONO_RK5(mat, subset, info, control, ndim, roff, coff, bdim)
3515#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3516 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABI_XLD_ONO_RK5
3517#endif
3518 use pm_kind, only: RKG => RK5
3519 integer(IK) , intent(out) :: info
3520 integer(IK) , intent(in) :: ndim, roff, coff
3521 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3522 type(lowDia_type) , intent(in) :: subset
3523 type(iteration_type), intent(in) :: control
3524 integer(IK) , intent(in) , optional :: bdim
3525 end subroutine
3526#endif
3527
3528#if RK4_ENABLED
3529 PURE recursive module subroutine setMC_EXP_ABI_XLD_ONO_RK4(mat, subset, info, control, ndim, roff, coff, bdim)
3530#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3531 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABI_XLD_ONO_RK4
3532#endif
3533 use pm_kind, only: RKG => RK4
3534 integer(IK) , intent(out) :: info
3535 integer(IK) , intent(in) :: ndim, roff, coff
3536 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3537 type(lowDia_type) , intent(in) :: subset
3538 type(iteration_type), intent(in) :: control
3539 integer(IK) , intent(in) , optional :: bdim
3540 end subroutine
3541#endif
3542
3543#if RK3_ENABLED
3544 PURE recursive module subroutine setMC_EXP_ABI_XLD_ONO_RK3(mat, subset, info, control, ndim, roff, coff, bdim)
3545#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3546 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABI_XLD_ONO_RK3
3547#endif
3548 use pm_kind, only: RKG => RK3
3549 integer(IK) , intent(out) :: info
3550 integer(IK) , intent(in) :: ndim, roff, coff
3551 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3552 type(lowDia_type) , intent(in) :: subset
3553 type(iteration_type), intent(in) :: control
3554 integer(IK) , intent(in) , optional :: bdim
3555 end subroutine
3556#endif
3557
3558#if RK2_ENABLED
3559 PURE recursive module subroutine setMC_EXP_ABI_XLD_ONO_RK2(mat, subset, info, control, ndim, roff, coff, bdim)
3560#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3561 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABI_XLD_ONO_RK2
3562#endif
3563 use pm_kind, only: RKG => RK2
3564 integer(IK) , intent(out) :: info
3565 integer(IK) , intent(in) :: ndim, roff, coff
3566 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3567 type(lowDia_type) , intent(in) :: subset
3568 type(iteration_type), intent(in) :: control
3569 integer(IK) , intent(in) , optional :: bdim
3570 end subroutine
3571#endif
3572
3573#if RK1_ENABLED
3574 PURE recursive module subroutine setMC_EXP_ABI_XLD_ONO_RK1(mat, subset, info, control, ndim, roff, coff, bdim)
3575#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3576 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABI_XLD_ONO_RK1
3577#endif
3578 use pm_kind, only: RKG => RK1
3579 integer(IK) , intent(out) :: info
3580 integer(IK) , intent(in) :: ndim, roff, coff
3581 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3582 type(lowDia_type) , intent(in) :: subset
3583 type(iteration_type), intent(in) :: control
3584 integer(IK) , intent(in) , optional :: bdim
3585 end subroutine
3586#endif
3587
3588 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3589
3590 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3591 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3592 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3593
3594 end interface
3595
3596 ! explicit, blocking, recursion
3597
3598 interface setMatChol
3599
3600 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3601 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3602 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3603
3604 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3605
3606#if CK5_ENABLED
3607 PURE recursive module subroutine setMC_EXP_ABR_UXD_ONO_CK5(mat, subset, info, control, ndim, roff, coff)
3608#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3609 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABR_UXD_ONO_CK5
3610#endif
3611 use pm_kind, only: CKG => CK5
3612 integer(IK) , intent(out) :: info
3613 integer(IK) , intent(in) :: ndim, roff, coff
3614 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3615 type(uppDia_type) , intent(in) :: subset
3616 type(recursion_type), intent(in) :: control
3617 end subroutine
3618#endif
3619
3620#if CK4_ENABLED
3621 PURE recursive module subroutine setMC_EXP_ABR_UXD_ONO_CK4(mat, subset, info, control, ndim, roff, coff)
3622#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3623 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABR_UXD_ONO_CK4
3624#endif
3625 use pm_kind, only: CKG => CK4
3626 integer(IK) , intent(out) :: info
3627 integer(IK) , intent(in) :: ndim, roff, coff
3628 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3629 type(uppDia_type) , intent(in) :: subset
3630 type(recursion_type), intent(in) :: control
3631 end subroutine
3632#endif
3633
3634#if CK3_ENABLED
3635 PURE recursive module subroutine setMC_EXP_ABR_UXD_ONO_CK3(mat, subset, info, control, ndim, roff, coff)
3636#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3637 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABR_UXD_ONO_CK3
3638#endif
3639 use pm_kind, only: CKG => CK3
3640 integer(IK) , intent(out) :: info
3641 integer(IK) , intent(in) :: ndim, roff, coff
3642 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3643 type(uppDia_type) , intent(in) :: subset
3644 type(recursion_type), intent(in) :: control
3645 end subroutine
3646#endif
3647
3648#if CK2_ENABLED
3649 PURE recursive module subroutine setMC_EXP_ABR_UXD_ONO_CK2(mat, subset, info, control, ndim, roff, coff)
3650#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3651 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABR_UXD_ONO_CK2
3652#endif
3653 use pm_kind, only: CKG => CK2
3654 integer(IK) , intent(out) :: info
3655 integer(IK) , intent(in) :: ndim, roff, coff
3656 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3657 type(uppDia_type) , intent(in) :: subset
3658 type(recursion_type), intent(in) :: control
3659 end subroutine
3660#endif
3661
3662#if CK1_ENABLED
3663 PURE recursive module subroutine setMC_EXP_ABR_UXD_ONO_CK1(mat, subset, info, control, ndim, roff, coff)
3664#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3665 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABR_UXD_ONO_CK1
3666#endif
3667 use pm_kind, only: CKG => CK1
3668 integer(IK) , intent(out) :: info
3669 integer(IK) , intent(in) :: ndim, roff, coff
3670 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3671 type(uppDia_type) , intent(in) :: subset
3672 type(recursion_type), intent(in) :: control
3673 end subroutine
3674#endif
3675
3676 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3677
3678#if RK5_ENABLED
3679 PURE recursive module subroutine setMC_EXP_ABR_UXD_ONO_RK5(mat, subset, info, control, ndim, roff, coff)
3680#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3681 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABR_UXD_ONO_RK5
3682#endif
3683 use pm_kind, only: RKG => RK5
3684 integer(IK) , intent(out) :: info
3685 integer(IK) , intent(in) :: ndim, roff, coff
3686 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3687 type(uppDia_type) , intent(in) :: subset
3688 type(recursion_type), intent(in) :: control
3689 end subroutine
3690#endif
3691
3692#if RK4_ENABLED
3693 PURE recursive module subroutine setMC_EXP_ABR_UXD_ONO_RK4(mat, subset, info, control, ndim, roff, coff)
3694#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3695 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABR_UXD_ONO_RK4
3696#endif
3697 use pm_kind, only: RKG => RK4
3698 integer(IK) , intent(out) :: info
3699 integer(IK) , intent(in) :: ndim, roff, coff
3700 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3701 type(uppDia_type) , intent(in) :: subset
3702 type(recursion_type), intent(in) :: control
3703 end subroutine
3704#endif
3705
3706#if RK3_ENABLED
3707 PURE recursive module subroutine setMC_EXP_ABR_UXD_ONO_RK3(mat, subset, info, control, ndim, roff, coff)
3708#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3709 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABR_UXD_ONO_RK3
3710#endif
3711 use pm_kind, only: RKG => RK3
3712 integer(IK) , intent(out) :: info
3713 integer(IK) , intent(in) :: ndim, roff, coff
3714 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3715 type(uppDia_type) , intent(in) :: subset
3716 type(recursion_type), intent(in) :: control
3717 end subroutine
3718#endif
3719
3720#if RK2_ENABLED
3721 PURE recursive module subroutine setMC_EXP_ABR_UXD_ONO_RK2(mat, subset, info, control, ndim, roff, coff)
3722#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3723 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABR_UXD_ONO_RK2
3724#endif
3725 use pm_kind, only: RKG => RK2
3726 integer(IK) , intent(out) :: info
3727 integer(IK) , intent(in) :: ndim, roff, coff
3728 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3729 type(uppDia_type) , intent(in) :: subset
3730 type(recursion_type), intent(in) :: control
3731 end subroutine
3732#endif
3733
3734#if RK1_ENABLED
3735 PURE recursive module subroutine setMC_EXP_ABR_UXD_ONO_RK1(mat, subset, info, control, ndim, roff, coff)
3736#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3737 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABR_UXD_ONO_RK1
3738#endif
3739 use pm_kind, only: RKG => RK1
3740 integer(IK) , intent(out) :: info
3741 integer(IK) , intent(in) :: ndim, roff, coff
3742 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3743 type(uppDia_type) , intent(in) :: subset
3744 type(recursion_type), intent(in) :: control
3745 end subroutine
3746#endif
3747
3748 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3749
3750 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3751 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3752 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3753
3754 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3755
3756#if CK5_ENABLED
3757 PURE recursive module subroutine setMC_EXP_ABR_XLD_ONO_CK5(mat, subset, info, control, ndim, roff, coff)
3758#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3759 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABR_XLD_ONO_CK5
3760#endif
3761 use pm_kind, only: CKG => CK5
3762 integer(IK) , intent(out) :: info
3763 integer(IK) , intent(in) :: ndim, roff, coff
3764 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3765 type(lowDia_type) , intent(in) :: subset
3766 type(recursion_type), intent(in) :: control
3767 end subroutine
3768#endif
3769
3770#if CK4_ENABLED
3771 PURE recursive module subroutine setMC_EXP_ABR_XLD_ONO_CK4(mat, subset, info, control, ndim, roff, coff)
3772#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3773 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABR_XLD_ONO_CK4
3774#endif
3775 use pm_kind, only: CKG => CK4
3776 integer(IK) , intent(out) :: info
3777 integer(IK) , intent(in) :: ndim, roff, coff
3778 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3779 type(lowDia_type) , intent(in) :: subset
3780 type(recursion_type), intent(in) :: control
3781 end subroutine
3782#endif
3783
3784#if CK3_ENABLED
3785 PURE recursive module subroutine setMC_EXP_ABR_XLD_ONO_CK3(mat, subset, info, control, ndim, roff, coff)
3786#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3787 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABR_XLD_ONO_CK3
3788#endif
3789 use pm_kind, only: CKG => CK3
3790 integer(IK) , intent(out) :: info
3791 integer(IK) , intent(in) :: ndim, roff, coff
3792 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3793 type(lowDia_type) , intent(in) :: subset
3794 type(recursion_type), intent(in) :: control
3795 end subroutine
3796#endif
3797
3798#if CK2_ENABLED
3799 PURE recursive module subroutine setMC_EXP_ABR_XLD_ONO_CK2(mat, subset, info, control, ndim, roff, coff)
3800#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3801 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABR_XLD_ONO_CK2
3802#endif
3803 use pm_kind, only: CKG => CK2
3804 integer(IK) , intent(out) :: info
3805 integer(IK) , intent(in) :: ndim, roff, coff
3806 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3807 type(lowDia_type) , intent(in) :: subset
3808 type(recursion_type), intent(in) :: control
3809 end subroutine
3810#endif
3811
3812#if CK1_ENABLED
3813 PURE recursive module subroutine setMC_EXP_ABR_XLD_ONO_CK1(mat, subset, info, control, ndim, roff, coff)
3814#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3815 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABR_XLD_ONO_CK1
3816#endif
3817 use pm_kind, only: CKG => CK1
3818 integer(IK) , intent(out) :: info
3819 integer(IK) , intent(in) :: ndim, roff, coff
3820 complex(CKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3821 type(lowDia_type) , intent(in) :: subset
3822 type(recursion_type), intent(in) :: control
3823 end subroutine
3824#endif
3825
3826 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3827
3828#if RK5_ENABLED
3829 PURE recursive module subroutine setMC_EXP_ABR_XLD_ONO_RK5(mat, subset, info, control, ndim, roff, coff)
3830#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3831 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABR_XLD_ONO_RK5
3832#endif
3833 use pm_kind, only: RKG => RK5
3834 integer(IK) , intent(out) :: info
3835 integer(IK) , intent(in) :: ndim, roff, coff
3836 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3837 type(lowDia_type) , intent(in) :: subset
3838 type(recursion_type), intent(in) :: control
3839 end subroutine
3840#endif
3841
3842#if RK4_ENABLED
3843 PURE recursive module subroutine setMC_EXP_ABR_XLD_ONO_RK4(mat, subset, info, control, ndim, roff, coff)
3844#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3845 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABR_XLD_ONO_RK4
3846#endif
3847 use pm_kind, only: RKG => RK4
3848 integer(IK) , intent(out) :: info
3849 integer(IK) , intent(in) :: ndim, roff, coff
3850 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3851 type(lowDia_type) , intent(in) :: subset
3852 type(recursion_type), intent(in) :: control
3853 end subroutine
3854#endif
3855
3856#if RK3_ENABLED
3857 PURE recursive module subroutine setMC_EXP_ABR_XLD_ONO_RK3(mat, subset, info, control, ndim, roff, coff)
3858#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3859 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABR_XLD_ONO_RK3
3860#endif
3861 use pm_kind, only: RKG => RK3
3862 integer(IK) , intent(out) :: info
3863 integer(IK) , intent(in) :: ndim, roff, coff
3864 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3865 type(lowDia_type) , intent(in) :: subset
3866 type(recursion_type), intent(in) :: control
3867 end subroutine
3868#endif
3869
3870#if RK2_ENABLED
3871 PURE recursive module subroutine setMC_EXP_ABR_XLD_ONO_RK2(mat, subset, info, control, ndim, roff, coff)
3872#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3873 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABR_XLD_ONO_RK2
3874#endif
3875 use pm_kind, only: RKG => RK2
3876 integer(IK) , intent(out) :: info
3877 integer(IK) , intent(in) :: ndim, roff, coff
3878 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3879 type(lowDia_type) , intent(in) :: subset
3880 type(recursion_type), intent(in) :: control
3881 end subroutine
3882#endif
3883
3884#if RK1_ENABLED
3885 PURE recursive module subroutine setMC_EXP_ABR_XLD_ONO_RK1(mat, subset, info, control, ndim, roff, coff)
3886#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3887 !DEC$ ATTRIBUTES DLLEXPORT :: setMC_EXP_ABR_XLD_ONO_RK1
3888#endif
3889 use pm_kind, only: RKG => RK1
3890 integer(IK) , intent(out) :: info
3891 integer(IK) , intent(in) :: ndim, roff, coff
3892 real(RKG) , intent(inout) , contiguous :: mat(1 - roff :, 1 - coff :)
3893 type(lowDia_type) , intent(in) :: subset
3894 type(recursion_type), intent(in) :: control
3895 end subroutine
3896#endif
3897
3898 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3899
3900 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3901 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3902 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3903
3904 end interface
3905
3906!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3907
3908!contains
3909!
3910!!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3911!
3913! > \brief
3914! > Return the Cholesky factorization of the input positive-definite matrix.
3915! >
3916! > \param[in] ndim : The size of the input square matrix - `ndim` by `ndim`.
3917! > \param[inout] ChoUppCovLow : The input square positive-definite (covariance) matrix. Only the lower half and diagonal is needed.
3918! > The lower half will be rewritten with the lower triangle of the Cholesky Factorization.
3919! > \param[out] dia : The diagonal elements of the Cholesky factorization.
3920! >
3921! > \remark
3922! > If `ndim = 1`, `ChoUppCovLow` will not be touched, only `sqrt(ChoUppCovLow)` will be written to the output `dia`.
3923! >
3924! > \warning
3925! > If Cholesky factorization fails, `dia(1)` will be set to `-1` to indicate error on return.
3926! >
3927! > \remark
3928! > This routine is particularly useful for computing the Cholesky upper triangle of lower-triangle
3929! > inverse matrices returned by [getInvLowFromChoLow](@ref getInvLowFromChoLow).
3930! >
3931! > \details
3932! > Returns in the upper triangle of `ChoUppCovLow`, the Cholesky factorization \f$L^T\f$ of \f$\ms{ChoUppCovLow} = L.L^T\f$.
3933! > On input, the lower triangle of `ChoUppCovLow` must be given, which remains intact on output.<br>
3934! >
3935! > \final
3936! >
3937! > \author
3938! > Amir Shahmoradi, Friday 1:53 AM, August 27, 2021, Dallas, TX
3939! pure subroutine setChoUpp(ndim,ChoUppCovLow,dia)
3940!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3941! !DEC$ ATTRIBUTES DLLEXPORT :: setChoUpp
3942!#endif
3943! use pm_kind, only: RK, IK
3944! implicit none
3945! integer(IK), intent(in) :: ndim
3946! real(RKG) , intent(inout) :: ChoUppCovLow(ndim,ndim) ! Upper triangle + diagonal is input matrix, lower is output.
3947! real(RKG) , intent(out) :: dia(ndim)
3948! real(RKG) :: summ
3949! integer(IK) :: i
3950! do i=1,ndim
3951! summ = ChoUppCovLow(i,i) - dot_product(ChoUppCovLow(1:i-1,i),ChoUppCovLow(1:i-1,i))
3952! if (summ <= 0._ONO_RK) then
3953! dia(1) = -1._ONO_RK
3954! return
3955! end if
3956! dia(i) = sqrt(summ)
3957! ChoUppCovLow(i,i+1:ndim) = ( ChoUppCovLow(i+1:ndim,i) - matmul(ChoUppCovLow(1:i-1,i),ChoUppCovLow(1:i-1,i+1:ndim)) ) / dia(i)
3958! end do
3959! end subroutine setChoUpp
3961
3962!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3963
3964end module pm_matrixChol ! LCOV_EXCL_LINE
Generate and return the upper or the lower Cholesky factorization of the input symmetric positive-def...
[LEGACY code] Return the lower-triangle of the Cholesky factorization of the symmetric positive-def...
Compute and return the lower/upper-triangle of the Cholesky factorization of the input Symmetric/Her...
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
type(nothing_type), parameter nothing
This is a scalar parameter object of type nothing_type that is exclusively used to request no action ...
Definition: pm_array.F90:167
This module contains abstract and concrete derived types that are required for compile-time resolutio...
Definition: pm_control.F90:45
type(iteration_type), parameter iteration
This is a scalar parameter object of type iteration_type that is exclusively used to request looping ...
Definition: pm_control.F90:259
type(recursion_type), parameter recursion
This is a scalar parameter object of type recursion_type that is exclusively used to request recursiv...
Definition: pm_control.F90:198
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
integer, parameter RK5
Definition: pm_kind.F90:478
integer, parameter RK4
Definition: pm_kind.F90:489
integer, parameter RK2
Definition: pm_kind.F90:511
integer, parameter CK1
Definition: pm_kind.F90:464
integer, parameter RK3
Definition: pm_kind.F90:500
integer, parameter LK
The default logical kind in the ParaMonte library: kind(.true.) in Fortran, kind(....
Definition: pm_kind.F90:541
integer, parameter CK5
Definition: pm_kind.F90:420
integer, parameter CK4
Definition: pm_kind.F90:431
integer, parameter CK2
Definition: pm_kind.F90:453
integer, parameter CK3
Definition: pm_kind.F90:442
integer, parameter IK
The default integer kind in the ParaMonte library: int32 in Fortran, c_int32_t in C-Fortran Interoper...
Definition: pm_kind.F90:540
integer, parameter SK
The default character kind in the ParaMonte library: kind("a") in Fortran, c_char in C-Fortran Intero...
Definition: pm_kind.F90:539
integer, parameter RK1
Definition: pm_kind.F90:522
This module contains procedures and generic interfaces for computing the Cholesky factorization of po...
This module contains abstract and concrete derived types that are required for compile-time resolutio...
type(rdpack_type), parameter rdpack
This is an object instance of class rdpack_type that is exclusively used to signify Rectangular Spars...
type(lfpack_type), parameter lfpack
This is an object instance of class lfpack_type that is exclusively used to signify Linear Full conti...
type(rfpack_type), parameter rfpack
This is an object instance of class rfpack_type that is exclusively used to signify Rectangular Full ...
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(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 module contains abstract and concrete derived types and procedures related to various common mat...
type(transHerm_type), parameter transHerm
This is a scalar parameter object of type transHerm_type that is exclusively used to request Hermitia...
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 looping procedure int...
Definition: pm_control.F90:234
This is a concrete derived type whose instances are exclusively used to request recursive procedure i...
Definition: pm_control.F90:173
This is a concrete derived type whose instances are exclusively used to signify Linear Full contiguou...
This is a concrete derived type whose instances are exclusively used to signify Rectangular Sparse (o...
This is a concrete derived type whose instances are exclusively used to signify Rectangular Full cont...
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 upper-diagonal triang...
This is a concrete derived type whose instances are exclusively used to request Hermitian (conjugate)...
This is a derived type for constructing concrete derived types to distinguish various procedure signa...