ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_matrixInv.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 = = = =
209
210!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
211
213
214 use pm_kind, only: SK, IK
215 use pm_matrixClass, only: matrix_type
216 use pm_matrixClass, only: lup, lup_type
228
229 implicit none
230
231 character(*,SK), parameter :: MODULE_NAME = "@pm_matrixInv"
232
233!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
234
260 end type
261
278#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
279 !DIR$ ATTRIBUTES DLLEXPORT :: inversion
280#endif
281
282!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
283
359
360 ! implicit Def.
361
362 interface getMatInv
363
364 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
365
366#if CK5_ENABLED
367 impure module function getMatInvDef_IMP_CK5(mat) result(inv)
368#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
369 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvDef_IMP_CK5
370#endif
371 use pm_kind, only: CKG => CK5
372 complex(CKG) , intent(in) , contiguous :: mat(:,:)
373 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
374 end function
375#endif
376
377#if CK4_ENABLED
378 impure module function getMatInvDef_IMP_CK4(mat) result(inv)
379#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
380 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvDef_IMP_CK4
381#endif
382 use pm_kind, only: CKG => CK4
383 complex(CKG) , intent(in) , contiguous :: mat(:,:)
384 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
385 end function
386#endif
387
388#if CK3_ENABLED
389 impure module function getMatInvDef_IMP_CK3(mat) result(inv)
390#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
391 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvDef_IMP_CK3
392#endif
393 use pm_kind, only: CKG => CK3
394 complex(CKG) , intent(in) , contiguous :: mat(:,:)
395 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
396 end function
397#endif
398
399#if CK2_ENABLED
400 impure module function getMatInvDef_IMP_CK2(mat) result(inv)
401#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
402 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvDef_IMP_CK2
403#endif
404 use pm_kind, only: CKG => CK2
405 complex(CKG) , intent(in) , contiguous :: mat(:,:)
406 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
407 end function
408#endif
409
410#if CK1_ENABLED
411 impure module function getMatInvDef_IMP_CK1(mat) result(inv)
412#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
413 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvDef_IMP_CK1
414#endif
415 use pm_kind, only: CKG => CK1
416 complex(CKG) , intent(in) , contiguous :: mat(:,:)
417 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
418 end function
419#endif
420
421 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
422
423#if RK5_ENABLED
424 impure module function getMatInvDef_IMP_RK5(mat) result(inv)
425#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
426 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvDef_IMP_RK5
427#endif
428 use pm_kind, only: RKG => RK5
429 real(RKG) , intent(in) , contiguous :: mat(:,:)
430 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
431 end function
432#endif
433
434#if RK4_ENABLED
435 impure module function getMatInvDef_IMP_RK4(mat) result(inv)
436#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
437 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvDef_IMP_RK4
438#endif
439 use pm_kind, only: RKG => RK4
440 real(RKG) , intent(in) , contiguous :: mat(:,:)
441 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
442 end function
443#endif
444
445#if RK3_ENABLED
446 impure module function getMatInvDef_IMP_RK3(mat) result(inv)
447#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
448 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvDef_IMP_RK3
449#endif
450 use pm_kind, only: RKG => RK3
451 real(RKG) , intent(in) , contiguous :: mat(:,:)
452 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
453 end function
454#endif
455
456#if RK2_ENABLED
457 impure module function getMatInvDef_IMP_RK2(mat) result(inv)
458#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
459 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvDef_IMP_RK2
460#endif
461 use pm_kind, only: RKG => RK2
462 real(RKG) , intent(in) , contiguous :: mat(:,:)
463 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
464 end function
465#endif
466
467#if RK1_ENABLED
468 impure module function getMatInvDef_IMP_RK1(mat) result(inv)
469#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
470 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvDef_IMP_RK1
471#endif
472 use pm_kind, only: RKG => RK1
473 real(RKG) , intent(in) , contiguous :: mat(:,:)
474 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
475 end function
476#endif
477
478 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
479
480 end interface
481
482 ! implicit Det.
483
484 interface getMatInv
485
486 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
487
488#if CK5_ENABLED
489 impure module function getMatInvDet_IMP_CK5(mat, auxil) result(inv)
490#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
491 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvDet_IMP_CK5
492#endif
493 use pm_kind, only: CKG => CK5
494 complex(CKG) , intent(in) , contiguous :: mat(:,:)
495 complex(CKG) , intent(out) :: auxil
496 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
497 end function
498#endif
499
500#if CK4_ENABLED
501 impure module function getMatInvDet_IMP_CK4(mat, auxil) result(inv)
502#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
503 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvDet_IMP_CK4
504#endif
505 use pm_kind, only: CKG => CK4
506 complex(CKG) , intent(in) , contiguous :: mat(:,:)
507 complex(CKG) , intent(out) :: auxil
508 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
509 end function
510#endif
511
512#if CK3_ENABLED
513 impure module function getMatInvDet_IMP_CK3(mat, auxil) result(inv)
514#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
515 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvDet_IMP_CK3
516#endif
517 use pm_kind, only: CKG => CK3
518 complex(CKG) , intent(in) , contiguous :: mat(:,:)
519 complex(CKG) , intent(out) :: auxil
520 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
521 end function
522#endif
523
524#if CK2_ENABLED
525 impure module function getMatInvDet_IMP_CK2(mat, auxil) result(inv)
526#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
527 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvDet_IMP_CK2
528#endif
529 use pm_kind, only: CKG => CK2
530 complex(CKG) , intent(in) , contiguous :: mat(:,:)
531 complex(CKG) , intent(out) :: auxil
532 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
533 end function
534#endif
535
536#if CK1_ENABLED
537 impure module function getMatInvDet_IMP_CK1(mat, auxil) result(inv)
538#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
539 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvDet_IMP_CK1
540#endif
541 use pm_kind, only: CKG => CK1
542 complex(CKG) , intent(in) , contiguous :: mat(:,:)
543 complex(CKG) , intent(out) :: auxil
544 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
545 end function
546#endif
547
548 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
549
550#if RK5_ENABLED
551 impure module function getMatInvDet_IMP_RK5(mat, auxil) result(inv)
552#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
553 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvDet_IMP_RK5
554#endif
555 use pm_kind, only: RKG => RK5
556 real(RKG) , intent(in) , contiguous :: mat(:,:)
557 real(RKG) , intent(out) :: auxil
558 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
559 end function
560#endif
561
562#if RK4_ENABLED
563 impure module function getMatInvDet_IMP_RK4(mat, auxil) result(inv)
564#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
565 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvDet_IMP_RK4
566#endif
567 use pm_kind, only: RKG => RK4
568 real(RKG) , intent(in) , contiguous :: mat(:,:)
569 real(RKG) , intent(out) :: auxil
570 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
571 end function
572#endif
573
574#if RK3_ENABLED
575 impure module function getMatInvDet_IMP_RK3(mat, auxil) result(inv)
576#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
577 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvDet_IMP_RK3
578#endif
579 use pm_kind, only: RKG => RK3
580 real(RKG) , intent(in) , contiguous :: mat(:,:)
581 real(RKG) , intent(out) :: auxil
582 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
583 end function
584#endif
585
586#if RK2_ENABLED
587 impure module function getMatInvDet_IMP_RK2(mat, auxil) result(inv)
588#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
589 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvDet_IMP_RK2
590#endif
591 use pm_kind, only: RKG => RK2
592 real(RKG) , intent(in) , contiguous :: mat(:,:)
593 real(RKG) , intent(out) :: auxil
594 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
595 end function
596#endif
597
598#if RK1_ENABLED
599 impure module function getMatInvDet_IMP_RK1(mat, auxil) result(inv)
600#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
601 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvDet_IMP_RK1
602#endif
603 use pm_kind, only: RKG => RK1
604 real(RKG) , intent(in) , contiguous :: mat(:,:)
605 real(RKG) , intent(out) :: auxil
606 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
607 end function
608#endif
609
610 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
611
612 end interface
613
614 ! implicit Inf.
615
616 interface getMatInv
617
618 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
619
620#if CK5_ENABLED
621 impure module function getMatInvInf_IMP_CK5(mat, auxil) result(inv)
622#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
623 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvInf_IMP_CK5
624#endif
625 use pm_kind, only: CKG => CK5
626 complex(CKG) , intent(in) , contiguous :: mat(:,:)
627 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
628 integer(IK) , intent(out) :: auxil
629 end function
630#endif
631
632#if CK4_ENABLED
633 impure module function getMatInvInf_IMP_CK4(mat, auxil) result(inv)
634#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
635 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvInf_IMP_CK4
636#endif
637 use pm_kind, only: CKG => CK4
638 complex(CKG) , intent(in) , contiguous :: mat(:,:)
639 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
640 integer(IK) , intent(out) :: auxil
641 end function
642#endif
643
644#if CK3_ENABLED
645 impure module function getMatInvInf_IMP_CK3(mat, auxil) result(inv)
646#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
647 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvInf_IMP_CK3
648#endif
649 use pm_kind, only: CKG => CK3
650 complex(CKG) , intent(in) , contiguous :: mat(:,:)
651 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
652 integer(IK) , intent(out) :: auxil
653 end function
654#endif
655
656#if CK2_ENABLED
657 impure module function getMatInvInf_IMP_CK2(mat, auxil) result(inv)
658#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
659 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvInf_IMP_CK2
660#endif
661 use pm_kind, only: CKG => CK2
662 complex(CKG) , intent(in) , contiguous :: mat(:,:)
663 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
664 integer(IK) , intent(out) :: auxil
665 end function
666#endif
667
668#if CK1_ENABLED
669 impure module function getMatInvInf_IMP_CK1(mat, auxil) result(inv)
670#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
671 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvInf_IMP_CK1
672#endif
673 use pm_kind, only: CKG => CK1
674 complex(CKG) , intent(in) , contiguous :: mat(:,:)
675 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
676 integer(IK) , intent(out) :: auxil
677 end function
678#endif
679
680 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
681
682#if RK5_ENABLED
683 impure module function getMatInvInf_IMP_RK5(mat, auxil) result(inv)
684#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
685 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvInf_IMP_RK5
686#endif
687 use pm_kind, only: RKG => RK5
688 real(RKG) , intent(in) , contiguous :: mat(:,:)
689 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
690 integer(IK) , intent(out) :: auxil
691 end function
692#endif
693
694#if RK4_ENABLED
695 impure module function getMatInvInf_IMP_RK4(mat, auxil) result(inv)
696#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
697 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvInf_IMP_RK4
698#endif
699 use pm_kind, only: RKG => RK4
700 real(RKG) , intent(in) , contiguous :: mat(:,:)
701 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
702 integer(IK) , intent(out) :: auxil
703 end function
704#endif
705
706#if RK3_ENABLED
707 impure module function getMatInvInf_IMP_RK3(mat, auxil) result(inv)
708#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
709 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvInf_IMP_RK3
710#endif
711 use pm_kind, only: RKG => RK3
712 real(RKG) , intent(in) , contiguous :: mat(:,:)
713 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
714 integer(IK) , intent(out) :: auxil
715 end function
716#endif
717
718#if RK2_ENABLED
719 impure module function getMatInvInf_IMP_RK2(mat, auxil) result(inv)
720#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
721 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvInf_IMP_RK2
722#endif
723 use pm_kind, only: RKG => RK2
724 real(RKG) , intent(in) , contiguous :: mat(:,:)
725 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
726 integer(IK) , intent(out) :: auxil
727 end function
728#endif
729
730#if RK1_ENABLED
731 impure module function getMatInvInf_IMP_RK1(mat, auxil) result(inv)
732#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
733 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvInf_IMP_RK1
734#endif
735 use pm_kind, only: RKG => RK1
736 real(RKG) , intent(in) , contiguous :: mat(:,:)
737 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
738 integer(IK) , intent(out) :: auxil
739 end function
740#endif
741
742 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
743
744 end interface
745
746 ! implicit upperDiag.
747
748 interface getMatInv
749
750 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
751
752#if CK5_ENABLED
753 PURE module function getMatInvCUD_IMP_CK5(mat, auxil) result(inv)
754#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
755 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCUD_IMP_CK5
756#endif
757 use pm_kind, only: CKG => CK5
758 complex(CKG) , intent(in) , contiguous :: mat(:,:)
759 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
760 type(upperDiag_type), intent(in) :: auxil
761 end function
762#endif
763
764#if CK4_ENABLED
765 PURE module function getMatInvCUD_IMP_CK4(mat, auxil) result(inv)
766#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
767 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCUD_IMP_CK4
768#endif
769 use pm_kind, only: CKG => CK4
770 complex(CKG) , intent(in) , contiguous :: mat(:,:)
771 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
772 type(upperDiag_type), intent(in) :: auxil
773 end function
774#endif
775
776#if CK3_ENABLED
777 PURE module function getMatInvCUD_IMP_CK3(mat, auxil) result(inv)
778#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
779 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCUD_IMP_CK3
780#endif
781 use pm_kind, only: CKG => CK3
782 complex(CKG) , intent(in) , contiguous :: mat(:,:)
783 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
784 type(upperDiag_type), intent(in) :: auxil
785 end function
786#endif
787
788#if CK2_ENABLED
789 PURE module function getMatInvCUD_IMP_CK2(mat, auxil) result(inv)
790#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
791 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCUD_IMP_CK2
792#endif
793 use pm_kind, only: CKG => CK2
794 complex(CKG) , intent(in) , contiguous :: mat(:,:)
795 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
796 type(upperDiag_type), intent(in) :: auxil
797 end function
798#endif
799
800#if CK1_ENABLED
801 PURE module function getMatInvCUD_IMP_CK1(mat, auxil) result(inv)
802#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
803 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCUD_IMP_CK1
804#endif
805 use pm_kind, only: CKG => CK1
806 complex(CKG) , intent(in) , contiguous :: mat(:,:)
807 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
808 type(upperDiag_type), intent(in) :: auxil
809 end function
810#endif
811
812 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
813
814#if RK5_ENABLED
815 PURE module function getMatInvCUD_IMP_RK5(mat, auxil) result(inv)
816#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
817 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCUD_IMP_RK5
818#endif
819 use pm_kind, only: RKG => RK5
820 real(RKG) , intent(in) , contiguous :: mat(:,:)
821 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
822 type(upperDiag_type), intent(in) :: auxil
823 end function
824#endif
825
826#if RK4_ENABLED
827 PURE module function getMatInvCUD_IMP_RK4(mat, auxil) result(inv)
828#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
829 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCUD_IMP_RK4
830#endif
831 use pm_kind, only: RKG => RK4
832 real(RKG) , intent(in) , contiguous :: mat(:,:)
833 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
834 type(upperDiag_type), intent(in) :: auxil
835 end function
836#endif
837
838#if RK3_ENABLED
839 PURE module function getMatInvCUD_IMP_RK3(mat, auxil) result(inv)
840#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
841 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCUD_IMP_RK3
842#endif
843 use pm_kind, only: RKG => RK3
844 real(RKG) , intent(in) , contiguous :: mat(:,:)
845 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
846 type(upperDiag_type), intent(in) :: auxil
847 end function
848#endif
849
850#if RK2_ENABLED
851 PURE module function getMatInvCUD_IMP_RK2(mat, auxil) result(inv)
852#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
853 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCUD_IMP_RK2
854#endif
855 use pm_kind, only: RKG => RK2
856 real(RKG) , intent(in) , contiguous :: mat(:,:)
857 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
858 type(upperDiag_type), intent(in) :: auxil
859 end function
860#endif
861
862#if RK1_ENABLED
863 PURE module function getMatInvCUD_IMP_RK1(mat, auxil) result(inv)
864#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
865 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCUD_IMP_RK1
866#endif
867 use pm_kind, only: RKG => RK1
868 real(RKG) , intent(in) , contiguous :: mat(:,:)
869 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
870 type(upperDiag_type), intent(in) :: auxil
871 end function
872#endif
873
874 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
875
876 end interface
877
878 ! implicit lowerDiag.
879
880 interface getMatInv
881
882 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
883
884#if CK5_ENABLED
885 PURE module function getMatInvCLD_IMP_CK5(mat, auxil) result(inv)
886#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
887 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCLD_IMP_CK5
888#endif
889 use pm_kind, only: CKG => CK5
890 complex(CKG) , intent(in) , contiguous :: mat(:,:)
891 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
892 type(lowerDiag_type), intent(in) :: auxil
893 end function
894#endif
895
896#if CK4_ENABLED
897 PURE module function getMatInvCLD_IMP_CK4(mat, auxil) result(inv)
898#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
899 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCLD_IMP_CK4
900#endif
901 use pm_kind, only: CKG => CK4
902 complex(CKG) , intent(in) , contiguous :: mat(:,:)
903 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
904 type(lowerDiag_type), intent(in) :: auxil
905 end function
906#endif
907
908#if CK3_ENABLED
909 PURE module function getMatInvCLD_IMP_CK3(mat, auxil) result(inv)
910#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
911 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCLD_IMP_CK3
912#endif
913 use pm_kind, only: CKG => CK3
914 complex(CKG) , intent(in) , contiguous :: mat(:,:)
915 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
916 type(lowerDiag_type), intent(in) :: auxil
917 end function
918#endif
919
920#if CK2_ENABLED
921 PURE module function getMatInvCLD_IMP_CK2(mat, auxil) result(inv)
922#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
923 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCLD_IMP_CK2
924#endif
925 use pm_kind, only: CKG => CK2
926 complex(CKG) , intent(in) , contiguous :: mat(:,:)
927 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
928 type(lowerDiag_type), intent(in) :: auxil
929 end function
930#endif
931
932#if CK1_ENABLED
933 PURE module function getMatInvCLD_IMP_CK1(mat, auxil) result(inv)
934#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
935 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCLD_IMP_CK1
936#endif
937 use pm_kind, only: CKG => CK1
938 complex(CKG) , intent(in) , contiguous :: mat(:,:)
939 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
940 type(lowerDiag_type), intent(in) :: auxil
941 end function
942#endif
943
944 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
945
946#if RK5_ENABLED
947 PURE module function getMatInvCLD_IMP_RK5(mat, auxil) result(inv)
948#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
949 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCLD_IMP_RK5
950#endif
951 use pm_kind, only: RKG => RK5
952 real(RKG) , intent(in) , contiguous :: mat(:,:)
953 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
954 type(lowerDiag_type), intent(in) :: auxil
955 end function
956#endif
957
958#if RK4_ENABLED
959 PURE module function getMatInvCLD_IMP_RK4(mat, auxil) result(inv)
960#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
961 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCLD_IMP_RK4
962#endif
963 use pm_kind, only: RKG => RK4
964 real(RKG) , intent(in) , contiguous :: mat(:,:)
965 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
966 type(lowerDiag_type), intent(in) :: auxil
967 end function
968#endif
969
970#if RK3_ENABLED
971 PURE module function getMatInvCLD_IMP_RK3(mat, auxil) result(inv)
972#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
973 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCLD_IMP_RK3
974#endif
975 use pm_kind, only: RKG => RK3
976 real(RKG) , intent(in) , contiguous :: mat(:,:)
977 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
978 type(lowerDiag_type), intent(in) :: auxil
979 end function
980#endif
981
982#if RK2_ENABLED
983 PURE module function getMatInvCLD_IMP_RK2(mat, auxil) result(inv)
984#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
985 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCLD_IMP_RK2
986#endif
987 use pm_kind, only: RKG => RK2
988 real(RKG) , intent(in) , contiguous :: mat(:,:)
989 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
990 type(lowerDiag_type), intent(in) :: auxil
991 end function
992#endif
993
994#if RK1_ENABLED
995 PURE module function getMatInvCLD_IMP_RK1(mat, auxil) result(inv)
996#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
997 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCLD_IMP_RK1
998#endif
999 use pm_kind, only: RKG => RK1
1000 real(RKG) , intent(in) , contiguous :: mat(:,:)
1001 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1002 type(lowerDiag_type), intent(in) :: auxil
1003 end function
1004#endif
1005
1006 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1007
1008 end interface
1009
1010 ! implicit upperUnit.
1011
1012 interface getMatInv
1013
1014 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1015
1016#if CK5_ENABLED
1017 PURE module function getMatInvCUU_IMP_CK5(mat, auxil) result(inv)
1018#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1019 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCUU_IMP_CK5
1020#endif
1021 use pm_kind, only: CKG => CK5
1022 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1023 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1024 type(upperUnit_type), intent(in) :: auxil
1025 end function
1026#endif
1027
1028#if CK4_ENABLED
1029 PURE module function getMatInvCUU_IMP_CK4(mat, auxil) result(inv)
1030#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1031 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCUU_IMP_CK4
1032#endif
1033 use pm_kind, only: CKG => CK4
1034 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1035 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1036 type(upperUnit_type), intent(in) :: auxil
1037 end function
1038#endif
1039
1040#if CK3_ENABLED
1041 PURE module function getMatInvCUU_IMP_CK3(mat, auxil) result(inv)
1042#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1043 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCUU_IMP_CK3
1044#endif
1045 use pm_kind, only: CKG => CK3
1046 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1047 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1048 type(upperUnit_type), intent(in) :: auxil
1049 end function
1050#endif
1051
1052#if CK2_ENABLED
1053 PURE module function getMatInvCUU_IMP_CK2(mat, auxil) result(inv)
1054#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1055 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCUU_IMP_CK2
1056#endif
1057 use pm_kind, only: CKG => CK2
1058 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1059 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1060 type(upperUnit_type), intent(in) :: auxil
1061 end function
1062#endif
1063
1064#if CK1_ENABLED
1065 PURE module function getMatInvCUU_IMP_CK1(mat, auxil) result(inv)
1066#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1067 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCUU_IMP_CK1
1068#endif
1069 use pm_kind, only: CKG => CK1
1070 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1071 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1072 type(upperUnit_type), intent(in) :: auxil
1073 end function
1074#endif
1075
1076 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1077
1078#if RK5_ENABLED
1079 PURE module function getMatInvCUU_IMP_RK5(mat, auxil) result(inv)
1080#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1081 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCUU_IMP_RK5
1082#endif
1083 use pm_kind, only: RKG => RK5
1084 real(RKG) , intent(in) , contiguous :: mat(:,:)
1085 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1086 type(upperUnit_type), intent(in) :: auxil
1087 end function
1088#endif
1089
1090#if RK4_ENABLED
1091 PURE module function getMatInvCUU_IMP_RK4(mat, auxil) result(inv)
1092#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1093 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCUU_IMP_RK4
1094#endif
1095 use pm_kind, only: RKG => RK4
1096 real(RKG) , intent(in) , contiguous :: mat(:,:)
1097 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1098 type(upperUnit_type), intent(in) :: auxil
1099 end function
1100#endif
1101
1102#if RK3_ENABLED
1103 PURE module function getMatInvCUU_IMP_RK3(mat, auxil) result(inv)
1104#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1105 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCUU_IMP_RK3
1106#endif
1107 use pm_kind, only: RKG => RK3
1108 real(RKG) , intent(in) , contiguous :: mat(:,:)
1109 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1110 type(upperUnit_type), intent(in) :: auxil
1111 end function
1112#endif
1113
1114#if RK2_ENABLED
1115 PURE module function getMatInvCUU_IMP_RK2(mat, auxil) result(inv)
1116#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1117 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCUU_IMP_RK2
1118#endif
1119 use pm_kind, only: RKG => RK2
1120 real(RKG) , intent(in) , contiguous :: mat(:,:)
1121 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1122 type(upperUnit_type), intent(in) :: auxil
1123 end function
1124#endif
1125
1126#if RK1_ENABLED
1127 PURE module function getMatInvCUU_IMP_RK1(mat, auxil) result(inv)
1128#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1129 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCUU_IMP_RK1
1130#endif
1131 use pm_kind, only: RKG => RK1
1132 real(RKG) , intent(in) , contiguous :: mat(:,:)
1133 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1134 type(upperUnit_type), intent(in) :: auxil
1135 end function
1136#endif
1137
1138 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1139
1140 end interface
1141
1142 ! implicit lowerUnit.
1143
1144 interface getMatInv
1145
1146 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1147
1148#if CK5_ENABLED
1149 PURE module function getMatInvCLU_IMP_CK5(mat, auxil) result(inv)
1150#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1151 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCLU_IMP_CK5
1152#endif
1153 use pm_kind, only: CKG => CK5
1154 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1155 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1156 type(lowerUnit_type), intent(in) :: auxil
1157 end function
1158#endif
1159
1160#if CK4_ENABLED
1161 PURE module function getMatInvCLU_IMP_CK4(mat, auxil) result(inv)
1162#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1163 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCLU_IMP_CK4
1164#endif
1165 use pm_kind, only: CKG => CK4
1166 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1167 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1168 type(lowerUnit_type), intent(in) :: auxil
1169 end function
1170#endif
1171
1172#if CK3_ENABLED
1173 PURE module function getMatInvCLU_IMP_CK3(mat, auxil) result(inv)
1174#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1175 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCLU_IMP_CK3
1176#endif
1177 use pm_kind, only: CKG => CK3
1178 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1179 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1180 type(lowerUnit_type), intent(in) :: auxil
1181 end function
1182#endif
1183
1184#if CK2_ENABLED
1185 PURE module function getMatInvCLU_IMP_CK2(mat, auxil) result(inv)
1186#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1187 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCLU_IMP_CK2
1188#endif
1189 use pm_kind, only: CKG => CK2
1190 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1191 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1192 type(lowerUnit_type), intent(in) :: auxil
1193 end function
1194#endif
1195
1196#if CK1_ENABLED
1197 PURE module function getMatInvCLU_IMP_CK1(mat, auxil) result(inv)
1198#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1199 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCLU_IMP_CK1
1200#endif
1201 use pm_kind, only: CKG => CK1
1202 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1203 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1204 type(lowerUnit_type), intent(in) :: auxil
1205 end function
1206#endif
1207
1208 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1209
1210#if RK5_ENABLED
1211 PURE module function getMatInvCLU_IMP_RK5(mat, auxil) result(inv)
1212#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1213 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCLU_IMP_RK5
1214#endif
1215 use pm_kind, only: RKG => RK5
1216 real(RKG) , intent(in) , contiguous :: mat(:,:)
1217 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1218 type(lowerUnit_type), intent(in) :: auxil
1219 end function
1220#endif
1221
1222#if RK4_ENABLED
1223 PURE module function getMatInvCLU_IMP_RK4(mat, auxil) result(inv)
1224#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1225 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCLU_IMP_RK4
1226#endif
1227 use pm_kind, only: RKG => RK4
1228 real(RKG) , intent(in) , contiguous :: mat(:,:)
1229 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1230 type(lowerUnit_type), intent(in) :: auxil
1231 end function
1232#endif
1233
1234#if RK3_ENABLED
1235 PURE module function getMatInvCLU_IMP_RK3(mat, auxil) result(inv)
1236#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1237 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCLU_IMP_RK3
1238#endif
1239 use pm_kind, only: RKG => RK3
1240 real(RKG) , intent(in) , contiguous :: mat(:,:)
1241 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1242 type(lowerUnit_type), intent(in) :: auxil
1243 end function
1244#endif
1245
1246#if RK2_ENABLED
1247 PURE module function getMatInvCLU_IMP_RK2(mat, auxil) result(inv)
1248#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1249 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCLU_IMP_RK2
1250#endif
1251 use pm_kind, only: RKG => RK2
1252 real(RKG) , intent(in) , contiguous :: mat(:,:)
1253 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1254 type(lowerUnit_type), intent(in) :: auxil
1255 end function
1256#endif
1257
1258#if RK1_ENABLED
1259 PURE module function getMatInvCLU_IMP_RK1(mat, auxil) result(inv)
1260#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1261 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCLU_IMP_RK1
1262#endif
1263 use pm_kind, only: RKG => RK1
1264 real(RKG) , intent(in) , contiguous :: mat(:,:)
1265 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1266 type(lowerUnit_type), intent(in) :: auxil
1267 end function
1268#endif
1269
1270 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1271
1272 end interface
1273
1274 ! implicit lup.
1275
1276 interface getMatInv
1277
1278 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1279
1280#if CK5_ENABLED
1281 PURE module function getMatInvLUP_IMP_CK5(mat, auxil) result(inv)
1282#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1283 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvLUP_IMP_CK5
1284#endif
1285 use pm_kind, only: CKG => CK5
1286 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1287 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1288 integer(IK) , intent(in) , contiguous :: auxil(:)
1289 end function
1290#endif
1291
1292#if CK4_ENABLED
1293 PURE module function getMatInvLUP_IMP_CK4(mat, auxil) result(inv)
1294#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1295 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvLUP_IMP_CK4
1296#endif
1297 use pm_kind, only: CKG => CK4
1298 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1299 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1300 integer(IK) , intent(in) , contiguous :: auxil(:)
1301 end function
1302#endif
1303
1304#if CK3_ENABLED
1305 PURE module function getMatInvLUP_IMP_CK3(mat, auxil) result(inv)
1306#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1307 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvLUP_IMP_CK3
1308#endif
1309 use pm_kind, only: CKG => CK3
1310 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1311 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1312 integer(IK) , intent(in) , contiguous :: auxil(:)
1313 end function
1314#endif
1315
1316#if CK2_ENABLED
1317 PURE module function getMatInvLUP_IMP_CK2(mat, auxil) result(inv)
1318#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1319 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvLUP_IMP_CK2
1320#endif
1321 use pm_kind, only: CKG => CK2
1322 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1323 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1324 integer(IK) , intent(in) , contiguous :: auxil(:)
1325 end function
1326#endif
1327
1328#if CK1_ENABLED
1329 PURE module function getMatInvLUP_IMP_CK1(mat, auxil) result(inv)
1330#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1331 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvLUP_IMP_CK1
1332#endif
1333 use pm_kind, only: CKG => CK1
1334 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1335 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1336 integer(IK) , intent(in) , contiguous :: auxil(:)
1337 end function
1338#endif
1339
1340 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1341
1342#if RK5_ENABLED
1343 PURE module function getMatInvLUP_IMP_RK5(mat, auxil) result(inv)
1344#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1345 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvLUP_IMP_RK5
1346#endif
1347 use pm_kind, only: RKG => RK5
1348 real(RKG) , intent(in) , contiguous :: mat(:,:)
1349 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1350 integer(IK) , intent(in) , contiguous :: auxil(:)
1351 end function
1352#endif
1353
1354#if RK4_ENABLED
1355 PURE module function getMatInvLUP_IMP_RK4(mat, auxil) result(inv)
1356#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1357 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvLUP_IMP_RK4
1358#endif
1359 use pm_kind, only: RKG => RK4
1360 real(RKG) , intent(in) , contiguous :: mat(:,:)
1361 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1362 integer(IK) , intent(in) , contiguous :: auxil(:)
1363 end function
1364#endif
1365
1366#if RK3_ENABLED
1367 PURE module function getMatInvLUP_IMP_RK3(mat, auxil) result(inv)
1368#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1369 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvLUP_IMP_RK3
1370#endif
1371 use pm_kind, only: RKG => RK3
1372 real(RKG) , intent(in) , contiguous :: mat(:,:)
1373 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1374 integer(IK) , intent(in) , contiguous :: auxil(:)
1375 end function
1376#endif
1377
1378#if RK2_ENABLED
1379 PURE module function getMatInvLUP_IMP_RK2(mat, auxil) result(inv)
1380#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1381 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvLUP_IMP_RK2
1382#endif
1383 use pm_kind, only: RKG => RK2
1384 real(RKG) , intent(in) , contiguous :: mat(:,:)
1385 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1386 integer(IK) , intent(in) , contiguous :: auxil(:)
1387 end function
1388#endif
1389
1390#if RK1_ENABLED
1391 PURE module function getMatInvLUP_IMP_RK1(mat, auxil) result(inv)
1392#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1393 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvLUP_IMP_RK1
1394#endif
1395 use pm_kind, only: RKG => RK1
1396 real(RKG) , intent(in) , contiguous :: mat(:,:)
1397 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1398 integer(IK) , intent(in) , contiguous :: auxil(:)
1399 end function
1400#endif
1401
1402 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1403
1404 end interface
1405
1406 ! implicit choUpp.
1407
1408 interface getMatInv
1409
1410 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1411
1412#if CK5_ENABLED
1413 PURE module function getMatInvCCU_IMP_CK5(mat, auxil) result(inv)
1414#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1415 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCCU_IMP_CK5
1416#endif
1417 use pm_kind, only: CKG => CK5
1418 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1419 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1420 type(choUpp_type) , intent(in) :: auxil
1421 end function
1422#endif
1423
1424#if CK4_ENABLED
1425 PURE module function getMatInvCCU_IMP_CK4(mat, auxil) result(inv)
1426#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1427 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCCU_IMP_CK4
1428#endif
1429 use pm_kind, only: CKG => CK4
1430 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1431 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1432 type(choUpp_type) , intent(in) :: auxil
1433 end function
1434#endif
1435
1436#if CK3_ENABLED
1437 PURE module function getMatInvCCU_IMP_CK3(mat, auxil) result(inv)
1438#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1439 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCCU_IMP_CK3
1440#endif
1441 use pm_kind, only: CKG => CK3
1442 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1443 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1444 type(choUpp_type) , intent(in) :: auxil
1445 end function
1446#endif
1447
1448#if CK2_ENABLED
1449 PURE module function getMatInvCCU_IMP_CK2(mat, auxil) result(inv)
1450#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1451 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCCU_IMP_CK2
1452#endif
1453 use pm_kind, only: CKG => CK2
1454 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1455 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1456 type(choUpp_type) , intent(in) :: auxil
1457 end function
1458#endif
1459
1460#if CK1_ENABLED
1461 PURE module function getMatInvCCU_IMP_CK1(mat, auxil) result(inv)
1462#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1463 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCCU_IMP_CK1
1464#endif
1465 use pm_kind, only: CKG => CK1
1466 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1467 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1468 type(choUpp_type) , intent(in) :: auxil
1469 end function
1470#endif
1471
1472 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1473
1474#if RK5_ENABLED
1475 PURE module function getMatInvCCU_IMP_RK5(mat, auxil) result(inv)
1476#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1477 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCCU_IMP_RK5
1478#endif
1479 use pm_kind, only: RKG => RK5
1480 real(RKG) , intent(in) , contiguous :: mat(:,:)
1481 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1482 type(choUpp_type) , intent(in) :: auxil
1483 end function
1484#endif
1485
1486#if RK4_ENABLED
1487 PURE module function getMatInvCCU_IMP_RK4(mat, auxil) result(inv)
1488#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1489 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCCU_IMP_RK4
1490#endif
1491 use pm_kind, only: RKG => RK4
1492 real(RKG) , intent(in) , contiguous :: mat(:,:)
1493 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1494 type(choUpp_type) , intent(in) :: auxil
1495 end function
1496#endif
1497
1498#if RK3_ENABLED
1499 PURE module function getMatInvCCU_IMP_RK3(mat, auxil) result(inv)
1500#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1501 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCCU_IMP_RK3
1502#endif
1503 use pm_kind, only: RKG => RK3
1504 real(RKG) , intent(in) , contiguous :: mat(:,:)
1505 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1506 type(choUpp_type) , intent(in) :: auxil
1507 end function
1508#endif
1509
1510#if RK2_ENABLED
1511 PURE module function getMatInvCCU_IMP_RK2(mat, auxil) result(inv)
1512#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1513 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCCU_IMP_RK2
1514#endif
1515 use pm_kind, only: RKG => RK2
1516 real(RKG) , intent(in) , contiguous :: mat(:,:)
1517 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1518 type(choUpp_type) , intent(in) :: auxil
1519 end function
1520#endif
1521
1522#if RK1_ENABLED
1523 PURE module function getMatInvCCU_IMP_RK1(mat, auxil) result(inv)
1524#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1525 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCCU_IMP_RK1
1526#endif
1527 use pm_kind, only: RKG => RK1
1528 real(RKG) , intent(in) , contiguous :: mat(:,:)
1529 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1530 type(choUpp_type) , intent(in) :: auxil
1531 end function
1532#endif
1533
1534 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1535
1536 end interface
1537
1538 ! implicit choLow.
1539
1540 interface getMatInv
1541
1542 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1543
1544#if CK5_ENABLED
1545 PURE module function getMatInvCCL_IMP_CK5(mat, auxil) result(inv)
1546#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1547 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCCL_IMP_CK5
1548#endif
1549 use pm_kind, only: CKG => CK5
1550 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1551 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1552 type(choLow_type) , intent(in) :: auxil
1553 end function
1554#endif
1555
1556#if CK4_ENABLED
1557 PURE module function getMatInvCCL_IMP_CK4(mat, auxil) result(inv)
1558#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1559 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCCL_IMP_CK4
1560#endif
1561 use pm_kind, only: CKG => CK4
1562 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1563 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1564 type(choLow_type) , intent(in) :: auxil
1565 end function
1566#endif
1567
1568#if CK3_ENABLED
1569 PURE module function getMatInvCCL_IMP_CK3(mat, auxil) result(inv)
1570#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1571 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCCL_IMP_CK3
1572#endif
1573 use pm_kind, only: CKG => CK3
1574 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1575 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1576 type(choLow_type) , intent(in) :: auxil
1577 end function
1578#endif
1579
1580#if CK2_ENABLED
1581 PURE module function getMatInvCCL_IMP_CK2(mat, auxil) result(inv)
1582#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1583 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCCL_IMP_CK2
1584#endif
1585 use pm_kind, only: CKG => CK2
1586 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1587 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1588 type(choLow_type) , intent(in) :: auxil
1589 end function
1590#endif
1591
1592#if CK1_ENABLED
1593 PURE module function getMatInvCCL_IMP_CK1(mat, auxil) result(inv)
1594#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1595 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCCL_IMP_CK1
1596#endif
1597 use pm_kind, only: CKG => CK1
1598 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1599 complex(CKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1600 type(choLow_type) , intent(in) :: auxil
1601 end function
1602#endif
1603
1604 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1605
1606#if RK5_ENABLED
1607 PURE module function getMatInvCCL_IMP_RK5(mat, auxil) result(inv)
1608#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1609 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCCL_IMP_RK5
1610#endif
1611 use pm_kind, only: RKG => RK5
1612 real(RKG) , intent(in) , contiguous :: mat(:,:)
1613 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1614 type(choLow_type) , intent(in) :: auxil
1615 end function
1616#endif
1617
1618#if RK4_ENABLED
1619 PURE module function getMatInvCCL_IMP_RK4(mat, auxil) result(inv)
1620#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1621 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCCL_IMP_RK4
1622#endif
1623 use pm_kind, only: RKG => RK4
1624 real(RKG) , intent(in) , contiguous :: mat(:,:)
1625 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1626 type(choLow_type) , intent(in) :: auxil
1627 end function
1628#endif
1629
1630#if RK3_ENABLED
1631 PURE module function getMatInvCCL_IMP_RK3(mat, auxil) result(inv)
1632#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1633 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCCL_IMP_RK3
1634#endif
1635 use pm_kind, only: RKG => RK3
1636 real(RKG) , intent(in) , contiguous :: mat(:,:)
1637 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1638 type(choLow_type) , intent(in) :: auxil
1639 end function
1640#endif
1641
1642#if RK2_ENABLED
1643 PURE module function getMatInvCCL_IMP_RK2(mat, auxil) result(inv)
1644#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1645 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCCL_IMP_RK2
1646#endif
1647 use pm_kind, only: RKG => RK2
1648 real(RKG) , intent(in) , contiguous :: mat(:,:)
1649 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1650 type(choLow_type) , intent(in) :: auxil
1651 end function
1652#endif
1653
1654#if RK1_ENABLED
1655 PURE module function getMatInvCCL_IMP_RK1(mat, auxil) result(inv)
1656#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1657 !DEC$ ATTRIBUTES DLLEXPORT :: getMatInvCCL_IMP_RK1
1658#endif
1659 use pm_kind, only: RKG => RK1
1660 real(RKG) , intent(in) , contiguous :: mat(:,:)
1661 real(RKG) :: inv(size(mat, 1, IK), size(mat, 2, IK))
1662 type(choLow_type) , intent(in) :: auxil
1663 end function
1664#endif
1665
1666 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1667
1668 end interface
1669
1670!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1671
1785
1786 ! implicit upperDiag invFUL.
1787
1788 interface setMatInv
1789
1790 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1791
1792#if CK5_ENABLED
1793 PURE module subroutine setMatInvCUD_IMP_CK5(inv, mat, auxil)
1794#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1795 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUD_IMP_CK5
1796#endif
1797 use pm_kind, only: CKG => CK5
1798 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
1799 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1800 type(upperDiag_type), intent(in) :: auxil
1801 end subroutine
1802#endif
1803
1804#if CK4_ENABLED
1805 PURE module subroutine setMatInvCUD_IMP_CK4(inv, mat, auxil)
1806#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1807 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUD_IMP_CK4
1808#endif
1809 use pm_kind, only: CKG => CK4
1810 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
1811 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1812 type(upperDiag_type), intent(in) :: auxil
1813 end subroutine
1814#endif
1815
1816#if CK3_ENABLED
1817 PURE module subroutine setMatInvCUD_IMP_CK3(inv, mat, auxil)
1818#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1819 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUD_IMP_CK3
1820#endif
1821 use pm_kind, only: CKG => CK3
1822 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
1823 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1824 type(upperDiag_type), intent(in) :: auxil
1825 end subroutine
1826#endif
1827
1828#if CK2_ENABLED
1829 PURE module subroutine setMatInvCUD_IMP_CK2(inv, mat, auxil)
1830#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1831 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUD_IMP_CK2
1832#endif
1833 use pm_kind, only: CKG => CK2
1834 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
1835 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1836 type(upperDiag_type), intent(in) :: auxil
1837 end subroutine
1838#endif
1839
1840#if CK1_ENABLED
1841 PURE module subroutine setMatInvCUD_IMP_CK1(inv, mat, auxil)
1842#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1843 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUD_IMP_CK1
1844#endif
1845 use pm_kind, only: CKG => CK1
1846 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
1847 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1848 type(upperDiag_type), intent(in) :: auxil
1849 end subroutine
1850#endif
1851
1852 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1853
1854#if RK5_ENABLED
1855 PURE module subroutine setMatInvCUD_IMP_RK5(inv, mat, auxil)
1856#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1857 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUD_IMP_RK5
1858#endif
1859 use pm_kind, only: RKG => RK5
1860 real(RKG) , intent(inout) , contiguous :: inv(:,:)
1861 real(RKG) , intent(in) , contiguous :: mat(:,:)
1862 type(upperDiag_type), intent(in) :: auxil
1863 end subroutine
1864#endif
1865
1866#if RK4_ENABLED
1867 PURE module subroutine setMatInvCUD_IMP_RK4(inv, mat, auxil)
1868#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1869 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUD_IMP_RK4
1870#endif
1871 use pm_kind, only: RKG => RK4
1872 real(RKG) , intent(inout) , contiguous :: inv(:,:)
1873 real(RKG) , intent(in) , contiguous :: mat(:,:)
1874 type(upperDiag_type), intent(in) :: auxil
1875 end subroutine
1876#endif
1877
1878#if RK3_ENABLED
1879 PURE module subroutine setMatInvCUD_IMP_RK3(inv, mat, auxil)
1880#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1881 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUD_IMP_RK3
1882#endif
1883 use pm_kind, only: RKG => RK3
1884 real(RKG) , intent(inout) , contiguous :: inv(:,:)
1885 real(RKG) , intent(in) , contiguous :: mat(:,:)
1886 type(upperDiag_type), intent(in) :: auxil
1887 end subroutine
1888#endif
1889
1890#if RK2_ENABLED
1891 PURE module subroutine setMatInvCUD_IMP_RK2(inv, mat, auxil)
1892#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1893 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUD_IMP_RK2
1894#endif
1895 use pm_kind, only: RKG => RK2
1896 real(RKG) , intent(inout) , contiguous :: inv(:,:)
1897 real(RKG) , intent(in) , contiguous :: mat(:,:)
1898 type(upperDiag_type), intent(in) :: auxil
1899 end subroutine
1900#endif
1901
1902#if RK1_ENABLED
1903 PURE module subroutine setMatInvCUD_IMP_RK1(inv, mat, auxil)
1904#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1905 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUD_IMP_RK1
1906#endif
1907 use pm_kind, only: RKG => RK1
1908 real(RKG) , intent(inout) , contiguous :: inv(:,:)
1909 real(RKG) , intent(in) , contiguous :: mat(:,:)
1910 type(upperDiag_type), intent(in) :: auxil
1911 end subroutine
1912#endif
1913
1914 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1915
1916 end interface
1917
1918 ! implicit lowerDiag invFUL.
1919
1920 interface setMatInv
1921
1922 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1923
1924#if CK5_ENABLED
1925 PURE module subroutine setMatInvCLD_IMP_CK5(inv, mat, auxil)
1926#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1927 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLD_IMP_CK5
1928#endif
1929 use pm_kind, only: CKG => CK5
1930 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
1931 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1932 type(lowerDiag_type), intent(in) :: auxil
1933 end subroutine
1934#endif
1935
1936#if CK4_ENABLED
1937 PURE module subroutine setMatInvCLD_IMP_CK4(inv, mat, auxil)
1938#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1939 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLD_IMP_CK4
1940#endif
1941 use pm_kind, only: CKG => CK4
1942 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
1943 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1944 type(lowerDiag_type), intent(in) :: auxil
1945 end subroutine
1946#endif
1947
1948#if CK3_ENABLED
1949 PURE module subroutine setMatInvCLD_IMP_CK3(inv, mat, auxil)
1950#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1951 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLD_IMP_CK3
1952#endif
1953 use pm_kind, only: CKG => CK3
1954 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
1955 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1956 type(lowerDiag_type), intent(in) :: auxil
1957 end subroutine
1958#endif
1959
1960#if CK2_ENABLED
1961 PURE module subroutine setMatInvCLD_IMP_CK2(inv, mat, auxil)
1962#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1963 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLD_IMP_CK2
1964#endif
1965 use pm_kind, only: CKG => CK2
1966 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
1967 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1968 type(lowerDiag_type), intent(in) :: auxil
1969 end subroutine
1970#endif
1971
1972#if CK1_ENABLED
1973 PURE module subroutine setMatInvCLD_IMP_CK1(inv, mat, auxil)
1974#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1975 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLD_IMP_CK1
1976#endif
1977 use pm_kind, only: CKG => CK1
1978 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
1979 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1980 type(lowerDiag_type), intent(in) :: auxil
1981 end subroutine
1982#endif
1983
1984 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1985
1986#if RK5_ENABLED
1987 PURE module subroutine setMatInvCLD_IMP_RK5(inv, mat, auxil)
1988#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1989 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLD_IMP_RK5
1990#endif
1991 use pm_kind, only: RKG => RK5
1992 real(RKG) , intent(inout) , contiguous :: inv(:,:)
1993 real(RKG) , intent(in) , contiguous :: mat(:,:)
1994 type(lowerDiag_type), intent(in) :: auxil
1995 end subroutine
1996#endif
1997
1998#if RK4_ENABLED
1999 PURE module subroutine setMatInvCLD_IMP_RK4(inv, mat, auxil)
2000#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2001 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLD_IMP_RK4
2002#endif
2003 use pm_kind, only: RKG => RK4
2004 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2005 real(RKG) , intent(in) , contiguous :: mat(:,:)
2006 type(lowerDiag_type), intent(in) :: auxil
2007 end subroutine
2008#endif
2009
2010#if RK3_ENABLED
2011 PURE module subroutine setMatInvCLD_IMP_RK3(inv, mat, auxil)
2012#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2013 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLD_IMP_RK3
2014#endif
2015 use pm_kind, only: RKG => RK3
2016 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2017 real(RKG) , intent(in) , contiguous :: mat(:,:)
2018 type(lowerDiag_type), intent(in) :: auxil
2019 end subroutine
2020#endif
2021
2022#if RK2_ENABLED
2023 PURE module subroutine setMatInvCLD_IMP_RK2(inv, mat, auxil)
2024#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2025 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLD_IMP_RK2
2026#endif
2027 use pm_kind, only: RKG => RK2
2028 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2029 real(RKG) , intent(in) , contiguous :: mat(:,:)
2030 type(lowerDiag_type), intent(in) :: auxil
2031 end subroutine
2032#endif
2033
2034#if RK1_ENABLED
2035 PURE module subroutine setMatInvCLD_IMP_RK1(inv, mat, auxil)
2036#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2037 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLD_IMP_RK1
2038#endif
2039 use pm_kind, only: RKG => RK1
2040 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2041 real(RKG) , intent(in) , contiguous :: mat(:,:)
2042 type(lowerDiag_type), intent(in) :: auxil
2043 end subroutine
2044#endif
2045
2046 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2047
2048 end interface
2049
2050 ! implicit upperUnit invFUL.
2051
2052 interface setMatInv
2053
2054 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2055
2056#if CK5_ENABLED
2057 PURE module subroutine setMatInvCUU_IMP_CK5(inv, mat, auxil)
2058#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2059 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUU_IMP_CK5
2060#endif
2061 use pm_kind, only: CKG => CK5
2062 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2063 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2064 type(upperUnit_type), intent(in) :: auxil
2065 end subroutine
2066#endif
2067
2068#if CK4_ENABLED
2069 PURE module subroutine setMatInvCUU_IMP_CK4(inv, mat, auxil)
2070#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2071 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUU_IMP_CK4
2072#endif
2073 use pm_kind, only: CKG => CK4
2074 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2075 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2076 type(upperUnit_type), intent(in) :: auxil
2077 end subroutine
2078#endif
2079
2080#if CK3_ENABLED
2081 PURE module subroutine setMatInvCUU_IMP_CK3(inv, mat, auxil)
2082#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2083 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUU_IMP_CK3
2084#endif
2085 use pm_kind, only: CKG => CK3
2086 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2087 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2088 type(upperUnit_type), intent(in) :: auxil
2089 end subroutine
2090#endif
2091
2092#if CK2_ENABLED
2093 PURE module subroutine setMatInvCUU_IMP_CK2(inv, mat, auxil)
2094#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2095 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUU_IMP_CK2
2096#endif
2097 use pm_kind, only: CKG => CK2
2098 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2099 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2100 type(upperUnit_type), intent(in) :: auxil
2101 end subroutine
2102#endif
2103
2104#if CK1_ENABLED
2105 PURE module subroutine setMatInvCUU_IMP_CK1(inv, mat, auxil)
2106#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2107 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUU_IMP_CK1
2108#endif
2109 use pm_kind, only: CKG => CK1
2110 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2111 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2112 type(upperUnit_type), intent(in) :: auxil
2113 end subroutine
2114#endif
2115
2116 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2117
2118#if RK5_ENABLED
2119 PURE module subroutine setMatInvCUU_IMP_RK5(inv, mat, auxil)
2120#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2121 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUU_IMP_RK5
2122#endif
2123 use pm_kind, only: RKG => RK5
2124 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2125 real(RKG) , intent(in) , contiguous :: mat(:,:)
2126 type(upperUnit_type), intent(in) :: auxil
2127 end subroutine
2128#endif
2129
2130#if RK4_ENABLED
2131 PURE module subroutine setMatInvCUU_IMP_RK4(inv, mat, auxil)
2132#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2133 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUU_IMP_RK4
2134#endif
2135 use pm_kind, only: RKG => RK4
2136 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2137 real(RKG) , intent(in) , contiguous :: mat(:,:)
2138 type(upperUnit_type), intent(in) :: auxil
2139 end subroutine
2140#endif
2141
2142#if RK3_ENABLED
2143 PURE module subroutine setMatInvCUU_IMP_RK3(inv, mat, auxil)
2144#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2145 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUU_IMP_RK3
2146#endif
2147 use pm_kind, only: RKG => RK3
2148 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2149 real(RKG) , intent(in) , contiguous :: mat(:,:)
2150 type(upperUnit_type), intent(in) :: auxil
2151 end subroutine
2152#endif
2153
2154#if RK2_ENABLED
2155 PURE module subroutine setMatInvCUU_IMP_RK2(inv, mat, auxil)
2156#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2157 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUU_IMP_RK2
2158#endif
2159 use pm_kind, only: RKG => RK2
2160 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2161 real(RKG) , intent(in) , contiguous :: mat(:,:)
2162 type(upperUnit_type), intent(in) :: auxil
2163 end subroutine
2164#endif
2165
2166#if RK1_ENABLED
2167 PURE module subroutine setMatInvCUU_IMP_RK1(inv, mat, auxil)
2168#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2169 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUU_IMP_RK1
2170#endif
2171 use pm_kind, only: RKG => RK1
2172 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2173 real(RKG) , intent(in) , contiguous :: mat(:,:)
2174 type(upperUnit_type), intent(in) :: auxil
2175 end subroutine
2176#endif
2177
2178 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2179
2180 end interface
2181
2182 ! implicit lowerUnit invFUL.
2183
2184 interface setMatInv
2185
2186 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2187
2188#if CK5_ENABLED
2189 PURE module subroutine setMatInvCLU_IMP_CK5(inv, mat, auxil)
2190#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2191 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLU_IMP_CK5
2192#endif
2193 use pm_kind, only: CKG => CK5
2194 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2195 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2196 type(lowerUnit_type), intent(in) :: auxil
2197 end subroutine
2198#endif
2199
2200#if CK4_ENABLED
2201 PURE module subroutine setMatInvCLU_IMP_CK4(inv, mat, auxil)
2202#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2203 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLU_IMP_CK4
2204#endif
2205 use pm_kind, only: CKG => CK4
2206 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2207 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2208 type(lowerUnit_type), intent(in) :: auxil
2209 end subroutine
2210#endif
2211
2212#if CK3_ENABLED
2213 PURE module subroutine setMatInvCLU_IMP_CK3(inv, mat, auxil)
2214#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2215 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLU_IMP_CK3
2216#endif
2217 use pm_kind, only: CKG => CK3
2218 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2219 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2220 type(lowerUnit_type), intent(in) :: auxil
2221 end subroutine
2222#endif
2223
2224#if CK2_ENABLED
2225 PURE module subroutine setMatInvCLU_IMP_CK2(inv, mat, auxil)
2226#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2227 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLU_IMP_CK2
2228#endif
2229 use pm_kind, only: CKG => CK2
2230 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2231 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2232 type(lowerUnit_type), intent(in) :: auxil
2233 end subroutine
2234#endif
2235
2236#if CK1_ENABLED
2237 PURE module subroutine setMatInvCLU_IMP_CK1(inv, mat, auxil)
2238#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2239 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLU_IMP_CK1
2240#endif
2241 use pm_kind, only: CKG => CK1
2242 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2243 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2244 type(lowerUnit_type), intent(in) :: auxil
2245 end subroutine
2246#endif
2247
2248 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2249
2250#if RK5_ENABLED
2251 PURE module subroutine setMatInvCLU_IMP_RK5(inv, mat, auxil)
2252#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2253 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLU_IMP_RK5
2254#endif
2255 use pm_kind, only: RKG => RK5
2256 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2257 real(RKG) , intent(in) , contiguous :: mat(:,:)
2258 type(lowerUnit_type), intent(in) :: auxil
2259 end subroutine
2260#endif
2261
2262#if RK4_ENABLED
2263 PURE module subroutine setMatInvCLU_IMP_RK4(inv, mat, auxil)
2264#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2265 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLU_IMP_RK4
2266#endif
2267 use pm_kind, only: RKG => RK4
2268 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2269 real(RKG) , intent(in) , contiguous :: mat(:,:)
2270 type(lowerUnit_type), intent(in) :: auxil
2271 end subroutine
2272#endif
2273
2274#if RK3_ENABLED
2275 PURE module subroutine setMatInvCLU_IMP_RK3(inv, mat, auxil)
2276#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2277 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLU_IMP_RK3
2278#endif
2279 use pm_kind, only: RKG => RK3
2280 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2281 real(RKG) , intent(in) , contiguous :: mat(:,:)
2282 type(lowerUnit_type), intent(in) :: auxil
2283 end subroutine
2284#endif
2285
2286#if RK2_ENABLED
2287 PURE module subroutine setMatInvCLU_IMP_RK2(inv, mat, auxil)
2288#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2289 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLU_IMP_RK2
2290#endif
2291 use pm_kind, only: RKG => RK2
2292 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2293 real(RKG) , intent(in) , contiguous :: mat(:,:)
2294 type(lowerUnit_type), intent(in) :: auxil
2295 end subroutine
2296#endif
2297
2298#if RK1_ENABLED
2299 PURE module subroutine setMatInvCLU_IMP_RK1(inv, mat, auxil)
2300#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2301 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLU_IMP_RK1
2302#endif
2303 use pm_kind, only: RKG => RK1
2304 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2305 real(RKG) , intent(in) , contiguous :: mat(:,:)
2306 type(lowerUnit_type), intent(in) :: auxil
2307 end subroutine
2308#endif
2309
2310 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2311
2312 end interface
2313
2314 ! implicit lup invFUL.
2315
2316 interface setMatInv
2317
2318 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2319
2320#if CK5_ENABLED
2321 PURE module subroutine setMatInvLUP_IMP_CK5(inv, mat, auxil)
2322#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2323 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvLUP_IMP_CK5
2324#endif
2325 use pm_kind, only: CKG => CK5
2326 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2327 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2328 integer(IK) , intent(in) , contiguous :: auxil(:)
2329 end subroutine
2330#endif
2331
2332#if CK4_ENABLED
2333 PURE module subroutine setMatInvLUP_IMP_CK4(inv, mat, auxil)
2334#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2335 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvLUP_IMP_CK4
2336#endif
2337 use pm_kind, only: CKG => CK4
2338 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2339 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2340 integer(IK) , intent(in) , contiguous :: auxil(:)
2341 end subroutine
2342#endif
2343
2344#if CK3_ENABLED
2345 PURE module subroutine setMatInvLUP_IMP_CK3(inv, mat, auxil)
2346#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2347 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvLUP_IMP_CK3
2348#endif
2349 use pm_kind, only: CKG => CK3
2350 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2351 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2352 integer(IK) , intent(in) , contiguous :: auxil(:)
2353 end subroutine
2354#endif
2355
2356#if CK2_ENABLED
2357 PURE module subroutine setMatInvLUP_IMP_CK2(inv, mat, auxil)
2358#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2359 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvLUP_IMP_CK2
2360#endif
2361 use pm_kind, only: CKG => CK2
2362 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2363 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2364 integer(IK) , intent(in) , contiguous :: auxil(:)
2365 end subroutine
2366#endif
2367
2368#if CK1_ENABLED
2369 PURE module subroutine setMatInvLUP_IMP_CK1(inv, mat, auxil)
2370#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2371 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvLUP_IMP_CK1
2372#endif
2373 use pm_kind, only: CKG => CK1
2374 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2375 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2376 integer(IK) , intent(in) , contiguous :: auxil(:)
2377 end subroutine
2378#endif
2379
2380 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2381
2382#if RK5_ENABLED
2383 PURE module subroutine setMatInvLUP_IMP_RK5(inv, mat, auxil)
2384#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2385 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvLUP_IMP_RK5
2386#endif
2387 use pm_kind, only: RKG => RK5
2388 real(RKG) , intent(out) , contiguous :: inv(:,:)
2389 real(RKG) , intent(in) , contiguous :: mat(:,:)
2390 integer(IK) , intent(in) , contiguous :: auxil(:)
2391 end subroutine
2392#endif
2393
2394#if RK4_ENABLED
2395 PURE module subroutine setMatInvLUP_IMP_RK4(inv, mat, auxil)
2396#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2397 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvLUP_IMP_RK4
2398#endif
2399 use pm_kind, only: RKG => RK4
2400 real(RKG) , intent(out) , contiguous :: inv(:,:)
2401 real(RKG) , intent(in) , contiguous :: mat(:,:)
2402 integer(IK) , intent(in) , contiguous :: auxil(:)
2403 end subroutine
2404#endif
2405
2406#if RK3_ENABLED
2407 PURE module subroutine setMatInvLUP_IMP_RK3(inv, mat, auxil)
2408#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2409 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvLUP_IMP_RK3
2410#endif
2411 use pm_kind, only: RKG => RK3
2412 real(RKG) , intent(out) , contiguous :: inv(:,:)
2413 real(RKG) , intent(in) , contiguous :: mat(:,:)
2414 integer(IK) , intent(in) , contiguous :: auxil(:)
2415 end subroutine
2416#endif
2417
2418#if RK2_ENABLED
2419 PURE module subroutine setMatInvLUP_IMP_RK2(inv, mat, auxil)
2420#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2421 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvLUP_IMP_RK2
2422#endif
2423 use pm_kind, only: RKG => RK2
2424 real(RKG) , intent(out) , contiguous :: inv(:,:)
2425 real(RKG) , intent(in) , contiguous :: mat(:,:)
2426 integer(IK) , intent(in) , contiguous :: auxil(:)
2427 end subroutine
2428#endif
2429
2430#if RK1_ENABLED
2431 PURE module subroutine setMatInvLUP_IMP_RK1(inv, mat, auxil)
2432#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2433 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvLUP_IMP_RK1
2434#endif
2435 use pm_kind, only: RKG => RK1
2436 real(RKG) , intent(out) , contiguous :: inv(:,:)
2437 real(RKG) , intent(in) , contiguous :: mat(:,:)
2438 integer(IK) , intent(in) , contiguous :: auxil(:)
2439 end subroutine
2440#endif
2441
2442 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2443
2444 end interface
2445
2446 ! implicit choUpp invFUL.
2447
2448 interface setMatInv
2449
2450 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2451
2452#if CK5_ENABLED
2453 PURE module subroutine setMatInvCCU_FUL_IMP_CK5(inv, mat, auxil)
2454#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2455 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_FUL_IMP_CK5
2456#endif
2457 use pm_kind, only: CKG => CK5
2458 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2459 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2460 type(choUpp_type) , intent(in) :: auxil
2461 end subroutine
2462#endif
2463
2464#if CK4_ENABLED
2465 PURE module subroutine setMatInvCCU_FUL_IMP_CK4(inv, mat, auxil)
2466#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2467 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_FUL_IMP_CK4
2468#endif
2469 use pm_kind, only: CKG => CK4
2470 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2471 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2472 type(choUpp_type) , intent(in) :: auxil
2473 end subroutine
2474#endif
2475
2476#if CK3_ENABLED
2477 PURE module subroutine setMatInvCCU_FUL_IMP_CK3(inv, mat, auxil)
2478#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2479 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_FUL_IMP_CK3
2480#endif
2481 use pm_kind, only: CKG => CK3
2482 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2483 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2484 type(choUpp_type) , intent(in) :: auxil
2485 end subroutine
2486#endif
2487
2488#if CK2_ENABLED
2489 PURE module subroutine setMatInvCCU_FUL_IMP_CK2(inv, mat, auxil)
2490#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2491 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_FUL_IMP_CK2
2492#endif
2493 use pm_kind, only: CKG => CK2
2494 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2495 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2496 type(choUpp_type) , intent(in) :: auxil
2497 end subroutine
2498#endif
2499
2500#if CK1_ENABLED
2501 PURE module subroutine setMatInvCCU_FUL_IMP_CK1(inv, mat, auxil)
2502#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2503 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_FUL_IMP_CK1
2504#endif
2505 use pm_kind, only: CKG => CK1
2506 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2507 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2508 type(choUpp_type) , intent(in) :: auxil
2509 end subroutine
2510#endif
2511
2512 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2513
2514#if RK5_ENABLED
2515 PURE module subroutine setMatInvCCU_FUL_IMP_RK5(inv, mat, auxil)
2516#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2517 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_FUL_IMP_RK5
2518#endif
2519 use pm_kind, only: RKG => RK5
2520 real(RKG) , intent(out) , contiguous :: inv(:,:)
2521 real(RKG) , intent(in) , contiguous :: mat(:,:)
2522 type(choUpp_type) , intent(in) :: auxil
2523 end subroutine
2524#endif
2525
2526#if RK4_ENABLED
2527 PURE module subroutine setMatInvCCU_FUL_IMP_RK4(inv, mat, auxil)
2528#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2529 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_FUL_IMP_RK4
2530#endif
2531 use pm_kind, only: RKG => RK4
2532 real(RKG) , intent(out) , contiguous :: inv(:,:)
2533 real(RKG) , intent(in) , contiguous :: mat(:,:)
2534 type(choUpp_type) , intent(in) :: auxil
2535 end subroutine
2536#endif
2537
2538#if RK3_ENABLED
2539 PURE module subroutine setMatInvCCU_FUL_IMP_RK3(inv, mat, auxil)
2540#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2541 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_FUL_IMP_RK3
2542#endif
2543 use pm_kind, only: RKG => RK3
2544 real(RKG) , intent(out) , contiguous :: inv(:,:)
2545 real(RKG) , intent(in) , contiguous :: mat(:,:)
2546 type(choUpp_type) , intent(in) :: auxil
2547 end subroutine
2548#endif
2549
2550#if RK2_ENABLED
2551 PURE module subroutine setMatInvCCU_FUL_IMP_RK2(inv, mat, auxil)
2552#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2553 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_FUL_IMP_RK2
2554#endif
2555 use pm_kind, only: RKG => RK2
2556 real(RKG) , intent(out) , contiguous :: inv(:,:)
2557 real(RKG) , intent(in) , contiguous :: mat(:,:)
2558 type(choUpp_type) , intent(in) :: auxil
2559 end subroutine
2560#endif
2561
2562#if RK1_ENABLED
2563 PURE module subroutine setMatInvCCU_FUL_IMP_RK1(inv, mat, auxil)
2564#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2565 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_FUL_IMP_RK1
2566#endif
2567 use pm_kind, only: RKG => RK1
2568 real(RKG) , intent(out) , contiguous :: inv(:,:)
2569 real(RKG) , intent(in) , contiguous :: mat(:,:)
2570 type(choUpp_type) , intent(in) :: auxil
2571 end subroutine
2572#endif
2573
2574 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2575
2576 end interface
2577
2578 ! implicit choLow invFUL.
2579
2580 interface setMatInv
2581
2582 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2583
2584#if CK5_ENABLED
2585 PURE module subroutine setMatInvCCL_FUL_IMP_CK5(inv, mat, auxil)
2586#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2587 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_FUL_IMP_CK5
2588#endif
2589 use pm_kind, only: CKG => CK5
2590 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2591 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2592 type(choLow_type) , intent(in) :: auxil
2593 end subroutine
2594#endif
2595
2596#if CK4_ENABLED
2597 PURE module subroutine setMatInvCCL_FUL_IMP_CK4(inv, mat, auxil)
2598#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2599 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_FUL_IMP_CK4
2600#endif
2601 use pm_kind, only: CKG => CK4
2602 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2603 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2604 type(choLow_type) , intent(in) :: auxil
2605 end subroutine
2606#endif
2607
2608#if CK3_ENABLED
2609 PURE module subroutine setMatInvCCL_FUL_IMP_CK3(inv, mat, auxil)
2610#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2611 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_FUL_IMP_CK3
2612#endif
2613 use pm_kind, only: CKG => CK3
2614 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2615 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2616 type(choLow_type) , intent(in) :: auxil
2617 end subroutine
2618#endif
2619
2620#if CK2_ENABLED
2621 PURE module subroutine setMatInvCCL_FUL_IMP_CK2(inv, mat, auxil)
2622#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2623 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_FUL_IMP_CK2
2624#endif
2625 use pm_kind, only: CKG => CK2
2626 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2627 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2628 type(choLow_type) , intent(in) :: auxil
2629 end subroutine
2630#endif
2631
2632#if CK1_ENABLED
2633 PURE module subroutine setMatInvCCL_FUL_IMP_CK1(inv, mat, auxil)
2634#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2635 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_FUL_IMP_CK1
2636#endif
2637 use pm_kind, only: CKG => CK1
2638 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2639 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2640 type(choLow_type) , intent(in) :: auxil
2641 end subroutine
2642#endif
2643
2644 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2645
2646#if RK5_ENABLED
2647 PURE module subroutine setMatInvCCL_FUL_IMP_RK5(inv, mat, auxil)
2648#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2649 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_FUL_IMP_RK5
2650#endif
2651 use pm_kind, only: RKG => RK5
2652 real(RKG) , intent(out) , contiguous :: inv(:,:)
2653 real(RKG) , intent(in) , contiguous :: mat(:,:)
2654 type(choLow_type) , intent(in) :: auxil
2655 end subroutine
2656#endif
2657
2658#if RK4_ENABLED
2659 PURE module subroutine setMatInvCCL_FUL_IMP_RK4(inv, mat, auxil)
2660#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2661 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_FUL_IMP_RK4
2662#endif
2663 use pm_kind, only: RKG => RK4
2664 real(RKG) , intent(out) , contiguous :: inv(:,:)
2665 real(RKG) , intent(in) , contiguous :: mat(:,:)
2666 type(choLow_type) , intent(in) :: auxil
2667 end subroutine
2668#endif
2669
2670#if RK3_ENABLED
2671 PURE module subroutine setMatInvCCL_FUL_IMP_RK3(inv, mat, auxil)
2672#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2673 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_FUL_IMP_RK3
2674#endif
2675 use pm_kind, only: RKG => RK3
2676 real(RKG) , intent(out) , contiguous :: inv(:,:)
2677 real(RKG) , intent(in) , contiguous :: mat(:,:)
2678 type(choLow_type) , intent(in) :: auxil
2679 end subroutine
2680#endif
2681
2682#if RK2_ENABLED
2683 PURE module subroutine setMatInvCCL_FUL_IMP_RK2(inv, mat, auxil)
2684#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2685 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_FUL_IMP_RK2
2686#endif
2687 use pm_kind, only: RKG => RK2
2688 real(RKG) , intent(out) , contiguous :: inv(:,:)
2689 real(RKG) , intent(in) , contiguous :: mat(:,:)
2690 type(choLow_type) , intent(in) :: auxil
2691 end subroutine
2692#endif
2693
2694#if RK1_ENABLED
2695 PURE module subroutine setMatInvCCL_FUL_IMP_RK1(inv, mat, auxil)
2696#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2697 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_FUL_IMP_RK1
2698#endif
2699 use pm_kind, only: RKG => RK1
2700 real(RKG) , intent(out) , contiguous :: inv(:,:)
2701 real(RKG) , intent(in) , contiguous :: mat(:,:)
2702 type(choLow_type) , intent(in) :: auxil
2703 end subroutine
2704#endif
2705
2706 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2707
2708 end interface
2709
2710 ! implicit choUpp invXLD.
2711
2712 interface setMatInv
2713
2714 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2715
2716#if CK5_ENABLED
2717 PURE module subroutine setMatInvCCU_XLD_IMP_CK5(inv, mat, auxil, subset)
2718#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2719 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_XLD_IMP_CK5
2720#endif
2721 use pm_kind, only: CKG => CK5
2722 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2723 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2724 type(choUpp_type) , intent(in) :: auxil
2725 type(lowDia_type) , intent(in) :: subset
2726 end subroutine
2727#endif
2728
2729#if CK4_ENABLED
2730 PURE module subroutine setMatInvCCU_XLD_IMP_CK4(inv, mat, auxil, subset)
2731#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2732 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_XLD_IMP_CK4
2733#endif
2734 use pm_kind, only: CKG => CK4
2735 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2736 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2737 type(choUpp_type) , intent(in) :: auxil
2738 type(lowDia_type) , intent(in) :: subset
2739 end subroutine
2740#endif
2741
2742#if CK3_ENABLED
2743 PURE module subroutine setMatInvCCU_XLD_IMP_CK3(inv, mat, auxil, subset)
2744#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2745 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_XLD_IMP_CK3
2746#endif
2747 use pm_kind, only: CKG => CK3
2748 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2749 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2750 type(choUpp_type) , intent(in) :: auxil
2751 type(lowDia_type) , intent(in) :: subset
2752 end subroutine
2753#endif
2754
2755#if CK2_ENABLED
2756 PURE module subroutine setMatInvCCU_XLD_IMP_CK2(inv, mat, auxil, subset)
2757#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2758 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_XLD_IMP_CK2
2759#endif
2760 use pm_kind, only: CKG => CK2
2761 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2762 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2763 type(choUpp_type) , intent(in) :: auxil
2764 type(lowDia_type) , intent(in) :: subset
2765 end subroutine
2766#endif
2767
2768#if CK1_ENABLED
2769 PURE module subroutine setMatInvCCU_XLD_IMP_CK1(inv, mat, auxil, subset)
2770#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2771 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_XLD_IMP_CK1
2772#endif
2773 use pm_kind, only: CKG => CK1
2774 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2775 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2776 type(choUpp_type) , intent(in) :: auxil
2777 type(lowDia_type) , intent(in) :: subset
2778 end subroutine
2779#endif
2780
2781 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2782
2783#if RK5_ENABLED
2784 PURE module subroutine setMatInvCCU_XLD_IMP_RK5(inv, mat, auxil, subset)
2785#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2786 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_XLD_IMP_RK5
2787#endif
2788 use pm_kind, only: RKG => RK5
2789 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2790 real(RKG) , intent(in) , contiguous :: mat(:,:)
2791 type(choUpp_type) , intent(in) :: auxil
2792 type(lowDia_type) , intent(in) :: subset
2793 end subroutine
2794#endif
2795
2796#if RK4_ENABLED
2797 PURE module subroutine setMatInvCCU_XLD_IMP_RK4(inv, mat, auxil, subset)
2798#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2799 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_XLD_IMP_RK4
2800#endif
2801 use pm_kind, only: RKG => RK4
2802 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2803 real(RKG) , intent(in) , contiguous :: mat(:,:)
2804 type(choUpp_type) , intent(in) :: auxil
2805 type(lowDia_type) , intent(in) :: subset
2806 end subroutine
2807#endif
2808
2809#if RK3_ENABLED
2810 PURE module subroutine setMatInvCCU_XLD_IMP_RK3(inv, mat, auxil, subset)
2811#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2812 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_XLD_IMP_RK3
2813#endif
2814 use pm_kind, only: RKG => RK3
2815 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2816 real(RKG) , intent(in) , contiguous :: mat(:,:)
2817 type(choUpp_type) , intent(in) :: auxil
2818 type(lowDia_type) , intent(in) :: subset
2819 end subroutine
2820#endif
2821
2822#if RK2_ENABLED
2823 PURE module subroutine setMatInvCCU_XLD_IMP_RK2(inv, mat, auxil, subset)
2824#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2825 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_XLD_IMP_RK2
2826#endif
2827 use pm_kind, only: RKG => RK2
2828 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2829 real(RKG) , intent(in) , contiguous :: mat(:,:)
2830 type(choUpp_type) , intent(in) :: auxil
2831 type(lowDia_type) , intent(in) :: subset
2832 end subroutine
2833#endif
2834
2835#if RK1_ENABLED
2836 PURE module subroutine setMatInvCCU_XLD_IMP_RK1(inv, mat, auxil, subset)
2837#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2838 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_XLD_IMP_RK1
2839#endif
2840 use pm_kind, only: RKG => RK1
2841 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2842 real(RKG) , intent(in) , contiguous :: mat(:,:)
2843 type(choUpp_type) , intent(in) :: auxil
2844 type(lowDia_type) , intent(in) :: subset
2845 end subroutine
2846#endif
2847
2848 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2849
2850 end interface
2851
2852 ! implicit choLow invXLD.
2853
2854 interface setMatInv
2855
2856 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2857
2858#if CK5_ENABLED
2859 PURE module subroutine setMatInvCCL_XLD_IMP_CK5(inv, mat, auxil, subset)
2860#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2861 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_XLD_IMP_CK5
2862#endif
2863 use pm_kind, only: CKG => CK5
2864 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2865 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2866 type(choLow_type) , intent(in) :: auxil
2867 type(lowDia_type) , intent(in) :: subset
2868 end subroutine
2869#endif
2870
2871#if CK4_ENABLED
2872 PURE module subroutine setMatInvCCL_XLD_IMP_CK4(inv, mat, auxil, subset)
2873#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2874 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_XLD_IMP_CK4
2875#endif
2876 use pm_kind, only: CKG => CK4
2877 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2878 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2879 type(choLow_type) , intent(in) :: auxil
2880 type(lowDia_type) , intent(in) :: subset
2881 end subroutine
2882#endif
2883
2884#if CK3_ENABLED
2885 PURE module subroutine setMatInvCCL_XLD_IMP_CK3(inv, mat, auxil, subset)
2886#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2887 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_XLD_IMP_CK3
2888#endif
2889 use pm_kind, only: CKG => CK3
2890 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2891 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2892 type(choLow_type) , intent(in) :: auxil
2893 type(lowDia_type) , intent(in) :: subset
2894 end subroutine
2895#endif
2896
2897#if CK2_ENABLED
2898 PURE module subroutine setMatInvCCL_XLD_IMP_CK2(inv, mat, auxil, subset)
2899#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2900 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_XLD_IMP_CK2
2901#endif
2902 use pm_kind, only: CKG => CK2
2903 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2904 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2905 type(choLow_type) , intent(in) :: auxil
2906 type(lowDia_type) , intent(in) :: subset
2907 end subroutine
2908#endif
2909
2910#if CK1_ENABLED
2911 PURE module subroutine setMatInvCCL_XLD_IMP_CK1(inv, mat, auxil, subset)
2912#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2913 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_XLD_IMP_CK1
2914#endif
2915 use pm_kind, only: CKG => CK1
2916 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2917 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2918 type(choLow_type) , intent(in) :: auxil
2919 type(lowDia_type) , intent(in) :: subset
2920 end subroutine
2921#endif
2922
2923 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2924
2925#if RK5_ENABLED
2926 PURE module subroutine setMatInvCCL_XLD_IMP_RK5(inv, mat, auxil, subset)
2927#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2928 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_XLD_IMP_RK5
2929#endif
2930 use pm_kind, only: RKG => RK5
2931 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2932 real(RKG) , intent(in) , contiguous :: mat(:,:)
2933 type(choLow_type) , intent(in) :: auxil
2934 type(lowDia_type) , intent(in) :: subset
2935 end subroutine
2936#endif
2937
2938#if RK4_ENABLED
2939 PURE module subroutine setMatInvCCL_XLD_IMP_RK4(inv, mat, auxil, subset)
2940#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2941 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_XLD_IMP_RK4
2942#endif
2943 use pm_kind, only: RKG => RK4
2944 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2945 real(RKG) , intent(in) , contiguous :: mat(:,:)
2946 type(choLow_type) , intent(in) :: auxil
2947 type(lowDia_type) , intent(in) :: subset
2948 end subroutine
2949#endif
2950
2951#if RK3_ENABLED
2952 PURE module subroutine setMatInvCCL_XLD_IMP_RK3(inv, mat, auxil, subset)
2953#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2954 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_XLD_IMP_RK3
2955#endif
2956 use pm_kind, only: RKG => RK3
2957 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2958 real(RKG) , intent(in) , contiguous :: mat(:,:)
2959 type(choLow_type) , intent(in) :: auxil
2960 type(lowDia_type) , intent(in) :: subset
2961 end subroutine
2962#endif
2963
2964#if RK2_ENABLED
2965 PURE module subroutine setMatInvCCL_XLD_IMP_RK2(inv, mat, auxil, subset)
2966#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2967 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_XLD_IMP_RK2
2968#endif
2969 use pm_kind, only: RKG => RK2
2970 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2971 real(RKG) , intent(in) , contiguous :: mat(:,:)
2972 type(choLow_type) , intent(in) :: auxil
2973 type(lowDia_type) , intent(in) :: subset
2974 end subroutine
2975#endif
2976
2977#if RK1_ENABLED
2978 PURE module subroutine setMatInvCCL_XLD_IMP_RK1(inv, mat, auxil, subset)
2979#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2980 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_XLD_IMP_RK1
2981#endif
2982 use pm_kind, only: RKG => RK1
2983 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2984 real(RKG) , intent(in) , contiguous :: mat(:,:)
2985 type(choLow_type) , intent(in) :: auxil
2986 type(lowDia_type) , intent(in) :: subset
2987 end subroutine
2988#endif
2989
2990 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2991
2992 end interface
2993
2994 ! implicit choUpp invUXD.
2995
2996 interface setMatInv
2997
2998 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2999
3000#if CK5_ENABLED
3001 PURE module subroutine setMatInvCCU_UXD_IMP_CK5(inv, mat, auxil, subset)
3002#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3003 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_UXD_IMP_CK5
3004#endif
3005 use pm_kind, only: CKG => CK5
3006 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
3007 complex(CKG) , intent(in) , contiguous :: mat(:,:)
3008 type(choUpp_type) , intent(in) :: auxil
3009 type(uppDia_type) , intent(in) :: subset
3010 end subroutine
3011#endif
3012
3013#if CK4_ENABLED
3014 PURE module subroutine setMatInvCCU_UXD_IMP_CK4(inv, mat, auxil, subset)
3015#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3016 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_UXD_IMP_CK4
3017#endif
3018 use pm_kind, only: CKG => CK4
3019 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
3020 complex(CKG) , intent(in) , contiguous :: mat(:,:)
3021 type(choUpp_type) , intent(in) :: auxil
3022 type(uppDia_type) , intent(in) :: subset
3023 end subroutine
3024#endif
3025
3026#if CK3_ENABLED
3027 PURE module subroutine setMatInvCCU_UXD_IMP_CK3(inv, mat, auxil, subset)
3028#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3029 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_UXD_IMP_CK3
3030#endif
3031 use pm_kind, only: CKG => CK3
3032 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
3033 complex(CKG) , intent(in) , contiguous :: mat(:,:)
3034 type(choUpp_type) , intent(in) :: auxil
3035 type(uppDia_type) , intent(in) :: subset
3036 end subroutine
3037#endif
3038
3039#if CK2_ENABLED
3040 PURE module subroutine setMatInvCCU_UXD_IMP_CK2(inv, mat, auxil, subset)
3041#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3042 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_UXD_IMP_CK2
3043#endif
3044 use pm_kind, only: CKG => CK2
3045 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
3046 complex(CKG) , intent(in) , contiguous :: mat(:,:)
3047 type(choUpp_type) , intent(in) :: auxil
3048 type(uppDia_type) , intent(in) :: subset
3049 end subroutine
3050#endif
3051
3052#if CK1_ENABLED
3053 PURE module subroutine setMatInvCCU_UXD_IMP_CK1(inv, mat, auxil, subset)
3054#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3055 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_UXD_IMP_CK1
3056#endif
3057 use pm_kind, only: CKG => CK1
3058 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
3059 complex(CKG) , intent(in) , contiguous :: mat(:,:)
3060 type(choUpp_type) , intent(in) :: auxil
3061 type(uppDia_type) , intent(in) :: subset
3062 end subroutine
3063#endif
3064
3065 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3066
3067#if RK5_ENABLED
3068 PURE module subroutine setMatInvCCU_UXD_IMP_RK5(inv, mat, auxil, subset)
3069#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3070 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_UXD_IMP_RK5
3071#endif
3072 use pm_kind, only: RKG => RK5
3073 real(RKG) , intent(inout) , contiguous :: inv(:,:)
3074 real(RKG) , intent(in) , contiguous :: mat(:,:)
3075 type(choUpp_type) , intent(in) :: auxil
3076 type(uppDia_type) , intent(in) :: subset
3077 end subroutine
3078#endif
3079
3080#if RK4_ENABLED
3081 PURE module subroutine setMatInvCCU_UXD_IMP_RK4(inv, mat, auxil, subset)
3082#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3083 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_UXD_IMP_RK4
3084#endif
3085 use pm_kind, only: RKG => RK4
3086 real(RKG) , intent(inout) , contiguous :: inv(:,:)
3087 real(RKG) , intent(in) , contiguous :: mat(:,:)
3088 type(choUpp_type) , intent(in) :: auxil
3089 type(uppDia_type) , intent(in) :: subset
3090 end subroutine
3091#endif
3092
3093#if RK3_ENABLED
3094 PURE module subroutine setMatInvCCU_UXD_IMP_RK3(inv, mat, auxil, subset)
3095#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3096 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_UXD_IMP_RK3
3097#endif
3098 use pm_kind, only: RKG => RK3
3099 real(RKG) , intent(inout) , contiguous :: inv(:,:)
3100 real(RKG) , intent(in) , contiguous :: mat(:,:)
3101 type(choUpp_type) , intent(in) :: auxil
3102 type(uppDia_type) , intent(in) :: subset
3103 end subroutine
3104#endif
3105
3106#if RK2_ENABLED
3107 PURE module subroutine setMatInvCCU_UXD_IMP_RK2(inv, mat, auxil, subset)
3108#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3109 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_UXD_IMP_RK2
3110#endif
3111 use pm_kind, only: RKG => RK2
3112 real(RKG) , intent(inout) , contiguous :: inv(:,:)
3113 real(RKG) , intent(in) , contiguous :: mat(:,:)
3114 type(choUpp_type) , intent(in) :: auxil
3115 type(uppDia_type) , intent(in) :: subset
3116 end subroutine
3117#endif
3118
3119#if RK1_ENABLED
3120 PURE module subroutine setMatInvCCU_UXD_IMP_RK1(inv, mat, auxil, subset)
3121#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3122 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_UXD_IMP_RK1
3123#endif
3124 use pm_kind, only: RKG => RK1
3125 real(RKG) , intent(inout) , contiguous :: inv(:,:)
3126 real(RKG) , intent(in) , contiguous :: mat(:,:)
3127 type(choUpp_type) , intent(in) :: auxil
3128 type(uppDia_type) , intent(in) :: subset
3129 end subroutine
3130#endif
3131
3132 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3133
3134 end interface
3135
3136 ! implicit choLow invUXD.
3137
3138 interface setMatInv
3139
3140 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3141
3142#if CK5_ENABLED
3143 PURE module subroutine setMatInvCCL_UXD_IMP_CK5(inv, mat, auxil, subset)
3144#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3145 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_UXD_IMP_CK5
3146#endif
3147 use pm_kind, only: CKG => CK5
3148 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
3149 complex(CKG) , intent(in) , contiguous :: mat(:,:)
3150 type(choLow_type) , intent(in) :: auxil
3151 type(uppDia_type) , intent(in) :: subset
3152 end subroutine
3153#endif
3154
3155#if CK4_ENABLED
3156 PURE module subroutine setMatInvCCL_UXD_IMP_CK4(inv, mat, auxil, subset)
3157#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3158 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_UXD_IMP_CK4
3159#endif
3160 use pm_kind, only: CKG => CK4
3161 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
3162 complex(CKG) , intent(in) , contiguous :: mat(:,:)
3163 type(choLow_type) , intent(in) :: auxil
3164 type(uppDia_type) , intent(in) :: subset
3165 end subroutine
3166#endif
3167
3168#if CK3_ENABLED
3169 PURE module subroutine setMatInvCCL_UXD_IMP_CK3(inv, mat, auxil, subset)
3170#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3171 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_UXD_IMP_CK3
3172#endif
3173 use pm_kind, only: CKG => CK3
3174 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
3175 complex(CKG) , intent(in) , contiguous :: mat(:,:)
3176 type(choLow_type) , intent(in) :: auxil
3177 type(uppDia_type) , intent(in) :: subset
3178 end subroutine
3179#endif
3180
3181#if CK2_ENABLED
3182 PURE module subroutine setMatInvCCL_UXD_IMP_CK2(inv, mat, auxil, subset)
3183#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3184 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_UXD_IMP_CK2
3185#endif
3186 use pm_kind, only: CKG => CK2
3187 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
3188 complex(CKG) , intent(in) , contiguous :: mat(:,:)
3189 type(choLow_type) , intent(in) :: auxil
3190 type(uppDia_type) , intent(in) :: subset
3191 end subroutine
3192#endif
3193
3194#if CK1_ENABLED
3195 PURE module subroutine setMatInvCCL_UXD_IMP_CK1(inv, mat, auxil, subset)
3196#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3197 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_UXD_IMP_CK1
3198#endif
3199 use pm_kind, only: CKG => CK1
3200 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
3201 complex(CKG) , intent(in) , contiguous :: mat(:,:)
3202 type(choLow_type) , intent(in) :: auxil
3203 type(uppDia_type) , intent(in) :: subset
3204 end subroutine
3205#endif
3206
3207 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3208
3209#if RK5_ENABLED
3210 PURE module subroutine setMatInvCCL_UXD_IMP_RK5(inv, mat, auxil, subset)
3211#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3212 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_UXD_IMP_RK5
3213#endif
3214 use pm_kind, only: RKG => RK5
3215 real(RKG) , intent(inout) , contiguous :: inv(:,:)
3216 real(RKG) , intent(in) , contiguous :: mat(:,:)
3217 type(choLow_type) , intent(in) :: auxil
3218 type(uppDia_type) , intent(in) :: subset
3219 end subroutine
3220#endif
3221
3222#if RK4_ENABLED
3223 PURE module subroutine setMatInvCCL_UXD_IMP_RK4(inv, mat, auxil, subset)
3224#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3225 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_UXD_IMP_RK4
3226#endif
3227 use pm_kind, only: RKG => RK4
3228 real(RKG) , intent(inout) , contiguous :: inv(:,:)
3229 real(RKG) , intent(in) , contiguous :: mat(:,:)
3230 type(choLow_type) , intent(in) :: auxil
3231 type(uppDia_type) , intent(in) :: subset
3232 end subroutine
3233#endif
3234
3235#if RK3_ENABLED
3236 PURE module subroutine setMatInvCCL_UXD_IMP_RK3(inv, mat, auxil, subset)
3237#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3238 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_UXD_IMP_RK3
3239#endif
3240 use pm_kind, only: RKG => RK3
3241 real(RKG) , intent(inout) , contiguous :: inv(:,:)
3242 real(RKG) , intent(in) , contiguous :: mat(:,:)
3243 type(choLow_type) , intent(in) :: auxil
3244 type(uppDia_type) , intent(in) :: subset
3245 end subroutine
3246#endif
3247
3248#if RK2_ENABLED
3249 PURE module subroutine setMatInvCCL_UXD_IMP_RK2(inv, mat, auxil, subset)
3250#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3251 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_UXD_IMP_RK2
3252#endif
3253 use pm_kind, only: RKG => RK2
3254 real(RKG) , intent(inout) , contiguous :: inv(:,:)
3255 real(RKG) , intent(in) , contiguous :: mat(:,:)
3256 type(choLow_type) , intent(in) :: auxil
3257 type(uppDia_type) , intent(in) :: subset
3258 end subroutine
3259#endif
3260
3261#if RK1_ENABLED
3262 PURE module subroutine setMatInvCCL_UXD_IMP_RK1(inv, mat, auxil, subset)
3263#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3264 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_UXD_IMP_RK1
3265#endif
3266 use pm_kind, only: RKG => RK1
3267 real(RKG) , intent(inout) , contiguous :: inv(:,:)
3268 real(RKG) , intent(in) , contiguous :: mat(:,:)
3269 type(choLow_type) , intent(in) :: auxil
3270 type(uppDia_type) , intent(in) :: subset
3271 end subroutine
3272#endif
3273
3274 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3275
3276 end interface
3277
3278!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3279
3280end module pm_matrixInv ! LCOV_EXCL_LINE
Generate and return the full inverse of an input matrix of general or triangular form directly or thr...
Generate and return the full inverse of a general or triangular matrix or a subset of the inverse of ...
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 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 abstract and concrete derived types that are required for compile-time resolutio...
type(choUpp_type), parameter choUpp
This is a scalar parameter object of type cholesky_type that is exclusively used to signify upper-tri...
type(square_type), parameter square
This is a scalar parameter object of type square_type that is exclusively used to signify the Square ...
type(posdefmat_type), parameter posdefmat
This is a scalar parameter object of type hermitian_type that is exclusively used to signify the Herm...
character(*, SK), parameter MODULE_NAME
type(lowerUnit_type), parameter lowerUnit
This is a scalar parameter object of type upperUnit_type that is exclusively used to signify the lowe...
type(upperUnit_type), parameter upperUnit
This is a scalar parameter object of type upperUnit_type that is exclusively used to signify the uppe...
type(upperDiag_type), parameter upperDiag
This is a scalar parameter object of type upperDiag_type that is exclusively used to signify the uppe...
type(lowerDiag_type), parameter lowerDiag
This is a scalar parameter object of type lowerDiag_type that is exclusively used to signify the lowe...
type(lup_type), parameter lup
This is a scalar parameter object of type lup_type that is exclusively used to signify the LUP Factor...
type(choLow_type), parameter choLow
This is a scalar parameter object of type cholesky_type that is exclusively used to signify lower-tri...
This module contains abstract and concrete derived types and procedures related to the inversion of s...
type(inversion_type), parameter inversion
This is a scalar parameter object of type inversion_type that is exclusively used to request no trans...
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...
This is a concrete derived type whose instances are exclusively used to signify the lower-triangle Ch...
This is a concrete derived type whose instances are exclusively used to signify the upper-triangle Ch...
This is a concrete derived type whose instances are exclusively used to signify the lower-diagonal tr...
This is a concrete derived type whose instances are exclusively used to signify the lower-unit-diagon...
This is a concrete derived type whose instances are exclusively used to signify the LUP Factorization...
This is an abstract derived type for constructing concrete derived types to distinguish various proce...
This is a concrete derived type whose instances are exclusively used to signify the Hermitian Positiv...
This is a concrete derived type whose instances are exclusively used to signify the Square class of a...
This is a concrete derived type whose instances are exclusively used to signify the upper-diagonal tr...
This is a concrete derived type whose instances are exclusively used to signify the upper-unit-diagon...
This is a concrete derived type whose instances are exclusively used to request inversion operation o...
This is a concrete derived type whose instances are exclusively used to request lower-diagonal triang...
This is an abstract derived type for constructing concrete derived types to distinguish various proce...
This is a concrete derived type whose instances are exclusively used to request upper-diagonal triang...