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
1783
1784 ! implicit upperDiag invFUL.
1785
1786 interface setMatInv
1787
1788 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1789
1790#if CK5_ENABLED
1791 PURE module subroutine setMatInvCUD_IMP_CK5(inv, mat, auxil)
1792#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1793 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUD_IMP_CK5
1794#endif
1795 use pm_kind, only: CKG => CK5
1796 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
1797 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1798 type(upperDiag_type), intent(in) :: auxil
1799 end subroutine
1800#endif
1801
1802#if CK4_ENABLED
1803 PURE module subroutine setMatInvCUD_IMP_CK4(inv, mat, auxil)
1804#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1805 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUD_IMP_CK4
1806#endif
1807 use pm_kind, only: CKG => CK4
1808 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
1809 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1810 type(upperDiag_type), intent(in) :: auxil
1811 end subroutine
1812#endif
1813
1814#if CK3_ENABLED
1815 PURE module subroutine setMatInvCUD_IMP_CK3(inv, mat, auxil)
1816#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1817 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUD_IMP_CK3
1818#endif
1819 use pm_kind, only: CKG => CK3
1820 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
1821 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1822 type(upperDiag_type), intent(in) :: auxil
1823 end subroutine
1824#endif
1825
1826#if CK2_ENABLED
1827 PURE module subroutine setMatInvCUD_IMP_CK2(inv, mat, auxil)
1828#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1829 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUD_IMP_CK2
1830#endif
1831 use pm_kind, only: CKG => CK2
1832 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
1833 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1834 type(upperDiag_type), intent(in) :: auxil
1835 end subroutine
1836#endif
1837
1838#if CK1_ENABLED
1839 PURE module subroutine setMatInvCUD_IMP_CK1(inv, mat, auxil)
1840#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1841 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUD_IMP_CK1
1842#endif
1843 use pm_kind, only: CKG => CK1
1844 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
1845 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1846 type(upperDiag_type), intent(in) :: auxil
1847 end subroutine
1848#endif
1849
1850 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1851
1852#if RK5_ENABLED
1853 PURE module subroutine setMatInvCUD_IMP_RK5(inv, mat, auxil)
1854#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1855 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUD_IMP_RK5
1856#endif
1857 use pm_kind, only: RKG => RK5
1858 real(RKG) , intent(inout) , contiguous :: inv(:,:)
1859 real(RKG) , intent(in) , contiguous :: mat(:,:)
1860 type(upperDiag_type), intent(in) :: auxil
1861 end subroutine
1862#endif
1863
1864#if RK4_ENABLED
1865 PURE module subroutine setMatInvCUD_IMP_RK4(inv, mat, auxil)
1866#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1867 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUD_IMP_RK4
1868#endif
1869 use pm_kind, only: RKG => RK4
1870 real(RKG) , intent(inout) , contiguous :: inv(:,:)
1871 real(RKG) , intent(in) , contiguous :: mat(:,:)
1872 type(upperDiag_type), intent(in) :: auxil
1873 end subroutine
1874#endif
1875
1876#if RK3_ENABLED
1877 PURE module subroutine setMatInvCUD_IMP_RK3(inv, mat, auxil)
1878#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1879 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUD_IMP_RK3
1880#endif
1881 use pm_kind, only: RKG => RK3
1882 real(RKG) , intent(inout) , contiguous :: inv(:,:)
1883 real(RKG) , intent(in) , contiguous :: mat(:,:)
1884 type(upperDiag_type), intent(in) :: auxil
1885 end subroutine
1886#endif
1887
1888#if RK2_ENABLED
1889 PURE module subroutine setMatInvCUD_IMP_RK2(inv, mat, auxil)
1890#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1891 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUD_IMP_RK2
1892#endif
1893 use pm_kind, only: RKG => RK2
1894 real(RKG) , intent(inout) , contiguous :: inv(:,:)
1895 real(RKG) , intent(in) , contiguous :: mat(:,:)
1896 type(upperDiag_type), intent(in) :: auxil
1897 end subroutine
1898#endif
1899
1900#if RK1_ENABLED
1901 PURE module subroutine setMatInvCUD_IMP_RK1(inv, mat, auxil)
1902#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1903 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUD_IMP_RK1
1904#endif
1905 use pm_kind, only: RKG => RK1
1906 real(RKG) , intent(inout) , contiguous :: inv(:,:)
1907 real(RKG) , intent(in) , contiguous :: mat(:,:)
1908 type(upperDiag_type), intent(in) :: auxil
1909 end subroutine
1910#endif
1911
1912 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1913
1914 end interface
1915
1916 ! implicit lowerDiag invFUL.
1917
1918 interface setMatInv
1919
1920 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1921
1922#if CK5_ENABLED
1923 PURE module subroutine setMatInvCLD_IMP_CK5(inv, mat, auxil)
1924#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1925 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLD_IMP_CK5
1926#endif
1927 use pm_kind, only: CKG => CK5
1928 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
1929 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1930 type(lowerDiag_type), intent(in) :: auxil
1931 end subroutine
1932#endif
1933
1934#if CK4_ENABLED
1935 PURE module subroutine setMatInvCLD_IMP_CK4(inv, mat, auxil)
1936#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1937 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLD_IMP_CK4
1938#endif
1939 use pm_kind, only: CKG => CK4
1940 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
1941 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1942 type(lowerDiag_type), intent(in) :: auxil
1943 end subroutine
1944#endif
1945
1946#if CK3_ENABLED
1947 PURE module subroutine setMatInvCLD_IMP_CK3(inv, mat, auxil)
1948#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1949 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLD_IMP_CK3
1950#endif
1951 use pm_kind, only: CKG => CK3
1952 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
1953 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1954 type(lowerDiag_type), intent(in) :: auxil
1955 end subroutine
1956#endif
1957
1958#if CK2_ENABLED
1959 PURE module subroutine setMatInvCLD_IMP_CK2(inv, mat, auxil)
1960#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1961 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLD_IMP_CK2
1962#endif
1963 use pm_kind, only: CKG => CK2
1964 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
1965 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1966 type(lowerDiag_type), intent(in) :: auxil
1967 end subroutine
1968#endif
1969
1970#if CK1_ENABLED
1971 PURE module subroutine setMatInvCLD_IMP_CK1(inv, mat, auxil)
1972#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1973 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLD_IMP_CK1
1974#endif
1975 use pm_kind, only: CKG => CK1
1976 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
1977 complex(CKG) , intent(in) , contiguous :: mat(:,:)
1978 type(lowerDiag_type), intent(in) :: auxil
1979 end subroutine
1980#endif
1981
1982 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1983
1984#if RK5_ENABLED
1985 PURE module subroutine setMatInvCLD_IMP_RK5(inv, mat, auxil)
1986#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1987 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLD_IMP_RK5
1988#endif
1989 use pm_kind, only: RKG => RK5
1990 real(RKG) , intent(inout) , contiguous :: inv(:,:)
1991 real(RKG) , intent(in) , contiguous :: mat(:,:)
1992 type(lowerDiag_type), intent(in) :: auxil
1993 end subroutine
1994#endif
1995
1996#if RK4_ENABLED
1997 PURE module subroutine setMatInvCLD_IMP_RK4(inv, mat, auxil)
1998#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1999 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLD_IMP_RK4
2000#endif
2001 use pm_kind, only: RKG => RK4
2002 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2003 real(RKG) , intent(in) , contiguous :: mat(:,:)
2004 type(lowerDiag_type), intent(in) :: auxil
2005 end subroutine
2006#endif
2007
2008#if RK3_ENABLED
2009 PURE module subroutine setMatInvCLD_IMP_RK3(inv, mat, auxil)
2010#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2011 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLD_IMP_RK3
2012#endif
2013 use pm_kind, only: RKG => RK3
2014 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2015 real(RKG) , intent(in) , contiguous :: mat(:,:)
2016 type(lowerDiag_type), intent(in) :: auxil
2017 end subroutine
2018#endif
2019
2020#if RK2_ENABLED
2021 PURE module subroutine setMatInvCLD_IMP_RK2(inv, mat, auxil)
2022#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2023 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLD_IMP_RK2
2024#endif
2025 use pm_kind, only: RKG => RK2
2026 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2027 real(RKG) , intent(in) , contiguous :: mat(:,:)
2028 type(lowerDiag_type), intent(in) :: auxil
2029 end subroutine
2030#endif
2031
2032#if RK1_ENABLED
2033 PURE module subroutine setMatInvCLD_IMP_RK1(inv, mat, auxil)
2034#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2035 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLD_IMP_RK1
2036#endif
2037 use pm_kind, only: RKG => RK1
2038 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2039 real(RKG) , intent(in) , contiguous :: mat(:,:)
2040 type(lowerDiag_type), intent(in) :: auxil
2041 end subroutine
2042#endif
2043
2044 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2045
2046 end interface
2047
2048 ! implicit upperUnit invFUL.
2049
2050 interface setMatInv
2051
2052 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2053
2054#if CK5_ENABLED
2055 PURE module subroutine setMatInvCUU_IMP_CK5(inv, mat, auxil)
2056#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2057 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUU_IMP_CK5
2058#endif
2059 use pm_kind, only: CKG => CK5
2060 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2061 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2062 type(upperUnit_type), intent(in) :: auxil
2063 end subroutine
2064#endif
2065
2066#if CK4_ENABLED
2067 PURE module subroutine setMatInvCUU_IMP_CK4(inv, mat, auxil)
2068#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2069 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUU_IMP_CK4
2070#endif
2071 use pm_kind, only: CKG => CK4
2072 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2073 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2074 type(upperUnit_type), intent(in) :: auxil
2075 end subroutine
2076#endif
2077
2078#if CK3_ENABLED
2079 PURE module subroutine setMatInvCUU_IMP_CK3(inv, mat, auxil)
2080#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2081 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUU_IMP_CK3
2082#endif
2083 use pm_kind, only: CKG => CK3
2084 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2085 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2086 type(upperUnit_type), intent(in) :: auxil
2087 end subroutine
2088#endif
2089
2090#if CK2_ENABLED
2091 PURE module subroutine setMatInvCUU_IMP_CK2(inv, mat, auxil)
2092#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2093 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUU_IMP_CK2
2094#endif
2095 use pm_kind, only: CKG => CK2
2096 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2097 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2098 type(upperUnit_type), intent(in) :: auxil
2099 end subroutine
2100#endif
2101
2102#if CK1_ENABLED
2103 PURE module subroutine setMatInvCUU_IMP_CK1(inv, mat, auxil)
2104#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2105 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUU_IMP_CK1
2106#endif
2107 use pm_kind, only: CKG => CK1
2108 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2109 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2110 type(upperUnit_type), intent(in) :: auxil
2111 end subroutine
2112#endif
2113
2114 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2115
2116#if RK5_ENABLED
2117 PURE module subroutine setMatInvCUU_IMP_RK5(inv, mat, auxil)
2118#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2119 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUU_IMP_RK5
2120#endif
2121 use pm_kind, only: RKG => RK5
2122 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2123 real(RKG) , intent(in) , contiguous :: mat(:,:)
2124 type(upperUnit_type), intent(in) :: auxil
2125 end subroutine
2126#endif
2127
2128#if RK4_ENABLED
2129 PURE module subroutine setMatInvCUU_IMP_RK4(inv, mat, auxil)
2130#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2131 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUU_IMP_RK4
2132#endif
2133 use pm_kind, only: RKG => RK4
2134 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2135 real(RKG) , intent(in) , contiguous :: mat(:,:)
2136 type(upperUnit_type), intent(in) :: auxil
2137 end subroutine
2138#endif
2139
2140#if RK3_ENABLED
2141 PURE module subroutine setMatInvCUU_IMP_RK3(inv, mat, auxil)
2142#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2143 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUU_IMP_RK3
2144#endif
2145 use pm_kind, only: RKG => RK3
2146 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2147 real(RKG) , intent(in) , contiguous :: mat(:,:)
2148 type(upperUnit_type), intent(in) :: auxil
2149 end subroutine
2150#endif
2151
2152#if RK2_ENABLED
2153 PURE module subroutine setMatInvCUU_IMP_RK2(inv, mat, auxil)
2154#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2155 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUU_IMP_RK2
2156#endif
2157 use pm_kind, only: RKG => RK2
2158 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2159 real(RKG) , intent(in) , contiguous :: mat(:,:)
2160 type(upperUnit_type), intent(in) :: auxil
2161 end subroutine
2162#endif
2163
2164#if RK1_ENABLED
2165 PURE module subroutine setMatInvCUU_IMP_RK1(inv, mat, auxil)
2166#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2167 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCUU_IMP_RK1
2168#endif
2169 use pm_kind, only: RKG => RK1
2170 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2171 real(RKG) , intent(in) , contiguous :: mat(:,:)
2172 type(upperUnit_type), intent(in) :: auxil
2173 end subroutine
2174#endif
2175
2176 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2177
2178 end interface
2179
2180 ! implicit lowerUnit invFUL.
2181
2182 interface setMatInv
2183
2184 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2185
2186#if CK5_ENABLED
2187 PURE module subroutine setMatInvCLU_IMP_CK5(inv, mat, auxil)
2188#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2189 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLU_IMP_CK5
2190#endif
2191 use pm_kind, only: CKG => CK5
2192 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2193 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2194 type(lowerUnit_type), intent(in) :: auxil
2195 end subroutine
2196#endif
2197
2198#if CK4_ENABLED
2199 PURE module subroutine setMatInvCLU_IMP_CK4(inv, mat, auxil)
2200#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2201 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLU_IMP_CK4
2202#endif
2203 use pm_kind, only: CKG => CK4
2204 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2205 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2206 type(lowerUnit_type), intent(in) :: auxil
2207 end subroutine
2208#endif
2209
2210#if CK3_ENABLED
2211 PURE module subroutine setMatInvCLU_IMP_CK3(inv, mat, auxil)
2212#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2213 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLU_IMP_CK3
2214#endif
2215 use pm_kind, only: CKG => CK3
2216 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2217 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2218 type(lowerUnit_type), intent(in) :: auxil
2219 end subroutine
2220#endif
2221
2222#if CK2_ENABLED
2223 PURE module subroutine setMatInvCLU_IMP_CK2(inv, mat, auxil)
2224#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2225 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLU_IMP_CK2
2226#endif
2227 use pm_kind, only: CKG => CK2
2228 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2229 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2230 type(lowerUnit_type), intent(in) :: auxil
2231 end subroutine
2232#endif
2233
2234#if CK1_ENABLED
2235 PURE module subroutine setMatInvCLU_IMP_CK1(inv, mat, auxil)
2236#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2237 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLU_IMP_CK1
2238#endif
2239 use pm_kind, only: CKG => CK1
2240 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2241 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2242 type(lowerUnit_type), intent(in) :: auxil
2243 end subroutine
2244#endif
2245
2246 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2247
2248#if RK5_ENABLED
2249 PURE module subroutine setMatInvCLU_IMP_RK5(inv, mat, auxil)
2250#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2251 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLU_IMP_RK5
2252#endif
2253 use pm_kind, only: RKG => RK5
2254 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2255 real(RKG) , intent(in) , contiguous :: mat(:,:)
2256 type(lowerUnit_type), intent(in) :: auxil
2257 end subroutine
2258#endif
2259
2260#if RK4_ENABLED
2261 PURE module subroutine setMatInvCLU_IMP_RK4(inv, mat, auxil)
2262#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2263 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLU_IMP_RK4
2264#endif
2265 use pm_kind, only: RKG => RK4
2266 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2267 real(RKG) , intent(in) , contiguous :: mat(:,:)
2268 type(lowerUnit_type), intent(in) :: auxil
2269 end subroutine
2270#endif
2271
2272#if RK3_ENABLED
2273 PURE module subroutine setMatInvCLU_IMP_RK3(inv, mat, auxil)
2274#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2275 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLU_IMP_RK3
2276#endif
2277 use pm_kind, only: RKG => RK3
2278 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2279 real(RKG) , intent(in) , contiguous :: mat(:,:)
2280 type(lowerUnit_type), intent(in) :: auxil
2281 end subroutine
2282#endif
2283
2284#if RK2_ENABLED
2285 PURE module subroutine setMatInvCLU_IMP_RK2(inv, mat, auxil)
2286#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2287 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLU_IMP_RK2
2288#endif
2289 use pm_kind, only: RKG => RK2
2290 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2291 real(RKG) , intent(in) , contiguous :: mat(:,:)
2292 type(lowerUnit_type), intent(in) :: auxil
2293 end subroutine
2294#endif
2295
2296#if RK1_ENABLED
2297 PURE module subroutine setMatInvCLU_IMP_RK1(inv, mat, auxil)
2298#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2299 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCLU_IMP_RK1
2300#endif
2301 use pm_kind, only: RKG => RK1
2302 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2303 real(RKG) , intent(in) , contiguous :: mat(:,:)
2304 type(lowerUnit_type), intent(in) :: auxil
2305 end subroutine
2306#endif
2307
2308 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2309
2310 end interface
2311
2312 ! implicit lup invFUL.
2313
2314 interface setMatInv
2315
2316 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2317
2318#if CK5_ENABLED
2319 PURE module subroutine setMatInvLUP_IMP_CK5(inv, mat, auxil)
2320#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2321 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvLUP_IMP_CK5
2322#endif
2323 use pm_kind, only: CKG => CK5
2324 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2325 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2326 integer(IK) , intent(in) , contiguous :: auxil(:)
2327 end subroutine
2328#endif
2329
2330#if CK4_ENABLED
2331 PURE module subroutine setMatInvLUP_IMP_CK4(inv, mat, auxil)
2332#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2333 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvLUP_IMP_CK4
2334#endif
2335 use pm_kind, only: CKG => CK4
2336 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2337 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2338 integer(IK) , intent(in) , contiguous :: auxil(:)
2339 end subroutine
2340#endif
2341
2342#if CK3_ENABLED
2343 PURE module subroutine setMatInvLUP_IMP_CK3(inv, mat, auxil)
2344#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2345 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvLUP_IMP_CK3
2346#endif
2347 use pm_kind, only: CKG => CK3
2348 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2349 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2350 integer(IK) , intent(in) , contiguous :: auxil(:)
2351 end subroutine
2352#endif
2353
2354#if CK2_ENABLED
2355 PURE module subroutine setMatInvLUP_IMP_CK2(inv, mat, auxil)
2356#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2357 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvLUP_IMP_CK2
2358#endif
2359 use pm_kind, only: CKG => CK2
2360 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2361 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2362 integer(IK) , intent(in) , contiguous :: auxil(:)
2363 end subroutine
2364#endif
2365
2366#if CK1_ENABLED
2367 PURE module subroutine setMatInvLUP_IMP_CK1(inv, mat, auxil)
2368#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2369 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvLUP_IMP_CK1
2370#endif
2371 use pm_kind, only: CKG => CK1
2372 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2373 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2374 integer(IK) , intent(in) , contiguous :: auxil(:)
2375 end subroutine
2376#endif
2377
2378 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2379
2380#if RK5_ENABLED
2381 PURE module subroutine setMatInvLUP_IMP_RK5(inv, mat, auxil)
2382#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2383 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvLUP_IMP_RK5
2384#endif
2385 use pm_kind, only: RKG => RK5
2386 real(RKG) , intent(out) , contiguous :: inv(:,:)
2387 real(RKG) , intent(in) , contiguous :: mat(:,:)
2388 integer(IK) , intent(in) , contiguous :: auxil(:)
2389 end subroutine
2390#endif
2391
2392#if RK4_ENABLED
2393 PURE module subroutine setMatInvLUP_IMP_RK4(inv, mat, auxil)
2394#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2395 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvLUP_IMP_RK4
2396#endif
2397 use pm_kind, only: RKG => RK4
2398 real(RKG) , intent(out) , contiguous :: inv(:,:)
2399 real(RKG) , intent(in) , contiguous :: mat(:,:)
2400 integer(IK) , intent(in) , contiguous :: auxil(:)
2401 end subroutine
2402#endif
2403
2404#if RK3_ENABLED
2405 PURE module subroutine setMatInvLUP_IMP_RK3(inv, mat, auxil)
2406#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2407 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvLUP_IMP_RK3
2408#endif
2409 use pm_kind, only: RKG => RK3
2410 real(RKG) , intent(out) , contiguous :: inv(:,:)
2411 real(RKG) , intent(in) , contiguous :: mat(:,:)
2412 integer(IK) , intent(in) , contiguous :: auxil(:)
2413 end subroutine
2414#endif
2415
2416#if RK2_ENABLED
2417 PURE module subroutine setMatInvLUP_IMP_RK2(inv, mat, auxil)
2418#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2419 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvLUP_IMP_RK2
2420#endif
2421 use pm_kind, only: RKG => RK2
2422 real(RKG) , intent(out) , contiguous :: inv(:,:)
2423 real(RKG) , intent(in) , contiguous :: mat(:,:)
2424 integer(IK) , intent(in) , contiguous :: auxil(:)
2425 end subroutine
2426#endif
2427
2428#if RK1_ENABLED
2429 PURE module subroutine setMatInvLUP_IMP_RK1(inv, mat, auxil)
2430#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2431 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvLUP_IMP_RK1
2432#endif
2433 use pm_kind, only: RKG => RK1
2434 real(RKG) , intent(out) , contiguous :: inv(:,:)
2435 real(RKG) , intent(in) , contiguous :: mat(:,:)
2436 integer(IK) , intent(in) , contiguous :: auxil(:)
2437 end subroutine
2438#endif
2439
2440 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2441
2442 end interface
2443
2444 ! implicit choUpp invFUL.
2445
2446 interface setMatInv
2447
2448 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2449
2450#if CK5_ENABLED
2451 PURE module subroutine setMatInvCCU_FUL_IMP_CK5(inv, mat, auxil)
2452#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2453 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_FUL_IMP_CK5
2454#endif
2455 use pm_kind, only: CKG => CK5
2456 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2457 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2458 type(choUpp_type) , intent(in) :: auxil
2459 end subroutine
2460#endif
2461
2462#if CK4_ENABLED
2463 PURE module subroutine setMatInvCCU_FUL_IMP_CK4(inv, mat, auxil)
2464#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2465 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_FUL_IMP_CK4
2466#endif
2467 use pm_kind, only: CKG => CK4
2468 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2469 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2470 type(choUpp_type) , intent(in) :: auxil
2471 end subroutine
2472#endif
2473
2474#if CK3_ENABLED
2475 PURE module subroutine setMatInvCCU_FUL_IMP_CK3(inv, mat, auxil)
2476#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2477 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_FUL_IMP_CK3
2478#endif
2479 use pm_kind, only: CKG => CK3
2480 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2481 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2482 type(choUpp_type) , intent(in) :: auxil
2483 end subroutine
2484#endif
2485
2486#if CK2_ENABLED
2487 PURE module subroutine setMatInvCCU_FUL_IMP_CK2(inv, mat, auxil)
2488#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2489 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_FUL_IMP_CK2
2490#endif
2491 use pm_kind, only: CKG => CK2
2492 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2493 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2494 type(choUpp_type) , intent(in) :: auxil
2495 end subroutine
2496#endif
2497
2498#if CK1_ENABLED
2499 PURE module subroutine setMatInvCCU_FUL_IMP_CK1(inv, mat, auxil)
2500#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2501 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_FUL_IMP_CK1
2502#endif
2503 use pm_kind, only: CKG => CK1
2504 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2505 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2506 type(choUpp_type) , intent(in) :: auxil
2507 end subroutine
2508#endif
2509
2510 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2511
2512#if RK5_ENABLED
2513 PURE module subroutine setMatInvCCU_FUL_IMP_RK5(inv, mat, auxil)
2514#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2515 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_FUL_IMP_RK5
2516#endif
2517 use pm_kind, only: RKG => RK5
2518 real(RKG) , intent(out) , contiguous :: inv(:,:)
2519 real(RKG) , intent(in) , contiguous :: mat(:,:)
2520 type(choUpp_type) , intent(in) :: auxil
2521 end subroutine
2522#endif
2523
2524#if RK4_ENABLED
2525 PURE module subroutine setMatInvCCU_FUL_IMP_RK4(inv, mat, auxil)
2526#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2527 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_FUL_IMP_RK4
2528#endif
2529 use pm_kind, only: RKG => RK4
2530 real(RKG) , intent(out) , contiguous :: inv(:,:)
2531 real(RKG) , intent(in) , contiguous :: mat(:,:)
2532 type(choUpp_type) , intent(in) :: auxil
2533 end subroutine
2534#endif
2535
2536#if RK3_ENABLED
2537 PURE module subroutine setMatInvCCU_FUL_IMP_RK3(inv, mat, auxil)
2538#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2539 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_FUL_IMP_RK3
2540#endif
2541 use pm_kind, only: RKG => RK3
2542 real(RKG) , intent(out) , contiguous :: inv(:,:)
2543 real(RKG) , intent(in) , contiguous :: mat(:,:)
2544 type(choUpp_type) , intent(in) :: auxil
2545 end subroutine
2546#endif
2547
2548#if RK2_ENABLED
2549 PURE module subroutine setMatInvCCU_FUL_IMP_RK2(inv, mat, auxil)
2550#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2551 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_FUL_IMP_RK2
2552#endif
2553 use pm_kind, only: RKG => RK2
2554 real(RKG) , intent(out) , contiguous :: inv(:,:)
2555 real(RKG) , intent(in) , contiguous :: mat(:,:)
2556 type(choUpp_type) , intent(in) :: auxil
2557 end subroutine
2558#endif
2559
2560#if RK1_ENABLED
2561 PURE module subroutine setMatInvCCU_FUL_IMP_RK1(inv, mat, auxil)
2562#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2563 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_FUL_IMP_RK1
2564#endif
2565 use pm_kind, only: RKG => RK1
2566 real(RKG) , intent(out) , contiguous :: inv(:,:)
2567 real(RKG) , intent(in) , contiguous :: mat(:,:)
2568 type(choUpp_type) , intent(in) :: auxil
2569 end subroutine
2570#endif
2571
2572 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2573
2574 end interface
2575
2576 ! implicit choLow invFUL.
2577
2578 interface setMatInv
2579
2580 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2581
2582#if CK5_ENABLED
2583 PURE module subroutine setMatInvCCL_FUL_IMP_CK5(inv, mat, auxil)
2584#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2585 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_FUL_IMP_CK5
2586#endif
2587 use pm_kind, only: CKG => CK5
2588 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2589 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2590 type(choLow_type) , intent(in) :: auxil
2591 end subroutine
2592#endif
2593
2594#if CK4_ENABLED
2595 PURE module subroutine setMatInvCCL_FUL_IMP_CK4(inv, mat, auxil)
2596#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2597 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_FUL_IMP_CK4
2598#endif
2599 use pm_kind, only: CKG => CK4
2600 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2601 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2602 type(choLow_type) , intent(in) :: auxil
2603 end subroutine
2604#endif
2605
2606#if CK3_ENABLED
2607 PURE module subroutine setMatInvCCL_FUL_IMP_CK3(inv, mat, auxil)
2608#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2609 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_FUL_IMP_CK3
2610#endif
2611 use pm_kind, only: CKG => CK3
2612 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2613 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2614 type(choLow_type) , intent(in) :: auxil
2615 end subroutine
2616#endif
2617
2618#if CK2_ENABLED
2619 PURE module subroutine setMatInvCCL_FUL_IMP_CK2(inv, mat, auxil)
2620#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2621 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_FUL_IMP_CK2
2622#endif
2623 use pm_kind, only: CKG => CK2
2624 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2625 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2626 type(choLow_type) , intent(in) :: auxil
2627 end subroutine
2628#endif
2629
2630#if CK1_ENABLED
2631 PURE module subroutine setMatInvCCL_FUL_IMP_CK1(inv, mat, auxil)
2632#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2633 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_FUL_IMP_CK1
2634#endif
2635 use pm_kind, only: CKG => CK1
2636 complex(CKG) , intent(out) , contiguous :: inv(:,:)
2637 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2638 type(choLow_type) , intent(in) :: auxil
2639 end subroutine
2640#endif
2641
2642 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2643
2644#if RK5_ENABLED
2645 PURE module subroutine setMatInvCCL_FUL_IMP_RK5(inv, mat, auxil)
2646#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2647 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_FUL_IMP_RK5
2648#endif
2649 use pm_kind, only: RKG => RK5
2650 real(RKG) , intent(out) , contiguous :: inv(:,:)
2651 real(RKG) , intent(in) , contiguous :: mat(:,:)
2652 type(choLow_type) , intent(in) :: auxil
2653 end subroutine
2654#endif
2655
2656#if RK4_ENABLED
2657 PURE module subroutine setMatInvCCL_FUL_IMP_RK4(inv, mat, auxil)
2658#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2659 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_FUL_IMP_RK4
2660#endif
2661 use pm_kind, only: RKG => RK4
2662 real(RKG) , intent(out) , contiguous :: inv(:,:)
2663 real(RKG) , intent(in) , contiguous :: mat(:,:)
2664 type(choLow_type) , intent(in) :: auxil
2665 end subroutine
2666#endif
2667
2668#if RK3_ENABLED
2669 PURE module subroutine setMatInvCCL_FUL_IMP_RK3(inv, mat, auxil)
2670#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2671 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_FUL_IMP_RK3
2672#endif
2673 use pm_kind, only: RKG => RK3
2674 real(RKG) , intent(out) , contiguous :: inv(:,:)
2675 real(RKG) , intent(in) , contiguous :: mat(:,:)
2676 type(choLow_type) , intent(in) :: auxil
2677 end subroutine
2678#endif
2679
2680#if RK2_ENABLED
2681 PURE module subroutine setMatInvCCL_FUL_IMP_RK2(inv, mat, auxil)
2682#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2683 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_FUL_IMP_RK2
2684#endif
2685 use pm_kind, only: RKG => RK2
2686 real(RKG) , intent(out) , contiguous :: inv(:,:)
2687 real(RKG) , intent(in) , contiguous :: mat(:,:)
2688 type(choLow_type) , intent(in) :: auxil
2689 end subroutine
2690#endif
2691
2692#if RK1_ENABLED
2693 PURE module subroutine setMatInvCCL_FUL_IMP_RK1(inv, mat, auxil)
2694#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2695 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_FUL_IMP_RK1
2696#endif
2697 use pm_kind, only: RKG => RK1
2698 real(RKG) , intent(out) , contiguous :: inv(:,:)
2699 real(RKG) , intent(in) , contiguous :: mat(:,:)
2700 type(choLow_type) , intent(in) :: auxil
2701 end subroutine
2702#endif
2703
2704 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2705
2706 end interface
2707
2708 ! implicit choUpp invXLD.
2709
2710 interface setMatInv
2711
2712 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2713
2714#if CK5_ENABLED
2715 PURE module subroutine setMatInvCCU_XLD_IMP_CK5(inv, mat, auxil, subset)
2716#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2717 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_XLD_IMP_CK5
2718#endif
2719 use pm_kind, only: CKG => CK5
2720 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2721 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2722 type(choUpp_type) , intent(in) :: auxil
2723 type(lowDia_type) , intent(in) :: subset
2724 end subroutine
2725#endif
2726
2727#if CK4_ENABLED
2728 PURE module subroutine setMatInvCCU_XLD_IMP_CK4(inv, mat, auxil, subset)
2729#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2730 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_XLD_IMP_CK4
2731#endif
2732 use pm_kind, only: CKG => CK4
2733 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2734 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2735 type(choUpp_type) , intent(in) :: auxil
2736 type(lowDia_type) , intent(in) :: subset
2737 end subroutine
2738#endif
2739
2740#if CK3_ENABLED
2741 PURE module subroutine setMatInvCCU_XLD_IMP_CK3(inv, mat, auxil, subset)
2742#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2743 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_XLD_IMP_CK3
2744#endif
2745 use pm_kind, only: CKG => CK3
2746 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2747 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2748 type(choUpp_type) , intent(in) :: auxil
2749 type(lowDia_type) , intent(in) :: subset
2750 end subroutine
2751#endif
2752
2753#if CK2_ENABLED
2754 PURE module subroutine setMatInvCCU_XLD_IMP_CK2(inv, mat, auxil, subset)
2755#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2756 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_XLD_IMP_CK2
2757#endif
2758 use pm_kind, only: CKG => CK2
2759 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2760 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2761 type(choUpp_type) , intent(in) :: auxil
2762 type(lowDia_type) , intent(in) :: subset
2763 end subroutine
2764#endif
2765
2766#if CK1_ENABLED
2767 PURE module subroutine setMatInvCCU_XLD_IMP_CK1(inv, mat, auxil, subset)
2768#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2769 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_XLD_IMP_CK1
2770#endif
2771 use pm_kind, only: CKG => CK1
2772 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2773 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2774 type(choUpp_type) , intent(in) :: auxil
2775 type(lowDia_type) , intent(in) :: subset
2776 end subroutine
2777#endif
2778
2779 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2780
2781#if RK5_ENABLED
2782 PURE module subroutine setMatInvCCU_XLD_IMP_RK5(inv, mat, auxil, subset)
2783#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2784 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_XLD_IMP_RK5
2785#endif
2786 use pm_kind, only: RKG => RK5
2787 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2788 real(RKG) , intent(in) , contiguous :: mat(:,:)
2789 type(choUpp_type) , intent(in) :: auxil
2790 type(lowDia_type) , intent(in) :: subset
2791 end subroutine
2792#endif
2793
2794#if RK4_ENABLED
2795 PURE module subroutine setMatInvCCU_XLD_IMP_RK4(inv, mat, auxil, subset)
2796#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2797 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_XLD_IMP_RK4
2798#endif
2799 use pm_kind, only: RKG => RK4
2800 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2801 real(RKG) , intent(in) , contiguous :: mat(:,:)
2802 type(choUpp_type) , intent(in) :: auxil
2803 type(lowDia_type) , intent(in) :: subset
2804 end subroutine
2805#endif
2806
2807#if RK3_ENABLED
2808 PURE module subroutine setMatInvCCU_XLD_IMP_RK3(inv, mat, auxil, subset)
2809#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2810 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_XLD_IMP_RK3
2811#endif
2812 use pm_kind, only: RKG => RK3
2813 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2814 real(RKG) , intent(in) , contiguous :: mat(:,:)
2815 type(choUpp_type) , intent(in) :: auxil
2816 type(lowDia_type) , intent(in) :: subset
2817 end subroutine
2818#endif
2819
2820#if RK2_ENABLED
2821 PURE module subroutine setMatInvCCU_XLD_IMP_RK2(inv, mat, auxil, subset)
2822#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2823 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_XLD_IMP_RK2
2824#endif
2825 use pm_kind, only: RKG => RK2
2826 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2827 real(RKG) , intent(in) , contiguous :: mat(:,:)
2828 type(choUpp_type) , intent(in) :: auxil
2829 type(lowDia_type) , intent(in) :: subset
2830 end subroutine
2831#endif
2832
2833#if RK1_ENABLED
2834 PURE module subroutine setMatInvCCU_XLD_IMP_RK1(inv, mat, auxil, subset)
2835#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2836 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_XLD_IMP_RK1
2837#endif
2838 use pm_kind, only: RKG => RK1
2839 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2840 real(RKG) , intent(in) , contiguous :: mat(:,:)
2841 type(choUpp_type) , intent(in) :: auxil
2842 type(lowDia_type) , intent(in) :: subset
2843 end subroutine
2844#endif
2845
2846 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2847
2848 end interface
2849
2850 ! implicit choLow invXLD.
2851
2852 interface setMatInv
2853
2854 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2855
2856#if CK5_ENABLED
2857 PURE module subroutine setMatInvCCL_XLD_IMP_CK5(inv, mat, auxil, subset)
2858#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2859 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_XLD_IMP_CK5
2860#endif
2861 use pm_kind, only: CKG => CK5
2862 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2863 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2864 type(choLow_type) , intent(in) :: auxil
2865 type(lowDia_type) , intent(in) :: subset
2866 end subroutine
2867#endif
2868
2869#if CK4_ENABLED
2870 PURE module subroutine setMatInvCCL_XLD_IMP_CK4(inv, mat, auxil, subset)
2871#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2872 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_XLD_IMP_CK4
2873#endif
2874 use pm_kind, only: CKG => CK4
2875 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2876 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2877 type(choLow_type) , intent(in) :: auxil
2878 type(lowDia_type) , intent(in) :: subset
2879 end subroutine
2880#endif
2881
2882#if CK3_ENABLED
2883 PURE module subroutine setMatInvCCL_XLD_IMP_CK3(inv, mat, auxil, subset)
2884#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2885 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_XLD_IMP_CK3
2886#endif
2887 use pm_kind, only: CKG => CK3
2888 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2889 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2890 type(choLow_type) , intent(in) :: auxil
2891 type(lowDia_type) , intent(in) :: subset
2892 end subroutine
2893#endif
2894
2895#if CK2_ENABLED
2896 PURE module subroutine setMatInvCCL_XLD_IMP_CK2(inv, mat, auxil, subset)
2897#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2898 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_XLD_IMP_CK2
2899#endif
2900 use pm_kind, only: CKG => CK2
2901 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2902 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2903 type(choLow_type) , intent(in) :: auxil
2904 type(lowDia_type) , intent(in) :: subset
2905 end subroutine
2906#endif
2907
2908#if CK1_ENABLED
2909 PURE module subroutine setMatInvCCL_XLD_IMP_CK1(inv, mat, auxil, subset)
2910#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2911 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_XLD_IMP_CK1
2912#endif
2913 use pm_kind, only: CKG => CK1
2914 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
2915 complex(CKG) , intent(in) , contiguous :: mat(:,:)
2916 type(choLow_type) , intent(in) :: auxil
2917 type(lowDia_type) , intent(in) :: subset
2918 end subroutine
2919#endif
2920
2921 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2922
2923#if RK5_ENABLED
2924 PURE module subroutine setMatInvCCL_XLD_IMP_RK5(inv, mat, auxil, subset)
2925#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2926 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_XLD_IMP_RK5
2927#endif
2928 use pm_kind, only: RKG => RK5
2929 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2930 real(RKG) , intent(in) , contiguous :: mat(:,:)
2931 type(choLow_type) , intent(in) :: auxil
2932 type(lowDia_type) , intent(in) :: subset
2933 end subroutine
2934#endif
2935
2936#if RK4_ENABLED
2937 PURE module subroutine setMatInvCCL_XLD_IMP_RK4(inv, mat, auxil, subset)
2938#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2939 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_XLD_IMP_RK4
2940#endif
2941 use pm_kind, only: RKG => RK4
2942 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2943 real(RKG) , intent(in) , contiguous :: mat(:,:)
2944 type(choLow_type) , intent(in) :: auxil
2945 type(lowDia_type) , intent(in) :: subset
2946 end subroutine
2947#endif
2948
2949#if RK3_ENABLED
2950 PURE module subroutine setMatInvCCL_XLD_IMP_RK3(inv, mat, auxil, subset)
2951#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2952 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_XLD_IMP_RK3
2953#endif
2954 use pm_kind, only: RKG => RK3
2955 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2956 real(RKG) , intent(in) , contiguous :: mat(:,:)
2957 type(choLow_type) , intent(in) :: auxil
2958 type(lowDia_type) , intent(in) :: subset
2959 end subroutine
2960#endif
2961
2962#if RK2_ENABLED
2963 PURE module subroutine setMatInvCCL_XLD_IMP_RK2(inv, mat, auxil, subset)
2964#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2965 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_XLD_IMP_RK2
2966#endif
2967 use pm_kind, only: RKG => RK2
2968 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2969 real(RKG) , intent(in) , contiguous :: mat(:,:)
2970 type(choLow_type) , intent(in) :: auxil
2971 type(lowDia_type) , intent(in) :: subset
2972 end subroutine
2973#endif
2974
2975#if RK1_ENABLED
2976 PURE module subroutine setMatInvCCL_XLD_IMP_RK1(inv, mat, auxil, subset)
2977#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2978 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_XLD_IMP_RK1
2979#endif
2980 use pm_kind, only: RKG => RK1
2981 real(RKG) , intent(inout) , contiguous :: inv(:,:)
2982 real(RKG) , intent(in) , contiguous :: mat(:,:)
2983 type(choLow_type) , intent(in) :: auxil
2984 type(lowDia_type) , intent(in) :: subset
2985 end subroutine
2986#endif
2987
2988 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2989
2990 end interface
2991
2992 ! implicit choUpp invUXD.
2993
2994 interface setMatInv
2995
2996 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2997
2998#if CK5_ENABLED
2999 PURE module subroutine setMatInvCCU_UXD_IMP_CK5(inv, mat, auxil, subset)
3000#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3001 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_UXD_IMP_CK5
3002#endif
3003 use pm_kind, only: CKG => CK5
3004 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
3005 complex(CKG) , intent(in) , contiguous :: mat(:,:)
3006 type(choUpp_type) , intent(in) :: auxil
3007 type(uppDia_type) , intent(in) :: subset
3008 end subroutine
3009#endif
3010
3011#if CK4_ENABLED
3012 PURE module subroutine setMatInvCCU_UXD_IMP_CK4(inv, mat, auxil, subset)
3013#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3014 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_UXD_IMP_CK4
3015#endif
3016 use pm_kind, only: CKG => CK4
3017 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
3018 complex(CKG) , intent(in) , contiguous :: mat(:,:)
3019 type(choUpp_type) , intent(in) :: auxil
3020 type(uppDia_type) , intent(in) :: subset
3021 end subroutine
3022#endif
3023
3024#if CK3_ENABLED
3025 PURE module subroutine setMatInvCCU_UXD_IMP_CK3(inv, mat, auxil, subset)
3026#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3027 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_UXD_IMP_CK3
3028#endif
3029 use pm_kind, only: CKG => CK3
3030 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
3031 complex(CKG) , intent(in) , contiguous :: mat(:,:)
3032 type(choUpp_type) , intent(in) :: auxil
3033 type(uppDia_type) , intent(in) :: subset
3034 end subroutine
3035#endif
3036
3037#if CK2_ENABLED
3038 PURE module subroutine setMatInvCCU_UXD_IMP_CK2(inv, mat, auxil, subset)
3039#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3040 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_UXD_IMP_CK2
3041#endif
3042 use pm_kind, only: CKG => CK2
3043 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
3044 complex(CKG) , intent(in) , contiguous :: mat(:,:)
3045 type(choUpp_type) , intent(in) :: auxil
3046 type(uppDia_type) , intent(in) :: subset
3047 end subroutine
3048#endif
3049
3050#if CK1_ENABLED
3051 PURE module subroutine setMatInvCCU_UXD_IMP_CK1(inv, mat, auxil, subset)
3052#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3053 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_UXD_IMP_CK1
3054#endif
3055 use pm_kind, only: CKG => CK1
3056 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
3057 complex(CKG) , intent(in) , contiguous :: mat(:,:)
3058 type(choUpp_type) , intent(in) :: auxil
3059 type(uppDia_type) , intent(in) :: subset
3060 end subroutine
3061#endif
3062
3063 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3064
3065#if RK5_ENABLED
3066 PURE module subroutine setMatInvCCU_UXD_IMP_RK5(inv, mat, auxil, subset)
3067#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3068 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_UXD_IMP_RK5
3069#endif
3070 use pm_kind, only: RKG => RK5
3071 real(RKG) , intent(inout) , contiguous :: inv(:,:)
3072 real(RKG) , intent(in) , contiguous :: mat(:,:)
3073 type(choUpp_type) , intent(in) :: auxil
3074 type(uppDia_type) , intent(in) :: subset
3075 end subroutine
3076#endif
3077
3078#if RK4_ENABLED
3079 PURE module subroutine setMatInvCCU_UXD_IMP_RK4(inv, mat, auxil, subset)
3080#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3081 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_UXD_IMP_RK4
3082#endif
3083 use pm_kind, only: RKG => RK4
3084 real(RKG) , intent(inout) , contiguous :: inv(:,:)
3085 real(RKG) , intent(in) , contiguous :: mat(:,:)
3086 type(choUpp_type) , intent(in) :: auxil
3087 type(uppDia_type) , intent(in) :: subset
3088 end subroutine
3089#endif
3090
3091#if RK3_ENABLED
3092 PURE module subroutine setMatInvCCU_UXD_IMP_RK3(inv, mat, auxil, subset)
3093#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3094 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_UXD_IMP_RK3
3095#endif
3096 use pm_kind, only: RKG => RK3
3097 real(RKG) , intent(inout) , contiguous :: inv(:,:)
3098 real(RKG) , intent(in) , contiguous :: mat(:,:)
3099 type(choUpp_type) , intent(in) :: auxil
3100 type(uppDia_type) , intent(in) :: subset
3101 end subroutine
3102#endif
3103
3104#if RK2_ENABLED
3105 PURE module subroutine setMatInvCCU_UXD_IMP_RK2(inv, mat, auxil, subset)
3106#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3107 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_UXD_IMP_RK2
3108#endif
3109 use pm_kind, only: RKG => RK2
3110 real(RKG) , intent(inout) , contiguous :: inv(:,:)
3111 real(RKG) , intent(in) , contiguous :: mat(:,:)
3112 type(choUpp_type) , intent(in) :: auxil
3113 type(uppDia_type) , intent(in) :: subset
3114 end subroutine
3115#endif
3116
3117#if RK1_ENABLED
3118 PURE module subroutine setMatInvCCU_UXD_IMP_RK1(inv, mat, auxil, subset)
3119#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3120 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCU_UXD_IMP_RK1
3121#endif
3122 use pm_kind, only: RKG => RK1
3123 real(RKG) , intent(inout) , contiguous :: inv(:,:)
3124 real(RKG) , intent(in) , contiguous :: mat(:,:)
3125 type(choUpp_type) , intent(in) :: auxil
3126 type(uppDia_type) , intent(in) :: subset
3127 end subroutine
3128#endif
3129
3130 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3131
3132 end interface
3133
3134 ! implicit choLow invUXD.
3135
3136 interface setMatInv
3137
3138 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3139
3140#if CK5_ENABLED
3141 PURE module subroutine setMatInvCCL_UXD_IMP_CK5(inv, mat, auxil, subset)
3142#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3143 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_UXD_IMP_CK5
3144#endif
3145 use pm_kind, only: CKG => CK5
3146 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
3147 complex(CKG) , intent(in) , contiguous :: mat(:,:)
3148 type(choLow_type) , intent(in) :: auxil
3149 type(uppDia_type) , intent(in) :: subset
3150 end subroutine
3151#endif
3152
3153#if CK4_ENABLED
3154 PURE module subroutine setMatInvCCL_UXD_IMP_CK4(inv, mat, auxil, subset)
3155#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3156 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_UXD_IMP_CK4
3157#endif
3158 use pm_kind, only: CKG => CK4
3159 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
3160 complex(CKG) , intent(in) , contiguous :: mat(:,:)
3161 type(choLow_type) , intent(in) :: auxil
3162 type(uppDia_type) , intent(in) :: subset
3163 end subroutine
3164#endif
3165
3166#if CK3_ENABLED
3167 PURE module subroutine setMatInvCCL_UXD_IMP_CK3(inv, mat, auxil, subset)
3168#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3169 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_UXD_IMP_CK3
3170#endif
3171 use pm_kind, only: CKG => CK3
3172 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
3173 complex(CKG) , intent(in) , contiguous :: mat(:,:)
3174 type(choLow_type) , intent(in) :: auxil
3175 type(uppDia_type) , intent(in) :: subset
3176 end subroutine
3177#endif
3178
3179#if CK2_ENABLED
3180 PURE module subroutine setMatInvCCL_UXD_IMP_CK2(inv, mat, auxil, subset)
3181#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3182 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_UXD_IMP_CK2
3183#endif
3184 use pm_kind, only: CKG => CK2
3185 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
3186 complex(CKG) , intent(in) , contiguous :: mat(:,:)
3187 type(choLow_type) , intent(in) :: auxil
3188 type(uppDia_type) , intent(in) :: subset
3189 end subroutine
3190#endif
3191
3192#if CK1_ENABLED
3193 PURE module subroutine setMatInvCCL_UXD_IMP_CK1(inv, mat, auxil, subset)
3194#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3195 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_UXD_IMP_CK1
3196#endif
3197 use pm_kind, only: CKG => CK1
3198 complex(CKG) , intent(inout) , contiguous :: inv(:,:)
3199 complex(CKG) , intent(in) , contiguous :: mat(:,:)
3200 type(choLow_type) , intent(in) :: auxil
3201 type(uppDia_type) , intent(in) :: subset
3202 end subroutine
3203#endif
3204
3205 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3206
3207#if RK5_ENABLED
3208 PURE module subroutine setMatInvCCL_UXD_IMP_RK5(inv, mat, auxil, subset)
3209#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3210 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_UXD_IMP_RK5
3211#endif
3212 use pm_kind, only: RKG => RK5
3213 real(RKG) , intent(inout) , contiguous :: inv(:,:)
3214 real(RKG) , intent(in) , contiguous :: mat(:,:)
3215 type(choLow_type) , intent(in) :: auxil
3216 type(uppDia_type) , intent(in) :: subset
3217 end subroutine
3218#endif
3219
3220#if RK4_ENABLED
3221 PURE module subroutine setMatInvCCL_UXD_IMP_RK4(inv, mat, auxil, subset)
3222#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3223 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_UXD_IMP_RK4
3224#endif
3225 use pm_kind, only: RKG => RK4
3226 real(RKG) , intent(inout) , contiguous :: inv(:,:)
3227 real(RKG) , intent(in) , contiguous :: mat(:,:)
3228 type(choLow_type) , intent(in) :: auxil
3229 type(uppDia_type) , intent(in) :: subset
3230 end subroutine
3231#endif
3232
3233#if RK3_ENABLED
3234 PURE module subroutine setMatInvCCL_UXD_IMP_RK3(inv, mat, auxil, subset)
3235#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3236 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_UXD_IMP_RK3
3237#endif
3238 use pm_kind, only: RKG => RK3
3239 real(RKG) , intent(inout) , contiguous :: inv(:,:)
3240 real(RKG) , intent(in) , contiguous :: mat(:,:)
3241 type(choLow_type) , intent(in) :: auxil
3242 type(uppDia_type) , intent(in) :: subset
3243 end subroutine
3244#endif
3245
3246#if RK2_ENABLED
3247 PURE module subroutine setMatInvCCL_UXD_IMP_RK2(inv, mat, auxil, subset)
3248#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3249 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_UXD_IMP_RK2
3250#endif
3251 use pm_kind, only: RKG => RK2
3252 real(RKG) , intent(inout) , contiguous :: inv(:,:)
3253 real(RKG) , intent(in) , contiguous :: mat(:,:)
3254 type(choLow_type) , intent(in) :: auxil
3255 type(uppDia_type) , intent(in) :: subset
3256 end subroutine
3257#endif
3258
3259#if RK1_ENABLED
3260 PURE module subroutine setMatInvCCL_UXD_IMP_RK1(inv, mat, auxil, subset)
3261#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3262 !DEC$ ATTRIBUTES DLLEXPORT :: setMatInvCCL_UXD_IMP_RK1
3263#endif
3264 use pm_kind, only: RKG => RK1
3265 real(RKG) , intent(inout) , contiguous :: inv(:,:)
3266 real(RKG) , intent(in) , contiguous :: mat(:,:)
3267 type(choLow_type) , intent(in) :: auxil
3268 type(uppDia_type) , intent(in) :: subset
3269 end subroutine
3270#endif
3271
3272 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3273
3274 end interface
3275
3276!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3277
3278end 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...