ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_matrixMulAdd.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
98
99!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
100
102
103 use pm_kind, only: SK, IK, LK, RKS, RKD
111 use pm_blas, only: blasSYMM, blasHEMM, blasGEMM
112 use pm_blas, only: blasSPMV, blasHPMV
113 use pm_blas, only: blasSYMV, blasHEMV
114 use pm_blas, only: blasGEMV
115
116 implicit none
117
118 character(*, SK), parameter :: MODULE_NAME = "@pm_matrixMulAdd"
119
120!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
121
236 ! It cannot be present if `matA` is a scalar value, in which case, `alpha` can be multiplied and merged with `matA` prior to calling this interface.)
390 ! \lapackint{setMatMulAdd}
391 !
392 ! \warning This table must be updated with the correct modern interfaces.
393 ! BLAS/LAPACK interface | [setMatMulAdd](@ref pm_matrixMulAdd::setMatMulAdd) interface
394 ! ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------
395 ! `call SSPMV / DSPMV / CHPMV / ZHPMV (uplo = "U", n = ndim, alpha, ap = matA(i:), x = matB(k), incx = incB, beta, y = matC(p), incy = incC)` | `call setMatMulAdd(matA(i :), classA = symmetric, subsetA = uppDiaA, matB(k :), matC(p :), alpha, beta, ndim, incB, incC)`
396 ! `call SSPMV / DSPMV / CHPMV / ZHPMV (uplo = "L", n = ndim, alpha, ap = matA(i:), x = matB(k), incx = incB, beta, y = matC(p), incy = incC)` | `call setMatMulAdd(matA(i :), classA = symmetric, subsetA = lowDiaA, matB(k :), matC(p :), alpha, beta, ndim, incB, incC)`
397 ! `call CHPMV / ZHPMV (uplo = "U", n = ndim, alpha, ap = matA(i:), x = matB(k), incx = incB, beta, y = matC(p), incy = incC)` | `call setMatMulAdd(matA(i :), classA = hermitian, subsetA = uppDiaA, matB(k :), matC(p :), alpha, beta, ndim, incB, incC)`
398 ! `call CHPMV / ZHPMV (uplo = "L", n = ndim, alpha, ap = matA(i:), x = matB(k), incx = incB, beta, y = matC(p), incy = incC)` | `call setMatMulAdd(matA(i :), classA = hermitian, subsetA = lowDiaA, matB(k :), matC(p :), alpha, beta, ndim, incB, incC)`
399 ! `call SSYMV / DSYMV / CHEMV / ZHEMV (uplo = "U", n = ndim, alpha, a = matA(i,j), lda, x = matB(k:), incx = incB, beta, y = matC(p:), incy = incC)` | `call setMatMulAdd(matA(:,:), classA = symmetric, subsetA = uppDiaA, matB(k :), matC(p :), alpha, beta, ndim, roffA = i - 1, coffA = j - 1, incB, incC)`
400 ! `call SSYMV / DSYMV / CHEMV / ZHEMV (uplo = "L", n = ndim, alpha, a = matA(i,j), lda, x = matB(k:), incx = incB, beta, y = matC(p:), incy = incC)` | `call setMatMulAdd(matA(:,:), classA = symmetric, subsetA = lowDiaA, matB(k :), matC(p :), alpha, beta, ndim, roffA = i - 1, coffA = j - 1, incB, incC)`
401 ! `call CHEMV / ZHEMV (uplo = "U", n = ndim, alpha, a = matA(i,j), lda, x = matB(k:), incx = incB, beta, y = matC(p:), incy = incC)` | `call setMatMulAdd(matA(:,:), classA = hermitian, subsetA = uppDiaA, matB(k :), matC(p :), alpha, beta, ndim, roffA = i - 1, coffA = j - 1, incB, incC)`
402 ! `call CHEMV / ZHEMV (uplo = "L", n = ndim, alpha, a = matA(i,j), lda, x = matB(k:), incx = incB, beta, y = matC(p:), incy = incC)` | `call setMatMulAdd(matA(:,:), classA = hermitian, subsetA = lowDiaA, matB(k :), matC(p :), alpha, beta, ndim, roffA = i - 1, coffA = j - 1, incB, incC)`
403 ! `call SGEMM / DGEMM / CGEMM / ZGEMM (transa = "N", transb = "N", m = nrow, n = ncol, k = ndum, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, ndum, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1)`
404 ! `call SGEMM / DGEMM / CGEMM / ZGEMM (transa = "N", transb = "T", m = nrow, n = ncol, k = ndum, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, ndum, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, operationB = transSymm)`
405 ! `call SGEMM / DGEMM / CGEMM / ZGEMM (transa = "T", transb = "N", m = nrow, n = ncol, k = ndum, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, ndum, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, operationA = transSymm)`
406 ! `call SGEMM / DGEMM / CGEMM / ZGEMM (transa = "T", transb = "T", m = nrow, n = ncol, k = ndum, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, ndum, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, operationA = transSymm, operationB = transSymm)`
407 ! `call CGEMM / ZGEMM (transa = "N", transb = "C", m = nrow, n = ncol, k = ndum, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, ndum, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, operationB = transHerm)`
408 ! `call CGEMM / ZGEMM (transa = "C", transb = "N", m = nrow, n = ncol, k = ndum, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, ndum, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, operationA = transHerm)`
409 ! `call CGEMM / ZGEMM (transa = "T", transb = "C", m = nrow, n = ncol, k = ndum, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, ndum, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, operationA = transSymm, operationB = transHerm)`
410 ! `call CGEMM / ZGEMM (transa = "C", transb = "T", m = nrow, n = ncol, k = ndum, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, ndum, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, operationA = transHerm, operationB = transSymm)`
411 ! `call CGEMM / ZGEMM (transa = "C", transb = "T", m = nrow, n = ncol, k = ndum, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, ndum, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, operationA = transHerm, operationB = transHerm)`
412 ! `call SSYMM / DSYMM / CSYMM / ZSYMM (side = "L", uplo = "U", m = nrow, n = ncol, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, subsetA = uppDiaA, classA = symmetric)`
413 ! `call SSYMM / DSYMM / CSYMM / ZSYMM (side = "R", uplo = "U", m = nrow, n = ncol, alpha, a = matB(k,l), lda, b = matA(i,j), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, subsetB = uppDiaB, classB = symmetric)`
414 ! `call SSYMM / DSYMM / CSYMM / ZSYMM (side = "L", uplo = "L", m = nrow, n = ncol, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, subsetA = lowDiaA, classA = symmetric)`
415 ! `call SSYMM / DSYMM / CSYMM / ZSYMM (side = "R", uplo = "L", m = nrow, n = ncol, alpha, a = matB(k,l), lda, b = matA(i,j), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, subsetB = lowDiaB, classB = symmetric)`
416 ! `call CHEMM / ZHEMM (side = "L", uplo = "U", m = nrow, n = ncol, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, subsetA = uppDiaA, classA = hermitian)`
417 ! `call CHEMM / ZHEMM (side = "R", uplo = "U", m = nrow, n = ncol, alpha, a = matB(k,l), lda, b = matA(i,j), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, subsetB = uppDiaB, classB = hermitian)`
418 ! `call CHEMM / ZHEMM (side = "L", uplo = "L", m = nrow, n = ncol, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, subsetA = lowDiaA, classA = hermitian)`
419 ! `call CHEMM / ZHEMM (side = "R", uplo = "L", m = nrow, n = ncol, alpha, a = matB(k,l), lda, b = matA(i,j), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, subsetB = lowDiaB, classB = hermitian)`
482
483 ! BLAS 2: `SGEMV`, `DGEMV`, `CGEMV`, `ZGEMV`
484
485 interface setMatMulAdd
486
487 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
488 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
489 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
490
491 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
492 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
493 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
494
495 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
496
497#if IK5_ENABLED
498 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_IK5(matA, matB, matC, alpha, beta)
499#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
500 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_IK5
501#endif
502 use pm_kind, only: IKG => IK5
503 integer(IKG) , intent(in) , optional :: alpha, beta
504 integer(IKG) , intent(in) , contiguous :: matA(:,:)
505 integer(IKG) , intent(in) , contiguous :: matB(:)
506 integer(IKG) , intent(inout) , contiguous :: matC(:)
507 end subroutine
508#endif
509
510#if IK4_ENABLED
511 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_IK4(matA, matB, matC, alpha, beta)
512#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
513 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_IK4
514#endif
515 use pm_kind, only: IKG => IK4
516 integer(IKG) , intent(in) , optional :: alpha, beta
517 integer(IKG) , intent(in) , contiguous :: matA(:,:)
518 integer(IKG) , intent(in) , contiguous :: matB(:)
519 integer(IKG) , intent(inout) , contiguous :: matC(:)
520 end subroutine
521#endif
522
523#if IK3_ENABLED
524 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_IK3(matA, matB, matC, alpha, beta)
525#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
526 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_IK3
527#endif
528 use pm_kind, only: IKG => IK3
529 integer(IKG) , intent(in) , optional :: alpha, beta
530 integer(IKG) , intent(in) , contiguous :: matA(:,:)
531 integer(IKG) , intent(in) , contiguous :: matB(:)
532 integer(IKG) , intent(inout) , contiguous :: matC(:)
533 end subroutine
534#endif
535
536#if IK2_ENABLED
537 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_IK2(matA, matB, matC, alpha, beta)
538#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
539 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_IK2
540#endif
541 use pm_kind, only: IKG => IK2
542 integer(IKG) , intent(in) , optional :: alpha, beta
543 integer(IKG) , intent(in) , contiguous :: matA(:,:)
544 integer(IKG) , intent(in) , contiguous :: matB(:)
545 integer(IKG) , intent(inout) , contiguous :: matC(:)
546 end subroutine
547#endif
548
549#if IK1_ENABLED
550 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_IK1(matA, matB, matC, alpha, beta)
551#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
552 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_IK1
553#endif
554 use pm_kind, only: IKG => IK1
555 integer(IKG) , intent(in) , optional :: alpha, beta
556 integer(IKG) , intent(in) , contiguous :: matA(:,:)
557 integer(IKG) , intent(in) , contiguous :: matB(:)
558 integer(IKG) , intent(inout) , contiguous :: matC(:)
559 end subroutine
560#endif
561
562 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
563
564#if CK5_ENABLED
565 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_CK5(matA, matB, matC, alpha, beta)
566#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
567 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_CK5
568#endif
569 use pm_kind, only: CKG => CK5
570 complex(CKG) , intent(in) , optional :: alpha, beta
571 complex(CKG) , intent(in) , contiguous :: matA(:,:)
572 complex(CKG) , intent(in) , contiguous :: matB(:)
573 complex(CKG) , intent(inout) , contiguous :: matC(:)
574 end subroutine
575#endif
576
577#if CK4_ENABLED
578 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_CK4(matA, matB, matC, alpha, beta)
579#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
580 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_CK4
581#endif
582 use pm_kind, only: CKG => CK4
583 complex(CKG) , intent(in) , optional :: alpha, beta
584 complex(CKG) , intent(in) , contiguous :: matA(:,:)
585 complex(CKG) , intent(in) , contiguous :: matB(:)
586 complex(CKG) , intent(inout) , contiguous :: matC(:)
587 end subroutine
588#endif
589
590#if CK3_ENABLED
591 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_CK3(matA, matB, matC, alpha, beta)
592#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
593 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_CK3
594#endif
595 use pm_kind, only: CKG => CK3
596 complex(CKG) , intent(in) , optional :: alpha, beta
597 complex(CKG) , intent(in) , contiguous :: matA(:,:)
598 complex(CKG) , intent(in) , contiguous :: matB(:)
599 complex(CKG) , intent(inout) , contiguous :: matC(:)
600 end subroutine
601#endif
602
603#if CK2_ENABLED
604 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_CK2(matA, matB, matC, alpha, beta)
605#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
606 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_CK2
607#endif
608 use pm_kind, only: CKG => CK2
609 complex(CKG) , intent(in) , optional :: alpha, beta
610 complex(CKG) , intent(in) , contiguous :: matA(:,:)
611 complex(CKG) , intent(in) , contiguous :: matB(:)
612 complex(CKG) , intent(inout) , contiguous :: matC(:)
613 end subroutine
614#endif
615
616#if CK1_ENABLED
617 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_CK1(matA, matB, matC, alpha, beta)
618#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
619 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_CK1
620#endif
621 use pm_kind, only: CKG => CK1
622 complex(CKG) , intent(in) , optional :: alpha, beta
623 complex(CKG) , intent(in) , contiguous :: matA(:,:)
624 complex(CKG) , intent(in) , contiguous :: matB(:)
625 complex(CKG) , intent(inout) , contiguous :: matC(:)
626 end subroutine
627#endif
628
629 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
630
631#if RK5_ENABLED
632 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_RK5(matA, matB, matC, alpha, beta)
633#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
634 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_RK5
635#endif
636 use pm_kind, only: RKG => RK5
637 real(RKG) , intent(in) , optional :: alpha, beta
638 real(RKG) , intent(in) , contiguous :: matA(:,:)
639 real(RKG) , intent(in) , contiguous :: matB(:)
640 real(RKG) , intent(inout) , contiguous :: matC(:)
641 end subroutine
642#endif
643
644#if RK4_ENABLED
645 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_RK4(matA, matB, matC, alpha, beta)
646#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
647 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_RK4
648#endif
649 use pm_kind, only: RKG => RK4
650 real(RKG) , intent(in) , optional :: alpha, beta
651 real(RKG) , intent(in) , contiguous :: matA(:,:)
652 real(RKG) , intent(in) , contiguous :: matB(:)
653 real(RKG) , intent(inout) , contiguous :: matC(:)
654 end subroutine
655#endif
656
657#if RK3_ENABLED
658 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_RK3(matA, matB, matC, alpha, beta)
659#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
660 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_RK3
661#endif
662 use pm_kind, only: RKG => RK3
663 real(RKG) , intent(in) , optional :: alpha, beta
664 real(RKG) , intent(in) , contiguous :: matA(:,:)
665 real(RKG) , intent(in) , contiguous :: matB(:)
666 real(RKG) , intent(inout) , contiguous :: matC(:)
667 end subroutine
668#endif
669
670#if RK2_ENABLED
671 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_RK2(matA, matB, matC, alpha, beta)
672#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
673 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_RK2
674#endif
675 use pm_kind, only: RKG => RK2
676 real(RKG) , intent(in) , optional :: alpha, beta
677 real(RKG) , intent(in) , contiguous :: matA(:,:)
678 real(RKG) , intent(in) , contiguous :: matB(:)
679 real(RKG) , intent(inout) , contiguous :: matC(:)
680 end subroutine
681#endif
682
683#if RK1_ENABLED
684 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_RK1(matA, matB, matC, alpha, beta)
685#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
686 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_RK1
687#endif
688 use pm_kind, only: RKG => RK1
689 real(RKG) , intent(in) , optional :: alpha, beta
690 real(RKG) , intent(in) , contiguous :: matA(:,:)
691 real(RKG) , intent(in) , contiguous :: matB(:)
692 real(RKG) , intent(inout) , contiguous :: matC(:)
693 end subroutine
694#endif
695
696 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
697
698 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
699 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
700 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
701
702 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
703
704#if IK5_ENABLED
705 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_IK5(matA, operationA, matB, matC, alpha, beta)
706#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
707 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_IK5
708#endif
709 use pm_kind, only: IKG => IK5
710 integer(IKG) , intent(in) , optional :: alpha, beta
711 integer(IKG) , intent(in) , contiguous :: matA(:,:)
712 integer(IKG) , intent(in) , contiguous :: matB(:)
713 integer(IKG) , intent(inout) , contiguous :: matC(:)
714 type(transSymm_type) , intent(in) :: operationA
715 end subroutine
716#endif
717
718#if IK4_ENABLED
719 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_IK4(matA, operationA, matB, matC, alpha, beta)
720#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
721 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_IK4
722#endif
723 use pm_kind, only: IKG => IK4
724 integer(IKG) , intent(in) , optional :: alpha, beta
725 integer(IKG) , intent(in) , contiguous :: matA(:,:)
726 integer(IKG) , intent(in) , contiguous :: matB(:)
727 integer(IKG) , intent(inout) , contiguous :: matC(:)
728 type(transSymm_type) , intent(in) :: operationA
729 end subroutine
730#endif
731
732#if IK3_ENABLED
733 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_IK3(matA, operationA, matB, matC, alpha, beta)
734#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
735 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_IK3
736#endif
737 use pm_kind, only: IKG => IK3
738 integer(IKG) , intent(in) , optional :: alpha, beta
739 integer(IKG) , intent(in) , contiguous :: matA(:,:)
740 integer(IKG) , intent(in) , contiguous :: matB(:)
741 integer(IKG) , intent(inout) , contiguous :: matC(:)
742 type(transSymm_type) , intent(in) :: operationA
743 end subroutine
744#endif
745
746#if IK2_ENABLED
747 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_IK2(matA, operationA, matB, matC, alpha, beta)
748#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
749 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_IK2
750#endif
751 use pm_kind, only: IKG => IK2
752 integer(IKG) , intent(in) , optional :: alpha, beta
753 integer(IKG) , intent(in) , contiguous :: matA(:,:)
754 integer(IKG) , intent(in) , contiguous :: matB(:)
755 integer(IKG) , intent(inout) , contiguous :: matC(:)
756 type(transSymm_type) , intent(in) :: operationA
757 end subroutine
758#endif
759
760#if IK1_ENABLED
761 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_IK1(matA, operationA, matB, matC, alpha, beta)
762#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
763 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_IK1
764#endif
765 use pm_kind, only: IKG => IK1
766 integer(IKG) , intent(in) , optional :: alpha, beta
767 integer(IKG) , intent(in) , contiguous :: matA(:,:)
768 integer(IKG) , intent(in) , contiguous :: matB(:)
769 integer(IKG) , intent(inout) , contiguous :: matC(:)
770 type(transSymm_type) , intent(in) :: operationA
771 end subroutine
772#endif
773
774 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
775
776#if CK5_ENABLED
777 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_CK5(matA, operationA, matB, matC, alpha, beta)
778#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
779 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_CK5
780#endif
781 use pm_kind, only: CKG => CK5
782 complex(CKG) , intent(in) , optional :: alpha, beta
783 complex(CKG) , intent(in) , contiguous :: matA(:,:)
784 complex(CKG) , intent(in) , contiguous :: matB(:)
785 complex(CKG) , intent(inout) , contiguous :: matC(:)
786 type(transSymm_type) , intent(in) :: operationA
787 end subroutine
788#endif
789
790#if CK4_ENABLED
791 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_CK4(matA, operationA, matB, matC, alpha, beta)
792#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
793 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_CK4
794#endif
795 use pm_kind, only: CKG => CK4
796 complex(CKG) , intent(in) , optional :: alpha, beta
797 complex(CKG) , intent(in) , contiguous :: matA(:,:)
798 complex(CKG) , intent(in) , contiguous :: matB(:)
799 complex(CKG) , intent(inout) , contiguous :: matC(:)
800 type(transSymm_type) , intent(in) :: operationA
801 end subroutine
802#endif
803
804#if CK3_ENABLED
805 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_CK3(matA, operationA, matB, matC, alpha, beta)
806#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
807 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_CK3
808#endif
809 use pm_kind, only: CKG => CK3
810 complex(CKG) , intent(in) , optional :: alpha, beta
811 complex(CKG) , intent(in) , contiguous :: matA(:,:)
812 complex(CKG) , intent(in) , contiguous :: matB(:)
813 complex(CKG) , intent(inout) , contiguous :: matC(:)
814 type(transSymm_type) , intent(in) :: operationA
815 end subroutine
816#endif
817
818#if CK2_ENABLED
819 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_CK2(matA, operationA, matB, matC, alpha, beta)
820#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
821 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_CK2
822#endif
823 use pm_kind, only: CKG => CK2
824 complex(CKG) , intent(in) , optional :: alpha, beta
825 complex(CKG) , intent(in) , contiguous :: matA(:,:)
826 complex(CKG) , intent(in) , contiguous :: matB(:)
827 complex(CKG) , intent(inout) , contiguous :: matC(:)
828 type(transSymm_type) , intent(in) :: operationA
829 end subroutine
830#endif
831
832#if CK1_ENABLED
833 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_CK1(matA, operationA, matB, matC, alpha, beta)
834#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
835 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_CK1
836#endif
837 use pm_kind, only: CKG => CK1
838 complex(CKG) , intent(in) , optional :: alpha, beta
839 complex(CKG) , intent(in) , contiguous :: matA(:,:)
840 complex(CKG) , intent(in) , contiguous :: matB(:)
841 complex(CKG) , intent(inout) , contiguous :: matC(:)
842 type(transSymm_type) , intent(in) :: operationA
843 end subroutine
844#endif
845
846 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
847
848#if RK5_ENABLED
849 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_RK5(matA, operationA, matB, matC, alpha, beta)
850#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
851 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_RK5
852#endif
853 use pm_kind, only: RKG => RK5
854 real(RKG) , intent(in) , optional :: alpha, beta
855 real(RKG) , intent(in) , contiguous :: matA(:,:)
856 real(RKG) , intent(in) , contiguous :: matB(:)
857 real(RKG) , intent(inout) , contiguous :: matC(:)
858 type(transSymm_type) , intent(in) :: operationA
859 end subroutine
860#endif
861
862#if RK4_ENABLED
863 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_RK4(matA, operationA, matB, matC, alpha, beta)
864#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
865 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_RK4
866#endif
867 use pm_kind, only: RKG => RK4
868 real(RKG) , intent(in) , optional :: alpha, beta
869 real(RKG) , intent(in) , contiguous :: matA(:,:)
870 real(RKG) , intent(in) , contiguous :: matB(:)
871 real(RKG) , intent(inout) , contiguous :: matC(:)
872 type(transSymm_type) , intent(in) :: operationA
873 end subroutine
874#endif
875
876#if RK3_ENABLED
877 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_RK3(matA, operationA, matB, matC, alpha, beta)
878#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
879 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_RK3
880#endif
881 use pm_kind, only: RKG => RK3
882 real(RKG) , intent(in) , optional :: alpha, beta
883 real(RKG) , intent(in) , contiguous :: matA(:,:)
884 real(RKG) , intent(in) , contiguous :: matB(:)
885 real(RKG) , intent(inout) , contiguous :: matC(:)
886 type(transSymm_type) , intent(in) :: operationA
887 end subroutine
888#endif
889
890#if RK2_ENABLED
891 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_RK2(matA, operationA, matB, matC, alpha, beta)
892#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
893 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_RK2
894#endif
895 use pm_kind, only: RKG => RK2
896 real(RKG) , intent(in) , optional :: alpha, beta
897 real(RKG) , intent(in) , contiguous :: matA(:,:)
898 real(RKG) , intent(in) , contiguous :: matB(:)
899 real(RKG) , intent(inout) , contiguous :: matC(:)
900 type(transSymm_type) , intent(in) :: operationA
901 end subroutine
902#endif
903
904#if RK1_ENABLED
905 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_RK1(matA, operationA, matB, matC, alpha, beta)
906#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
907 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_RK1
908#endif
909 use pm_kind, only: RKG => RK1
910 real(RKG) , intent(in) , optional :: alpha, beta
911 real(RKG) , intent(in) , contiguous :: matA(:,:)
912 real(RKG) , intent(in) , contiguous :: matB(:)
913 real(RKG) , intent(inout) , contiguous :: matC(:)
914 type(transSymm_type) , intent(in) :: operationA
915 end subroutine
916#endif
917
918 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
919
920 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
921 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
922 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
923
924 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
925
926#if IK5_ENABLED
927 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_IK5(matA, operationA, matB, matC, alpha, beta)
928#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
929 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_IK5
930#endif
931 use pm_kind, only: IKG => IK5
932 integer(IKG) , intent(in) , optional :: alpha, beta
933 integer(IKG) , intent(in) , contiguous :: matA(:,:)
934 integer(IKG) , intent(in) , contiguous :: matB(:)
935 integer(IKG) , intent(inout) , contiguous :: matC(:)
936 type(transHerm_type) , intent(in) :: operationA
937 end subroutine
938#endif
939
940#if IK4_ENABLED
941 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_IK4(matA, operationA, matB, matC, alpha, beta)
942#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
943 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_IK4
944#endif
945 use pm_kind, only: IKG => IK4
946 integer(IKG) , intent(in) , optional :: alpha, beta
947 integer(IKG) , intent(in) , contiguous :: matA(:,:)
948 integer(IKG) , intent(in) , contiguous :: matB(:)
949 integer(IKG) , intent(inout) , contiguous :: matC(:)
950 type(transHerm_type) , intent(in) :: operationA
951 end subroutine
952#endif
953
954#if IK3_ENABLED
955 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_IK3(matA, operationA, matB, matC, alpha, beta)
956#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
957 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_IK3
958#endif
959 use pm_kind, only: IKG => IK3
960 integer(IKG) , intent(in) , optional :: alpha, beta
961 integer(IKG) , intent(in) , contiguous :: matA(:,:)
962 integer(IKG) , intent(in) , contiguous :: matB(:)
963 integer(IKG) , intent(inout) , contiguous :: matC(:)
964 type(transHerm_type) , intent(in) :: operationA
965 end subroutine
966#endif
967
968#if IK2_ENABLED
969 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_IK2(matA, operationA, matB, matC, alpha, beta)
970#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
971 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_IK2
972#endif
973 use pm_kind, only: IKG => IK2
974 integer(IKG) , intent(in) , optional :: alpha, beta
975 integer(IKG) , intent(in) , contiguous :: matA(:,:)
976 integer(IKG) , intent(in) , contiguous :: matB(:)
977 integer(IKG) , intent(inout) , contiguous :: matC(:)
978 type(transHerm_type) , intent(in) :: operationA
979 end subroutine
980#endif
981
982#if IK1_ENABLED
983 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_IK1(matA, operationA, matB, matC, alpha, beta)
984#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
985 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_IK1
986#endif
987 use pm_kind, only: IKG => IK1
988 integer(IKG) , intent(in) , optional :: alpha, beta
989 integer(IKG) , intent(in) , contiguous :: matA(:,:)
990 integer(IKG) , intent(in) , contiguous :: matB(:)
991 integer(IKG) , intent(inout) , contiguous :: matC(:)
992 type(transHerm_type) , intent(in) :: operationA
993 end subroutine
994#endif
995
996 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
997
998#if CK5_ENABLED
999 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_CK5(matA, operationA, matB, matC, alpha, beta)
1000#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1001 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_CK5
1002#endif
1003 use pm_kind, only: CKG => CK5
1004 complex(CKG) , intent(in) , optional :: alpha, beta
1005 complex(CKG) , intent(in) , contiguous :: matA(:,:)
1006 complex(CKG) , intent(in) , contiguous :: matB(:)
1007 complex(CKG) , intent(inout) , contiguous :: matC(:)
1008 type(transHerm_type) , intent(in) :: operationA
1009 end subroutine
1010#endif
1011
1012#if CK4_ENABLED
1013 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_CK4(matA, operationA, matB, matC, alpha, beta)
1014#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1015 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_CK4
1016#endif
1017 use pm_kind, only: CKG => CK4
1018 complex(CKG) , intent(in) , optional :: alpha, beta
1019 complex(CKG) , intent(in) , contiguous :: matA(:,:)
1020 complex(CKG) , intent(in) , contiguous :: matB(:)
1021 complex(CKG) , intent(inout) , contiguous :: matC(:)
1022 type(transHerm_type) , intent(in) :: operationA
1023 end subroutine
1024#endif
1025
1026#if CK3_ENABLED
1027 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_CK3(matA, operationA, matB, matC, alpha, beta)
1028#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1029 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_CK3
1030#endif
1031 use pm_kind, only: CKG => CK3
1032 complex(CKG) , intent(in) , optional :: alpha, beta
1033 complex(CKG) , intent(in) , contiguous :: matA(:,:)
1034 complex(CKG) , intent(in) , contiguous :: matB(:)
1035 complex(CKG) , intent(inout) , contiguous :: matC(:)
1036 type(transHerm_type) , intent(in) :: operationA
1037 end subroutine
1038#endif
1039
1040#if CK2_ENABLED
1041 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_CK2(matA, operationA, matB, matC, alpha, beta)
1042#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1043 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_CK2
1044#endif
1045 use pm_kind, only: CKG => CK2
1046 complex(CKG) , intent(in) , optional :: alpha, beta
1047 complex(CKG) , intent(in) , contiguous :: matA(:,:)
1048 complex(CKG) , intent(in) , contiguous :: matB(:)
1049 complex(CKG) , intent(inout) , contiguous :: matC(:)
1050 type(transHerm_type) , intent(in) :: operationA
1051 end subroutine
1052#endif
1053
1054#if CK1_ENABLED
1055 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_CK1(matA, operationA, matB, matC, alpha, beta)
1056#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1057 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_CK1
1058#endif
1059 use pm_kind, only: CKG => CK1
1060 complex(CKG) , intent(in) , optional :: alpha, beta
1061 complex(CKG) , intent(in) , contiguous :: matA(:,:)
1062 complex(CKG) , intent(in) , contiguous :: matB(:)
1063 complex(CKG) , intent(inout) , contiguous :: matC(:)
1064 type(transHerm_type) , intent(in) :: operationA
1065 end subroutine
1066#endif
1067
1068 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1069
1070#if RK5_ENABLED
1071 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_RK5(matA, operationA, matB, matC, alpha, beta)
1072#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1073 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_RK5
1074#endif
1075 use pm_kind, only: RKG => RK5
1076 real(RKG) , intent(in) , optional :: alpha, beta
1077 real(RKG) , intent(in) , contiguous :: matA(:,:)
1078 real(RKG) , intent(in) , contiguous :: matB(:)
1079 real(RKG) , intent(inout) , contiguous :: matC(:)
1080 type(transHerm_type) , intent(in) :: operationA
1081 end subroutine
1082#endif
1083
1084#if RK4_ENABLED
1085 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_RK4(matA, operationA, matB, matC, alpha, beta)
1086#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1087 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_RK4
1088#endif
1089 use pm_kind, only: RKG => RK4
1090 real(RKG) , intent(in) , optional :: alpha, beta
1091 real(RKG) , intent(in) , contiguous :: matA(:,:)
1092 real(RKG) , intent(in) , contiguous :: matB(:)
1093 real(RKG) , intent(inout) , contiguous :: matC(:)
1094 type(transHerm_type) , intent(in) :: operationA
1095 end subroutine
1096#endif
1097
1098#if RK3_ENABLED
1099 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_RK3(matA, operationA, matB, matC, alpha, beta)
1100#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1101 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_RK3
1102#endif
1103 use pm_kind, only: RKG => RK3
1104 real(RKG) , intent(in) , optional :: alpha, beta
1105 real(RKG) , intent(in) , contiguous :: matA(:,:)
1106 real(RKG) , intent(in) , contiguous :: matB(:)
1107 real(RKG) , intent(inout) , contiguous :: matC(:)
1108 type(transHerm_type) , intent(in) :: operationA
1109 end subroutine
1110#endif
1111
1112#if RK2_ENABLED
1113 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_RK2(matA, operationA, matB, matC, alpha, beta)
1114#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1115 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_RK2
1116#endif
1117 use pm_kind, only: RKG => RK2
1118 real(RKG) , intent(in) , optional :: alpha, beta
1119 real(RKG) , intent(in) , contiguous :: matA(:,:)
1120 real(RKG) , intent(in) , contiguous :: matB(:)
1121 real(RKG) , intent(inout) , contiguous :: matC(:)
1122 type(transHerm_type) , intent(in) :: operationA
1123 end subroutine
1124#endif
1125
1126#if RK1_ENABLED
1127 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_RK1(matA, operationA, matB, matC, alpha, beta)
1128#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1129 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_RK1
1130#endif
1131 use pm_kind, only: RKG => RK1
1132 real(RKG) , intent(in) , optional :: alpha, beta
1133 real(RKG) , intent(in) , contiguous :: matA(:,:)
1134 real(RKG) , intent(in) , contiguous :: matB(:)
1135 real(RKG) , intent(inout) , contiguous :: matC(:)
1136 type(transHerm_type) , intent(in) :: operationA
1137 end subroutine
1138#endif
1139
1140 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1141
1142 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1143 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1144 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1145
1146 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1147 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1148 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1149
1150 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1151
1152#if IK5_ENABLED
1153 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_IK5(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1154#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1155 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_IK5
1156#endif
1157 use pm_kind, only: IKG => IK5
1158 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1159 integer(IKG) , intent(in) :: alpha, beta
1160 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1161 integer(IKG) , intent(in) , contiguous :: matB(:)
1162 integer(IKG) , intent(inout) , contiguous :: matC(:)
1163 end subroutine
1164#endif
1165
1166#if IK4_ENABLED
1167 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_IK4(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1168#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1169 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_IK4
1170#endif
1171 use pm_kind, only: IKG => IK4
1172 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1173 integer(IKG) , intent(in) :: alpha, beta
1174 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1175 integer(IKG) , intent(in) , contiguous :: matB(:)
1176 integer(IKG) , intent(inout) , contiguous :: matC(:)
1177 end subroutine
1178#endif
1179
1180#if IK3_ENABLED
1181 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_IK3(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1182#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1183 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_IK3
1184#endif
1185 use pm_kind, only: IKG => IK3
1186 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1187 integer(IKG) , intent(in) :: alpha, beta
1188 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1189 integer(IKG) , intent(in) , contiguous :: matB(:)
1190 integer(IKG) , intent(inout) , contiguous :: matC(:)
1191 end subroutine
1192#endif
1193
1194#if IK2_ENABLED
1195 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_IK2(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1196#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1197 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_IK2
1198#endif
1199 use pm_kind, only: IKG => IK2
1200 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1201 integer(IKG) , intent(in) :: alpha, beta
1202 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1203 integer(IKG) , intent(in) , contiguous :: matB(:)
1204 integer(IKG) , intent(inout) , contiguous :: matC(:)
1205 end subroutine
1206#endif
1207
1208#if IK1_ENABLED
1209 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_IK1(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1210#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1211 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_IK1
1212#endif
1213 use pm_kind, only: IKG => IK1
1214 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1215 integer(IKG) , intent(in) :: alpha, beta
1216 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1217 integer(IKG) , intent(in) , contiguous :: matB(:)
1218 integer(IKG) , intent(inout) , contiguous :: matC(:)
1219 end subroutine
1220#endif
1221
1222 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1223
1224#if CK5_ENABLED
1225 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_CK5(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1226#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1227 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_CK5
1228#endif
1229 use pm_kind, only: CKG => CK5
1230 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1231 complex(CKG) , intent(in) :: alpha, beta
1232 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1233 complex(CKG) , intent(in) , contiguous :: matB(:)
1234 complex(CKG) , intent(inout) , contiguous :: matC(:)
1235 end subroutine
1236#endif
1237
1238#if CK4_ENABLED
1239 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_CK4(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1240#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1241 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_CK4
1242#endif
1243 use pm_kind, only: CKG => CK4
1244 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1245 complex(CKG) , intent(in) :: alpha, beta
1246 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1247 complex(CKG) , intent(in) , contiguous :: matB(:)
1248 complex(CKG) , intent(inout) , contiguous :: matC(:)
1249 end subroutine
1250#endif
1251
1252#if CK3_ENABLED
1253 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_CK3(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1254#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1255 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_CK3
1256#endif
1257 use pm_kind, only: CKG => CK3
1258 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1259 complex(CKG) , intent(in) :: alpha, beta
1260 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1261 complex(CKG) , intent(in) , contiguous :: matB(:)
1262 complex(CKG) , intent(inout) , contiguous :: matC(:)
1263 end subroutine
1264#endif
1265
1266#if CK2_ENABLED
1267 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_CK2(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1268#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1269 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_CK2
1270#endif
1271 use pm_kind, only: CKG => CK2
1272 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1273 complex(CKG) , intent(in) :: alpha, beta
1274 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1275 complex(CKG) , intent(in) , contiguous :: matB(:)
1276 complex(CKG) , intent(inout) , contiguous :: matC(:)
1277 end subroutine
1278#endif
1279
1280#if CK1_ENABLED
1281 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_CK1(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1282#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1283 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_CK1
1284#endif
1285 use pm_kind, only: CKG => CK1
1286 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1287 complex(CKG) , intent(in) :: alpha, beta
1288 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1289 complex(CKG) , intent(in) , contiguous :: matB(:)
1290 complex(CKG) , intent(inout) , contiguous :: matC(:)
1291 end subroutine
1292#endif
1293
1294 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1295
1296#if RK5_ENABLED
1297 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_RK5(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1298#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1299 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_RK5
1300#endif
1301 use pm_kind, only: RKG => RK5
1302 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1303 real(RKG) , intent(in) :: alpha, beta
1304 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1305 real(RKG) , intent(in) , contiguous :: matB(:)
1306 real(RKG) , intent(inout) , contiguous :: matC(:)
1307 end subroutine
1308#endif
1309
1310#if RK4_ENABLED
1311 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_RK4(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1312#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1313 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_RK4
1314#endif
1315 use pm_kind, only: RKG => RK4
1316 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1317 real(RKG) , intent(in) :: alpha, beta
1318 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1319 real(RKG) , intent(in) , contiguous :: matB(:)
1320 real(RKG) , intent(inout) , contiguous :: matC(:)
1321 end subroutine
1322#endif
1323
1324#if RK3_ENABLED
1325 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_RK3(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1326#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1327 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_RK3
1328#endif
1329 use pm_kind, only: RKG => RK3
1330 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1331 real(RKG) , intent(in) :: alpha, beta
1332 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1333 real(RKG) , intent(in) , contiguous :: matB(:)
1334 real(RKG) , intent(inout) , contiguous :: matC(:)
1335 end subroutine
1336#endif
1337
1338#if RK2_ENABLED
1339 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_RK2(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1340#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1341 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_RK2
1342#endif
1343 use pm_kind, only: RKG => RK2
1344 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1345 real(RKG) , intent(in) :: alpha, beta
1346 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1347 real(RKG) , intent(in) , contiguous :: matB(:)
1348 real(RKG) , intent(inout) , contiguous :: matC(:)
1349 end subroutine
1350#endif
1351
1352#if RK1_ENABLED
1353 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_RK1(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1354#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1355 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_RK1
1356#endif
1357 use pm_kind, only: RKG => RK1
1358 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1359 real(RKG) , intent(in) :: alpha, beta
1360 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1361 real(RKG) , intent(in) , contiguous :: matB(:)
1362 real(RKG) , intent(inout) , contiguous :: matC(:)
1363 end subroutine
1364#endif
1365
1366 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1367
1368 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1369 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1370 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1371
1372 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1373
1374#if IK5_ENABLED
1375 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_IK5(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1376#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1377 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_IK5
1378#endif
1379 use pm_kind, only: IKG => IK5
1380 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1381 integer(IKG) , intent(in) :: alpha, beta
1382 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1383 integer(IKG) , intent(in) , contiguous :: matB(:)
1384 integer(IKG) , intent(inout) , contiguous :: matC(:)
1385 type(transSymm_type) , intent(in) :: operationA
1386 end subroutine
1387#endif
1388
1389#if IK4_ENABLED
1390 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_IK4(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1391#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1392 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_IK4
1393#endif
1394 use pm_kind, only: IKG => IK4
1395 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1396 integer(IKG) , intent(in) :: alpha, beta
1397 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1398 integer(IKG) , intent(in) , contiguous :: matB(:)
1399 integer(IKG) , intent(inout) , contiguous :: matC(:)
1400 type(transSymm_type) , intent(in) :: operationA
1401 end subroutine
1402#endif
1403
1404#if IK3_ENABLED
1405 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_IK3(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1406#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1407 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_IK3
1408#endif
1409 use pm_kind, only: IKG => IK3
1410 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1411 integer(IKG) , intent(in) :: alpha, beta
1412 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1413 integer(IKG) , intent(in) , contiguous :: matB(:)
1414 integer(IKG) , intent(inout) , contiguous :: matC(:)
1415 type(transSymm_type) , intent(in) :: operationA
1416 end subroutine
1417#endif
1418
1419#if IK2_ENABLED
1420 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_IK2(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1421#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1422 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_IK2
1423#endif
1424 use pm_kind, only: IKG => IK2
1425 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1426 integer(IKG) , intent(in) :: alpha, beta
1427 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1428 integer(IKG) , intent(in) , contiguous :: matB(:)
1429 integer(IKG) , intent(inout) , contiguous :: matC(:)
1430 type(transSymm_type) , intent(in) :: operationA
1431 end subroutine
1432#endif
1433
1434#if IK1_ENABLED
1435 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_IK1(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1436#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1437 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_IK1
1438#endif
1439 use pm_kind, only: IKG => IK1
1440 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1441 integer(IKG) , intent(in) :: alpha, beta
1442 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1443 integer(IKG) , intent(in) , contiguous :: matB(:)
1444 integer(IKG) , intent(inout) , contiguous :: matC(:)
1445 type(transSymm_type) , intent(in) :: operationA
1446 end subroutine
1447#endif
1448
1449 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1450
1451#if CK5_ENABLED
1452 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_CK5(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1453#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1454 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_CK5
1455#endif
1456 use pm_kind, only: CKG => CK5
1457 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1458 complex(CKG) , intent(in) :: alpha, beta
1459 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1460 complex(CKG) , intent(in) , contiguous :: matB(:)
1461 complex(CKG) , intent(inout) , contiguous :: matC(:)
1462 type(transSymm_type) , intent(in) :: operationA
1463 end subroutine
1464#endif
1465
1466#if CK4_ENABLED
1467 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_CK4(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1468#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1469 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_CK4
1470#endif
1471 use pm_kind, only: CKG => CK4
1472 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1473 complex(CKG) , intent(in) :: alpha, beta
1474 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1475 complex(CKG) , intent(in) , contiguous :: matB(:)
1476 complex(CKG) , intent(inout) , contiguous :: matC(:)
1477 type(transSymm_type) , intent(in) :: operationA
1478 end subroutine
1479#endif
1480
1481#if CK3_ENABLED
1482 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_CK3(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1483#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1484 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_CK3
1485#endif
1486 use pm_kind, only: CKG => CK3
1487 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1488 complex(CKG) , intent(in) :: alpha, beta
1489 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1490 complex(CKG) , intent(in) , contiguous :: matB(:)
1491 complex(CKG) , intent(inout) , contiguous :: matC(:)
1492 type(transSymm_type) , intent(in) :: operationA
1493 end subroutine
1494#endif
1495
1496#if CK2_ENABLED
1497 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_CK2(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1498#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1499 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_CK2
1500#endif
1501 use pm_kind, only: CKG => CK2
1502 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1503 complex(CKG) , intent(in) :: alpha, beta
1504 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1505 complex(CKG) , intent(in) , contiguous :: matB(:)
1506 complex(CKG) , intent(inout) , contiguous :: matC(:)
1507 type(transSymm_type) , intent(in) :: operationA
1508 end subroutine
1509#endif
1510
1511#if CK1_ENABLED
1512 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_CK1(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1513#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1514 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_CK1
1515#endif
1516 use pm_kind, only: CKG => CK1
1517 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1518 complex(CKG) , intent(in) :: alpha, beta
1519 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1520 complex(CKG) , intent(in) , contiguous :: matB(:)
1521 complex(CKG) , intent(inout) , contiguous :: matC(:)
1522 type(transSymm_type) , intent(in) :: operationA
1523 end subroutine
1524#endif
1525
1526 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1527
1528#if RK5_ENABLED
1529 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_RK5(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1530#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1531 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_RK5
1532#endif
1533 use pm_kind, only: RKG => RK5
1534 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1535 real(RKG) , intent(in) :: alpha, beta
1536 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1537 real(RKG) , intent(in) , contiguous :: matB(:)
1538 real(RKG) , intent(inout) , contiguous :: matC(:)
1539 type(transSymm_type) , intent(in) :: operationA
1540 end subroutine
1541#endif
1542
1543#if RK4_ENABLED
1544 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_RK4(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1545#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1546 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_RK4
1547#endif
1548 use pm_kind, only: RKG => RK4
1549 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1550 real(RKG) , intent(in) :: alpha, beta
1551 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1552 real(RKG) , intent(in) , contiguous :: matB(:)
1553 real(RKG) , intent(inout) , contiguous :: matC(:)
1554 type(transSymm_type) , intent(in) :: operationA
1555 end subroutine
1556#endif
1557
1558#if RK3_ENABLED
1559 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_RK3(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1560#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1561 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_RK3
1562#endif
1563 use pm_kind, only: RKG => RK3
1564 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1565 real(RKG) , intent(in) :: alpha, beta
1566 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1567 real(RKG) , intent(in) , contiguous :: matB(:)
1568 real(RKG) , intent(inout) , contiguous :: matC(:)
1569 type(transSymm_type) , intent(in) :: operationA
1570 end subroutine
1571#endif
1572
1573#if RK2_ENABLED
1574 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_RK2(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1575#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1576 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_RK2
1577#endif
1578 use pm_kind, only: RKG => RK2
1579 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1580 real(RKG) , intent(in) :: alpha, beta
1581 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1582 real(RKG) , intent(in) , contiguous :: matB(:)
1583 real(RKG) , intent(inout) , contiguous :: matC(:)
1584 type(transSymm_type) , intent(in) :: operationA
1585 end subroutine
1586#endif
1587
1588#if RK1_ENABLED
1589 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_RK1(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1590#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1591 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_RK1
1592#endif
1593 use pm_kind, only: RKG => RK1
1594 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1595 real(RKG) , intent(in) :: alpha, beta
1596 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1597 real(RKG) , intent(in) , contiguous :: matB(:)
1598 real(RKG) , intent(inout) , contiguous :: matC(:)
1599 type(transSymm_type) , intent(in) :: operationA
1600 end subroutine
1601#endif
1602
1603 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1604
1605 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1606 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1607 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1608
1609 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1610
1611#if IK5_ENABLED
1612 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_IK5(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1613#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1614 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_IK5
1615#endif
1616 use pm_kind, only: IKG => IK5
1617 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1618 integer(IKG) , intent(in) :: alpha, beta
1619 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1620 integer(IKG) , intent(in) , contiguous :: matB(:)
1621 integer(IKG) , intent(inout) , contiguous :: matC(:)
1622 type(transHerm_type) , intent(in) :: operationA
1623 end subroutine
1624#endif
1625
1626#if IK4_ENABLED
1627 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_IK4(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1628#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1629 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_IK4
1630#endif
1631 use pm_kind, only: IKG => IK4
1632 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1633 integer(IKG) , intent(in) :: alpha, beta
1634 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1635 integer(IKG) , intent(in) , contiguous :: matB(:)
1636 integer(IKG) , intent(inout) , contiguous :: matC(:)
1637 type(transHerm_type) , intent(in) :: operationA
1638 end subroutine
1639#endif
1640
1641#if IK3_ENABLED
1642 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_IK3(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1643#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1644 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_IK3
1645#endif
1646 use pm_kind, only: IKG => IK3
1647 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1648 integer(IKG) , intent(in) :: alpha, beta
1649 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1650 integer(IKG) , intent(in) , contiguous :: matB(:)
1651 integer(IKG) , intent(inout) , contiguous :: matC(:)
1652 type(transHerm_type) , intent(in) :: operationA
1653 end subroutine
1654#endif
1655
1656#if IK2_ENABLED
1657 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_IK2(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1658#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1659 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_IK2
1660#endif
1661 use pm_kind, only: IKG => IK2
1662 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1663 integer(IKG) , intent(in) :: alpha, beta
1664 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1665 integer(IKG) , intent(in) , contiguous :: matB(:)
1666 integer(IKG) , intent(inout) , contiguous :: matC(:)
1667 type(transHerm_type) , intent(in) :: operationA
1668 end subroutine
1669#endif
1670
1671#if IK1_ENABLED
1672 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_IK1(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1673#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1674 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_IK1
1675#endif
1676 use pm_kind, only: IKG => IK1
1677 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1678 integer(IKG) , intent(in) :: alpha, beta
1679 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1680 integer(IKG) , intent(in) , contiguous :: matB(:)
1681 integer(IKG) , intent(inout) , contiguous :: matC(:)
1682 type(transHerm_type) , intent(in) :: operationA
1683 end subroutine
1684#endif
1685
1686 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1687
1688#if CK5_ENABLED
1689 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_CK5(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1690#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1691 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_CK5
1692#endif
1693 use pm_kind, only: CKG => CK5
1694 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1695 complex(CKG) , intent(in) :: alpha, beta
1696 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1697 complex(CKG) , intent(in) , contiguous :: matB(:)
1698 complex(CKG) , intent(inout) , contiguous :: matC(:)
1699 type(transHerm_type) , intent(in) :: operationA
1700 end subroutine
1701#endif
1702
1703#if CK4_ENABLED
1704 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_CK4(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1705#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1706 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_CK4
1707#endif
1708 use pm_kind, only: CKG => CK4
1709 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1710 complex(CKG) , intent(in) :: alpha, beta
1711 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1712 complex(CKG) , intent(in) , contiguous :: matB(:)
1713 complex(CKG) , intent(inout) , contiguous :: matC(:)
1714 type(transHerm_type) , intent(in) :: operationA
1715 end subroutine
1716#endif
1717
1718#if CK3_ENABLED
1719 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_CK3(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1720#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1721 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_CK3
1722#endif
1723 use pm_kind, only: CKG => CK3
1724 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1725 complex(CKG) , intent(in) :: alpha, beta
1726 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1727 complex(CKG) , intent(in) , contiguous :: matB(:)
1728 complex(CKG) , intent(inout) , contiguous :: matC(:)
1729 type(transHerm_type) , intent(in) :: operationA
1730 end subroutine
1731#endif
1732
1733#if CK2_ENABLED
1734 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_CK2(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1735#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1736 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_CK2
1737#endif
1738 use pm_kind, only: CKG => CK2
1739 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1740 complex(CKG) , intent(in) :: alpha, beta
1741 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1742 complex(CKG) , intent(in) , contiguous :: matB(:)
1743 complex(CKG) , intent(inout) , contiguous :: matC(:)
1744 type(transHerm_type) , intent(in) :: operationA
1745 end subroutine
1746#endif
1747
1748#if CK1_ENABLED
1749 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_CK1(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1750#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1751 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_CK1
1752#endif
1753 use pm_kind, only: CKG => CK1
1754 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1755 complex(CKG) , intent(in) :: alpha, beta
1756 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1757 complex(CKG) , intent(in) , contiguous :: matB(:)
1758 complex(CKG) , intent(inout) , contiguous :: matC(:)
1759 type(transHerm_type) , intent(in) :: operationA
1760 end subroutine
1761#endif
1762
1763 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1764
1765#if RK5_ENABLED
1766 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_RK5(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1767#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1768 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_RK5
1769#endif
1770 use pm_kind, only: RKG => RK5
1771 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1772 real(RKG) , intent(in) :: alpha, beta
1773 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1774 real(RKG) , intent(in) , contiguous :: matB(:)
1775 real(RKG) , intent(inout) , contiguous :: matC(:)
1776 type(transHerm_type) , intent(in) :: operationA
1777 end subroutine
1778#endif
1779
1780#if RK4_ENABLED
1781 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_RK4(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1782#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1783 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_RK4
1784#endif
1785 use pm_kind, only: RKG => RK4
1786 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1787 real(RKG) , intent(in) :: alpha, beta
1788 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1789 real(RKG) , intent(in) , contiguous :: matB(:)
1790 real(RKG) , intent(inout) , contiguous :: matC(:)
1791 type(transHerm_type) , intent(in) :: operationA
1792 end subroutine
1793#endif
1794
1795#if RK3_ENABLED
1796 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_RK3(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1797#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1798 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_RK3
1799#endif
1800 use pm_kind, only: RKG => RK3
1801 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1802 real(RKG) , intent(in) :: alpha, beta
1803 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1804 real(RKG) , intent(in) , contiguous :: matB(:)
1805 real(RKG) , intent(inout) , contiguous :: matC(:)
1806 type(transHerm_type) , intent(in) :: operationA
1807 end subroutine
1808#endif
1809
1810#if RK2_ENABLED
1811 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_RK2(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1812#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1813 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_RK2
1814#endif
1815 use pm_kind, only: RKG => RK2
1816 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1817 real(RKG) , intent(in) :: alpha, beta
1818 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1819 real(RKG) , intent(in) , contiguous :: matB(:)
1820 real(RKG) , intent(inout) , contiguous :: matC(:)
1821 type(transHerm_type) , intent(in) :: operationA
1822 end subroutine
1823#endif
1824
1825#if RK1_ENABLED
1826 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_RK1(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1827#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1828 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_RK1
1829#endif
1830 use pm_kind, only: RKG => RK1
1831 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1832 real(RKG) , intent(in) :: alpha, beta
1833 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1834 real(RKG) , intent(in) , contiguous :: matB(:)
1835 real(RKG) , intent(inout) , contiguous :: matC(:)
1836 type(transHerm_type) , intent(in) :: operationA
1837 end subroutine
1838#endif
1839
1840 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1841
1842 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1843 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1844 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1845
1846 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1847 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1848 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1849
1850 end interface
1851
1852 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1853 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1854 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1855
1856 ! BLAS 2: `SSPMV`, `DSPMV`, `CSPMV`, `ZSPMV`
1857
1858 interface setMatMulAdd
1859
1860 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1861 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1862 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1863
1864 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1865
1866#if IK5_ENABLED
1867 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_IK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
1868#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1869 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_IK5
1870#endif
1871 use pm_kind, only: IKG => IK5
1872 integer(IKG) , intent(in) , optional :: alpha, beta
1873 integer(IKG) , intent(in) , contiguous :: matA(:)
1874 integer(IKG) , intent(in) , contiguous :: matB(:)
1875 integer(IKG) , intent(inout) , contiguous :: matC(:)
1876 type(uppDia_type) , intent(in) :: subsetA
1877 type(symmetric_type) , intent(in) :: classA
1878 type(lfpack_type) , intent(in) :: packA
1879 end subroutine
1880#endif
1881
1882#if IK4_ENABLED
1883 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_IK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
1884#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1885 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_IK4
1886#endif
1887 use pm_kind, only: IKG => IK4
1888 integer(IKG) , intent(in) , optional :: alpha, beta
1889 integer(IKG) , intent(in) , contiguous :: matA(:)
1890 integer(IKG) , intent(in) , contiguous :: matB(:)
1891 integer(IKG) , intent(inout) , contiguous :: matC(:)
1892 type(uppDia_type) , intent(in) :: subsetA
1893 type(symmetric_type) , intent(in) :: classA
1894 type(lfpack_type) , intent(in) :: packA
1895 end subroutine
1896#endif
1897
1898#if IK3_ENABLED
1899 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_IK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
1900#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1901 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_IK3
1902#endif
1903 use pm_kind, only: IKG => IK3
1904 integer(IKG) , intent(in) , optional :: alpha, beta
1905 integer(IKG) , intent(in) , contiguous :: matA(:)
1906 integer(IKG) , intent(in) , contiguous :: matB(:)
1907 integer(IKG) , intent(inout) , contiguous :: matC(:)
1908 type(uppDia_type) , intent(in) :: subsetA
1909 type(symmetric_type) , intent(in) :: classA
1910 type(lfpack_type) , intent(in) :: packA
1911 end subroutine
1912#endif
1913
1914#if IK2_ENABLED
1915 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_IK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
1916#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1917 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_IK2
1918#endif
1919 use pm_kind, only: IKG => IK2
1920 integer(IKG) , intent(in) , optional :: alpha, beta
1921 integer(IKG) , intent(in) , contiguous :: matA(:)
1922 integer(IKG) , intent(in) , contiguous :: matB(:)
1923 integer(IKG) , intent(inout) , contiguous :: matC(:)
1924 type(uppDia_type) , intent(in) :: subsetA
1925 type(symmetric_type) , intent(in) :: classA
1926 type(lfpack_type) , intent(in) :: packA
1927 end subroutine
1928#endif
1929
1930#if IK1_ENABLED
1931 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_IK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
1932#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1933 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_IK1
1934#endif
1935 use pm_kind, only: IKG => IK1
1936 integer(IKG) , intent(in) , optional :: alpha, beta
1937 integer(IKG) , intent(in) , contiguous :: matA(:)
1938 integer(IKG) , intent(in) , contiguous :: matB(:)
1939 integer(IKG) , intent(inout) , contiguous :: matC(:)
1940 type(uppDia_type) , intent(in) :: subsetA
1941 type(symmetric_type) , intent(in) :: classA
1942 type(lfpack_type) , intent(in) :: packA
1943 end subroutine
1944#endif
1945
1946 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1947
1948#if CK5_ENABLED
1949 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_CK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
1950#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1951 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_CK5
1952#endif
1953 use pm_kind, only: CKG => CK5
1954 complex(CKG) , intent(in) , optional :: alpha, beta
1955 complex(CKG) , intent(in) , contiguous :: matA(:)
1956 complex(CKG) , intent(in) , contiguous :: matB(:)
1957 complex(CKG) , intent(inout) , contiguous :: matC(:)
1958 type(uppDia_type) , intent(in) :: subsetA
1959 type(symmetric_type) , intent(in) :: classA
1960 type(lfpack_type) , intent(in) :: packA
1961 end subroutine
1962#endif
1963
1964#if CK4_ENABLED
1965 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_CK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
1966#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1967 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_CK4
1968#endif
1969 use pm_kind, only: CKG => CK4
1970 complex(CKG) , intent(in) , optional :: alpha, beta
1971 complex(CKG) , intent(in) , contiguous :: matA(:)
1972 complex(CKG) , intent(in) , contiguous :: matB(:)
1973 complex(CKG) , intent(inout) , contiguous :: matC(:)
1974 type(uppDia_type) , intent(in) :: subsetA
1975 type(symmetric_type) , intent(in) :: classA
1976 type(lfpack_type) , intent(in) :: packA
1977 end subroutine
1978#endif
1979
1980#if CK3_ENABLED
1981 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_CK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
1982#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1983 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_CK3
1984#endif
1985 use pm_kind, only: CKG => CK3
1986 complex(CKG) , intent(in) , optional :: alpha, beta
1987 complex(CKG) , intent(in) , contiguous :: matA(:)
1988 complex(CKG) , intent(in) , contiguous :: matB(:)
1989 complex(CKG) , intent(inout) , contiguous :: matC(:)
1990 type(uppDia_type) , intent(in) :: subsetA
1991 type(symmetric_type) , intent(in) :: classA
1992 type(lfpack_type) , intent(in) :: packA
1993 end subroutine
1994#endif
1995
1996#if CK2_ENABLED
1997 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_CK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
1998#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1999 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_CK2
2000#endif
2001 use pm_kind, only: CKG => CK2
2002 complex(CKG) , intent(in) , optional :: alpha, beta
2003 complex(CKG) , intent(in) , contiguous :: matA(:)
2004 complex(CKG) , intent(in) , contiguous :: matB(:)
2005 complex(CKG) , intent(inout) , contiguous :: matC(:)
2006 type(uppDia_type) , intent(in) :: subsetA
2007 type(symmetric_type) , intent(in) :: classA
2008 type(lfpack_type) , intent(in) :: packA
2009 end subroutine
2010#endif
2011
2012#if CK1_ENABLED
2013 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_CK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2014#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2015 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_CK1
2016#endif
2017 use pm_kind, only: CKG => CK1
2018 complex(CKG) , intent(in) , optional :: alpha, beta
2019 complex(CKG) , intent(in) , contiguous :: matA(:)
2020 complex(CKG) , intent(in) , contiguous :: matB(:)
2021 complex(CKG) , intent(inout) , contiguous :: matC(:)
2022 type(uppDia_type) , intent(in) :: subsetA
2023 type(symmetric_type) , intent(in) :: classA
2024 type(lfpack_type) , intent(in) :: packA
2025 end subroutine
2026#endif
2027
2028 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2029
2030#if RK5_ENABLED
2031 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_RK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2032#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2033 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_RK5
2034#endif
2035 use pm_kind, only: RKG => RK5
2036 real(RKG) , intent(in) , optional :: alpha, beta
2037 real(RKG) , intent(in) , contiguous :: matA(:)
2038 real(RKG) , intent(in) , contiguous :: matB(:)
2039 real(RKG) , intent(inout) , contiguous :: matC(:)
2040 type(uppDia_type) , intent(in) :: subsetA
2041 type(symmetric_type) , intent(in) :: classA
2042 type(lfpack_type) , intent(in) :: packA
2043 end subroutine
2044#endif
2045
2046#if RK4_ENABLED
2047 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_RK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2048#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2049 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_RK4
2050#endif
2051 use pm_kind, only: RKG => RK4
2052 real(RKG) , intent(in) , optional :: alpha, beta
2053 real(RKG) , intent(in) , contiguous :: matA(:)
2054 real(RKG) , intent(in) , contiguous :: matB(:)
2055 real(RKG) , intent(inout) , contiguous :: matC(:)
2056 type(uppDia_type) , intent(in) :: subsetA
2057 type(symmetric_type) , intent(in) :: classA
2058 type(lfpack_type) , intent(in) :: packA
2059 end subroutine
2060#endif
2061
2062#if RK3_ENABLED
2063 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_RK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2064#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2065 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_RK3
2066#endif
2067 use pm_kind, only: RKG => RK3
2068 real(RKG) , intent(in) , optional :: alpha, beta
2069 real(RKG) , intent(in) , contiguous :: matA(:)
2070 real(RKG) , intent(in) , contiguous :: matB(:)
2071 real(RKG) , intent(inout) , contiguous :: matC(:)
2072 type(uppDia_type) , intent(in) :: subsetA
2073 type(symmetric_type) , intent(in) :: classA
2074 type(lfpack_type) , intent(in) :: packA
2075 end subroutine
2076#endif
2077
2078#if RK2_ENABLED
2079 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_RK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2080#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2081 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_RK2
2082#endif
2083 use pm_kind, only: RKG => RK2
2084 real(RKG) , intent(in) , optional :: alpha, beta
2085 real(RKG) , intent(in) , contiguous :: matA(:)
2086 real(RKG) , intent(in) , contiguous :: matB(:)
2087 real(RKG) , intent(inout) , contiguous :: matC(:)
2088 type(uppDia_type) , intent(in) :: subsetA
2089 type(symmetric_type) , intent(in) :: classA
2090 type(lfpack_type) , intent(in) :: packA
2091 end subroutine
2092#endif
2093
2094#if RK1_ENABLED
2095 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_RK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2096#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2097 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_RK1
2098#endif
2099 use pm_kind, only: RKG => RK1
2100 real(RKG) , intent(in) , optional :: alpha, beta
2101 real(RKG) , intent(in) , contiguous :: matA(:)
2102 real(RKG) , intent(in) , contiguous :: matB(:)
2103 real(RKG) , intent(inout) , contiguous :: matC(:)
2104 type(uppDia_type) , intent(in) :: subsetA
2105 type(symmetric_type) , intent(in) :: classA
2106 type(lfpack_type) , intent(in) :: packA
2107 end subroutine
2108#endif
2109
2110 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2111
2112 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2113 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2114 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2115
2116 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2117
2118#if IK5_ENABLED
2119 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_IK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2120#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2121 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_IK5
2122#endif
2123 use pm_kind, only: IKG => IK5
2124 integer(IKG) , intent(in) , optional :: alpha, beta
2125 integer(IKG) , intent(in) , contiguous :: matA(:)
2126 integer(IKG) , intent(in) , contiguous :: matB(:)
2127 integer(IKG) , intent(inout) , contiguous :: matC(:)
2128 type(lowDia_type) , intent(in) :: subsetA
2129 type(symmetric_type) , intent(in) :: classA
2130 type(lfpack_type) , intent(in) :: packA
2131 end subroutine
2132#endif
2133
2134#if IK4_ENABLED
2135 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_IK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2136#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2137 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_IK4
2138#endif
2139 use pm_kind, only: IKG => IK4
2140 integer(IKG) , intent(in) , optional :: alpha, beta
2141 integer(IKG) , intent(in) , contiguous :: matA(:)
2142 integer(IKG) , intent(in) , contiguous :: matB(:)
2143 integer(IKG) , intent(inout) , contiguous :: matC(:)
2144 type(lowDia_type) , intent(in) :: subsetA
2145 type(symmetric_type) , intent(in) :: classA
2146 type(lfpack_type) , intent(in) :: packA
2147 end subroutine
2148#endif
2149
2150#if IK3_ENABLED
2151 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_IK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2152#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2153 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_IK3
2154#endif
2155 use pm_kind, only: IKG => IK3
2156 integer(IKG) , intent(in) , optional :: alpha, beta
2157 integer(IKG) , intent(in) , contiguous :: matA(:)
2158 integer(IKG) , intent(in) , contiguous :: matB(:)
2159 integer(IKG) , intent(inout) , contiguous :: matC(:)
2160 type(lowDia_type) , intent(in) :: subsetA
2161 type(symmetric_type) , intent(in) :: classA
2162 type(lfpack_type) , intent(in) :: packA
2163 end subroutine
2164#endif
2165
2166#if IK2_ENABLED
2167 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_IK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2168#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2169 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_IK2
2170#endif
2171 use pm_kind, only: IKG => IK2
2172 integer(IKG) , intent(in) , optional :: alpha, beta
2173 integer(IKG) , intent(in) , contiguous :: matA(:)
2174 integer(IKG) , intent(in) , contiguous :: matB(:)
2175 integer(IKG) , intent(inout) , contiguous :: matC(:)
2176 type(lowDia_type) , intent(in) :: subsetA
2177 type(symmetric_type) , intent(in) :: classA
2178 type(lfpack_type) , intent(in) :: packA
2179 end subroutine
2180#endif
2181
2182#if IK1_ENABLED
2183 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_IK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2184#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2185 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_IK1
2186#endif
2187 use pm_kind, only: IKG => IK1
2188 integer(IKG) , intent(in) , optional :: alpha, beta
2189 integer(IKG) , intent(in) , contiguous :: matA(:)
2190 integer(IKG) , intent(in) , contiguous :: matB(:)
2191 integer(IKG) , intent(inout) , contiguous :: matC(:)
2192 type(lowDia_type) , intent(in) :: subsetA
2193 type(symmetric_type) , intent(in) :: classA
2194 type(lfpack_type) , intent(in) :: packA
2195 end subroutine
2196#endif
2197
2198 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2199
2200#if CK5_ENABLED
2201 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_CK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2202#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2203 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_CK5
2204#endif
2205 use pm_kind, only: CKG => CK5
2206 complex(CKG) , intent(in) , optional :: alpha, beta
2207 complex(CKG) , intent(in) , contiguous :: matA(:)
2208 complex(CKG) , intent(in) , contiguous :: matB(:)
2209 complex(CKG) , intent(inout) , contiguous :: matC(:)
2210 type(lowDia_type) , intent(in) :: subsetA
2211 type(symmetric_type) , intent(in) :: classA
2212 type(lfpack_type) , intent(in) :: packA
2213 end subroutine
2214#endif
2215
2216#if CK4_ENABLED
2217 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_CK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2218#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2219 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_CK4
2220#endif
2221 use pm_kind, only: CKG => CK4
2222 complex(CKG) , intent(in) , optional :: alpha, beta
2223 complex(CKG) , intent(in) , contiguous :: matA(:)
2224 complex(CKG) , intent(in) , contiguous :: matB(:)
2225 complex(CKG) , intent(inout) , contiguous :: matC(:)
2226 type(lowDia_type) , intent(in) :: subsetA
2227 type(symmetric_type) , intent(in) :: classA
2228 type(lfpack_type) , intent(in) :: packA
2229 end subroutine
2230#endif
2231
2232#if CK3_ENABLED
2233 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_CK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2234#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2235 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_CK3
2236#endif
2237 use pm_kind, only: CKG => CK3
2238 complex(CKG) , intent(in) , optional :: alpha, beta
2239 complex(CKG) , intent(in) , contiguous :: matA(:)
2240 complex(CKG) , intent(in) , contiguous :: matB(:)
2241 complex(CKG) , intent(inout) , contiguous :: matC(:)
2242 type(lowDia_type) , intent(in) :: subsetA
2243 type(symmetric_type) , intent(in) :: classA
2244 type(lfpack_type) , intent(in) :: packA
2245 end subroutine
2246#endif
2247
2248#if CK2_ENABLED
2249 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_CK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2250#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2251 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_CK2
2252#endif
2253 use pm_kind, only: CKG => CK2
2254 complex(CKG) , intent(in) , optional :: alpha, beta
2255 complex(CKG) , intent(in) , contiguous :: matA(:)
2256 complex(CKG) , intent(in) , contiguous :: matB(:)
2257 complex(CKG) , intent(inout) , contiguous :: matC(:)
2258 type(lowDia_type) , intent(in) :: subsetA
2259 type(symmetric_type) , intent(in) :: classA
2260 type(lfpack_type) , intent(in) :: packA
2261 end subroutine
2262#endif
2263
2264#if CK1_ENABLED
2265 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_CK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2266#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2267 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_CK1
2268#endif
2269 use pm_kind, only: CKG => CK1
2270 complex(CKG) , intent(in) , optional :: alpha, beta
2271 complex(CKG) , intent(in) , contiguous :: matA(:)
2272 complex(CKG) , intent(in) , contiguous :: matB(:)
2273 complex(CKG) , intent(inout) , contiguous :: matC(:)
2274 type(lowDia_type) , intent(in) :: subsetA
2275 type(symmetric_type) , intent(in) :: classA
2276 type(lfpack_type) , intent(in) :: packA
2277 end subroutine
2278#endif
2279
2280 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2281
2282#if RK5_ENABLED
2283 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_RK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2284#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2285 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_RK5
2286#endif
2287 use pm_kind, only: RKG => RK5
2288 real(RKG) , intent(in) , optional :: alpha, beta
2289 real(RKG) , intent(in) , contiguous :: matA(:)
2290 real(RKG) , intent(in) , contiguous :: matB(:)
2291 real(RKG) , intent(inout) , contiguous :: matC(:)
2292 type(lowDia_type) , intent(in) :: subsetA
2293 type(symmetric_type) , intent(in) :: classA
2294 type(lfpack_type) , intent(in) :: packA
2295 end subroutine
2296#endif
2297
2298#if RK4_ENABLED
2299 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_RK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2300#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2301 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_RK4
2302#endif
2303 use pm_kind, only: RKG => RK4
2304 real(RKG) , intent(in) , optional :: alpha, beta
2305 real(RKG) , intent(in) , contiguous :: matA(:)
2306 real(RKG) , intent(in) , contiguous :: matB(:)
2307 real(RKG) , intent(inout) , contiguous :: matC(:)
2308 type(lowDia_type) , intent(in) :: subsetA
2309 type(symmetric_type) , intent(in) :: classA
2310 type(lfpack_type) , intent(in) :: packA
2311 end subroutine
2312#endif
2313
2314#if RK3_ENABLED
2315 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_RK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2316#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2317 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_RK3
2318#endif
2319 use pm_kind, only: RKG => RK3
2320 real(RKG) , intent(in) , optional :: alpha, beta
2321 real(RKG) , intent(in) , contiguous :: matA(:)
2322 real(RKG) , intent(in) , contiguous :: matB(:)
2323 real(RKG) , intent(inout) , contiguous :: matC(:)
2324 type(lowDia_type) , intent(in) :: subsetA
2325 type(symmetric_type) , intent(in) :: classA
2326 type(lfpack_type) , intent(in) :: packA
2327 end subroutine
2328#endif
2329
2330#if RK2_ENABLED
2331 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_RK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2332#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2333 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_RK2
2334#endif
2335 use pm_kind, only: RKG => RK2
2336 real(RKG) , intent(in) , optional :: alpha, beta
2337 real(RKG) , intent(in) , contiguous :: matA(:)
2338 real(RKG) , intent(in) , contiguous :: matB(:)
2339 real(RKG) , intent(inout) , contiguous :: matC(:)
2340 type(lowDia_type) , intent(in) :: subsetA
2341 type(symmetric_type) , intent(in) :: classA
2342 type(lfpack_type) , intent(in) :: packA
2343 end subroutine
2344#endif
2345
2346#if RK1_ENABLED
2347 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_RK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2348#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2349 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_RK1
2350#endif
2351 use pm_kind, only: RKG => RK1
2352 real(RKG) , intent(in) , optional :: alpha, beta
2353 real(RKG) , intent(in) , contiguous :: matA(:)
2354 real(RKG) , intent(in) , contiguous :: matB(:)
2355 real(RKG) , intent(inout) , contiguous :: matC(:)
2356 type(lowDia_type) , intent(in) :: subsetA
2357 type(symmetric_type) , intent(in) :: classA
2358 type(lfpack_type) , intent(in) :: packA
2359 end subroutine
2360#endif
2361
2362 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2363
2364 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2365 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2366 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2367
2368 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2369 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2370 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2371
2372 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2373
2374#if IK5_ENABLED
2375 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_IK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2376#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2377 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_IK5
2378#endif
2379 use pm_kind, only: IKG => IK5
2380 integer(IK) , intent(in) :: ndim, incB, incC
2381 integer(IKG) , intent(in) :: alpha, beta
2382 integer(IKG) , intent(in) , contiguous :: matA(:)
2383 integer(IKG) , intent(in) , contiguous :: matB(:)
2384 integer(IKG) , intent(inout) , contiguous :: matC(:)
2385 type(uppDia_type) , intent(in) :: subsetA
2386 type(symmetric_type) , intent(in) :: classA
2387 type(lfpack_type) , intent(in) :: packA
2388 end subroutine
2389#endif
2390
2391#if IK4_ENABLED
2392 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_IK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2393#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2394 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_IK4
2395#endif
2396 use pm_kind, only: IKG => IK4
2397 integer(IK) , intent(in) :: ndim, incB, incC
2398 integer(IKG) , intent(in) :: alpha, beta
2399 integer(IKG) , intent(in) , contiguous :: matA(:)
2400 integer(IKG) , intent(in) , contiguous :: matB(:)
2401 integer(IKG) , intent(inout) , contiguous :: matC(:)
2402 type(uppDia_type) , intent(in) :: subsetA
2403 type(symmetric_type) , intent(in) :: classA
2404 type(lfpack_type) , intent(in) :: packA
2405 end subroutine
2406#endif
2407
2408#if IK3_ENABLED
2409 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_IK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2410#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2411 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_IK3
2412#endif
2413 use pm_kind, only: IKG => IK3
2414 integer(IK) , intent(in) :: ndim, incB, incC
2415 integer(IKG) , intent(in) :: alpha, beta
2416 integer(IKG) , intent(in) , contiguous :: matA(:)
2417 integer(IKG) , intent(in) , contiguous :: matB(:)
2418 integer(IKG) , intent(inout) , contiguous :: matC(:)
2419 type(uppDia_type) , intent(in) :: subsetA
2420 type(symmetric_type) , intent(in) :: classA
2421 type(lfpack_type) , intent(in) :: packA
2422 end subroutine
2423#endif
2424
2425#if IK2_ENABLED
2426 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_IK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2427#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2428 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_IK2
2429#endif
2430 use pm_kind, only: IKG => IK2
2431 integer(IK) , intent(in) :: ndim, incB, incC
2432 integer(IKG) , intent(in) :: alpha, beta
2433 integer(IKG) , intent(in) , contiguous :: matA(:)
2434 integer(IKG) , intent(in) , contiguous :: matB(:)
2435 integer(IKG) , intent(inout) , contiguous :: matC(:)
2436 type(uppDia_type) , intent(in) :: subsetA
2437 type(symmetric_type) , intent(in) :: classA
2438 type(lfpack_type) , intent(in) :: packA
2439 end subroutine
2440#endif
2441
2442#if IK1_ENABLED
2443 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_IK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2444#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2445 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_IK1
2446#endif
2447 use pm_kind, only: IKG => IK1
2448 integer(IK) , intent(in) :: ndim, incB, incC
2449 integer(IKG) , intent(in) :: alpha, beta
2450 integer(IKG) , intent(in) , contiguous :: matA(:)
2451 integer(IKG) , intent(in) , contiguous :: matB(:)
2452 integer(IKG) , intent(inout) , contiguous :: matC(:)
2453 type(uppDia_type) , intent(in) :: subsetA
2454 type(symmetric_type) , intent(in) :: classA
2455 type(lfpack_type) , intent(in) :: packA
2456 end subroutine
2457#endif
2458
2459 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2460
2461#if CK5_ENABLED
2462 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_CK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2463#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2464 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_CK5
2465#endif
2466 use pm_kind, only: CKG => CK5
2467 integer(IK) , intent(in) :: ndim, incB, incC
2468 complex(CKG) , intent(in) :: alpha, beta
2469 complex(CKG) , intent(in) , contiguous :: matA(:)
2470 complex(CKG) , intent(in) , contiguous :: matB(:)
2471 complex(CKG) , intent(inout) , contiguous :: matC(:)
2472 type(uppDia_type) , intent(in) :: subsetA
2473 type(symmetric_type) , intent(in) :: classA
2474 type(lfpack_type) , intent(in) :: packA
2475 end subroutine
2476#endif
2477
2478#if CK4_ENABLED
2479 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_CK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2480#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2481 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_CK4
2482#endif
2483 use pm_kind, only: CKG => CK4
2484 integer(IK) , intent(in) :: ndim, incB, incC
2485 complex(CKG) , intent(in) :: alpha, beta
2486 complex(CKG) , intent(in) , contiguous :: matA(:)
2487 complex(CKG) , intent(in) , contiguous :: matB(:)
2488 complex(CKG) , intent(inout) , contiguous :: matC(:)
2489 type(uppDia_type) , intent(in) :: subsetA
2490 type(symmetric_type) , intent(in) :: classA
2491 type(lfpack_type) , intent(in) :: packA
2492 end subroutine
2493#endif
2494
2495#if CK3_ENABLED
2496 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_CK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2497#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2498 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_CK3
2499#endif
2500 use pm_kind, only: CKG => CK3
2501 integer(IK) , intent(in) :: ndim, incB, incC
2502 complex(CKG) , intent(in) :: alpha, beta
2503 complex(CKG) , intent(in) , contiguous :: matA(:)
2504 complex(CKG) , intent(in) , contiguous :: matB(:)
2505 complex(CKG) , intent(inout) , contiguous :: matC(:)
2506 type(uppDia_type) , intent(in) :: subsetA
2507 type(symmetric_type) , intent(in) :: classA
2508 type(lfpack_type) , intent(in) :: packA
2509 end subroutine
2510#endif
2511
2512#if CK2_ENABLED
2513 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_CK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2514#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2515 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_CK2
2516#endif
2517 use pm_kind, only: CKG => CK2
2518 integer(IK) , intent(in) :: ndim, incB, incC
2519 complex(CKG) , intent(in) :: alpha, beta
2520 complex(CKG) , intent(in) , contiguous :: matA(:)
2521 complex(CKG) , intent(in) , contiguous :: matB(:)
2522 complex(CKG) , intent(inout) , contiguous :: matC(:)
2523 type(uppDia_type) , intent(in) :: subsetA
2524 type(symmetric_type) , intent(in) :: classA
2525 type(lfpack_type) , intent(in) :: packA
2526 end subroutine
2527#endif
2528
2529#if CK1_ENABLED
2530 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_CK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2531#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2532 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_CK1
2533#endif
2534 use pm_kind, only: CKG => CK1
2535 integer(IK) , intent(in) :: ndim, incB, incC
2536 complex(CKG) , intent(in) :: alpha, beta
2537 complex(CKG) , intent(in) , contiguous :: matA(:)
2538 complex(CKG) , intent(in) , contiguous :: matB(:)
2539 complex(CKG) , intent(inout) , contiguous :: matC(:)
2540 type(uppDia_type) , intent(in) :: subsetA
2541 type(symmetric_type) , intent(in) :: classA
2542 type(lfpack_type) , intent(in) :: packA
2543 end subroutine
2544#endif
2545
2546 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2547
2548#if RK5_ENABLED
2549 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_RK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2550#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2551 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_RK5
2552#endif
2553 use pm_kind, only: RKG => RK5
2554 integer(IK) , intent(in) :: ndim, incB, incC
2555 real(RKG) , intent(in) :: alpha, beta
2556 real(RKG) , intent(in) , contiguous :: matA(:)
2557 real(RKG) , intent(in) , contiguous :: matB(:)
2558 real(RKG) , intent(inout) , contiguous :: matC(:)
2559 type(uppDia_type) , intent(in) :: subsetA
2560 type(symmetric_type) , intent(in) :: classA
2561 type(lfpack_type) , intent(in) :: packA
2562 end subroutine
2563#endif
2564
2565#if RK4_ENABLED
2566 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_RK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2567#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2568 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_RK4
2569#endif
2570 use pm_kind, only: RKG => RK4
2571 integer(IK) , intent(in) :: ndim, incB, incC
2572 real(RKG) , intent(in) :: alpha, beta
2573 real(RKG) , intent(in) , contiguous :: matA(:)
2574 real(RKG) , intent(in) , contiguous :: matB(:)
2575 real(RKG) , intent(inout) , contiguous :: matC(:)
2576 type(uppDia_type) , intent(in) :: subsetA
2577 type(symmetric_type) , intent(in) :: classA
2578 type(lfpack_type) , intent(in) :: packA
2579 end subroutine
2580#endif
2581
2582#if RK3_ENABLED
2583 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_RK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2584#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2585 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_RK3
2586#endif
2587 use pm_kind, only: RKG => RK3
2588 integer(IK) , intent(in) :: ndim, incB, incC
2589 real(RKG) , intent(in) :: alpha, beta
2590 real(RKG) , intent(in) , contiguous :: matA(:)
2591 real(RKG) , intent(in) , contiguous :: matB(:)
2592 real(RKG) , intent(inout) , contiguous :: matC(:)
2593 type(uppDia_type) , intent(in) :: subsetA
2594 type(symmetric_type) , intent(in) :: classA
2595 type(lfpack_type) , intent(in) :: packA
2596 end subroutine
2597#endif
2598
2599#if RK2_ENABLED
2600 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_RK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2601#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2602 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_RK2
2603#endif
2604 use pm_kind, only: RKG => RK2
2605 integer(IK) , intent(in) :: ndim, incB, incC
2606 real(RKG) , intent(in) :: alpha, beta
2607 real(RKG) , intent(in) , contiguous :: matA(:)
2608 real(RKG) , intent(in) , contiguous :: matB(:)
2609 real(RKG) , intent(inout) , contiguous :: matC(:)
2610 type(uppDia_type) , intent(in) :: subsetA
2611 type(symmetric_type) , intent(in) :: classA
2612 type(lfpack_type) , intent(in) :: packA
2613 end subroutine
2614#endif
2615
2616#if RK1_ENABLED
2617 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_RK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2618#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2619 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_RK1
2620#endif
2621 use pm_kind, only: RKG => RK1
2622 integer(IK) , intent(in) :: ndim, incB, incC
2623 real(RKG) , intent(in) :: alpha, beta
2624 real(RKG) , intent(in) , contiguous :: matA(:)
2625 real(RKG) , intent(in) , contiguous :: matB(:)
2626 real(RKG) , intent(inout) , contiguous :: matC(:)
2627 type(uppDia_type) , intent(in) :: subsetA
2628 type(symmetric_type) , intent(in) :: classA
2629 type(lfpack_type) , intent(in) :: packA
2630 end subroutine
2631#endif
2632
2633 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2634
2635 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2636 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2637 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2638
2639 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2640
2641#if IK5_ENABLED
2642 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_IK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2643#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2644 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_IK5
2645#endif
2646 use pm_kind, only: IKG => IK5
2647 integer(IK) , intent(in) :: ndim, incB, incC
2648 integer(IKG) , intent(in) :: alpha, beta
2649 integer(IKG) , intent(in) , contiguous :: matA(:)
2650 integer(IKG) , intent(in) , contiguous :: matB(:)
2651 integer(IKG) , intent(inout) , contiguous :: matC(:)
2652 type(lowDia_type) , intent(in) :: subsetA
2653 type(symmetric_type) , intent(in) :: classA
2654 type(lfpack_type) , intent(in) :: packA
2655 end subroutine
2656#endif
2657
2658#if IK4_ENABLED
2659 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_IK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2660#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2661 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_IK4
2662#endif
2663 use pm_kind, only: IKG => IK4
2664 integer(IK) , intent(in) :: ndim, incB, incC
2665 integer(IKG) , intent(in) :: alpha, beta
2666 integer(IKG) , intent(in) , contiguous :: matA(:)
2667 integer(IKG) , intent(in) , contiguous :: matB(:)
2668 integer(IKG) , intent(inout) , contiguous :: matC(:)
2669 type(lowDia_type) , intent(in) :: subsetA
2670 type(symmetric_type) , intent(in) :: classA
2671 type(lfpack_type) , intent(in) :: packA
2672 end subroutine
2673#endif
2674
2675#if IK3_ENABLED
2676 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_IK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2677#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2678 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_IK3
2679#endif
2680 use pm_kind, only: IKG => IK3
2681 integer(IK) , intent(in) :: ndim, incB, incC
2682 integer(IKG) , intent(in) :: alpha, beta
2683 integer(IKG) , intent(in) , contiguous :: matA(:)
2684 integer(IKG) , intent(in) , contiguous :: matB(:)
2685 integer(IKG) , intent(inout) , contiguous :: matC(:)
2686 type(lowDia_type) , intent(in) :: subsetA
2687 type(symmetric_type) , intent(in) :: classA
2688 type(lfpack_type) , intent(in) :: packA
2689 end subroutine
2690#endif
2691
2692#if IK2_ENABLED
2693 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_IK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2694#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2695 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_IK2
2696#endif
2697 use pm_kind, only: IKG => IK2
2698 integer(IK) , intent(in) :: ndim, incB, incC
2699 integer(IKG) , intent(in) :: alpha, beta
2700 integer(IKG) , intent(in) , contiguous :: matA(:)
2701 integer(IKG) , intent(in) , contiguous :: matB(:)
2702 integer(IKG) , intent(inout) , contiguous :: matC(:)
2703 type(lowDia_type) , intent(in) :: subsetA
2704 type(symmetric_type) , intent(in) :: classA
2705 type(lfpack_type) , intent(in) :: packA
2706 end subroutine
2707#endif
2708
2709#if IK1_ENABLED
2710 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_IK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2711#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2712 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_IK1
2713#endif
2714 use pm_kind, only: IKG => IK1
2715 integer(IK) , intent(in) :: ndim, incB, incC
2716 integer(IKG) , intent(in) :: alpha, beta
2717 integer(IKG) , intent(in) , contiguous :: matA(:)
2718 integer(IKG) , intent(in) , contiguous :: matB(:)
2719 integer(IKG) , intent(inout) , contiguous :: matC(:)
2720 type(lowDia_type) , intent(in) :: subsetA
2721 type(symmetric_type) , intent(in) :: classA
2722 type(lfpack_type) , intent(in) :: packA
2723 end subroutine
2724#endif
2725
2726 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2727
2728#if CK5_ENABLED
2729 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_CK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2730#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2731 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_CK5
2732#endif
2733 use pm_kind, only: CKG => CK5
2734 integer(IK) , intent(in) :: ndim, incB, incC
2735 complex(CKG) , intent(in) :: alpha, beta
2736 complex(CKG) , intent(in) , contiguous :: matA(:)
2737 complex(CKG) , intent(in) , contiguous :: matB(:)
2738 complex(CKG) , intent(inout) , contiguous :: matC(:)
2739 type(lowDia_type) , intent(in) :: subsetA
2740 type(symmetric_type) , intent(in) :: classA
2741 type(lfpack_type) , intent(in) :: packA
2742 end subroutine
2743#endif
2744
2745#if CK4_ENABLED
2746 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_CK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2747#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2748 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_CK4
2749#endif
2750 use pm_kind, only: CKG => CK4
2751 integer(IK) , intent(in) :: ndim, incB, incC
2752 complex(CKG) , intent(in) :: alpha, beta
2753 complex(CKG) , intent(in) , contiguous :: matA(:)
2754 complex(CKG) , intent(in) , contiguous :: matB(:)
2755 complex(CKG) , intent(inout) , contiguous :: matC(:)
2756 type(lowDia_type) , intent(in) :: subsetA
2757 type(symmetric_type) , intent(in) :: classA
2758 type(lfpack_type) , intent(in) :: packA
2759 end subroutine
2760#endif
2761
2762#if CK3_ENABLED
2763 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_CK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2764#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2765 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_CK3
2766#endif
2767 use pm_kind, only: CKG => CK3
2768 integer(IK) , intent(in) :: ndim, incB, incC
2769 complex(CKG) , intent(in) :: alpha, beta
2770 complex(CKG) , intent(in) , contiguous :: matA(:)
2771 complex(CKG) , intent(in) , contiguous :: matB(:)
2772 complex(CKG) , intent(inout) , contiguous :: matC(:)
2773 type(lowDia_type) , intent(in) :: subsetA
2774 type(symmetric_type) , intent(in) :: classA
2775 type(lfpack_type) , intent(in) :: packA
2776 end subroutine
2777#endif
2778
2779#if CK2_ENABLED
2780 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_CK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2781#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2782 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_CK2
2783#endif
2784 use pm_kind, only: CKG => CK2
2785 integer(IK) , intent(in) :: ndim, incB, incC
2786 complex(CKG) , intent(in) :: alpha, beta
2787 complex(CKG) , intent(in) , contiguous :: matA(:)
2788 complex(CKG) , intent(in) , contiguous :: matB(:)
2789 complex(CKG) , intent(inout) , contiguous :: matC(:)
2790 type(lowDia_type) , intent(in) :: subsetA
2791 type(symmetric_type) , intent(in) :: classA
2792 type(lfpack_type) , intent(in) :: packA
2793 end subroutine
2794#endif
2795
2796#if CK1_ENABLED
2797 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_CK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2798#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2799 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_CK1
2800#endif
2801 use pm_kind, only: CKG => CK1
2802 integer(IK) , intent(in) :: ndim, incB, incC
2803 complex(CKG) , intent(in) :: alpha, beta
2804 complex(CKG) , intent(in) , contiguous :: matA(:)
2805 complex(CKG) , intent(in) , contiguous :: matB(:)
2806 complex(CKG) , intent(inout) , contiguous :: matC(:)
2807 type(lowDia_type) , intent(in) :: subsetA
2808 type(symmetric_type) , intent(in) :: classA
2809 type(lfpack_type) , intent(in) :: packA
2810 end subroutine
2811#endif
2812
2813 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2814
2815#if RK5_ENABLED
2816 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_RK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2817#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2818 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_RK5
2819#endif
2820 use pm_kind, only: RKG => RK5
2821 integer(IK) , intent(in) :: ndim, incB, incC
2822 real(RKG) , intent(in) :: alpha, beta
2823 real(RKG) , intent(in) , contiguous :: matA(:)
2824 real(RKG) , intent(in) , contiguous :: matB(:)
2825 real(RKG) , intent(inout) , contiguous :: matC(:)
2826 type(lowDia_type) , intent(in) :: subsetA
2827 type(symmetric_type) , intent(in) :: classA
2828 type(lfpack_type) , intent(in) :: packA
2829 end subroutine
2830#endif
2831
2832#if RK4_ENABLED
2833 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_RK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2834#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2835 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_RK4
2836#endif
2837 use pm_kind, only: RKG => RK4
2838 integer(IK) , intent(in) :: ndim, incB, incC
2839 real(RKG) , intent(in) :: alpha, beta
2840 real(RKG) , intent(in) , contiguous :: matA(:)
2841 real(RKG) , intent(in) , contiguous :: matB(:)
2842 real(RKG) , intent(inout) , contiguous :: matC(:)
2843 type(lowDia_type) , intent(in) :: subsetA
2844 type(symmetric_type) , intent(in) :: classA
2845 type(lfpack_type) , intent(in) :: packA
2846 end subroutine
2847#endif
2848
2849#if RK3_ENABLED
2850 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_RK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2851#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2852 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_RK3
2853#endif
2854 use pm_kind, only: RKG => RK3
2855 integer(IK) , intent(in) :: ndim, incB, incC
2856 real(RKG) , intent(in) :: alpha, beta
2857 real(RKG) , intent(in) , contiguous :: matA(:)
2858 real(RKG) , intent(in) , contiguous :: matB(:)
2859 real(RKG) , intent(inout) , contiguous :: matC(:)
2860 type(lowDia_type) , intent(in) :: subsetA
2861 type(symmetric_type) , intent(in) :: classA
2862 type(lfpack_type) , intent(in) :: packA
2863 end subroutine
2864#endif
2865
2866#if RK2_ENABLED
2867 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_RK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2868#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2869 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_RK2
2870#endif
2871 use pm_kind, only: RKG => RK2
2872 integer(IK) , intent(in) :: ndim, incB, incC
2873 real(RKG) , intent(in) :: alpha, beta
2874 real(RKG) , intent(in) , contiguous :: matA(:)
2875 real(RKG) , intent(in) , contiguous :: matB(:)
2876 real(RKG) , intent(inout) , contiguous :: matC(:)
2877 type(lowDia_type) , intent(in) :: subsetA
2878 type(symmetric_type) , intent(in) :: classA
2879 type(lfpack_type) , intent(in) :: packA
2880 end subroutine
2881#endif
2882
2883#if RK1_ENABLED
2884 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_RK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2885#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2886 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_RK1
2887#endif
2888 use pm_kind, only: RKG => RK1
2889 integer(IK) , intent(in) :: ndim, incB, incC
2890 real(RKG) , intent(in) :: alpha, beta
2891 real(RKG) , intent(in) , contiguous :: matA(:)
2892 real(RKG) , intent(in) , contiguous :: matB(:)
2893 real(RKG) , intent(inout) , contiguous :: matC(:)
2894 type(lowDia_type) , intent(in) :: subsetA
2895 type(symmetric_type) , intent(in) :: classA
2896 type(lfpack_type) , intent(in) :: packA
2897 end subroutine
2898#endif
2899
2900 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2901
2902 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2903 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2904 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2905
2906 end interface
2907
2908 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2909 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2910 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2911
2912 ! BLAS 2: `SHPMV`, `DHPMV`, `CHPMV`, `ZHPMV`
2913
2914 interface setMatMulAdd
2915
2916 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2917 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2918 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2919
2920 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2921
2922#if IK5_ENABLED
2923 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_IK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2924#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2925 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_IK5
2926#endif
2927 use pm_kind, only: IKG => IK5
2928 integer(IKG) , intent(in) , optional :: alpha, beta
2929 integer(IKG) , intent(in) , contiguous :: matA(:)
2930 integer(IKG) , intent(in) , contiguous :: matB(:)
2931 integer(IKG) , intent(inout) , contiguous :: matC(:)
2932 type(uppDia_type) , intent(in) :: subsetA
2933 type(hermitian_type) , intent(in) :: classA
2934 type(lfpack_type) , intent(in) :: packA
2935 end subroutine
2936#endif
2937
2938#if IK4_ENABLED
2939 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_IK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2940#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2941 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_IK4
2942#endif
2943 use pm_kind, only: IKG => IK4
2944 integer(IKG) , intent(in) , optional :: alpha, beta
2945 integer(IKG) , intent(in) , contiguous :: matA(:)
2946 integer(IKG) , intent(in) , contiguous :: matB(:)
2947 integer(IKG) , intent(inout) , contiguous :: matC(:)
2948 type(uppDia_type) , intent(in) :: subsetA
2949 type(hermitian_type) , intent(in) :: classA
2950 type(lfpack_type) , intent(in) :: packA
2951 end subroutine
2952#endif
2953
2954#if IK3_ENABLED
2955 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_IK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2956#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2957 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_IK3
2958#endif
2959 use pm_kind, only: IKG => IK3
2960 integer(IKG) , intent(in) , optional :: alpha, beta
2961 integer(IKG) , intent(in) , contiguous :: matA(:)
2962 integer(IKG) , intent(in) , contiguous :: matB(:)
2963 integer(IKG) , intent(inout) , contiguous :: matC(:)
2964 type(uppDia_type) , intent(in) :: subsetA
2965 type(hermitian_type) , intent(in) :: classA
2966 type(lfpack_type) , intent(in) :: packA
2967 end subroutine
2968#endif
2969
2970#if IK2_ENABLED
2971 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_IK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2972#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2973 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_IK2
2974#endif
2975 use pm_kind, only: IKG => IK2
2976 integer(IKG) , intent(in) , optional :: alpha, beta
2977 integer(IKG) , intent(in) , contiguous :: matA(:)
2978 integer(IKG) , intent(in) , contiguous :: matB(:)
2979 integer(IKG) , intent(inout) , contiguous :: matC(:)
2980 type(uppDia_type) , intent(in) :: subsetA
2981 type(hermitian_type) , intent(in) :: classA
2982 type(lfpack_type) , intent(in) :: packA
2983 end subroutine
2984#endif
2985
2986#if IK1_ENABLED
2987 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_IK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2988#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2989 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_IK1
2990#endif
2991 use pm_kind, only: IKG => IK1
2992 integer(IKG) , intent(in) , optional :: alpha, beta
2993 integer(IKG) , intent(in) , contiguous :: matA(:)
2994 integer(IKG) , intent(in) , contiguous :: matB(:)
2995 integer(IKG) , intent(inout) , contiguous :: matC(:)
2996 type(uppDia_type) , intent(in) :: subsetA
2997 type(hermitian_type) , intent(in) :: classA
2998 type(lfpack_type) , intent(in) :: packA
2999 end subroutine
3000#endif
3001
3002 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3003
3004#if CK5_ENABLED
3005 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_CK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3006#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3007 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_CK5
3008#endif
3009 use pm_kind, only: CKG => CK5
3010 complex(CKG) , intent(in) , optional :: alpha, beta
3011 complex(CKG) , intent(in) , contiguous :: matA(:)
3012 complex(CKG) , intent(in) , contiguous :: matB(:)
3013 complex(CKG) , intent(inout) , contiguous :: matC(:)
3014 type(uppDia_type) , intent(in) :: subsetA
3015 type(hermitian_type) , intent(in) :: classA
3016 type(lfpack_type) , intent(in) :: packA
3017 end subroutine
3018#endif
3019
3020#if CK4_ENABLED
3021 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_CK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3022#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3023 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_CK4
3024#endif
3025 use pm_kind, only: CKG => CK4
3026 complex(CKG) , intent(in) , optional :: alpha, beta
3027 complex(CKG) , intent(in) , contiguous :: matA(:)
3028 complex(CKG) , intent(in) , contiguous :: matB(:)
3029 complex(CKG) , intent(inout) , contiguous :: matC(:)
3030 type(uppDia_type) , intent(in) :: subsetA
3031 type(hermitian_type) , intent(in) :: classA
3032 type(lfpack_type) , intent(in) :: packA
3033 end subroutine
3034#endif
3035
3036#if CK3_ENABLED
3037 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_CK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3038#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3039 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_CK3
3040#endif
3041 use pm_kind, only: CKG => CK3
3042 complex(CKG) , intent(in) , optional :: alpha, beta
3043 complex(CKG) , intent(in) , contiguous :: matA(:)
3044 complex(CKG) , intent(in) , contiguous :: matB(:)
3045 complex(CKG) , intent(inout) , contiguous :: matC(:)
3046 type(uppDia_type) , intent(in) :: subsetA
3047 type(hermitian_type) , intent(in) :: classA
3048 type(lfpack_type) , intent(in) :: packA
3049 end subroutine
3050#endif
3051
3052#if CK2_ENABLED
3053 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_CK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3054#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3055 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_CK2
3056#endif
3057 use pm_kind, only: CKG => CK2
3058 complex(CKG) , intent(in) , optional :: alpha, beta
3059 complex(CKG) , intent(in) , contiguous :: matA(:)
3060 complex(CKG) , intent(in) , contiguous :: matB(:)
3061 complex(CKG) , intent(inout) , contiguous :: matC(:)
3062 type(uppDia_type) , intent(in) :: subsetA
3063 type(hermitian_type) , intent(in) :: classA
3064 type(lfpack_type) , intent(in) :: packA
3065 end subroutine
3066#endif
3067
3068#if CK1_ENABLED
3069 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_CK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3070#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3071 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_CK1
3072#endif
3073 use pm_kind, only: CKG => CK1
3074 complex(CKG) , intent(in) , optional :: alpha, beta
3075 complex(CKG) , intent(in) , contiguous :: matA(:)
3076 complex(CKG) , intent(in) , contiguous :: matB(:)
3077 complex(CKG) , intent(inout) , contiguous :: matC(:)
3078 type(uppDia_type) , intent(in) :: subsetA
3079 type(hermitian_type) , intent(in) :: classA
3080 type(lfpack_type) , intent(in) :: packA
3081 end subroutine
3082#endif
3083
3084 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3085
3086#if RK5_ENABLED
3087 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_RK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3088#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3089 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_RK5
3090#endif
3091 use pm_kind, only: RKG => RK5
3092 real(RKG) , intent(in) , optional :: alpha, beta
3093 real(RKG) , intent(in) , contiguous :: matA(:)
3094 real(RKG) , intent(in) , contiguous :: matB(:)
3095 real(RKG) , intent(inout) , contiguous :: matC(:)
3096 type(uppDia_type) , intent(in) :: subsetA
3097 type(hermitian_type) , intent(in) :: classA
3098 type(lfpack_type) , intent(in) :: packA
3099 end subroutine
3100#endif
3101
3102#if RK4_ENABLED
3103 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_RK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3104#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3105 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_RK4
3106#endif
3107 use pm_kind, only: RKG => RK4
3108 real(RKG) , intent(in) , optional :: alpha, beta
3109 real(RKG) , intent(in) , contiguous :: matA(:)
3110 real(RKG) , intent(in) , contiguous :: matB(:)
3111 real(RKG) , intent(inout) , contiguous :: matC(:)
3112 type(uppDia_type) , intent(in) :: subsetA
3113 type(hermitian_type) , intent(in) :: classA
3114 type(lfpack_type) , intent(in) :: packA
3115 end subroutine
3116#endif
3117
3118#if RK3_ENABLED
3119 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_RK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3120#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3121 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_RK3
3122#endif
3123 use pm_kind, only: RKG => RK3
3124 real(RKG) , intent(in) , optional :: alpha, beta
3125 real(RKG) , intent(in) , contiguous :: matA(:)
3126 real(RKG) , intent(in) , contiguous :: matB(:)
3127 real(RKG) , intent(inout) , contiguous :: matC(:)
3128 type(uppDia_type) , intent(in) :: subsetA
3129 type(hermitian_type) , intent(in) :: classA
3130 type(lfpack_type) , intent(in) :: packA
3131 end subroutine
3132#endif
3133
3134#if RK2_ENABLED
3135 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_RK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3136#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3137 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_RK2
3138#endif
3139 use pm_kind, only: RKG => RK2
3140 real(RKG) , intent(in) , optional :: alpha, beta
3141 real(RKG) , intent(in) , contiguous :: matA(:)
3142 real(RKG) , intent(in) , contiguous :: matB(:)
3143 real(RKG) , intent(inout) , contiguous :: matC(:)
3144 type(uppDia_type) , intent(in) :: subsetA
3145 type(hermitian_type) , intent(in) :: classA
3146 type(lfpack_type) , intent(in) :: packA
3147 end subroutine
3148#endif
3149
3150#if RK1_ENABLED
3151 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_RK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3152#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3153 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_RK1
3154#endif
3155 use pm_kind, only: RKG => RK1
3156 real(RKG) , intent(in) , optional :: alpha, beta
3157 real(RKG) , intent(in) , contiguous :: matA(:)
3158 real(RKG) , intent(in) , contiguous :: matB(:)
3159 real(RKG) , intent(inout) , contiguous :: matC(:)
3160 type(uppDia_type) , intent(in) :: subsetA
3161 type(hermitian_type) , intent(in) :: classA
3162 type(lfpack_type) , intent(in) :: packA
3163 end subroutine
3164#endif
3165
3166 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3167
3168 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3169 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3170 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3171
3172 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3173
3174#if IK5_ENABLED
3175 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_IK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3176#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3177 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_IK5
3178#endif
3179 use pm_kind, only: IKG => IK5
3180 integer(IKG) , intent(in) , optional :: alpha, beta
3181 integer(IKG) , intent(in) , contiguous :: matA(:)
3182 integer(IKG) , intent(in) , contiguous :: matB(:)
3183 integer(IKG) , intent(inout) , contiguous :: matC(:)
3184 type(lowDia_type) , intent(in) :: subsetA
3185 type(hermitian_type) , intent(in) :: classA
3186 type(lfpack_type) , intent(in) :: packA
3187 end subroutine
3188#endif
3189
3190#if IK4_ENABLED
3191 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_IK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3192#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3193 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_IK4
3194#endif
3195 use pm_kind, only: IKG => IK4
3196 integer(IKG) , intent(in) , optional :: alpha, beta
3197 integer(IKG) , intent(in) , contiguous :: matA(:)
3198 integer(IKG) , intent(in) , contiguous :: matB(:)
3199 integer(IKG) , intent(inout) , contiguous :: matC(:)
3200 type(lowDia_type) , intent(in) :: subsetA
3201 type(hermitian_type) , intent(in) :: classA
3202 type(lfpack_type) , intent(in) :: packA
3203 end subroutine
3204#endif
3205
3206#if IK3_ENABLED
3207 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_IK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3208#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3209 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_IK3
3210#endif
3211 use pm_kind, only: IKG => IK3
3212 integer(IKG) , intent(in) , optional :: alpha, beta
3213 integer(IKG) , intent(in) , contiguous :: matA(:)
3214 integer(IKG) , intent(in) , contiguous :: matB(:)
3215 integer(IKG) , intent(inout) , contiguous :: matC(:)
3216 type(lowDia_type) , intent(in) :: subsetA
3217 type(hermitian_type) , intent(in) :: classA
3218 type(lfpack_type) , intent(in) :: packA
3219 end subroutine
3220#endif
3221
3222#if IK2_ENABLED
3223 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_IK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3224#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3225 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_IK2
3226#endif
3227 use pm_kind, only: IKG => IK2
3228 integer(IKG) , intent(in) , optional :: alpha, beta
3229 integer(IKG) , intent(in) , contiguous :: matA(:)
3230 integer(IKG) , intent(in) , contiguous :: matB(:)
3231 integer(IKG) , intent(inout) , contiguous :: matC(:)
3232 type(lowDia_type) , intent(in) :: subsetA
3233 type(hermitian_type) , intent(in) :: classA
3234 type(lfpack_type) , intent(in) :: packA
3235 end subroutine
3236#endif
3237
3238#if IK1_ENABLED
3239 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_IK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3240#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3241 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_IK1
3242#endif
3243 use pm_kind, only: IKG => IK1
3244 integer(IKG) , intent(in) , optional :: alpha, beta
3245 integer(IKG) , intent(in) , contiguous :: matA(:)
3246 integer(IKG) , intent(in) , contiguous :: matB(:)
3247 integer(IKG) , intent(inout) , contiguous :: matC(:)
3248 type(lowDia_type) , intent(in) :: subsetA
3249 type(hermitian_type) , intent(in) :: classA
3250 type(lfpack_type) , intent(in) :: packA
3251 end subroutine
3252#endif
3253
3254 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3255
3256#if CK5_ENABLED
3257 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_CK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3258#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3259 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_CK5
3260#endif
3261 use pm_kind, only: CKG => CK5
3262 complex(CKG) , intent(in) , optional :: alpha, beta
3263 complex(CKG) , intent(in) , contiguous :: matA(:)
3264 complex(CKG) , intent(in) , contiguous :: matB(:)
3265 complex(CKG) , intent(inout) , contiguous :: matC(:)
3266 type(lowDia_type) , intent(in) :: subsetA
3267 type(hermitian_type) , intent(in) :: classA
3268 type(lfpack_type) , intent(in) :: packA
3269 end subroutine
3270#endif
3271
3272#if CK4_ENABLED
3273 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_CK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3274#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3275 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_CK4
3276#endif
3277 use pm_kind, only: CKG => CK4
3278 complex(CKG) , intent(in) , optional :: alpha, beta
3279 complex(CKG) , intent(in) , contiguous :: matA(:)
3280 complex(CKG) , intent(in) , contiguous :: matB(:)
3281 complex(CKG) , intent(inout) , contiguous :: matC(:)
3282 type(lowDia_type) , intent(in) :: subsetA
3283 type(hermitian_type) , intent(in) :: classA
3284 type(lfpack_type) , intent(in) :: packA
3285 end subroutine
3286#endif
3287
3288#if CK3_ENABLED
3289 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_CK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3290#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3291 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_CK3
3292#endif
3293 use pm_kind, only: CKG => CK3
3294 complex(CKG) , intent(in) , optional :: alpha, beta
3295 complex(CKG) , intent(in) , contiguous :: matA(:)
3296 complex(CKG) , intent(in) , contiguous :: matB(:)
3297 complex(CKG) , intent(inout) , contiguous :: matC(:)
3298 type(lowDia_type) , intent(in) :: subsetA
3299 type(hermitian_type) , intent(in) :: classA
3300 type(lfpack_type) , intent(in) :: packA
3301 end subroutine
3302#endif
3303
3304#if CK2_ENABLED
3305 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_CK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3306#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3307 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_CK2
3308#endif
3309 use pm_kind, only: CKG => CK2
3310 complex(CKG) , intent(in) , optional :: alpha, beta
3311 complex(CKG) , intent(in) , contiguous :: matA(:)
3312 complex(CKG) , intent(in) , contiguous :: matB(:)
3313 complex(CKG) , intent(inout) , contiguous :: matC(:)
3314 type(lowDia_type) , intent(in) :: subsetA
3315 type(hermitian_type) , intent(in) :: classA
3316 type(lfpack_type) , intent(in) :: packA
3317 end subroutine
3318#endif
3319
3320#if CK1_ENABLED
3321 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_CK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3322#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3323 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_CK1
3324#endif
3325 use pm_kind, only: CKG => CK1
3326 complex(CKG) , intent(in) , optional :: alpha, beta
3327 complex(CKG) , intent(in) , contiguous :: matA(:)
3328 complex(CKG) , intent(in) , contiguous :: matB(:)
3329 complex(CKG) , intent(inout) , contiguous :: matC(:)
3330 type(lowDia_type) , intent(in) :: subsetA
3331 type(hermitian_type) , intent(in) :: classA
3332 type(lfpack_type) , intent(in) :: packA
3333 end subroutine
3334#endif
3335
3336 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3337
3338#if RK5_ENABLED
3339 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_RK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3340#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3341 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_RK5
3342#endif
3343 use pm_kind, only: RKG => RK5
3344 real(RKG) , intent(in) , optional :: alpha, beta
3345 real(RKG) , intent(in) , contiguous :: matA(:)
3346 real(RKG) , intent(in) , contiguous :: matB(:)
3347 real(RKG) , intent(inout) , contiguous :: matC(:)
3348 type(lowDia_type) , intent(in) :: subsetA
3349 type(hermitian_type) , intent(in) :: classA
3350 type(lfpack_type) , intent(in) :: packA
3351 end subroutine
3352#endif
3353
3354#if RK4_ENABLED
3355 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_RK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3356#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3357 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_RK4
3358#endif
3359 use pm_kind, only: RKG => RK4
3360 real(RKG) , intent(in) , optional :: alpha, beta
3361 real(RKG) , intent(in) , contiguous :: matA(:)
3362 real(RKG) , intent(in) , contiguous :: matB(:)
3363 real(RKG) , intent(inout) , contiguous :: matC(:)
3364 type(lowDia_type) , intent(in) :: subsetA
3365 type(hermitian_type) , intent(in) :: classA
3366 type(lfpack_type) , intent(in) :: packA
3367 end subroutine
3368#endif
3369
3370#if RK3_ENABLED
3371 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_RK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3372#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3373 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_RK3
3374#endif
3375 use pm_kind, only: RKG => RK3
3376 real(RKG) , intent(in) , optional :: alpha, beta
3377 real(RKG) , intent(in) , contiguous :: matA(:)
3378 real(RKG) , intent(in) , contiguous :: matB(:)
3379 real(RKG) , intent(inout) , contiguous :: matC(:)
3380 type(lowDia_type) , intent(in) :: subsetA
3381 type(hermitian_type) , intent(in) :: classA
3382 type(lfpack_type) , intent(in) :: packA
3383 end subroutine
3384#endif
3385
3386#if RK2_ENABLED
3387 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_RK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3388#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3389 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_RK2
3390#endif
3391 use pm_kind, only: RKG => RK2
3392 real(RKG) , intent(in) , optional :: alpha, beta
3393 real(RKG) , intent(in) , contiguous :: matA(:)
3394 real(RKG) , intent(in) , contiguous :: matB(:)
3395 real(RKG) , intent(inout) , contiguous :: matC(:)
3396 type(lowDia_type) , intent(in) :: subsetA
3397 type(hermitian_type) , intent(in) :: classA
3398 type(lfpack_type) , intent(in) :: packA
3399 end subroutine
3400#endif
3401
3402#if RK1_ENABLED
3403 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_RK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3404#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3405 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_RK1
3406#endif
3407 use pm_kind, only: RKG => RK1
3408 real(RKG) , intent(in) , optional :: alpha, beta
3409 real(RKG) , intent(in) , contiguous :: matA(:)
3410 real(RKG) , intent(in) , contiguous :: matB(:)
3411 real(RKG) , intent(inout) , contiguous :: matC(:)
3412 type(lowDia_type) , intent(in) :: subsetA
3413 type(hermitian_type) , intent(in) :: classA
3414 type(lfpack_type) , intent(in) :: packA
3415 end subroutine
3416#endif
3417
3418 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3419
3420 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3421 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3422 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3423
3424 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3425 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3426 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3427
3428 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3429
3430#if IK5_ENABLED
3431 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_IK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3432#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3433 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_IK5
3434#endif
3435 use pm_kind, only: IKG => IK5
3436 integer(IK) , intent(in) :: ndim, incB, incC
3437 integer(IKG) , intent(in) :: alpha, beta
3438 integer(IKG) , intent(in) , contiguous :: matA(:)
3439 integer(IKG) , intent(in) , contiguous :: matB(:)
3440 integer(IKG) , intent(inout) , contiguous :: matC(:)
3441 type(uppDia_type) , intent(in) :: subsetA
3442 type(hermitian_type) , intent(in) :: classA
3443 type(lfpack_type) , intent(in) :: packA
3444 end subroutine
3445#endif
3446
3447#if IK4_ENABLED
3448 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_IK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3449#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3450 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_IK4
3451#endif
3452 use pm_kind, only: IKG => IK4
3453 integer(IK) , intent(in) :: ndim, incB, incC
3454 integer(IKG) , intent(in) :: alpha, beta
3455 integer(IKG) , intent(in) , contiguous :: matA(:)
3456 integer(IKG) , intent(in) , contiguous :: matB(:)
3457 integer(IKG) , intent(inout) , contiguous :: matC(:)
3458 type(uppDia_type) , intent(in) :: subsetA
3459 type(hermitian_type) , intent(in) :: classA
3460 type(lfpack_type) , intent(in) :: packA
3461 end subroutine
3462#endif
3463
3464#if IK3_ENABLED
3465 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_IK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3466#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3467 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_IK3
3468#endif
3469 use pm_kind, only: IKG => IK3
3470 integer(IK) , intent(in) :: ndim, incB, incC
3471 integer(IKG) , intent(in) :: alpha, beta
3472 integer(IKG) , intent(in) , contiguous :: matA(:)
3473 integer(IKG) , intent(in) , contiguous :: matB(:)
3474 integer(IKG) , intent(inout) , contiguous :: matC(:)
3475 type(uppDia_type) , intent(in) :: subsetA
3476 type(hermitian_type) , intent(in) :: classA
3477 type(lfpack_type) , intent(in) :: packA
3478 end subroutine
3479#endif
3480
3481#if IK2_ENABLED
3482 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_IK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3483#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3484 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_IK2
3485#endif
3486 use pm_kind, only: IKG => IK2
3487 integer(IK) , intent(in) :: ndim, incB, incC
3488 integer(IKG) , intent(in) :: alpha, beta
3489 integer(IKG) , intent(in) , contiguous :: matA(:)
3490 integer(IKG) , intent(in) , contiguous :: matB(:)
3491 integer(IKG) , intent(inout) , contiguous :: matC(:)
3492 type(uppDia_type) , intent(in) :: subsetA
3493 type(hermitian_type) , intent(in) :: classA
3494 type(lfpack_type) , intent(in) :: packA
3495 end subroutine
3496#endif
3497
3498#if IK1_ENABLED
3499 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_IK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3500#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3501 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_IK1
3502#endif
3503 use pm_kind, only: IKG => IK1
3504 integer(IK) , intent(in) :: ndim, incB, incC
3505 integer(IKG) , intent(in) :: alpha, beta
3506 integer(IKG) , intent(in) , contiguous :: matA(:)
3507 integer(IKG) , intent(in) , contiguous :: matB(:)
3508 integer(IKG) , intent(inout) , contiguous :: matC(:)
3509 type(uppDia_type) , intent(in) :: subsetA
3510 type(hermitian_type) , intent(in) :: classA
3511 type(lfpack_type) , intent(in) :: packA
3512 end subroutine
3513#endif
3514
3515 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3516
3517#if CK5_ENABLED
3518 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_CK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3519#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3520 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_CK5
3521#endif
3522 use pm_kind, only: CKG => CK5
3523 integer(IK) , intent(in) :: ndim, incB, incC
3524 complex(CKG) , intent(in) :: alpha, beta
3525 complex(CKG) , intent(in) , contiguous :: matA(:)
3526 complex(CKG) , intent(in) , contiguous :: matB(:)
3527 complex(CKG) , intent(inout) , contiguous :: matC(:)
3528 type(uppDia_type) , intent(in) :: subsetA
3529 type(hermitian_type) , intent(in) :: classA
3530 type(lfpack_type) , intent(in) :: packA
3531 end subroutine
3532#endif
3533
3534#if CK4_ENABLED
3535 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_CK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3536#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3537 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_CK4
3538#endif
3539 use pm_kind, only: CKG => CK4
3540 integer(IK) , intent(in) :: ndim, incB, incC
3541 complex(CKG) , intent(in) :: alpha, beta
3542 complex(CKG) , intent(in) , contiguous :: matA(:)
3543 complex(CKG) , intent(in) , contiguous :: matB(:)
3544 complex(CKG) , intent(inout) , contiguous :: matC(:)
3545 type(uppDia_type) , intent(in) :: subsetA
3546 type(hermitian_type) , intent(in) :: classA
3547 type(lfpack_type) , intent(in) :: packA
3548 end subroutine
3549#endif
3550
3551#if CK3_ENABLED
3552 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_CK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3553#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3554 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_CK3
3555#endif
3556 use pm_kind, only: CKG => CK3
3557 integer(IK) , intent(in) :: ndim, incB, incC
3558 complex(CKG) , intent(in) :: alpha, beta
3559 complex(CKG) , intent(in) , contiguous :: matA(:)
3560 complex(CKG) , intent(in) , contiguous :: matB(:)
3561 complex(CKG) , intent(inout) , contiguous :: matC(:)
3562 type(uppDia_type) , intent(in) :: subsetA
3563 type(hermitian_type) , intent(in) :: classA
3564 type(lfpack_type) , intent(in) :: packA
3565 end subroutine
3566#endif
3567
3568#if CK2_ENABLED
3569 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_CK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3570#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3571 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_CK2
3572#endif
3573 use pm_kind, only: CKG => CK2
3574 integer(IK) , intent(in) :: ndim, incB, incC
3575 complex(CKG) , intent(in) :: alpha, beta
3576 complex(CKG) , intent(in) , contiguous :: matA(:)
3577 complex(CKG) , intent(in) , contiguous :: matB(:)
3578 complex(CKG) , intent(inout) , contiguous :: matC(:)
3579 type(uppDia_type) , intent(in) :: subsetA
3580 type(hermitian_type) , intent(in) :: classA
3581 type(lfpack_type) , intent(in) :: packA
3582 end subroutine
3583#endif
3584
3585#if CK1_ENABLED
3586 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_CK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3587#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3588 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_CK1
3589#endif
3590 use pm_kind, only: CKG => CK1
3591 integer(IK) , intent(in) :: ndim, incB, incC
3592 complex(CKG) , intent(in) :: alpha, beta
3593 complex(CKG) , intent(in) , contiguous :: matA(:)
3594 complex(CKG) , intent(in) , contiguous :: matB(:)
3595 complex(CKG) , intent(inout) , contiguous :: matC(:)
3596 type(uppDia_type) , intent(in) :: subsetA
3597 type(hermitian_type) , intent(in) :: classA
3598 type(lfpack_type) , intent(in) :: packA
3599 end subroutine
3600#endif
3601
3602 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3603
3604#if RK5_ENABLED
3605 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_RK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3606#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3607 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_RK5
3608#endif
3609 use pm_kind, only: RKG => RK5
3610 integer(IK) , intent(in) :: ndim, incB, incC
3611 real(RKG) , intent(in) :: alpha, beta
3612 real(RKG) , intent(in) , contiguous :: matA(:)
3613 real(RKG) , intent(in) , contiguous :: matB(:)
3614 real(RKG) , intent(inout) , contiguous :: matC(:)
3615 type(uppDia_type) , intent(in) :: subsetA
3616 type(hermitian_type) , intent(in) :: classA
3617 type(lfpack_type) , intent(in) :: packA
3618 end subroutine
3619#endif
3620
3621#if RK4_ENABLED
3622 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_RK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3623#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3624 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_RK4
3625#endif
3626 use pm_kind, only: RKG => RK4
3627 integer(IK) , intent(in) :: ndim, incB, incC
3628 real(RKG) , intent(in) :: alpha, beta
3629 real(RKG) , intent(in) , contiguous :: matA(:)
3630 real(RKG) , intent(in) , contiguous :: matB(:)
3631 real(RKG) , intent(inout) , contiguous :: matC(:)
3632 type(uppDia_type) , intent(in) :: subsetA
3633 type(hermitian_type) , intent(in) :: classA
3634 type(lfpack_type) , intent(in) :: packA
3635 end subroutine
3636#endif
3637
3638#if RK3_ENABLED
3639 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_RK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3640#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3641 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_RK3
3642#endif
3643 use pm_kind, only: RKG => RK3
3644 integer(IK) , intent(in) :: ndim, incB, incC
3645 real(RKG) , intent(in) :: alpha, beta
3646 real(RKG) , intent(in) , contiguous :: matA(:)
3647 real(RKG) , intent(in) , contiguous :: matB(:)
3648 real(RKG) , intent(inout) , contiguous :: matC(:)
3649 type(uppDia_type) , intent(in) :: subsetA
3650 type(hermitian_type) , intent(in) :: classA
3651 type(lfpack_type) , intent(in) :: packA
3652 end subroutine
3653#endif
3654
3655#if RK2_ENABLED
3656 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_RK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3657#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3658 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_RK2
3659#endif
3660 use pm_kind, only: RKG => RK2
3661 integer(IK) , intent(in) :: ndim, incB, incC
3662 real(RKG) , intent(in) :: alpha, beta
3663 real(RKG) , intent(in) , contiguous :: matA(:)
3664 real(RKG) , intent(in) , contiguous :: matB(:)
3665 real(RKG) , intent(inout) , contiguous :: matC(:)
3666 type(uppDia_type) , intent(in) :: subsetA
3667 type(hermitian_type) , intent(in) :: classA
3668 type(lfpack_type) , intent(in) :: packA
3669 end subroutine
3670#endif
3671
3672#if RK1_ENABLED
3673 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_RK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3674#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3675 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_RK1
3676#endif
3677 use pm_kind, only: RKG => RK1
3678 integer(IK) , intent(in) :: ndim, incB, incC
3679 real(RKG) , intent(in) :: alpha, beta
3680 real(RKG) , intent(in) , contiguous :: matA(:)
3681 real(RKG) , intent(in) , contiguous :: matB(:)
3682 real(RKG) , intent(inout) , contiguous :: matC(:)
3683 type(uppDia_type) , intent(in) :: subsetA
3684 type(hermitian_type) , intent(in) :: classA
3685 type(lfpack_type) , intent(in) :: packA
3686 end subroutine
3687#endif
3688
3689 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3690
3691 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3692 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3693 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3694
3695 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3696
3697#if IK5_ENABLED
3698 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_IK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3699#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3700 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_IK5
3701#endif
3702 use pm_kind, only: IKG => IK5
3703 integer(IK) , intent(in) :: ndim, incB, incC
3704 integer(IKG) , intent(in) :: alpha, beta
3705 integer(IKG) , intent(in) , contiguous :: matA(:)
3706 integer(IKG) , intent(in) , contiguous :: matB(:)
3707 integer(IKG) , intent(inout) , contiguous :: matC(:)
3708 type(lowDia_type) , intent(in) :: subsetA
3709 type(hermitian_type) , intent(in) :: classA
3710 type(lfpack_type) , intent(in) :: packA
3711 end subroutine
3712#endif
3713
3714#if IK4_ENABLED
3715 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_IK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3716#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3717 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_IK4
3718#endif
3719 use pm_kind, only: IKG => IK4
3720 integer(IK) , intent(in) :: ndim, incB, incC
3721 integer(IKG) , intent(in) :: alpha, beta
3722 integer(IKG) , intent(in) , contiguous :: matA(:)
3723 integer(IKG) , intent(in) , contiguous :: matB(:)
3724 integer(IKG) , intent(inout) , contiguous :: matC(:)
3725 type(lowDia_type) , intent(in) :: subsetA
3726 type(hermitian_type) , intent(in) :: classA
3727 type(lfpack_type) , intent(in) :: packA
3728 end subroutine
3729#endif
3730
3731#if IK3_ENABLED
3732 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_IK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3733#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3734 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_IK3
3735#endif
3736 use pm_kind, only: IKG => IK3
3737 integer(IK) , intent(in) :: ndim, incB, incC
3738 integer(IKG) , intent(in) :: alpha, beta
3739 integer(IKG) , intent(in) , contiguous :: matA(:)
3740 integer(IKG) , intent(in) , contiguous :: matB(:)
3741 integer(IKG) , intent(inout) , contiguous :: matC(:)
3742 type(lowDia_type) , intent(in) :: subsetA
3743 type(hermitian_type) , intent(in) :: classA
3744 type(lfpack_type) , intent(in) :: packA
3745 end subroutine
3746#endif
3747
3748#if IK2_ENABLED
3749 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_IK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3750#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3751 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_IK2
3752#endif
3753 use pm_kind, only: IKG => IK2
3754 integer(IK) , intent(in) :: ndim, incB, incC
3755 integer(IKG) , intent(in) :: alpha, beta
3756 integer(IKG) , intent(in) , contiguous :: matA(:)
3757 integer(IKG) , intent(in) , contiguous :: matB(:)
3758 integer(IKG) , intent(inout) , contiguous :: matC(:)
3759 type(lowDia_type) , intent(in) :: subsetA
3760 type(hermitian_type) , intent(in) :: classA
3761 type(lfpack_type) , intent(in) :: packA
3762 end subroutine
3763#endif
3764
3765#if IK1_ENABLED
3766 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_IK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3767#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3768 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_IK1
3769#endif
3770 use pm_kind, only: IKG => IK1
3771 integer(IK) , intent(in) :: ndim, incB, incC
3772 integer(IKG) , intent(in) :: alpha, beta
3773 integer(IKG) , intent(in) , contiguous :: matA(:)
3774 integer(IKG) , intent(in) , contiguous :: matB(:)
3775 integer(IKG) , intent(inout) , contiguous :: matC(:)
3776 type(lowDia_type) , intent(in) :: subsetA
3777 type(hermitian_type) , intent(in) :: classA
3778 type(lfpack_type) , intent(in) :: packA
3779 end subroutine
3780#endif
3781
3782 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3783
3784#if CK5_ENABLED
3785 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_CK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3786#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3787 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_CK5
3788#endif
3789 use pm_kind, only: CKG => CK5
3790 integer(IK) , intent(in) :: ndim, incB, incC
3791 complex(CKG) , intent(in) :: alpha, beta
3792 complex(CKG) , intent(in) , contiguous :: matA(:)
3793 complex(CKG) , intent(in) , contiguous :: matB(:)
3794 complex(CKG) , intent(inout) , contiguous :: matC(:)
3795 type(lowDia_type) , intent(in) :: subsetA
3796 type(hermitian_type) , intent(in) :: classA
3797 type(lfpack_type) , intent(in) :: packA
3798 end subroutine
3799#endif
3800
3801#if CK4_ENABLED
3802 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_CK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3803#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3804 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_CK4
3805#endif
3806 use pm_kind, only: CKG => CK4
3807 integer(IK) , intent(in) :: ndim, incB, incC
3808 complex(CKG) , intent(in) :: alpha, beta
3809 complex(CKG) , intent(in) , contiguous :: matA(:)
3810 complex(CKG) , intent(in) , contiguous :: matB(:)
3811 complex(CKG) , intent(inout) , contiguous :: matC(:)
3812 type(lowDia_type) , intent(in) :: subsetA
3813 type(hermitian_type) , intent(in) :: classA
3814 type(lfpack_type) , intent(in) :: packA
3815 end subroutine
3816#endif
3817
3818#if CK3_ENABLED
3819 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_CK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3820#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3821 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_CK3
3822#endif
3823 use pm_kind, only: CKG => CK3
3824 integer(IK) , intent(in) :: ndim, incB, incC
3825 complex(CKG) , intent(in) :: alpha, beta
3826 complex(CKG) , intent(in) , contiguous :: matA(:)
3827 complex(CKG) , intent(in) , contiguous :: matB(:)
3828 complex(CKG) , intent(inout) , contiguous :: matC(:)
3829 type(lowDia_type) , intent(in) :: subsetA
3830 type(hermitian_type) , intent(in) :: classA
3831 type(lfpack_type) , intent(in) :: packA
3832 end subroutine
3833#endif
3834
3835#if CK2_ENABLED
3836 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_CK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3837#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3838 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_CK2
3839#endif
3840 use pm_kind, only: CKG => CK2
3841 integer(IK) , intent(in) :: ndim, incB, incC
3842 complex(CKG) , intent(in) :: alpha, beta
3843 complex(CKG) , intent(in) , contiguous :: matA(:)
3844 complex(CKG) , intent(in) , contiguous :: matB(:)
3845 complex(CKG) , intent(inout) , contiguous :: matC(:)
3846 type(lowDia_type) , intent(in) :: subsetA
3847 type(hermitian_type) , intent(in) :: classA
3848 type(lfpack_type) , intent(in) :: packA
3849 end subroutine
3850#endif
3851
3852#if CK1_ENABLED
3853 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_CK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3854#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3855 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_CK1
3856#endif
3857 use pm_kind, only: CKG => CK1
3858 integer(IK) , intent(in) :: ndim, incB, incC
3859 complex(CKG) , intent(in) :: alpha, beta
3860 complex(CKG) , intent(in) , contiguous :: matA(:)
3861 complex(CKG) , intent(in) , contiguous :: matB(:)
3862 complex(CKG) , intent(inout) , contiguous :: matC(:)
3863 type(lowDia_type) , intent(in) :: subsetA
3864 type(hermitian_type) , intent(in) :: classA
3865 type(lfpack_type) , intent(in) :: packA
3866 end subroutine
3867#endif
3868
3869 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3870
3871#if RK5_ENABLED
3872 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_RK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3873#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3874 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_RK5
3875#endif
3876 use pm_kind, only: RKG => RK5
3877 integer(IK) , intent(in) :: ndim, incB, incC
3878 real(RKG) , intent(in) :: alpha, beta
3879 real(RKG) , intent(in) , contiguous :: matA(:)
3880 real(RKG) , intent(in) , contiguous :: matB(:)
3881 real(RKG) , intent(inout) , contiguous :: matC(:)
3882 type(lowDia_type) , intent(in) :: subsetA
3883 type(hermitian_type) , intent(in) :: classA
3884 type(lfpack_type) , intent(in) :: packA
3885 end subroutine
3886#endif
3887
3888#if RK4_ENABLED
3889 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_RK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3890#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3891 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_RK4
3892#endif
3893 use pm_kind, only: RKG => RK4
3894 integer(IK) , intent(in) :: ndim, incB, incC
3895 real(RKG) , intent(in) :: alpha, beta
3896 real(RKG) , intent(in) , contiguous :: matA(:)
3897 real(RKG) , intent(in) , contiguous :: matB(:)
3898 real(RKG) , intent(inout) , contiguous :: matC(:)
3899 type(lowDia_type) , intent(in) :: subsetA
3900 type(hermitian_type) , intent(in) :: classA
3901 type(lfpack_type) , intent(in) :: packA
3902 end subroutine
3903#endif
3904
3905#if RK3_ENABLED
3906 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_RK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3907#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3908 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_RK3
3909#endif
3910 use pm_kind, only: RKG => RK3
3911 integer(IK) , intent(in) :: ndim, incB, incC
3912 real(RKG) , intent(in) :: alpha, beta
3913 real(RKG) , intent(in) , contiguous :: matA(:)
3914 real(RKG) , intent(in) , contiguous :: matB(:)
3915 real(RKG) , intent(inout) , contiguous :: matC(:)
3916 type(lowDia_type) , intent(in) :: subsetA
3917 type(hermitian_type) , intent(in) :: classA
3918 type(lfpack_type) , intent(in) :: packA
3919 end subroutine
3920#endif
3921
3922#if RK2_ENABLED
3923 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_RK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3924#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3925 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_RK2
3926#endif
3927 use pm_kind, only: RKG => RK2
3928 integer(IK) , intent(in) :: ndim, incB, incC
3929 real(RKG) , intent(in) :: alpha, beta
3930 real(RKG) , intent(in) , contiguous :: matA(:)
3931 real(RKG) , intent(in) , contiguous :: matB(:)
3932 real(RKG) , intent(inout) , contiguous :: matC(:)
3933 type(lowDia_type) , intent(in) :: subsetA
3934 type(hermitian_type) , intent(in) :: classA
3935 type(lfpack_type) , intent(in) :: packA
3936 end subroutine
3937#endif
3938
3939#if RK1_ENABLED
3940 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_RK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3941#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3942 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_RK1
3943#endif
3944 use pm_kind, only: RKG => RK1
3945 integer(IK) , intent(in) :: ndim, incB, incC
3946 real(RKG) , intent(in) :: alpha, beta
3947 real(RKG) , intent(in) , contiguous :: matA(:)
3948 real(RKG) , intent(in) , contiguous :: matB(:)
3949 real(RKG) , intent(inout) , contiguous :: matC(:)
3950 type(lowDia_type) , intent(in) :: subsetA
3951 type(hermitian_type) , intent(in) :: classA
3952 type(lfpack_type) , intent(in) :: packA
3953 end subroutine
3954#endif
3955
3956 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3957
3958 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3959 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3960 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3961
3962 end interface
3963
3964 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3965 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3966 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3967
3968 ! BLAS 2: `SSYMV`, `DSYMV`, `CSYMV`, `ZSYMV`
3969
3970 interface setMatMulAdd
3971
3972 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3973 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3974 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3975
3976 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3977
3978#if IK5_ENABLED
3979 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_IK5(matA, classA, subsetA, matB, matC, alpha, beta)
3980#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3981 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_IK5
3982#endif
3983 use pm_kind, only: IKG => IK5
3984 integer(IKG) , intent(in) , optional :: alpha, beta
3985 integer(IKG) , intent(in) , contiguous :: matA(:,:)
3986 integer(IKG) , intent(in) , contiguous :: matB(:)
3987 integer(IKG) , intent(inout) , contiguous :: matC(:)
3988 type(uppDia_type) , intent(in) :: subsetA
3989 type(symmetric_type) , intent(in) :: classA
3990 end subroutine
3991#endif
3992
3993#if IK4_ENABLED
3994 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_IK4(matA, classA, subsetA, matB, matC, alpha, beta)
3995#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3996 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_IK4
3997#endif
3998 use pm_kind, only: IKG => IK4
3999 integer(IKG) , intent(in) , optional :: alpha, beta
4000 integer(IKG) , intent(in) , contiguous :: matA(:,:)
4001 integer(IKG) , intent(in) , contiguous :: matB(:)
4002 integer(IKG) , intent(inout) , contiguous :: matC(:)
4003 type(uppDia_type) , intent(in) :: subsetA
4004 type(symmetric_type) , intent(in) :: classA
4005 end subroutine
4006#endif
4007
4008#if IK3_ENABLED
4009 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_IK3(matA, classA, subsetA, matB, matC, alpha, beta)
4010#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4011 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_IK3
4012#endif
4013 use pm_kind, only: IKG => IK3
4014 integer(IKG) , intent(in) , optional :: alpha, beta
4015 integer(IKG) , intent(in) , contiguous :: matA(:,:)
4016 integer(IKG) , intent(in) , contiguous :: matB(:)
4017 integer(IKG) , intent(inout) , contiguous :: matC(:)
4018 type(uppDia_type) , intent(in) :: subsetA
4019 type(symmetric_type) , intent(in) :: classA
4020 end subroutine
4021#endif
4022
4023#if IK2_ENABLED
4024 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_IK2(matA, classA, subsetA, matB, matC, alpha, beta)
4025#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4026 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_IK2
4027#endif
4028 use pm_kind, only: IKG => IK2
4029 integer(IKG) , intent(in) , optional :: alpha, beta
4030 integer(IKG) , intent(in) , contiguous :: matA(:,:)
4031 integer(IKG) , intent(in) , contiguous :: matB(:)
4032 integer(IKG) , intent(inout) , contiguous :: matC(:)
4033 type(uppDia_type) , intent(in) :: subsetA
4034 type(symmetric_type) , intent(in) :: classA
4035 end subroutine
4036#endif
4037
4038#if IK1_ENABLED
4039 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_IK1(matA, classA, subsetA, matB, matC, alpha, beta)
4040#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4041 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_IK1
4042#endif
4043 use pm_kind, only: IKG => IK1
4044 integer(IKG) , intent(in) , optional :: alpha, beta
4045 integer(IKG) , intent(in) , contiguous :: matA(:,:)
4046 integer(IKG) , intent(in) , contiguous :: matB(:)
4047 integer(IKG) , intent(inout) , contiguous :: matC(:)
4048 type(uppDia_type) , intent(in) :: subsetA
4049 type(symmetric_type) , intent(in) :: classA
4050 end subroutine
4051#endif
4052
4053 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4054
4055#if CK5_ENABLED
4056 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_CK5(matA, classA, subsetA, matB, matC, alpha, beta)
4057#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4058 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_CK5
4059#endif
4060 use pm_kind, only: CKG => CK5
4061 complex(CKG) , intent(in) , optional :: alpha, beta
4062 complex(CKG) , intent(in) , contiguous :: matA(:,:)
4063 complex(CKG) , intent(in) , contiguous :: matB(:)
4064 complex(CKG) , intent(inout) , contiguous :: matC(:)
4065 type(uppDia_type) , intent(in) :: subsetA
4066 type(symmetric_type) , intent(in) :: classA
4067 end subroutine
4068#endif
4069
4070#if CK4_ENABLED
4071 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_CK4(matA, classA, subsetA, matB, matC, alpha, beta)
4072#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4073 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_CK4
4074#endif
4075 use pm_kind, only: CKG => CK4
4076 complex(CKG) , intent(in) , optional :: alpha, beta
4077 complex(CKG) , intent(in) , contiguous :: matA(:,:)
4078 complex(CKG) , intent(in) , contiguous :: matB(:)
4079 complex(CKG) , intent(inout) , contiguous :: matC(:)
4080 type(uppDia_type) , intent(in) :: subsetA
4081 type(symmetric_type) , intent(in) :: classA
4082 end subroutine
4083#endif
4084
4085#if CK3_ENABLED
4086 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_CK3(matA, classA, subsetA, matB, matC, alpha, beta)
4087#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4088 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_CK3
4089#endif
4090 use pm_kind, only: CKG => CK3
4091 complex(CKG) , intent(in) , optional :: alpha, beta
4092 complex(CKG) , intent(in) , contiguous :: matA(:,:)
4093 complex(CKG) , intent(in) , contiguous :: matB(:)
4094 complex(CKG) , intent(inout) , contiguous :: matC(:)
4095 type(uppDia_type) , intent(in) :: subsetA
4096 type(symmetric_type) , intent(in) :: classA
4097 end subroutine
4098#endif
4099
4100#if CK2_ENABLED
4101 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_CK2(matA, classA, subsetA, matB, matC, alpha, beta)
4102#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4103 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_CK2
4104#endif
4105 use pm_kind, only: CKG => CK2
4106 complex(CKG) , intent(in) , optional :: alpha, beta
4107 complex(CKG) , intent(in) , contiguous :: matA(:,:)
4108 complex(CKG) , intent(in) , contiguous :: matB(:)
4109 complex(CKG) , intent(inout) , contiguous :: matC(:)
4110 type(uppDia_type) , intent(in) :: subsetA
4111 type(symmetric_type) , intent(in) :: classA
4112 end subroutine
4113#endif
4114
4115#if CK1_ENABLED
4116 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_CK1(matA, classA, subsetA, matB, matC, alpha, beta)
4117#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4118 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_CK1
4119#endif
4120 use pm_kind, only: CKG => CK1
4121 complex(CKG) , intent(in) , optional :: alpha, beta
4122 complex(CKG) , intent(in) , contiguous :: matA(:,:)
4123 complex(CKG) , intent(in) , contiguous :: matB(:)
4124 complex(CKG) , intent(inout) , contiguous :: matC(:)
4125 type(uppDia_type) , intent(in) :: subsetA
4126 type(symmetric_type) , intent(in) :: classA
4127 end subroutine
4128#endif
4129
4130 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4131
4132#if RK5_ENABLED
4133 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_RK5(matA, classA, subsetA, matB, matC, alpha, beta)
4134#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4135 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_RK5
4136#endif
4137 use pm_kind, only: RKG => RK5
4138 real(RKG) , intent(in) , optional :: alpha, beta
4139 real(RKG) , intent(in) , contiguous :: matA(:,:)
4140 real(RKG) , intent(in) , contiguous :: matB(:)
4141 real(RKG) , intent(inout) , contiguous :: matC(:)
4142 type(uppDia_type) , intent(in) :: subsetA
4143 type(symmetric_type) , intent(in) :: classA
4144 end subroutine
4145#endif
4146
4147#if RK4_ENABLED
4148 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_RK4(matA, classA, subsetA, matB, matC, alpha, beta)
4149#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4150 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_RK4
4151#endif
4152 use pm_kind, only: RKG => RK4
4153 real(RKG) , intent(in) , optional :: alpha, beta
4154 real(RKG) , intent(in) , contiguous :: matA(:,:)
4155 real(RKG) , intent(in) , contiguous :: matB(:)
4156 real(RKG) , intent(inout) , contiguous :: matC(:)
4157 type(uppDia_type) , intent(in) :: subsetA
4158 type(symmetric_type) , intent(in) :: classA
4159 end subroutine
4160#endif
4161
4162#if RK3_ENABLED
4163 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_RK3(matA, classA, subsetA, matB, matC, alpha, beta)
4164#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4165 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_RK3
4166#endif
4167 use pm_kind, only: RKG => RK3
4168 real(RKG) , intent(in) , optional :: alpha, beta
4169 real(RKG) , intent(in) , contiguous :: matA(:,:)
4170 real(RKG) , intent(in) , contiguous :: matB(:)
4171 real(RKG) , intent(inout) , contiguous :: matC(:)
4172 type(uppDia_type) , intent(in) :: subsetA
4173 type(symmetric_type) , intent(in) :: classA
4174 end subroutine
4175#endif
4176
4177#if RK2_ENABLED
4178 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_RK2(matA, classA, subsetA, matB, matC, alpha, beta)
4179#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4180 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_RK2
4181#endif
4182 use pm_kind, only: RKG => RK2
4183 real(RKG) , intent(in) , optional :: alpha, beta
4184 real(RKG) , intent(in) , contiguous :: matA(:,:)
4185 real(RKG) , intent(in) , contiguous :: matB(:)
4186 real(RKG) , intent(inout) , contiguous :: matC(:)
4187 type(uppDia_type) , intent(in) :: subsetA
4188 type(symmetric_type) , intent(in) :: classA
4189 end subroutine
4190#endif
4191
4192#if RK1_ENABLED
4193 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_RK1(matA, classA, subsetA, matB, matC, alpha, beta)
4194#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4195 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_RK1
4196#endif
4197 use pm_kind, only: RKG => RK1
4198 real(RKG) , intent(in) , optional :: alpha, beta
4199 real(RKG) , intent(in) , contiguous :: matA(:,:)
4200 real(RKG) , intent(in) , contiguous :: matB(:)
4201 real(RKG) , intent(inout) , contiguous :: matC(:)
4202 type(uppDia_type) , intent(in) :: subsetA
4203 type(symmetric_type) , intent(in) :: classA
4204 end subroutine
4205#endif
4206
4207 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4208
4209 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4210 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4211 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4212
4213 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4214
4215#if IK5_ENABLED
4216 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_IK5(matA, classA, subsetA, matB, matC, alpha, beta)
4217#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4218 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_IK5
4219#endif
4220 use pm_kind, only: IKG => IK5
4221 integer(IKG) , intent(in) , optional :: alpha, beta
4222 integer(IKG) , intent(in) , contiguous :: matA(:,:)
4223 integer(IKG) , intent(in) , contiguous :: matB(:)
4224 integer(IKG) , intent(inout) , contiguous :: matC(:)
4225 type(lowDia_type) , intent(in) :: subsetA
4226 type(symmetric_type) , intent(in) :: classA
4227 end subroutine
4228#endif
4229
4230#if IK4_ENABLED
4231 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_IK4(matA, classA, subsetA, matB, matC, alpha, beta)
4232#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4233 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_IK4
4234#endif
4235 use pm_kind, only: IKG => IK4
4236 integer(IKG) , intent(in) , optional :: alpha, beta
4237 integer(IKG) , intent(in) , contiguous :: matA(:,:)
4238 integer(IKG) , intent(in) , contiguous :: matB(:)
4239 integer(IKG) , intent(inout) , contiguous :: matC(:)
4240 type(lowDia_type) , intent(in) :: subsetA
4241 type(symmetric_type) , intent(in) :: classA
4242 end subroutine
4243#endif
4244
4245#if IK3_ENABLED
4246 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_IK3(matA, classA, subsetA, matB, matC, alpha, beta)
4247#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4248 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_IK3
4249#endif
4250 use pm_kind, only: IKG => IK3
4251 integer(IKG) , intent(in) , optional :: alpha, beta
4252 integer(IKG) , intent(in) , contiguous :: matA(:,:)
4253 integer(IKG) , intent(in) , contiguous :: matB(:)
4254 integer(IKG) , intent(inout) , contiguous :: matC(:)
4255 type(lowDia_type) , intent(in) :: subsetA
4256 type(symmetric_type) , intent(in) :: classA
4257 end subroutine
4258#endif
4259
4260#if IK2_ENABLED
4261 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_IK2(matA, classA, subsetA, matB, matC, alpha, beta)
4262#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4263 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_IK2
4264#endif
4265 use pm_kind, only: IKG => IK2
4266 integer(IKG) , intent(in) , optional :: alpha, beta
4267 integer(IKG) , intent(in) , contiguous :: matA(:,:)
4268 integer(IKG) , intent(in) , contiguous :: matB(:)
4269 integer(IKG) , intent(inout) , contiguous :: matC(:)
4270 type(lowDia_type) , intent(in) :: subsetA
4271 type(symmetric_type) , intent(in) :: classA
4272 end subroutine
4273#endif
4274
4275#if IK1_ENABLED
4276 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_IK1(matA, classA, subsetA, matB, matC, alpha, beta)
4277#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4278 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_IK1
4279#endif
4280 use pm_kind, only: IKG => IK1
4281 integer(IKG) , intent(in) , optional :: alpha, beta
4282 integer(IKG) , intent(in) , contiguous :: matA(:,:)
4283 integer(IKG) , intent(in) , contiguous :: matB(:)
4284 integer(IKG) , intent(inout) , contiguous :: matC(:)
4285 type(lowDia_type) , intent(in) :: subsetA
4286 type(symmetric_type) , intent(in) :: classA
4287 end subroutine
4288#endif
4289
4290 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4291
4292#if CK5_ENABLED
4293 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_CK5(matA, classA, subsetA, matB, matC, alpha, beta)
4294#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4295 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_CK5
4296#endif
4297 use pm_kind, only: CKG => CK5
4298 complex(CKG) , intent(in) , optional :: alpha, beta
4299 complex(CKG) , intent(in) , contiguous :: matA(:,:)
4300 complex(CKG) , intent(in) , contiguous :: matB(:)
4301 complex(CKG) , intent(inout) , contiguous :: matC(:)
4302 type(lowDia_type) , intent(in) :: subsetA
4303 type(symmetric_type) , intent(in) :: classA
4304 end subroutine
4305#endif
4306
4307#if CK4_ENABLED
4308 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_CK4(matA, classA, subsetA, matB, matC, alpha, beta)
4309#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4310 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_CK4
4311#endif
4312 use pm_kind, only: CKG => CK4
4313 complex(CKG) , intent(in) , optional :: alpha, beta
4314 complex(CKG) , intent(in) , contiguous :: matA(:,:)
4315 complex(CKG) , intent(in) , contiguous :: matB(:)
4316 complex(CKG) , intent(inout) , contiguous :: matC(:)
4317 type(lowDia_type) , intent(in) :: subsetA
4318 type(symmetric_type) , intent(in) :: classA
4319 end subroutine
4320#endif
4321
4322#if CK3_ENABLED
4323 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_CK3(matA, classA, subsetA, matB, matC, alpha, beta)
4324#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4325 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_CK3
4326#endif
4327 use pm_kind, only: CKG => CK3
4328 complex(CKG) , intent(in) , optional :: alpha, beta
4329 complex(CKG) , intent(in) , contiguous :: matA(:,:)
4330 complex(CKG) , intent(in) , contiguous :: matB(:)
4331 complex(CKG) , intent(inout) , contiguous :: matC(:)
4332 type(lowDia_type) , intent(in) :: subsetA
4333 type(symmetric_type) , intent(in) :: classA
4334 end subroutine
4335#endif
4336
4337#if CK2_ENABLED
4338 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_CK2(matA, classA, subsetA, matB, matC, alpha, beta)
4339#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4340 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_CK2
4341#endif
4342 use pm_kind, only: CKG => CK2
4343 complex(CKG) , intent(in) , optional :: alpha, beta
4344 complex(CKG) , intent(in) , contiguous :: matA(:,:)
4345 complex(CKG) , intent(in) , contiguous :: matB(:)
4346 complex(CKG) , intent(inout) , contiguous :: matC(:)
4347 type(lowDia_type) , intent(in) :: subsetA
4348 type(symmetric_type) , intent(in) :: classA
4349 end subroutine
4350#endif
4351
4352#if CK1_ENABLED
4353 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_CK1(matA, classA, subsetA, matB, matC, alpha, beta)
4354#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4355 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_CK1
4356#endif
4357 use pm_kind, only: CKG => CK1
4358 complex(CKG) , intent(in) , optional :: alpha, beta
4359 complex(CKG) , intent(in) , contiguous :: matA(:,:)
4360 complex(CKG) , intent(in) , contiguous :: matB(:)
4361 complex(CKG) , intent(inout) , contiguous :: matC(:)
4362 type(lowDia_type) , intent(in) :: subsetA
4363 type(symmetric_type) , intent(in) :: classA
4364 end subroutine
4365#endif
4366
4367 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4368
4369#if RK5_ENABLED
4370 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_RK5(matA, classA, subsetA, matB, matC, alpha, beta)
4371#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4372 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_RK5
4373#endif
4374 use pm_kind, only: RKG => RK5
4375 real(RKG) , intent(in) , optional :: alpha, beta
4376 real(RKG) , intent(in) , contiguous :: matA(:,:)
4377 real(RKG) , intent(in) , contiguous :: matB(:)
4378 real(RKG) , intent(inout) , contiguous :: matC(:)
4379 type(lowDia_type) , intent(in) :: subsetA
4380 type(symmetric_type) , intent(in) :: classA
4381 end subroutine
4382#endif
4383
4384#if RK4_ENABLED
4385 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_RK4(matA, classA, subsetA, matB, matC, alpha, beta)
4386#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4387 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_RK4
4388#endif
4389 use pm_kind, only: RKG => RK4
4390 real(RKG) , intent(in) , optional :: alpha, beta
4391 real(RKG) , intent(in) , contiguous :: matA(:,:)
4392 real(RKG) , intent(in) , contiguous :: matB(:)
4393 real(RKG) , intent(inout) , contiguous :: matC(:)
4394 type(lowDia_type) , intent(in) :: subsetA
4395 type(symmetric_type) , intent(in) :: classA
4396 end subroutine
4397#endif
4398
4399#if RK3_ENABLED
4400 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_RK3(matA, classA, subsetA, matB, matC, alpha, beta)
4401#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4402 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_RK3
4403#endif
4404 use pm_kind, only: RKG => RK3
4405 real(RKG) , intent(in) , optional :: alpha, beta
4406 real(RKG) , intent(in) , contiguous :: matA(:,:)
4407 real(RKG) , intent(in) , contiguous :: matB(:)
4408 real(RKG) , intent(inout) , contiguous :: matC(:)
4409 type(lowDia_type) , intent(in) :: subsetA
4410 type(symmetric_type) , intent(in) :: classA
4411 end subroutine
4412#endif
4413
4414#if RK2_ENABLED
4415 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_RK2(matA, classA, subsetA, matB, matC, alpha, beta)
4416#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4417 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_RK2
4418#endif
4419 use pm_kind, only: RKG => RK2
4420 real(RKG) , intent(in) , optional :: alpha, beta
4421 real(RKG) , intent(in) , contiguous :: matA(:,:)
4422 real(RKG) , intent(in) , contiguous :: matB(:)
4423 real(RKG) , intent(inout) , contiguous :: matC(:)
4424 type(lowDia_type) , intent(in) :: subsetA
4425 type(symmetric_type) , intent(in) :: classA
4426 end subroutine
4427#endif
4428
4429#if RK1_ENABLED
4430 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_RK1(matA, classA, subsetA, matB, matC, alpha, beta)
4431#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4432 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_RK1
4433#endif
4434 use pm_kind, only: RKG => RK1
4435 real(RKG) , intent(in) , optional :: alpha, beta
4436 real(RKG) , intent(in) , contiguous :: matA(:,:)
4437 real(RKG) , intent(in) , contiguous :: matB(:)
4438 real(RKG) , intent(inout) , contiguous :: matC(:)
4439 type(lowDia_type) , intent(in) :: subsetA
4440 type(symmetric_type) , intent(in) :: classA
4441 end subroutine
4442#endif
4443
4444 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4445
4446 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4447 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4448 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4449
4450 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4451 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4452 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4453
4454 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4455
4456#if IK5_ENABLED
4457 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_IK5(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4458#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4459 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_IK5
4460#endif
4461 use pm_kind, only: IKG => IK5
4462 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4463 integer(IKG) , intent(in) :: alpha, beta
4464 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4465 integer(IKG) , intent(in) , contiguous :: matB(:)
4466 integer(IKG) , intent(inout) , contiguous :: matC(:)
4467 type(uppDia_type) , intent(in) :: subsetA
4468 type(symmetric_type) , intent(in) :: classA
4469 end subroutine
4470#endif
4471
4472#if IK4_ENABLED
4473 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_IK4(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4474#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4475 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_IK4
4476#endif
4477 use pm_kind, only: IKG => IK4
4478 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4479 integer(IKG) , intent(in) :: alpha, beta
4480 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4481 integer(IKG) , intent(in) , contiguous :: matB(:)
4482 integer(IKG) , intent(inout) , contiguous :: matC(:)
4483 type(uppDia_type) , intent(in) :: subsetA
4484 type(symmetric_type) , intent(in) :: classA
4485 end subroutine
4486#endif
4487
4488#if IK3_ENABLED
4489 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_IK3(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4490#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4491 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_IK3
4492#endif
4493 use pm_kind, only: IKG => IK3
4494 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4495 integer(IKG) , intent(in) :: alpha, beta
4496 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4497 integer(IKG) , intent(in) , contiguous :: matB(:)
4498 integer(IKG) , intent(inout) , contiguous :: matC(:)
4499 type(uppDia_type) , intent(in) :: subsetA
4500 type(symmetric_type) , intent(in) :: classA
4501 end subroutine
4502#endif
4503
4504#if IK2_ENABLED
4505 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_IK2(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4506#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4507 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_IK2
4508#endif
4509 use pm_kind, only: IKG => IK2
4510 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4511 integer(IKG) , intent(in) :: alpha, beta
4512 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4513 integer(IKG) , intent(in) , contiguous :: matB(:)
4514 integer(IKG) , intent(inout) , contiguous :: matC(:)
4515 type(uppDia_type) , intent(in) :: subsetA
4516 type(symmetric_type) , intent(in) :: classA
4517 end subroutine
4518#endif
4519
4520#if IK1_ENABLED
4521 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_IK1(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4522#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4523 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_IK1
4524#endif
4525 use pm_kind, only: IKG => IK1
4526 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4527 integer(IKG) , intent(in) :: alpha, beta
4528 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4529 integer(IKG) , intent(in) , contiguous :: matB(:)
4530 integer(IKG) , intent(inout) , contiguous :: matC(:)
4531 type(uppDia_type) , intent(in) :: subsetA
4532 type(symmetric_type) , intent(in) :: classA
4533 end subroutine
4534#endif
4535
4536 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4537
4538#if CK5_ENABLED
4539 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_CK5(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4540#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4541 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_CK5
4542#endif
4543 use pm_kind, only: CKG => CK5
4544 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4545 complex(CKG) , intent(in) :: alpha, beta
4546 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4547 complex(CKG) , intent(in) , contiguous :: matB(:)
4548 complex(CKG) , intent(inout) , contiguous :: matC(:)
4549 type(uppDia_type) , intent(in) :: subsetA
4550 type(symmetric_type) , intent(in) :: classA
4551 end subroutine
4552#endif
4553
4554#if CK4_ENABLED
4555 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_CK4(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4556#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4557 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_CK4
4558#endif
4559 use pm_kind, only: CKG => CK4
4560 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4561 complex(CKG) , intent(in) :: alpha, beta
4562 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4563 complex(CKG) , intent(in) , contiguous :: matB(:)
4564 complex(CKG) , intent(inout) , contiguous :: matC(:)
4565 type(uppDia_type) , intent(in) :: subsetA
4566 type(symmetric_type) , intent(in) :: classA
4567 end subroutine
4568#endif
4569
4570#if CK3_ENABLED
4571 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_CK3(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4572#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4573 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_CK3
4574#endif
4575 use pm_kind, only: CKG => CK3
4576 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4577 complex(CKG) , intent(in) :: alpha, beta
4578 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4579 complex(CKG) , intent(in) , contiguous :: matB(:)
4580 complex(CKG) , intent(inout) , contiguous :: matC(:)
4581 type(uppDia_type) , intent(in) :: subsetA
4582 type(symmetric_type) , intent(in) :: classA
4583 end subroutine
4584#endif
4585
4586#if CK2_ENABLED
4587 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_CK2(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4588#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4589 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_CK2
4590#endif
4591 use pm_kind, only: CKG => CK2
4592 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4593 complex(CKG) , intent(in) :: alpha, beta
4594 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4595 complex(CKG) , intent(in) , contiguous :: matB(:)
4596 complex(CKG) , intent(inout) , contiguous :: matC(:)
4597 type(uppDia_type) , intent(in) :: subsetA
4598 type(symmetric_type) , intent(in) :: classA
4599 end subroutine
4600#endif
4601
4602#if CK1_ENABLED
4603 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_CK1(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4604#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4605 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_CK1
4606#endif
4607 use pm_kind, only: CKG => CK1
4608 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4609 complex(CKG) , intent(in) :: alpha, beta
4610 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4611 complex(CKG) , intent(in) , contiguous :: matB(:)
4612 complex(CKG) , intent(inout) , contiguous :: matC(:)
4613 type(uppDia_type) , intent(in) :: subsetA
4614 type(symmetric_type) , intent(in) :: classA
4615 end subroutine
4616#endif
4617
4618 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4619
4620#if RK5_ENABLED
4621 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_RK5(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4622#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4623 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_RK5
4624#endif
4625 use pm_kind, only: RKG => RK5
4626 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4627 real(RKG) , intent(in) :: alpha, beta
4628 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4629 real(RKG) , intent(in) , contiguous :: matB(:)
4630 real(RKG) , intent(inout) , contiguous :: matC(:)
4631 type(uppDia_type) , intent(in) :: subsetA
4632 type(symmetric_type) , intent(in) :: classA
4633 end subroutine
4634#endif
4635
4636#if RK4_ENABLED
4637 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_RK4(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4638#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4639 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_RK4
4640#endif
4641 use pm_kind, only: RKG => RK4
4642 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4643 real(RKG) , intent(in) :: alpha, beta
4644 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4645 real(RKG) , intent(in) , contiguous :: matB(:)
4646 real(RKG) , intent(inout) , contiguous :: matC(:)
4647 type(uppDia_type) , intent(in) :: subsetA
4648 type(symmetric_type) , intent(in) :: classA
4649 end subroutine
4650#endif
4651
4652#if RK3_ENABLED
4653 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_RK3(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4654#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4655 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_RK3
4656#endif
4657 use pm_kind, only: RKG => RK3
4658 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4659 real(RKG) , intent(in) :: alpha, beta
4660 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4661 real(RKG) , intent(in) , contiguous :: matB(:)
4662 real(RKG) , intent(inout) , contiguous :: matC(:)
4663 type(uppDia_type) , intent(in) :: subsetA
4664 type(symmetric_type) , intent(in) :: classA
4665 end subroutine
4666#endif
4667
4668#if RK2_ENABLED
4669 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_RK2(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4670#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4671 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_RK2
4672#endif
4673 use pm_kind, only: RKG => RK2
4674 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4675 real(RKG) , intent(in) :: alpha, beta
4676 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4677 real(RKG) , intent(in) , contiguous :: matB(:)
4678 real(RKG) , intent(inout) , contiguous :: matC(:)
4679 type(uppDia_type) , intent(in) :: subsetA
4680 type(symmetric_type) , intent(in) :: classA
4681 end subroutine
4682#endif
4683
4684#if RK1_ENABLED
4685 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_RK1(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4686#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4687 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_RK1
4688#endif
4689 use pm_kind, only: RKG => RK1
4690 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4691 real(RKG) , intent(in) :: alpha, beta
4692 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4693 real(RKG) , intent(in) , contiguous :: matB(:)
4694 real(RKG) , intent(inout) , contiguous :: matC(:)
4695 type(uppDia_type) , intent(in) :: subsetA
4696 type(symmetric_type) , intent(in) :: classA
4697 end subroutine
4698#endif
4699
4700 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4701
4702 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4703 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4704 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4705
4706 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4707
4708#if IK5_ENABLED
4709 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_IK5(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4710#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4711 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_IK5
4712#endif
4713 use pm_kind, only: IKG => IK5
4714 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4715 integer(IKG) , intent(in) :: alpha, beta
4716 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4717 integer(IKG) , intent(in) , contiguous :: matB(:)
4718 integer(IKG) , intent(inout) , contiguous :: matC(:)
4719 type(lowDia_type) , intent(in) :: subsetA
4720 type(symmetric_type) , intent(in) :: classA
4721 end subroutine
4722#endif
4723
4724#if IK4_ENABLED
4725 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_IK4(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4726#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4727 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_IK4
4728#endif
4729 use pm_kind, only: IKG => IK4
4730 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4731 integer(IKG) , intent(in) :: alpha, beta
4732 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4733 integer(IKG) , intent(in) , contiguous :: matB(:)
4734 integer(IKG) , intent(inout) , contiguous :: matC(:)
4735 type(lowDia_type) , intent(in) :: subsetA
4736 type(symmetric_type) , intent(in) :: classA
4737 end subroutine
4738#endif
4739
4740#if IK3_ENABLED
4741 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_IK3(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4742#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4743 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_IK3
4744#endif
4745 use pm_kind, only: IKG => IK3
4746 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4747 integer(IKG) , intent(in) :: alpha, beta
4748 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4749 integer(IKG) , intent(in) , contiguous :: matB(:)
4750 integer(IKG) , intent(inout) , contiguous :: matC(:)
4751 type(lowDia_type) , intent(in) :: subsetA
4752 type(symmetric_type) , intent(in) :: classA
4753 end subroutine
4754#endif
4755
4756#if IK2_ENABLED
4757 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_IK2(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4758#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4759 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_IK2
4760#endif
4761 use pm_kind, only: IKG => IK2
4762 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4763 integer(IKG) , intent(in) :: alpha, beta
4764 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4765 integer(IKG) , intent(in) , contiguous :: matB(:)
4766 integer(IKG) , intent(inout) , contiguous :: matC(:)
4767 type(lowDia_type) , intent(in) :: subsetA
4768 type(symmetric_type) , intent(in) :: classA
4769 end subroutine
4770#endif
4771
4772#if IK1_ENABLED
4773 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_IK1(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4774#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4775 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_IK1
4776#endif
4777 use pm_kind, only: IKG => IK1
4778 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4779 integer(IKG) , intent(in) :: alpha, beta
4780 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4781 integer(IKG) , intent(in) , contiguous :: matB(:)
4782 integer(IKG) , intent(inout) , contiguous :: matC(:)
4783 type(lowDia_type) , intent(in) :: subsetA
4784 type(symmetric_type) , intent(in) :: classA
4785 end subroutine
4786#endif
4787
4788 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4789
4790#if CK5_ENABLED
4791 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_CK5(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4792#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4793 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_CK5
4794#endif
4795 use pm_kind, only: CKG => CK5
4796 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4797 complex(CKG) , intent(in) :: alpha, beta
4798 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4799 complex(CKG) , intent(in) , contiguous :: matB(:)
4800 complex(CKG) , intent(inout) , contiguous :: matC(:)
4801 type(lowDia_type) , intent(in) :: subsetA
4802 type(symmetric_type) , intent(in) :: classA
4803 end subroutine
4804#endif
4805
4806#if CK4_ENABLED
4807 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_CK4(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4808#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4809 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_CK4
4810#endif
4811 use pm_kind, only: CKG => CK4
4812 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4813 complex(CKG) , intent(in) :: alpha, beta
4814 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4815 complex(CKG) , intent(in) , contiguous :: matB(:)
4816 complex(CKG) , intent(inout) , contiguous :: matC(:)
4817 type(lowDia_type) , intent(in) :: subsetA
4818 type(symmetric_type) , intent(in) :: classA
4819 end subroutine
4820#endif
4821
4822#if CK3_ENABLED
4823 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_CK3(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4824#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4825 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_CK3
4826#endif
4827 use pm_kind, only: CKG => CK3
4828 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4829 complex(CKG) , intent(in) :: alpha, beta
4830 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4831 complex(CKG) , intent(in) , contiguous :: matB(:)
4832 complex(CKG) , intent(inout) , contiguous :: matC(:)
4833 type(lowDia_type) , intent(in) :: subsetA
4834 type(symmetric_type) , intent(in) :: classA
4835 end subroutine
4836#endif
4837
4838#if CK2_ENABLED
4839 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_CK2(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4840#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4841 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_CK2
4842#endif
4843 use pm_kind, only: CKG => CK2
4844 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4845 complex(CKG) , intent(in) :: alpha, beta
4846 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4847 complex(CKG) , intent(in) , contiguous :: matB(:)
4848 complex(CKG) , intent(inout) , contiguous :: matC(:)
4849 type(lowDia_type) , intent(in) :: subsetA
4850 type(symmetric_type) , intent(in) :: classA
4851 end subroutine
4852#endif
4853
4854#if CK1_ENABLED
4855 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_CK1(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4856#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4857 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_CK1
4858#endif
4859 use pm_kind, only: CKG => CK1
4860 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4861 complex(CKG) , intent(in) :: alpha, beta
4862 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4863 complex(CKG) , intent(in) , contiguous :: matB(:)
4864 complex(CKG) , intent(inout) , contiguous :: matC(:)
4865 type(lowDia_type) , intent(in) :: subsetA
4866 type(symmetric_type) , intent(in) :: classA
4867 end subroutine
4868#endif
4869
4870 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4871
4872#if RK5_ENABLED
4873 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_RK5(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4874#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4875 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_RK5
4876#endif
4877 use pm_kind, only: RKG => RK5
4878 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4879 real(RKG) , intent(in) :: alpha, beta
4880 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4881 real(RKG) , intent(in) , contiguous :: matB(:)
4882 real(RKG) , intent(inout) , contiguous :: matC(:)
4883 type(lowDia_type) , intent(in) :: subsetA
4884 type(symmetric_type) , intent(in) :: classA
4885 end subroutine
4886#endif
4887
4888#if RK4_ENABLED
4889 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_RK4(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4890#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4891 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_RK4
4892#endif
4893 use pm_kind, only: RKG => RK4
4894 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4895 real(RKG) , intent(in) :: alpha, beta
4896 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4897 real(RKG) , intent(in) , contiguous :: matB(:)
4898 real(RKG) , intent(inout) , contiguous :: matC(:)
4899 type(lowDia_type) , intent(in) :: subsetA
4900 type(symmetric_type) , intent(in) :: classA
4901 end subroutine
4902#endif
4903
4904#if RK3_ENABLED
4905 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_RK3(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4906#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4907 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_RK3
4908#endif
4909 use pm_kind, only: RKG => RK3
4910 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4911 real(RKG) , intent(in) :: alpha, beta
4912 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4913 real(RKG) , intent(in) , contiguous :: matB(:)
4914 real(RKG) , intent(inout) , contiguous :: matC(:)
4915 type(lowDia_type) , intent(in) :: subsetA
4916 type(symmetric_type) , intent(in) :: classA
4917 end subroutine
4918#endif
4919
4920#if RK2_ENABLED
4921 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_RK2(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4922#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4923 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_RK2
4924#endif
4925 use pm_kind, only: RKG => RK2
4926 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4927 real(RKG) , intent(in) :: alpha, beta
4928 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4929 real(RKG) , intent(in) , contiguous :: matB(:)
4930 real(RKG) , intent(inout) , contiguous :: matC(:)
4931 type(lowDia_type) , intent(in) :: subsetA
4932 type(symmetric_type) , intent(in) :: classA
4933 end subroutine
4934#endif
4935
4936#if RK1_ENABLED
4937 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_RK1(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4938#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4939 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_RK1
4940#endif
4941 use pm_kind, only: RKG => RK1
4942 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4943 real(RKG) , intent(in) :: alpha, beta
4944 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4945 real(RKG) , intent(in) , contiguous :: matB(:)
4946 real(RKG) , intent(inout) , contiguous :: matC(:)
4947 type(lowDia_type) , intent(in) :: subsetA
4948 type(symmetric_type) , intent(in) :: classA
4949 end subroutine
4950#endif
4951
4952 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4953
4954 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4955 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4956 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4957
4958 end interface
4959
4960 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4961 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4962 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4963
4964 ! BLAS 2: `SHEMV`, `DHEMV`, `CHEMV`, `ZHEMV`
4965
4966 interface setMatMulAdd
4967
4968 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4969 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4970 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4971
4972 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4973
4974#if IK5_ENABLED
4975 PURE module subroutine hemv_ASS_CHA_SUA_CNB_SFB_IK5(matA, classA, subsetA, matB, matC, alpha, beta)
4976#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4977 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SUA_CNB_SFB_IK5
4978#endif
4979 use pm_kind, only: IKG => IK5
4980 integer(IKG) , intent(in) , optional :: alpha, beta
4981 integer(IKG) , intent(in) , contiguous :: matA(:,:)
4982 integer(IKG) , intent(in) , contiguous :: matB(:)
4983 integer(IKG) , intent(inout) , contiguous :: matC(:)
4984 type(uppDia_type) , intent(in) :: subsetA
4985 type(hermitian_type) , intent(in) :: classA
4986 end subroutine
4987#endif
4988
4989#if IK4_ENABLED
4990 PURE module subroutine hemv_ASS_CHA_SUA_CNB_SFB_IK4(matA, classA, subsetA, matB, matC, alpha, beta)
4991#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4992 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SUA_CNB_SFB_IK4
4993#endif
4994 use pm_kind, only: IKG => IK4
4995 integer(IKG) , intent(in) , optional :: alpha, beta
4996 integer(IKG) , intent(in) , contiguous :: matA(:,:)
4997 integer(IKG) , intent(in) , contiguous :: matB(:)
4998 integer(IKG) , intent(inout) , contiguous :: matC(:)
4999 type(uppDia_type) , intent(in) :: subsetA
5000 type(hermitian_type) , intent(in) :: classA
5001 end subroutine
5002#endif
5003
5004#if IK3_ENABLED
5005 PURE module subroutine hemv_ASS_CHA_SUA_CNB_SFB_IK3(matA, classA, subsetA, matB, matC, alpha, beta)
5006#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5007 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SUA_CNB_SFB_IK3
5008#endif
5009 use pm_kind, only: IKG => IK3
5010 integer(IKG) , intent(in) , optional :: alpha, beta
5011 integer(IKG) , intent(in) , contiguous :: matA(:,:)
5012 integer(IKG) , intent(in) , contiguous :: matB(:)
5013 integer(IKG) , intent(inout) , contiguous :: matC(:)
5014 type(uppDia_type) , intent(in) :: subsetA
5015 type(hermitian_type) , intent(in) :: classA
5016 end subroutine
5017#endif
5018
5019#if IK2_ENABLED
5020 PURE module subroutine hemv_ASS_CHA_SUA_CNB_SFB_IK2(matA, classA, subsetA, matB, matC, alpha, beta)
5021#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5022 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SUA_CNB_SFB_IK2
5023#endif
5024 use pm_kind, only: IKG => IK2
5025 integer(IKG) , intent(in) , optional :: alpha, beta
5026 integer(IKG) , intent(in) , contiguous :: matA(:,:)
5027 integer(IKG) , intent(in) , contiguous :: matB(:)
5028 integer(IKG) , intent(inout) , contiguous :: matC(:)
5029 type(uppDia_type) , intent(in) :: subsetA
5030 type(hermitian_type) , intent(in) :: classA
5031 end subroutine
5032#endif
5033
5034#if IK1_ENABLED
5035 PURE module subroutine hemv_ASS_CHA_SUA_CNB_SFB_IK1(matA, classA, subsetA, matB, matC, alpha, beta)
5036#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5037 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SUA_CNB_SFB_IK1
5038#endif
5039 use pm_kind, only: IKG => IK1
5040 integer(IKG) , intent(in) , optional :: alpha, beta
5041 integer(IKG) , intent(in) , contiguous :: matA(:,:)
5042 integer(IKG) , intent(in) , contiguous :: matB(:)
5043 integer(IKG) , intent(inout) , contiguous :: matC(:)
5044 type(uppDia_type) , intent(in) :: subsetA
5045 type(hermitian_type) , intent(in) :: classA
5046 end subroutine
5047#endif
5048
5049 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5050
5051#if CK5_ENABLED
5052 PURE module subroutine hemv_ASS_CHA_SUA_CNB_SFB_CK5(matA, classA, subsetA, matB, matC, alpha, beta)
5053#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5054 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SUA_CNB_SFB_CK5
5055#endif
5056 use pm_kind, only: CKG => CK5
5057 complex(CKG) , intent(in) , optional :: alpha, beta
5058 complex(CKG) , intent(in) , contiguous :: matA(:,:)
5059 complex(CKG) , intent(in) , contiguous :: matB(:)
5060 complex(CKG) , intent(inout) , contiguous :: matC(:)
5061 type(uppDia_type) , intent(in) :: subsetA
5062 type(hermitian_type) , intent(in) :: classA
5063 end subroutine
5064#endif
5065
5066#if CK4_ENABLED
5067 PURE module subroutine hemv_ASS_CHA_SUA_CNB_SFB_CK4(matA, classA, subsetA, matB, matC, alpha, beta)
5068#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5069 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SUA_CNB_SFB_CK4
5070#endif
5071 use pm_kind, only: CKG => CK4
5072 complex(CKG) , intent(in) , optional :: alpha, beta
5073 complex(CKG) , intent(in) , contiguous :: matA(:,:)
5074 complex(CKG) , intent(in) , contiguous :: matB(:)
5075 complex(CKG) , intent(inout) , contiguous :: matC(:)
5076 type(uppDia_type) , intent(in) :: subsetA
5077 type(hermitian_type) , intent(in) :: classA
5078 end subroutine
5079#endif
5080
5081#if CK3_ENABLED
5082 PURE module subroutine hemv_ASS_CHA_SUA_CNB_SFB_CK3(matA, classA, subsetA, matB, matC, alpha, beta)
5083#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5084 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SUA_CNB_SFB_CK3
5085#endif
5086 use pm_kind, only: CKG => CK3
5087 complex(CKG) , intent(in) , optional :: alpha, beta
5088 complex(CKG) , intent(in) , contiguous :: matA(:,:)
5089 complex(CKG) , intent(in) , contiguous :: matB(:)
5090 complex(CKG) , intent(inout) , contiguous :: matC(:)
5091 type(uppDia_type) , intent(in) :: subsetA
5092 type(hermitian_type) , intent(in) :: classA
5093 end subroutine
5094#endif
5095
5096#if CK2_ENABLED
5097 PURE module subroutine hemv_ASS_CHA_SUA_CNB_SFB_CK2(matA, classA, subsetA, matB, matC, alpha, beta)
5098#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5099 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SUA_CNB_SFB_CK2
5100#endif
5101 use pm_kind, only: CKG => CK2
5102 complex(CKG) , intent(in) , optional :: alpha, beta
5103 complex(CKG) , intent(in) , contiguous :: matA(:,:)
5104 complex(CKG) , intent(in) , contiguous :: matB(:)
5105 complex(CKG) , intent(inout) , contiguous :: matC(:)
5106 type(uppDia_type) , intent(in) :: subsetA
5107 type(hermitian_type) , intent(in) :: classA
5108 end subroutine
5109#endif
5110
5111#if CK1_ENABLED
5112 PURE module subroutine hemv_ASS_CHA_SUA_CNB_SFB_CK1(matA, classA, subsetA, matB, matC, alpha, beta)
5113#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5114 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SUA_CNB_SFB_CK1
5115#endif
5116 use pm_kind, only: CKG => CK1
5117 complex(CKG) , intent(in) , optional :: alpha, beta
5118 complex(CKG) , intent(in) , contiguous :: matA(:,:)
5119 complex(CKG) , intent(in) , contiguous :: matB(:)
5120 complex(CKG) , intent(inout) , contiguous :: matC(:)
5121 type(uppDia_type) , intent(in) :: subsetA
5122 type(hermitian_type) , intent(in) :: classA
5123 end subroutine
5124#endif
5125
5126 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5127
5128#if RK5_ENABLED
5129 PURE module subroutine hemv_ASS_CHA_SUA_CNB_SFB_RK5(matA, classA, subsetA, matB, matC, alpha, beta)
5130#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5131 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SUA_CNB_SFB_RK5
5132#endif
5133 use pm_kind, only: RKG => RK5
5134 real(RKG) , intent(in) , optional :: alpha, beta
5135 real(RKG) , intent(in) , contiguous :: matA(:,:)
5136 real(RKG) , intent(in) , contiguous :: matB(:)
5137 real(RKG) , intent(inout) , contiguous :: matC(:)
5138 type(uppDia_type) , intent(in) :: subsetA
5139 type(hermitian_type) , intent(in) :: classA
5140 end subroutine
5141#endif
5142
5143#if RK4_ENABLED
5144 PURE module subroutine hemv_ASS_CHA_SUA_CNB_SFB_RK4(matA, classA, subsetA, matB, matC, alpha, beta)
5145#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5146 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SUA_CNB_SFB_RK4
5147#endif
5148 use pm_kind, only: RKG => RK4
5149 real(RKG) , intent(in) , optional :: alpha, beta
5150 real(RKG) , intent(in) , contiguous :: matA(:,:)
5151 real(RKG) , intent(in) , contiguous :: matB(:)
5152 real(RKG) , intent(inout) , contiguous :: matC(:)
5153 type(uppDia_type) , intent(in) :: subsetA
5154 type(hermitian_type) , intent(in) :: classA
5155 end subroutine
5156#endif
5157
5158#if RK3_ENABLED
5159 PURE module subroutine hemv_ASS_CHA_SUA_CNB_SFB_RK3(matA, classA, subsetA, matB, matC, alpha, beta)
5160#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5161 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SUA_CNB_SFB_RK3
5162#endif
5163 use pm_kind, only: RKG => RK3
5164 real(RKG) , intent(in) , optional :: alpha, beta
5165 real(RKG) , intent(in) , contiguous :: matA(:,:)
5166 real(RKG) , intent(in) , contiguous :: matB(:)
5167 real(RKG) , intent(inout) , contiguous :: matC(:)
5168 type(uppDia_type) , intent(in) :: subsetA
5169 type(hermitian_type) , intent(in) :: classA
5170 end subroutine
5171#endif
5172
5173#if RK2_ENABLED
5174 PURE module subroutine hemv_ASS_CHA_SUA_CNB_SFB_RK2(matA, classA, subsetA, matB, matC, alpha, beta)
5175#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5176 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SUA_CNB_SFB_RK2
5177#endif
5178 use pm_kind, only: RKG => RK2
5179 real(RKG) , intent(in) , optional :: alpha, beta
5180 real(RKG) , intent(in) , contiguous :: matA(:,:)
5181 real(RKG) , intent(in) , contiguous :: matB(:)
5182 real(RKG) , intent(inout) , contiguous :: matC(:)
5183 type(uppDia_type) , intent(in) :: subsetA
5184 type(hermitian_type) , intent(in) :: classA
5185 end subroutine
5186#endif
5187
5188#if RK1_ENABLED
5189 PURE module subroutine hemv_ASS_CHA_SUA_CNB_SFB_RK1(matA, classA, subsetA, matB, matC, alpha, beta)
5190#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5191 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SUA_CNB_SFB_RK1
5192#endif
5193 use pm_kind, only: RKG => RK1
5194 real(RKG) , intent(in) , optional :: alpha, beta
5195 real(RKG) , intent(in) , contiguous :: matA(:,:)
5196 real(RKG) , intent(in) , contiguous :: matB(:)
5197 real(RKG) , intent(inout) , contiguous :: matC(:)
5198 type(uppDia_type) , intent(in) :: subsetA
5199 type(hermitian_type) , intent(in) :: classA
5200 end subroutine
5201#endif
5202
5203 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5204
5205 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5206 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5207 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5208
5209 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5210
5211#if IK5_ENABLED
5212 PURE module subroutine hemv_ASS_CHA_SLA_CNB_SFB_IK5(matA, classA, subsetA, matB, matC, alpha, beta)
5213#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5214 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SLA_CNB_SFB_IK5
5215#endif
5216 use pm_kind, only: IKG => IK5
5217 integer(IKG) , intent(in) , optional :: alpha, beta
5218 integer(IKG) , intent(in) , contiguous :: matA(:,:)
5219 integer(IKG) , intent(in) , contiguous :: matB(:)
5220 integer(IKG) , intent(inout) , contiguous :: matC(:)
5221 type(lowDia_type) , intent(in) :: subsetA
5222 type(hermitian_type) , intent(in) :: classA
5223 end subroutine
5224#endif
5225
5226#if IK4_ENABLED
5227 PURE module subroutine hemv_ASS_CHA_SLA_CNB_SFB_IK4(matA, classA, subsetA, matB, matC, alpha, beta)
5228#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5229 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SLA_CNB_SFB_IK4
5230#endif
5231 use pm_kind, only: IKG => IK4
5232 integer(IKG) , intent(in) , optional :: alpha, beta
5233 integer(IKG) , intent(in) , contiguous :: matA(:,:)
5234 integer(IKG) , intent(in) , contiguous :: matB(:)
5235 integer(IKG) , intent(inout) , contiguous :: matC(:)
5236 type(lowDia_type) , intent(in) :: subsetA
5237 type(hermitian_type) , intent(in) :: classA
5238 end subroutine
5239#endif
5240
5241#if IK3_ENABLED
5242 PURE module subroutine hemv_ASS_CHA_SLA_CNB_SFB_IK3(matA, classA, subsetA, matB, matC, alpha, beta)
5243#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5244 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SLA_CNB_SFB_IK3
5245#endif
5246 use pm_kind, only: IKG => IK3
5247 integer(IKG) , intent(in) , optional :: alpha, beta
5248 integer(IKG) , intent(in) , contiguous :: matA(:,:)
5249 integer(IKG) , intent(in) , contiguous :: matB(:)
5250 integer(IKG) , intent(inout) , contiguous :: matC(:)
5251 type(lowDia_type) , intent(in) :: subsetA
5252 type(hermitian_type) , intent(in) :: classA
5253 end subroutine
5254#endif
5255
5256#if IK2_ENABLED
5257 PURE module subroutine hemv_ASS_CHA_SLA_CNB_SFB_IK2(matA, classA, subsetA, matB, matC, alpha, beta)
5258#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5259 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SLA_CNB_SFB_IK2
5260#endif
5261 use pm_kind, only: IKG => IK2
5262 integer(IKG) , intent(in) , optional :: alpha, beta
5263 integer(IKG) , intent(in) , contiguous :: matA(:,:)
5264 integer(IKG) , intent(in) , contiguous :: matB(:)
5265 integer(IKG) , intent(inout) , contiguous :: matC(:)
5266 type(lowDia_type) , intent(in) :: subsetA
5267 type(hermitian_type) , intent(in) :: classA
5268 end subroutine
5269#endif
5270
5271#if IK1_ENABLED
5272 PURE module subroutine hemv_ASS_CHA_SLA_CNB_SFB_IK1(matA, classA, subsetA, matB, matC, alpha, beta)
5273#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5274 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SLA_CNB_SFB_IK1
5275#endif
5276 use pm_kind, only: IKG => IK1
5277 integer(IKG) , intent(in) , optional :: alpha, beta
5278 integer(IKG) , intent(in) , contiguous :: matA(:,:)
5279 integer(IKG) , intent(in) , contiguous :: matB(:)
5280 integer(IKG) , intent(inout) , contiguous :: matC(:)
5281 type(lowDia_type) , intent(in) :: subsetA
5282 type(hermitian_type) , intent(in) :: classA
5283 end subroutine
5284#endif
5285
5286 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5287
5288#if CK5_ENABLED
5289 PURE module subroutine hemv_ASS_CHA_SLA_CNB_SFB_CK5(matA, classA, subsetA, matB, matC, alpha, beta)
5290#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5291 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SLA_CNB_SFB_CK5
5292#endif
5293 use pm_kind, only: CKG => CK5
5294 complex(CKG) , intent(in) , optional :: alpha, beta
5295 complex(CKG) , intent(in) , contiguous :: matA(:,:)
5296 complex(CKG) , intent(in) , contiguous :: matB(:)
5297 complex(CKG) , intent(inout) , contiguous :: matC(:)
5298 type(lowDia_type) , intent(in) :: subsetA
5299 type(hermitian_type) , intent(in) :: classA
5300 end subroutine
5301#endif
5302
5303#if CK4_ENABLED
5304 PURE module subroutine hemv_ASS_CHA_SLA_CNB_SFB_CK4(matA, classA, subsetA, matB, matC, alpha, beta)
5305#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5306 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SLA_CNB_SFB_CK4
5307#endif
5308 use pm_kind, only: CKG => CK4
5309 complex(CKG) , intent(in) , optional :: alpha, beta
5310 complex(CKG) , intent(in) , contiguous :: matA(:,:)
5311 complex(CKG) , intent(in) , contiguous :: matB(:)
5312 complex(CKG) , intent(inout) , contiguous :: matC(:)
5313 type(lowDia_type) , intent(in) :: subsetA
5314 type(hermitian_type) , intent(in) :: classA
5315 end subroutine
5316#endif
5317
5318#if CK3_ENABLED
5319 PURE module subroutine hemv_ASS_CHA_SLA_CNB_SFB_CK3(matA, classA, subsetA, matB, matC, alpha, beta)
5320#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5321 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SLA_CNB_SFB_CK3
5322#endif
5323 use pm_kind, only: CKG => CK3
5324 complex(CKG) , intent(in) , optional :: alpha, beta
5325 complex(CKG) , intent(in) , contiguous :: matA(:,:)
5326 complex(CKG) , intent(in) , contiguous :: matB(:)
5327 complex(CKG) , intent(inout) , contiguous :: matC(:)
5328 type(lowDia_type) , intent(in) :: subsetA
5329 type(hermitian_type) , intent(in) :: classA
5330 end subroutine
5331#endif
5332
5333#if CK2_ENABLED
5334 PURE module subroutine hemv_ASS_CHA_SLA_CNB_SFB_CK2(matA, classA, subsetA, matB, matC, alpha, beta)
5335#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5336 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SLA_CNB_SFB_CK2
5337#endif
5338 use pm_kind, only: CKG => CK2
5339 complex(CKG) , intent(in) , optional :: alpha, beta
5340 complex(CKG) , intent(in) , contiguous :: matA(:,:)
5341 complex(CKG) , intent(in) , contiguous :: matB(:)
5342 complex(CKG) , intent(inout) , contiguous :: matC(:)
5343 type(lowDia_type) , intent(in) :: subsetA
5344 type(hermitian_type) , intent(in) :: classA
5345 end subroutine
5346#endif
5347
5348#if CK1_ENABLED
5349 PURE module subroutine hemv_ASS_CHA_SLA_CNB_SFB_CK1(matA, classA, subsetA, matB, matC, alpha, beta)
5350#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5351 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SLA_CNB_SFB_CK1
5352#endif
5353 use pm_kind, only: CKG => CK1
5354 complex(CKG) , intent(in) , optional :: alpha, beta
5355 complex(CKG) , intent(in) , contiguous :: matA(:,:)
5356 complex(CKG) , intent(in) , contiguous :: matB(:)
5357 complex(CKG) , intent(inout) , contiguous :: matC(:)
5358 type(lowDia_type) , intent(in) :: subsetA
5359 type(hermitian_type) , intent(in) :: classA
5360 end subroutine
5361#endif
5362
5363 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5364
5365#if RK5_ENABLED
5366 PURE module subroutine hemv_ASS_CHA_SLA_CNB_SFB_RK5(matA, classA, subsetA, matB, matC, alpha, beta)
5367#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5368 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SLA_CNB_SFB_RK5
5369#endif
5370 use pm_kind, only: RKG => RK5
5371 real(RKG) , intent(in) , optional :: alpha, beta
5372 real(RKG) , intent(in) , contiguous :: matA(:,:)
5373 real(RKG) , intent(in) , contiguous :: matB(:)
5374 real(RKG) , intent(inout) , contiguous :: matC(:)
5375 type(lowDia_type) , intent(in) :: subsetA
5376 type(hermitian_type) , intent(in) :: classA
5377 end subroutine
5378#endif
5379
5380#if RK4_ENABLED
5381 PURE module subroutine hemv_ASS_CHA_SLA_CNB_SFB_RK4(matA, classA, subsetA, matB, matC, alpha, beta)
5382#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5383 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SLA_CNB_SFB_RK4
5384#endif
5385 use pm_kind, only: RKG => RK4
5386 real(RKG) , intent(in) , optional :: alpha, beta
5387 real(RKG) , intent(in) , contiguous :: matA(:,:)
5388 real(RKG) , intent(in) , contiguous :: matB(:)
5389 real(RKG) , intent(inout) , contiguous :: matC(:)
5390 type(lowDia_type) , intent(in) :: subsetA
5391 type(hermitian_type) , intent(in) :: classA
5392 end subroutine
5393#endif
5394
5395#if RK3_ENABLED
5396 PURE module subroutine hemv_ASS_CHA_SLA_CNB_SFB_RK3(matA, classA, subsetA, matB, matC, alpha, beta)
5397#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5398 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SLA_CNB_SFB_RK3
5399#endif
5400 use pm_kind, only: RKG => RK3
5401 real(RKG) , intent(in) , optional :: alpha, beta
5402 real(RKG) , intent(in) , contiguous :: matA(:,:)
5403 real(RKG) , intent(in) , contiguous :: matB(:)
5404 real(RKG) , intent(inout) , contiguous :: matC(:)
5405 type(lowDia_type) , intent(in) :: subsetA
5406 type(hermitian_type) , intent(in) :: classA
5407 end subroutine
5408#endif
5409
5410#if RK2_ENABLED
5411 PURE module subroutine hemv_ASS_CHA_SLA_CNB_SFB_RK2(matA, classA, subsetA, matB, matC, alpha, beta)
5412#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5413 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SLA_CNB_SFB_RK2
5414#endif
5415 use pm_kind, only: RKG => RK2
5416 real(RKG) , intent(in) , optional :: alpha, beta
5417 real(RKG) , intent(in) , contiguous :: matA(:,:)
5418 real(RKG) , intent(in) , contiguous :: matB(:)
5419 real(RKG) , intent(inout) , contiguous :: matC(:)
5420 type(lowDia_type) , intent(in) :: subsetA
5421 type(hermitian_type) , intent(in) :: classA
5422 end subroutine
5423#endif
5424
5425#if RK1_ENABLED
5426 PURE module subroutine hemv_ASS_CHA_SLA_CNB_SFB_RK1(matA, classA, subsetA, matB, matC, alpha, beta)
5427#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5428 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_ASS_CHA_SLA_CNB_SFB_RK1
5429#endif
5430 use pm_kind, only: RKG => RK1
5431 real(RKG) , intent(in) , optional :: alpha, beta
5432 real(RKG) , intent(in) , contiguous :: matA(:,:)
5433 real(RKG) , intent(in) , contiguous :: matB(:)
5434 real(RKG) , intent(inout) , contiguous :: matC(:)
5435 type(lowDia_type) , intent(in) :: subsetA
5436 type(hermitian_type) , intent(in) :: classA
5437 end subroutine
5438#endif
5439
5440 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5441
5442 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5443 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5444 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5445
5446 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5447 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5448 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5449
5450 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5451
5452#if IK5_ENABLED
5453 PURE module subroutine hemv_EXP_CHA_SUA_CNB_SFB_IK5(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5454#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5455 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SUA_CNB_SFB_IK5
5456#endif
5457 use pm_kind, only: IKG => IK5
5458 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5459 integer(IKG) , intent(in) :: alpha, beta
5460 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5461 integer(IKG) , intent(in) , contiguous :: matB(:)
5462 integer(IKG) , intent(inout) , contiguous :: matC(:)
5463 type(uppDia_type) , intent(in) :: subsetA
5464 type(hermitian_type) , intent(in) :: classA
5465 end subroutine
5466#endif
5467
5468#if IK4_ENABLED
5469 PURE module subroutine hemv_EXP_CHA_SUA_CNB_SFB_IK4(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5470#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5471 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SUA_CNB_SFB_IK4
5472#endif
5473 use pm_kind, only: IKG => IK4
5474 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5475 integer(IKG) , intent(in) :: alpha, beta
5476 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5477 integer(IKG) , intent(in) , contiguous :: matB(:)
5478 integer(IKG) , intent(inout) , contiguous :: matC(:)
5479 type(uppDia_type) , intent(in) :: subsetA
5480 type(hermitian_type) , intent(in) :: classA
5481 end subroutine
5482#endif
5483
5484#if IK3_ENABLED
5485 PURE module subroutine hemv_EXP_CHA_SUA_CNB_SFB_IK3(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5486#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5487 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SUA_CNB_SFB_IK3
5488#endif
5489 use pm_kind, only: IKG => IK3
5490 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5491 integer(IKG) , intent(in) :: alpha, beta
5492 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5493 integer(IKG) , intent(in) , contiguous :: matB(:)
5494 integer(IKG) , intent(inout) , contiguous :: matC(:)
5495 type(uppDia_type) , intent(in) :: subsetA
5496 type(hermitian_type) , intent(in) :: classA
5497 end subroutine
5498#endif
5499
5500#if IK2_ENABLED
5501 PURE module subroutine hemv_EXP_CHA_SUA_CNB_SFB_IK2(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5502#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5503 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SUA_CNB_SFB_IK2
5504#endif
5505 use pm_kind, only: IKG => IK2
5506 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5507 integer(IKG) , intent(in) :: alpha, beta
5508 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5509 integer(IKG) , intent(in) , contiguous :: matB(:)
5510 integer(IKG) , intent(inout) , contiguous :: matC(:)
5511 type(uppDia_type) , intent(in) :: subsetA
5512 type(hermitian_type) , intent(in) :: classA
5513 end subroutine
5514#endif
5515
5516#if IK1_ENABLED
5517 PURE module subroutine hemv_EXP_CHA_SUA_CNB_SFB_IK1(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5518#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5519 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SUA_CNB_SFB_IK1
5520#endif
5521 use pm_kind, only: IKG => IK1
5522 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5523 integer(IKG) , intent(in) :: alpha, beta
5524 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5525 integer(IKG) , intent(in) , contiguous :: matB(:)
5526 integer(IKG) , intent(inout) , contiguous :: matC(:)
5527 type(uppDia_type) , intent(in) :: subsetA
5528 type(hermitian_type) , intent(in) :: classA
5529 end subroutine
5530#endif
5531
5532 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5533
5534#if CK5_ENABLED
5535 PURE module subroutine hemv_EXP_CHA_SUA_CNB_SFB_CK5(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5536#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5537 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SUA_CNB_SFB_CK5
5538#endif
5539 use pm_kind, only: CKG => CK5
5540 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5541 complex(CKG) , intent(in) :: alpha, beta
5542 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5543 complex(CKG) , intent(in) , contiguous :: matB(:)
5544 complex(CKG) , intent(inout) , contiguous :: matC(:)
5545 type(uppDia_type) , intent(in) :: subsetA
5546 type(hermitian_type) , intent(in) :: classA
5547 end subroutine
5548#endif
5549
5550#if CK4_ENABLED
5551 PURE module subroutine hemv_EXP_CHA_SUA_CNB_SFB_CK4(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5552#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5553 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SUA_CNB_SFB_CK4
5554#endif
5555 use pm_kind, only: CKG => CK4
5556 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5557 complex(CKG) , intent(in) :: alpha, beta
5558 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5559 complex(CKG) , intent(in) , contiguous :: matB(:)
5560 complex(CKG) , intent(inout) , contiguous :: matC(:)
5561 type(uppDia_type) , intent(in) :: subsetA
5562 type(hermitian_type) , intent(in) :: classA
5563 end subroutine
5564#endif
5565
5566#if CK3_ENABLED
5567 PURE module subroutine hemv_EXP_CHA_SUA_CNB_SFB_CK3(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5568#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5569 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SUA_CNB_SFB_CK3
5570#endif
5571 use pm_kind, only: CKG => CK3
5572 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5573 complex(CKG) , intent(in) :: alpha, beta
5574 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5575 complex(CKG) , intent(in) , contiguous :: matB(:)
5576 complex(CKG) , intent(inout) , contiguous :: matC(:)
5577 type(uppDia_type) , intent(in) :: subsetA
5578 type(hermitian_type) , intent(in) :: classA
5579 end subroutine
5580#endif
5581
5582#if CK2_ENABLED
5583 PURE module subroutine hemv_EXP_CHA_SUA_CNB_SFB_CK2(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5584#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5585 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SUA_CNB_SFB_CK2
5586#endif
5587 use pm_kind, only: CKG => CK2
5588 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5589 complex(CKG) , intent(in) :: alpha, beta
5590 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5591 complex(CKG) , intent(in) , contiguous :: matB(:)
5592 complex(CKG) , intent(inout) , contiguous :: matC(:)
5593 type(uppDia_type) , intent(in) :: subsetA
5594 type(hermitian_type) , intent(in) :: classA
5595 end subroutine
5596#endif
5597
5598#if CK1_ENABLED
5599 PURE module subroutine hemv_EXP_CHA_SUA_CNB_SFB_CK1(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5600#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5601 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SUA_CNB_SFB_CK1
5602#endif
5603 use pm_kind, only: CKG => CK1
5604 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5605 complex(CKG) , intent(in) :: alpha, beta
5606 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5607 complex(CKG) , intent(in) , contiguous :: matB(:)
5608 complex(CKG) , intent(inout) , contiguous :: matC(:)
5609 type(uppDia_type) , intent(in) :: subsetA
5610 type(hermitian_type) , intent(in) :: classA
5611 end subroutine
5612#endif
5613
5614 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5615
5616#if RK5_ENABLED
5617 PURE module subroutine hemv_EXP_CHA_SUA_CNB_SFB_RK5(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5618#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5619 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SUA_CNB_SFB_RK5
5620#endif
5621 use pm_kind, only: RKG => RK5
5622 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5623 real(RKG) , intent(in) :: alpha, beta
5624 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5625 real(RKG) , intent(in) , contiguous :: matB(:)
5626 real(RKG) , intent(inout) , contiguous :: matC(:)
5627 type(uppDia_type) , intent(in) :: subsetA
5628 type(hermitian_type) , intent(in) :: classA
5629 end subroutine
5630#endif
5631
5632#if RK4_ENABLED
5633 PURE module subroutine hemv_EXP_CHA_SUA_CNB_SFB_RK4(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5634#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5635 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SUA_CNB_SFB_RK4
5636#endif
5637 use pm_kind, only: RKG => RK4
5638 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5639 real(RKG) , intent(in) :: alpha, beta
5640 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5641 real(RKG) , intent(in) , contiguous :: matB(:)
5642 real(RKG) , intent(inout) , contiguous :: matC(:)
5643 type(uppDia_type) , intent(in) :: subsetA
5644 type(hermitian_type) , intent(in) :: classA
5645 end subroutine
5646#endif
5647
5648#if RK3_ENABLED
5649 PURE module subroutine hemv_EXP_CHA_SUA_CNB_SFB_RK3(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5650#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5651 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SUA_CNB_SFB_RK3
5652#endif
5653 use pm_kind, only: RKG => RK3
5654 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5655 real(RKG) , intent(in) :: alpha, beta
5656 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5657 real(RKG) , intent(in) , contiguous :: matB(:)
5658 real(RKG) , intent(inout) , contiguous :: matC(:)
5659 type(uppDia_type) , intent(in) :: subsetA
5660 type(hermitian_type) , intent(in) :: classA
5661 end subroutine
5662#endif
5663
5664#if RK2_ENABLED
5665 PURE module subroutine hemv_EXP_CHA_SUA_CNB_SFB_RK2(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5666#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5667 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SUA_CNB_SFB_RK2
5668#endif
5669 use pm_kind, only: RKG => RK2
5670 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5671 real(RKG) , intent(in) :: alpha, beta
5672 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5673 real(RKG) , intent(in) , contiguous :: matB(:)
5674 real(RKG) , intent(inout) , contiguous :: matC(:)
5675 type(uppDia_type) , intent(in) :: subsetA
5676 type(hermitian_type) , intent(in) :: classA
5677 end subroutine
5678#endif
5679
5680#if RK1_ENABLED
5681 PURE module subroutine hemv_EXP_CHA_SUA_CNB_SFB_RK1(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5682#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5683 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SUA_CNB_SFB_RK1
5684#endif
5685 use pm_kind, only: RKG => RK1
5686 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5687 real(RKG) , intent(in) :: alpha, beta
5688 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5689 real(RKG) , intent(in) , contiguous :: matB(:)
5690 real(RKG) , intent(inout) , contiguous :: matC(:)
5691 type(uppDia_type) , intent(in) :: subsetA
5692 type(hermitian_type) , intent(in) :: classA
5693 end subroutine
5694#endif
5695
5696 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5697
5698 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5699 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5700 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5701
5702 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5703
5704#if IK5_ENABLED
5705 PURE module subroutine hemv_EXP_CHA_SLA_CNB_SFB_IK5(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5706#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5707 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SLA_CNB_SFB_IK5
5708#endif
5709 use pm_kind, only: IKG => IK5
5710 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5711 integer(IKG) , intent(in) :: alpha, beta
5712 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5713 integer(IKG) , intent(in) , contiguous :: matB(:)
5714 integer(IKG) , intent(inout) , contiguous :: matC(:)
5715 type(lowDia_type) , intent(in) :: subsetA
5716 type(hermitian_type) , intent(in) :: classA
5717 end subroutine
5718#endif
5719
5720#if IK4_ENABLED
5721 PURE module subroutine hemv_EXP_CHA_SLA_CNB_SFB_IK4(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5722#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5723 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SLA_CNB_SFB_IK4
5724#endif
5725 use pm_kind, only: IKG => IK4
5726 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5727 integer(IKG) , intent(in) :: alpha, beta
5728 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5729 integer(IKG) , intent(in) , contiguous :: matB(:)
5730 integer(IKG) , intent(inout) , contiguous :: matC(:)
5731 type(lowDia_type) , intent(in) :: subsetA
5732 type(hermitian_type) , intent(in) :: classA
5733 end subroutine
5734#endif
5735
5736#if IK3_ENABLED
5737 PURE module subroutine hemv_EXP_CHA_SLA_CNB_SFB_IK3(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5738#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5739 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SLA_CNB_SFB_IK3
5740#endif
5741 use pm_kind, only: IKG => IK3
5742 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5743 integer(IKG) , intent(in) :: alpha, beta
5744 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5745 integer(IKG) , intent(in) , contiguous :: matB(:)
5746 integer(IKG) , intent(inout) , contiguous :: matC(:)
5747 type(lowDia_type) , intent(in) :: subsetA
5748 type(hermitian_type) , intent(in) :: classA
5749 end subroutine
5750#endif
5751
5752#if IK2_ENABLED
5753 PURE module subroutine hemv_EXP_CHA_SLA_CNB_SFB_IK2(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5754#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5755 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SLA_CNB_SFB_IK2
5756#endif
5757 use pm_kind, only: IKG => IK2
5758 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5759 integer(IKG) , intent(in) :: alpha, beta
5760 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5761 integer(IKG) , intent(in) , contiguous :: matB(:)
5762 integer(IKG) , intent(inout) , contiguous :: matC(:)
5763 type(lowDia_type) , intent(in) :: subsetA
5764 type(hermitian_type) , intent(in) :: classA
5765 end subroutine
5766#endif
5767
5768#if IK1_ENABLED
5769 PURE module subroutine hemv_EXP_CHA_SLA_CNB_SFB_IK1(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5770#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5771 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SLA_CNB_SFB_IK1
5772#endif
5773 use pm_kind, only: IKG => IK1
5774 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5775 integer(IKG) , intent(in) :: alpha, beta
5776 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5777 integer(IKG) , intent(in) , contiguous :: matB(:)
5778 integer(IKG) , intent(inout) , contiguous :: matC(:)
5779 type(lowDia_type) , intent(in) :: subsetA
5780 type(hermitian_type) , intent(in) :: classA
5781 end subroutine
5782#endif
5783
5784 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5785
5786#if CK5_ENABLED
5787 PURE module subroutine hemv_EXP_CHA_SLA_CNB_SFB_CK5(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5788#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5789 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SLA_CNB_SFB_CK5
5790#endif
5791 use pm_kind, only: CKG => CK5
5792 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5793 complex(CKG) , intent(in) :: alpha, beta
5794 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5795 complex(CKG) , intent(in) , contiguous :: matB(:)
5796 complex(CKG) , intent(inout) , contiguous :: matC(:)
5797 type(lowDia_type) , intent(in) :: subsetA
5798 type(hermitian_type) , intent(in) :: classA
5799 end subroutine
5800#endif
5801
5802#if CK4_ENABLED
5803 PURE module subroutine hemv_EXP_CHA_SLA_CNB_SFB_CK4(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5804#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5805 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SLA_CNB_SFB_CK4
5806#endif
5807 use pm_kind, only: CKG => CK4
5808 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5809 complex(CKG) , intent(in) :: alpha, beta
5810 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5811 complex(CKG) , intent(in) , contiguous :: matB(:)
5812 complex(CKG) , intent(inout) , contiguous :: matC(:)
5813 type(lowDia_type) , intent(in) :: subsetA
5814 type(hermitian_type) , intent(in) :: classA
5815 end subroutine
5816#endif
5817
5818#if CK3_ENABLED
5819 PURE module subroutine hemv_EXP_CHA_SLA_CNB_SFB_CK3(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5820#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5821 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SLA_CNB_SFB_CK3
5822#endif
5823 use pm_kind, only: CKG => CK3
5824 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5825 complex(CKG) , intent(in) :: alpha, beta
5826 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5827 complex(CKG) , intent(in) , contiguous :: matB(:)
5828 complex(CKG) , intent(inout) , contiguous :: matC(:)
5829 type(lowDia_type) , intent(in) :: subsetA
5830 type(hermitian_type) , intent(in) :: classA
5831 end subroutine
5832#endif
5833
5834#if CK2_ENABLED
5835 PURE module subroutine hemv_EXP_CHA_SLA_CNB_SFB_CK2(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5836#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5837 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SLA_CNB_SFB_CK2
5838#endif
5839 use pm_kind, only: CKG => CK2
5840 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5841 complex(CKG) , intent(in) :: alpha, beta
5842 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5843 complex(CKG) , intent(in) , contiguous :: matB(:)
5844 complex(CKG) , intent(inout) , contiguous :: matC(:)
5845 type(lowDia_type) , intent(in) :: subsetA
5846 type(hermitian_type) , intent(in) :: classA
5847 end subroutine
5848#endif
5849
5850#if CK1_ENABLED
5851 PURE module subroutine hemv_EXP_CHA_SLA_CNB_SFB_CK1(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5852#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5853 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SLA_CNB_SFB_CK1
5854#endif
5855 use pm_kind, only: CKG => CK1
5856 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5857 complex(CKG) , intent(in) :: alpha, beta
5858 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5859 complex(CKG) , intent(in) , contiguous :: matB(:)
5860 complex(CKG) , intent(inout) , contiguous :: matC(:)
5861 type(lowDia_type) , intent(in) :: subsetA
5862 type(hermitian_type) , intent(in) :: classA
5863 end subroutine
5864#endif
5865
5866 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5867
5868#if RK5_ENABLED
5869 PURE module subroutine hemv_EXP_CHA_SLA_CNB_SFB_RK5(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5870#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5871 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SLA_CNB_SFB_RK5
5872#endif
5873 use pm_kind, only: RKG => RK5
5874 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5875 real(RKG) , intent(in) :: alpha, beta
5876 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5877 real(RKG) , intent(in) , contiguous :: matB(:)
5878 real(RKG) , intent(inout) , contiguous :: matC(:)
5879 type(lowDia_type) , intent(in) :: subsetA
5880 type(hermitian_type) , intent(in) :: classA
5881 end subroutine
5882#endif
5883
5884#if RK4_ENABLED
5885 PURE module subroutine hemv_EXP_CHA_SLA_CNB_SFB_RK4(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5886#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5887 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SLA_CNB_SFB_RK4
5888#endif
5889 use pm_kind, only: RKG => RK4
5890 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5891 real(RKG) , intent(in) :: alpha, beta
5892 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5893 real(RKG) , intent(in) , contiguous :: matB(:)
5894 real(RKG) , intent(inout) , contiguous :: matC(:)
5895 type(lowDia_type) , intent(in) :: subsetA
5896 type(hermitian_type) , intent(in) :: classA
5897 end subroutine
5898#endif
5899
5900#if RK3_ENABLED
5901 PURE module subroutine hemv_EXP_CHA_SLA_CNB_SFB_RK3(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5902#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5903 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SLA_CNB_SFB_RK3
5904#endif
5905 use pm_kind, only: RKG => RK3
5906 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5907 real(RKG) , intent(in) :: alpha, beta
5908 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5909 real(RKG) , intent(in) , contiguous :: matB(:)
5910 real(RKG) , intent(inout) , contiguous :: matC(:)
5911 type(lowDia_type) , intent(in) :: subsetA
5912 type(hermitian_type) , intent(in) :: classA
5913 end subroutine
5914#endif
5915
5916#if RK2_ENABLED
5917 PURE module subroutine hemv_EXP_CHA_SLA_CNB_SFB_RK2(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5918#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5919 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SLA_CNB_SFB_RK2
5920#endif
5921 use pm_kind, only: RKG => RK2
5922 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5923 real(RKG) , intent(in) :: alpha, beta
5924 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5925 real(RKG) , intent(in) , contiguous :: matB(:)
5926 real(RKG) , intent(inout) , contiguous :: matC(:)
5927 type(lowDia_type) , intent(in) :: subsetA
5928 type(hermitian_type) , intent(in) :: classA
5929 end subroutine
5930#endif
5931
5932#if RK1_ENABLED
5933 PURE module subroutine hemv_EXP_CHA_SLA_CNB_SFB_RK1(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
5934#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5935 !DEC$ ATTRIBUTES DLLEXPORT :: hemv_EXP_CHA_SLA_CNB_SFB_RK1
5936#endif
5937 use pm_kind, only: RKG => RK1
5938 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
5939 real(RKG) , intent(in) :: alpha, beta
5940 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
5941 real(RKG) , intent(in) , contiguous :: matB(:)
5942 real(RKG) , intent(inout) , contiguous :: matC(:)
5943 type(lowDia_type) , intent(in) :: subsetA
5944 type(hermitian_type) , intent(in) :: classA
5945 end subroutine
5946#endif
5947
5948 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5949
5950 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5951 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5952 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5953
5954 end interface
5955
5956 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5957 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5958 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5959
5960 ! BLAS 3: `SSYMM`, `DSYMM`, `CSYMM`, `ZSYMM`
5961
5962 interface setMatMulAdd
5963
5964 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5965 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5966 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5967
5968 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5969
5970#if IK5_ENABLED
5971 PURE module subroutine symm_ASS_CSA_SUA_CNB_SFB_IK5(matA, classA, subsetA, matB, matC, alpha, beta)
5972#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5973 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SUA_CNB_SFB_IK5
5974#endif
5975 use pm_kind, only: IKG => IK5
5976 integer(IKG) , intent(in) , optional :: alpha, beta
5977 integer(IKG) , intent(in) , contiguous :: matA(:,:)
5978 integer(IKG) , intent(in) , contiguous :: matB(:,:)
5979 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
5980 type(uppDia_type) , intent(in) :: subsetA
5981 type(symmetric_type) , intent(in) :: classA
5982 end subroutine
5983#endif
5984
5985#if IK4_ENABLED
5986 PURE module subroutine symm_ASS_CSA_SUA_CNB_SFB_IK4(matA, classA, subsetA, matB, matC, alpha, beta)
5987#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5988 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SUA_CNB_SFB_IK4
5989#endif
5990 use pm_kind, only: IKG => IK4
5991 integer(IKG) , intent(in) , optional :: alpha, beta
5992 integer(IKG) , intent(in) , contiguous :: matA(:,:)
5993 integer(IKG) , intent(in) , contiguous :: matB(:,:)
5994 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
5995 type(uppDia_type) , intent(in) :: subsetA
5996 type(symmetric_type) , intent(in) :: classA
5997 end subroutine
5998#endif
5999
6000#if IK3_ENABLED
6001 PURE module subroutine symm_ASS_CSA_SUA_CNB_SFB_IK3(matA, classA, subsetA, matB, matC, alpha, beta)
6002#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6003 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SUA_CNB_SFB_IK3
6004#endif
6005 use pm_kind, only: IKG => IK3
6006 integer(IKG) , intent(in) , optional :: alpha, beta
6007 integer(IKG) , intent(in) , contiguous :: matA(:,:)
6008 integer(IKG) , intent(in) , contiguous :: matB(:,:)
6009 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
6010 type(uppDia_type) , intent(in) :: subsetA
6011 type(symmetric_type) , intent(in) :: classA
6012 end subroutine
6013#endif
6014
6015#if IK2_ENABLED
6016 PURE module subroutine symm_ASS_CSA_SUA_CNB_SFB_IK2(matA, classA, subsetA, matB, matC, alpha, beta)
6017#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6018 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SUA_CNB_SFB_IK2
6019#endif
6020 use pm_kind, only: IKG => IK2
6021 integer(IKG) , intent(in) , optional :: alpha, beta
6022 integer(IKG) , intent(in) , contiguous :: matA(:,:)
6023 integer(IKG) , intent(in) , contiguous :: matB(:,:)
6024 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
6025 type(uppDia_type) , intent(in) :: subsetA
6026 type(symmetric_type) , intent(in) :: classA
6027 end subroutine
6028#endif
6029
6030#if IK1_ENABLED
6031 PURE module subroutine symm_ASS_CSA_SUA_CNB_SFB_IK1(matA, classA, subsetA, matB, matC, alpha, beta)
6032#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6033 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SUA_CNB_SFB_IK1
6034#endif
6035 use pm_kind, only: IKG => IK1
6036 integer(IKG) , intent(in) , optional :: alpha, beta
6037 integer(IKG) , intent(in) , contiguous :: matA(:,:)
6038 integer(IKG) , intent(in) , contiguous :: matB(:,:)
6039 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
6040 type(uppDia_type) , intent(in) :: subsetA
6041 type(symmetric_type) , intent(in) :: classA
6042 end subroutine
6043#endif
6044
6045 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6046
6047#if CK5_ENABLED
6048 PURE module subroutine symm_ASS_CSA_SUA_CNB_SFB_CK5(matA, classA, subsetA, matB, matC, alpha, beta)
6049#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6050 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SUA_CNB_SFB_CK5
6051#endif
6052 use pm_kind, only: CKG => CK5
6053 complex(CKG) , intent(in) , optional :: alpha, beta
6054 complex(CKG) , intent(in) , contiguous :: matA(:,:)
6055 complex(CKG) , intent(in) , contiguous :: matB(:,:)
6056 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
6057 type(uppDia_type) , intent(in) :: subsetA
6058 type(symmetric_type) , intent(in) :: classA
6059 end subroutine
6060#endif
6061
6062#if CK4_ENABLED
6063 PURE module subroutine symm_ASS_CSA_SUA_CNB_SFB_CK4(matA, classA, subsetA, matB, matC, alpha, beta)
6064#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6065 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SUA_CNB_SFB_CK4
6066#endif
6067 use pm_kind, only: CKG => CK4
6068 complex(CKG) , intent(in) , optional :: alpha, beta
6069 complex(CKG) , intent(in) , contiguous :: matA(:,:)
6070 complex(CKG) , intent(in) , contiguous :: matB(:,:)
6071 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
6072 type(uppDia_type) , intent(in) :: subsetA
6073 type(symmetric_type) , intent(in) :: classA
6074 end subroutine
6075#endif
6076
6077#if CK3_ENABLED
6078 PURE module subroutine symm_ASS_CSA_SUA_CNB_SFB_CK3(matA, classA, subsetA, matB, matC, alpha, beta)
6079#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6080 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SUA_CNB_SFB_CK3
6081#endif
6082 use pm_kind, only: CKG => CK3
6083 complex(CKG) , intent(in) , optional :: alpha, beta
6084 complex(CKG) , intent(in) , contiguous :: matA(:,:)
6085 complex(CKG) , intent(in) , contiguous :: matB(:,:)
6086 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
6087 type(uppDia_type) , intent(in) :: subsetA
6088 type(symmetric_type) , intent(in) :: classA
6089 end subroutine
6090#endif
6091
6092#if CK2_ENABLED
6093 PURE module subroutine symm_ASS_CSA_SUA_CNB_SFB_CK2(matA, classA, subsetA, matB, matC, alpha, beta)
6094#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6095 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SUA_CNB_SFB_CK2
6096#endif
6097 use pm_kind, only: CKG => CK2
6098 complex(CKG) , intent(in) , optional :: alpha, beta
6099 complex(CKG) , intent(in) , contiguous :: matA(:,:)
6100 complex(CKG) , intent(in) , contiguous :: matB(:,:)
6101 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
6102 type(uppDia_type) , intent(in) :: subsetA
6103 type(symmetric_type) , intent(in) :: classA
6104 end subroutine
6105#endif
6106
6107#if CK1_ENABLED
6108 PURE module subroutine symm_ASS_CSA_SUA_CNB_SFB_CK1(matA, classA, subsetA, matB, matC, alpha, beta)
6109#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6110 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SUA_CNB_SFB_CK1
6111#endif
6112 use pm_kind, only: CKG => CK1
6113 complex(CKG) , intent(in) , optional :: alpha, beta
6114 complex(CKG) , intent(in) , contiguous :: matA(:,:)
6115 complex(CKG) , intent(in) , contiguous :: matB(:,:)
6116 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
6117 type(uppDia_type) , intent(in) :: subsetA
6118 type(symmetric_type) , intent(in) :: classA
6119 end subroutine
6120#endif
6121
6122 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6123
6124#if RK5_ENABLED
6125 PURE module subroutine symm_ASS_CSA_SUA_CNB_SFB_RK5(matA, classA, subsetA, matB, matC, alpha, beta)
6126#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6127 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SUA_CNB_SFB_RK5
6128#endif
6129 use pm_kind, only: RKG => RK5
6130 real(RKG) , intent(in) , optional :: alpha, beta
6131 real(RKG) , intent(in) , contiguous :: matA(:,:)
6132 real(RKG) , intent(in) , contiguous :: matB(:,:)
6133 real(RKG) , intent(inout) , contiguous :: matC(:,:)
6134 type(uppDia_type) , intent(in) :: subsetA
6135 type(symmetric_type) , intent(in) :: classA
6136 end subroutine
6137#endif
6138
6139#if RK4_ENABLED
6140 PURE module subroutine symm_ASS_CSA_SUA_CNB_SFB_RK4(matA, classA, subsetA, matB, matC, alpha, beta)
6141#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6142 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SUA_CNB_SFB_RK4
6143#endif
6144 use pm_kind, only: RKG => RK4
6145 real(RKG) , intent(in) , optional :: alpha, beta
6146 real(RKG) , intent(in) , contiguous :: matA(:,:)
6147 real(RKG) , intent(in) , contiguous :: matB(:,:)
6148 real(RKG) , intent(inout) , contiguous :: matC(:,:)
6149 type(uppDia_type) , intent(in) :: subsetA
6150 type(symmetric_type) , intent(in) :: classA
6151 end subroutine
6152#endif
6153
6154#if RK3_ENABLED
6155 PURE module subroutine symm_ASS_CSA_SUA_CNB_SFB_RK3(matA, classA, subsetA, matB, matC, alpha, beta)
6156#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6157 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SUA_CNB_SFB_RK3
6158#endif
6159 use pm_kind, only: RKG => RK3
6160 real(RKG) , intent(in) , optional :: alpha, beta
6161 real(RKG) , intent(in) , contiguous :: matA(:,:)
6162 real(RKG) , intent(in) , contiguous :: matB(:,:)
6163 real(RKG) , intent(inout) , contiguous :: matC(:,:)
6164 type(uppDia_type) , intent(in) :: subsetA
6165 type(symmetric_type) , intent(in) :: classA
6166 end subroutine
6167#endif
6168
6169#if RK2_ENABLED
6170 PURE module subroutine symm_ASS_CSA_SUA_CNB_SFB_RK2(matA, classA, subsetA, matB, matC, alpha, beta)
6171#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6172 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SUA_CNB_SFB_RK2
6173#endif
6174 use pm_kind, only: RKG => RK2
6175 real(RKG) , intent(in) , optional :: alpha, beta
6176 real(RKG) , intent(in) , contiguous :: matA(:,:)
6177 real(RKG) , intent(in) , contiguous :: matB(:,:)
6178 real(RKG) , intent(inout) , contiguous :: matC(:,:)
6179 type(uppDia_type) , intent(in) :: subsetA
6180 type(symmetric_type) , intent(in) :: classA
6181 end subroutine
6182#endif
6183
6184#if RK1_ENABLED
6185 PURE module subroutine symm_ASS_CSA_SUA_CNB_SFB_RK1(matA, classA, subsetA, matB, matC, alpha, beta)
6186#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6187 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SUA_CNB_SFB_RK1
6188#endif
6189 use pm_kind, only: RKG => RK1
6190 real(RKG) , intent(in) , optional :: alpha, beta
6191 real(RKG) , intent(in) , contiguous :: matA(:,:)
6192 real(RKG) , intent(in) , contiguous :: matB(:,:)
6193 real(RKG) , intent(inout) , contiguous :: matC(:,:)
6194 type(uppDia_type) , intent(in) :: subsetA
6195 type(symmetric_type) , intent(in) :: classA
6196 end subroutine
6197#endif
6198
6199 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6200
6201 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6202 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6203 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6204
6205 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6206
6207#if IK5_ENABLED
6208 PURE module subroutine symm_ASS_CSA_SLA_CNB_SFB_IK5(matA, classA, subsetA, matB, matC, alpha, beta)
6209#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6210 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SLA_CNB_SFB_IK5
6211#endif
6212 use pm_kind, only: IKG => IK5
6213 integer(IKG) , intent(in) , optional :: alpha, beta
6214 integer(IKG) , intent(in) , contiguous :: matA(:,:)
6215 integer(IKG) , intent(in) , contiguous :: matB(:,:)
6216 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
6217 type(lowDia_type) , intent(in) :: subsetA
6218 type(symmetric_type) , intent(in) :: classA
6219 end subroutine
6220#endif
6221
6222#if IK4_ENABLED
6223 PURE module subroutine symm_ASS_CSA_SLA_CNB_SFB_IK4(matA, classA, subsetA, matB, matC, alpha, beta)
6224#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6225 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SLA_CNB_SFB_IK4
6226#endif
6227 use pm_kind, only: IKG => IK4
6228 integer(IKG) , intent(in) , optional :: alpha, beta
6229 integer(IKG) , intent(in) , contiguous :: matA(:,:)
6230 integer(IKG) , intent(in) , contiguous :: matB(:,:)
6231 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
6232 type(lowDia_type) , intent(in) :: subsetA
6233 type(symmetric_type) , intent(in) :: classA
6234 end subroutine
6235#endif
6236
6237#if IK3_ENABLED
6238 PURE module subroutine symm_ASS_CSA_SLA_CNB_SFB_IK3(matA, classA, subsetA, matB, matC, alpha, beta)
6239#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6240 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SLA_CNB_SFB_IK3
6241#endif
6242 use pm_kind, only: IKG => IK3
6243 integer(IKG) , intent(in) , optional :: alpha, beta
6244 integer(IKG) , intent(in) , contiguous :: matA(:,:)
6245 integer(IKG) , intent(in) , contiguous :: matB(:,:)
6246 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
6247 type(lowDia_type) , intent(in) :: subsetA
6248 type(symmetric_type) , intent(in) :: classA
6249 end subroutine
6250#endif
6251
6252#if IK2_ENABLED
6253 PURE module subroutine symm_ASS_CSA_SLA_CNB_SFB_IK2(matA, classA, subsetA, matB, matC, alpha, beta)
6254#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6255 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SLA_CNB_SFB_IK2
6256#endif
6257 use pm_kind, only: IKG => IK2
6258 integer(IKG) , intent(in) , optional :: alpha, beta
6259 integer(IKG) , intent(in) , contiguous :: matA(:,:)
6260 integer(IKG) , intent(in) , contiguous :: matB(:,:)
6261 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
6262 type(lowDia_type) , intent(in) :: subsetA
6263 type(symmetric_type) , intent(in) :: classA
6264 end subroutine
6265#endif
6266
6267#if IK1_ENABLED
6268 PURE module subroutine symm_ASS_CSA_SLA_CNB_SFB_IK1(matA, classA, subsetA, matB, matC, alpha, beta)
6269#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6270 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SLA_CNB_SFB_IK1
6271#endif
6272 use pm_kind, only: IKG => IK1
6273 integer(IKG) , intent(in) , optional :: alpha, beta
6274 integer(IKG) , intent(in) , contiguous :: matA(:,:)
6275 integer(IKG) , intent(in) , contiguous :: matB(:,:)
6276 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
6277 type(lowDia_type) , intent(in) :: subsetA
6278 type(symmetric_type) , intent(in) :: classA
6279 end subroutine
6280#endif
6281
6282 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6283
6284#if CK5_ENABLED
6285 PURE module subroutine symm_ASS_CSA_SLA_CNB_SFB_CK5(matA, classA, subsetA, matB, matC, alpha, beta)
6286#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6287 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SLA_CNB_SFB_CK5
6288#endif
6289 use pm_kind, only: CKG => CK5
6290 complex(CKG) , intent(in) , optional :: alpha, beta
6291 complex(CKG) , intent(in) , contiguous :: matA(:,:)
6292 complex(CKG) , intent(in) , contiguous :: matB(:,:)
6293 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
6294 type(lowDia_type) , intent(in) :: subsetA
6295 type(symmetric_type) , intent(in) :: classA
6296 end subroutine
6297#endif
6298
6299#if CK4_ENABLED
6300 PURE module subroutine symm_ASS_CSA_SLA_CNB_SFB_CK4(matA, classA, subsetA, matB, matC, alpha, beta)
6301#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6302 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SLA_CNB_SFB_CK4
6303#endif
6304 use pm_kind, only: CKG => CK4
6305 complex(CKG) , intent(in) , optional :: alpha, beta
6306 complex(CKG) , intent(in) , contiguous :: matA(:,:)
6307 complex(CKG) , intent(in) , contiguous :: matB(:,:)
6308 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
6309 type(lowDia_type) , intent(in) :: subsetA
6310 type(symmetric_type) , intent(in) :: classA
6311 end subroutine
6312#endif
6313
6314#if CK3_ENABLED
6315 PURE module subroutine symm_ASS_CSA_SLA_CNB_SFB_CK3(matA, classA, subsetA, matB, matC, alpha, beta)
6316#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6317 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SLA_CNB_SFB_CK3
6318#endif
6319 use pm_kind, only: CKG => CK3
6320 complex(CKG) , intent(in) , optional :: alpha, beta
6321 complex(CKG) , intent(in) , contiguous :: matA(:,:)
6322 complex(CKG) , intent(in) , contiguous :: matB(:,:)
6323 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
6324 type(lowDia_type) , intent(in) :: subsetA
6325 type(symmetric_type) , intent(in) :: classA
6326 end subroutine
6327#endif
6328
6329#if CK2_ENABLED
6330 PURE module subroutine symm_ASS_CSA_SLA_CNB_SFB_CK2(matA, classA, subsetA, matB, matC, alpha, beta)
6331#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6332 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SLA_CNB_SFB_CK2
6333#endif
6334 use pm_kind, only: CKG => CK2
6335 complex(CKG) , intent(in) , optional :: alpha, beta
6336 complex(CKG) , intent(in) , contiguous :: matA(:,:)
6337 complex(CKG) , intent(in) , contiguous :: matB(:,:)
6338 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
6339 type(lowDia_type) , intent(in) :: subsetA
6340 type(symmetric_type) , intent(in) :: classA
6341 end subroutine
6342#endif
6343
6344#if CK1_ENABLED
6345 PURE module subroutine symm_ASS_CSA_SLA_CNB_SFB_CK1(matA, classA, subsetA, matB, matC, alpha, beta)
6346#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6347 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SLA_CNB_SFB_CK1
6348#endif
6349 use pm_kind, only: CKG => CK1
6350 complex(CKG) , intent(in) , optional :: alpha, beta
6351 complex(CKG) , intent(in) , contiguous :: matA(:,:)
6352 complex(CKG) , intent(in) , contiguous :: matB(:,:)
6353 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
6354 type(lowDia_type) , intent(in) :: subsetA
6355 type(symmetric_type) , intent(in) :: classA
6356 end subroutine
6357#endif
6358
6359 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6360
6361#if RK5_ENABLED
6362 PURE module subroutine symm_ASS_CSA_SLA_CNB_SFB_RK5(matA, classA, subsetA, matB, matC, alpha, beta)
6363#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6364 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SLA_CNB_SFB_RK5
6365#endif
6366 use pm_kind, only: RKG => RK5
6367 real(RKG) , intent(in) , optional :: alpha, beta
6368 real(RKG) , intent(in) , contiguous :: matA(:,:)
6369 real(RKG) , intent(in) , contiguous :: matB(:,:)
6370 real(RKG) , intent(inout) , contiguous :: matC(:,:)
6371 type(lowDia_type) , intent(in) :: subsetA
6372 type(symmetric_type) , intent(in) :: classA
6373 end subroutine
6374#endif
6375
6376#if RK4_ENABLED
6377 PURE module subroutine symm_ASS_CSA_SLA_CNB_SFB_RK4(matA, classA, subsetA, matB, matC, alpha, beta)
6378#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6379 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SLA_CNB_SFB_RK4
6380#endif
6381 use pm_kind, only: RKG => RK4
6382 real(RKG) , intent(in) , optional :: alpha, beta
6383 real(RKG) , intent(in) , contiguous :: matA(:,:)
6384 real(RKG) , intent(in) , contiguous :: matB(:,:)
6385 real(RKG) , intent(inout) , contiguous :: matC(:,:)
6386 type(lowDia_type) , intent(in) :: subsetA
6387 type(symmetric_type) , intent(in) :: classA
6388 end subroutine
6389#endif
6390
6391#if RK3_ENABLED
6392 PURE module subroutine symm_ASS_CSA_SLA_CNB_SFB_RK3(matA, classA, subsetA, matB, matC, alpha, beta)
6393#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6394 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SLA_CNB_SFB_RK3
6395#endif
6396 use pm_kind, only: RKG => RK3
6397 real(RKG) , intent(in) , optional :: alpha, beta
6398 real(RKG) , intent(in) , contiguous :: matA(:,:)
6399 real(RKG) , intent(in) , contiguous :: matB(:,:)
6400 real(RKG) , intent(inout) , contiguous :: matC(:,:)
6401 type(lowDia_type) , intent(in) :: subsetA
6402 type(symmetric_type) , intent(in) :: classA
6403 end subroutine
6404#endif
6405
6406#if RK2_ENABLED
6407 PURE module subroutine symm_ASS_CSA_SLA_CNB_SFB_RK2(matA, classA, subsetA, matB, matC, alpha, beta)
6408#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6409 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SLA_CNB_SFB_RK2
6410#endif
6411 use pm_kind, only: RKG => RK2
6412 real(RKG) , intent(in) , optional :: alpha, beta
6413 real(RKG) , intent(in) , contiguous :: matA(:,:)
6414 real(RKG) , intent(in) , contiguous :: matB(:,:)
6415 real(RKG) , intent(inout) , contiguous :: matC(:,:)
6416 type(lowDia_type) , intent(in) :: subsetA
6417 type(symmetric_type) , intent(in) :: classA
6418 end subroutine
6419#endif
6420
6421#if RK1_ENABLED
6422 PURE module subroutine symm_ASS_CSA_SLA_CNB_SFB_RK1(matA, classA, subsetA, matB, matC, alpha, beta)
6423#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6424 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CSA_SLA_CNB_SFB_RK1
6425#endif
6426 use pm_kind, only: RKG => RK1
6427 real(RKG) , intent(in) , optional :: alpha, beta
6428 real(RKG) , intent(in) , contiguous :: matA(:,:)
6429 real(RKG) , intent(in) , contiguous :: matB(:,:)
6430 real(RKG) , intent(inout) , contiguous :: matC(:,:)
6431 type(lowDia_type) , intent(in) :: subsetA
6432 type(symmetric_type) , intent(in) :: classA
6433 end subroutine
6434#endif
6435
6436 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6437
6438 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6439 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6440 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6441
6442 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6443
6444#if IK5_ENABLED
6445 PURE module subroutine symm_ASS_CNA_SFA_CSB_SUB_IK5(matA, matB, classB, subsetB, matC, alpha, beta)
6446#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6447 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SUB_IK5
6448#endif
6449 use pm_kind, only: IKG => IK5
6450 integer(IKG) , intent(in) , optional :: alpha, beta
6451 integer(IKG) , intent(in) , contiguous :: matA(:,:)
6452 integer(IKG) , intent(in) , contiguous :: matB(:,:)
6453 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
6454 type(uppDia_type) , intent(in) :: subsetB
6455 type(symmetric_type) , intent(in) :: classB
6456 end subroutine
6457#endif
6458
6459#if IK4_ENABLED
6460 PURE module subroutine symm_ASS_CNA_SFA_CSB_SUB_IK4(matA, matB, classB, subsetB, matC, alpha, beta)
6461#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6462 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SUB_IK4
6463#endif
6464 use pm_kind, only: IKG => IK4
6465 integer(IKG) , intent(in) , optional :: alpha, beta
6466 integer(IKG) , intent(in) , contiguous :: matA(:,:)
6467 integer(IKG) , intent(in) , contiguous :: matB(:,:)
6468 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
6469 type(uppDia_type) , intent(in) :: subsetB
6470 type(symmetric_type) , intent(in) :: classB
6471 end subroutine
6472#endif
6473
6474#if IK3_ENABLED
6475 PURE module subroutine symm_ASS_CNA_SFA_CSB_SUB_IK3(matA, matB, classB, subsetB, matC, alpha, beta)
6476#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6477 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SUB_IK3
6478#endif
6479 use pm_kind, only: IKG => IK3
6480 integer(IKG) , intent(in) , optional :: alpha, beta
6481 integer(IKG) , intent(in) , contiguous :: matA(:,:)
6482 integer(IKG) , intent(in) , contiguous :: matB(:,:)
6483 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
6484 type(uppDia_type) , intent(in) :: subsetB
6485 type(symmetric_type) , intent(in) :: classB
6486 end subroutine
6487#endif
6488
6489#if IK2_ENABLED
6490 PURE module subroutine symm_ASS_CNA_SFA_CSB_SUB_IK2(matA, matB, classB, subsetB, matC, alpha, beta)
6491#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6492 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SUB_IK2
6493#endif
6494 use pm_kind, only: IKG => IK2
6495 integer(IKG) , intent(in) , optional :: alpha, beta
6496 integer(IKG) , intent(in) , contiguous :: matA(:,:)
6497 integer(IKG) , intent(in) , contiguous :: matB(:,:)
6498 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
6499 type(uppDia_type) , intent(in) :: subsetB
6500 type(symmetric_type) , intent(in) :: classB
6501 end subroutine
6502#endif
6503
6504#if IK1_ENABLED
6505 PURE module subroutine symm_ASS_CNA_SFA_CSB_SUB_IK1(matA, matB, classB, subsetB, matC, alpha, beta)
6506#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6507 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SUB_IK1
6508#endif
6509 use pm_kind, only: IKG => IK1
6510 integer(IKG) , intent(in) , optional :: alpha, beta
6511 integer(IKG) , intent(in) , contiguous :: matA(:,:)
6512 integer(IKG) , intent(in) , contiguous :: matB(:,:)
6513 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
6514 type(uppDia_type) , intent(in) :: subsetB
6515 type(symmetric_type) , intent(in) :: classB
6516 end subroutine
6517#endif
6518
6519 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6520
6521#if CK5_ENABLED
6522 PURE module subroutine symm_ASS_CNA_SFA_CSB_SUB_CK5(matA, matB, classB, subsetB, matC, alpha, beta)
6523#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6524 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SUB_CK5
6525#endif
6526 use pm_kind, only: CKG => CK5
6527 complex(CKG) , intent(in) , optional :: alpha, beta
6528 complex(CKG) , intent(in) , contiguous :: matA(:,:)
6529 complex(CKG) , intent(in) , contiguous :: matB(:,:)
6530 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
6531 type(uppDia_type) , intent(in) :: subsetB
6532 type(symmetric_type) , intent(in) :: classB
6533 end subroutine
6534#endif
6535
6536#if CK4_ENABLED
6537 PURE module subroutine symm_ASS_CNA_SFA_CSB_SUB_CK4(matA, matB, classB, subsetB, matC, alpha, beta)
6538#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6539 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SUB_CK4
6540#endif
6541 use pm_kind, only: CKG => CK4
6542 complex(CKG) , intent(in) , optional :: alpha, beta
6543 complex(CKG) , intent(in) , contiguous :: matA(:,:)
6544 complex(CKG) , intent(in) , contiguous :: matB(:,:)
6545 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
6546 type(uppDia_type) , intent(in) :: subsetB
6547 type(symmetric_type) , intent(in) :: classB
6548 end subroutine
6549#endif
6550
6551#if CK3_ENABLED
6552 PURE module subroutine symm_ASS_CNA_SFA_CSB_SUB_CK3(matA, matB, classB, subsetB, matC, alpha, beta)
6553#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6554 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SUB_CK3
6555#endif
6556 use pm_kind, only: CKG => CK3
6557 complex(CKG) , intent(in) , optional :: alpha, beta
6558 complex(CKG) , intent(in) , contiguous :: matA(:,:)
6559 complex(CKG) , intent(in) , contiguous :: matB(:,:)
6560 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
6561 type(uppDia_type) , intent(in) :: subsetB
6562 type(symmetric_type) , intent(in) :: classB
6563 end subroutine
6564#endif
6565
6566#if CK2_ENABLED
6567 PURE module subroutine symm_ASS_CNA_SFA_CSB_SUB_CK2(matA, matB, classB, subsetB, matC, alpha, beta)
6568#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6569 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SUB_CK2
6570#endif
6571 use pm_kind, only: CKG => CK2
6572 complex(CKG) , intent(in) , optional :: alpha, beta
6573 complex(CKG) , intent(in) , contiguous :: matA(:,:)
6574 complex(CKG) , intent(in) , contiguous :: matB(:,:)
6575 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
6576 type(uppDia_type) , intent(in) :: subsetB
6577 type(symmetric_type) , intent(in) :: classB
6578 end subroutine
6579#endif
6580
6581#if CK1_ENABLED
6582 PURE module subroutine symm_ASS_CNA_SFA_CSB_SUB_CK1(matA, matB, classB, subsetB, matC, alpha, beta)
6583#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6584 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SUB_CK1
6585#endif
6586 use pm_kind, only: CKG => CK1
6587 complex(CKG) , intent(in) , optional :: alpha, beta
6588 complex(CKG) , intent(in) , contiguous :: matA(:,:)
6589 complex(CKG) , intent(in) , contiguous :: matB(:,:)
6590 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
6591 type(uppDia_type) , intent(in) :: subsetB
6592 type(symmetric_type) , intent(in) :: classB
6593 end subroutine
6594#endif
6595
6596 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6597
6598#if RK5_ENABLED
6599 PURE module subroutine symm_ASS_CNA_SFA_CSB_SUB_RK5(matA, matB, classB, subsetB, matC, alpha, beta)
6600#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6601 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SUB_RK5
6602#endif
6603 use pm_kind, only: RKG => RK5
6604 real(RKG) , intent(in) , optional :: alpha, beta
6605 real(RKG) , intent(in) , contiguous :: matA(:,:)
6606 real(RKG) , intent(in) , contiguous :: matB(:,:)
6607 real(RKG) , intent(inout) , contiguous :: matC(:,:)
6608 type(uppDia_type) , intent(in) :: subsetB
6609 type(symmetric_type) , intent(in) :: classB
6610 end subroutine
6611#endif
6612
6613#if RK4_ENABLED
6614 PURE module subroutine symm_ASS_CNA_SFA_CSB_SUB_RK4(matA, matB, classB, subsetB, matC, alpha, beta)
6615#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6616 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SUB_RK4
6617#endif
6618 use pm_kind, only: RKG => RK4
6619 real(RKG) , intent(in) , optional :: alpha, beta
6620 real(RKG) , intent(in) , contiguous :: matA(:,:)
6621 real(RKG) , intent(in) , contiguous :: matB(:,:)
6622 real(RKG) , intent(inout) , contiguous :: matC(:,:)
6623 type(uppDia_type) , intent(in) :: subsetB
6624 type(symmetric_type) , intent(in) :: classB
6625 end subroutine
6626#endif
6627
6628#if RK3_ENABLED
6629 PURE module subroutine symm_ASS_CNA_SFA_CSB_SUB_RK3(matA, matB, classB, subsetB, matC, alpha, beta)
6630#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6631 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SUB_RK3
6632#endif
6633 use pm_kind, only: RKG => RK3
6634 real(RKG) , intent(in) , optional :: alpha, beta
6635 real(RKG) , intent(in) , contiguous :: matA(:,:)
6636 real(RKG) , intent(in) , contiguous :: matB(:,:)
6637 real(RKG) , intent(inout) , contiguous :: matC(:,:)
6638 type(uppDia_type) , intent(in) :: subsetB
6639 type(symmetric_type) , intent(in) :: classB
6640 end subroutine
6641#endif
6642
6643#if RK2_ENABLED
6644 PURE module subroutine symm_ASS_CNA_SFA_CSB_SUB_RK2(matA, matB, classB, subsetB, matC, alpha, beta)
6645#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6646 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SUB_RK2
6647#endif
6648 use pm_kind, only: RKG => RK2
6649 real(RKG) , intent(in) , optional :: alpha, beta
6650 real(RKG) , intent(in) , contiguous :: matA(:,:)
6651 real(RKG) , intent(in) , contiguous :: matB(:,:)
6652 real(RKG) , intent(inout) , contiguous :: matC(:,:)
6653 type(uppDia_type) , intent(in) :: subsetB
6654 type(symmetric_type) , intent(in) :: classB
6655 end subroutine
6656#endif
6657
6658#if RK1_ENABLED
6659 PURE module subroutine symm_ASS_CNA_SFA_CSB_SUB_RK1(matA, matB, classB, subsetB, matC, alpha, beta)
6660#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6661 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SUB_RK1
6662#endif
6663 use pm_kind, only: RKG => RK1
6664 real(RKG) , intent(in) , optional :: alpha, beta
6665 real(RKG) , intent(in) , contiguous :: matA(:,:)
6666 real(RKG) , intent(in) , contiguous :: matB(:,:)
6667 real(RKG) , intent(inout) , contiguous :: matC(:,:)
6668 type(uppDia_type) , intent(in) :: subsetB
6669 type(symmetric_type) , intent(in) :: classB
6670 end subroutine
6671#endif
6672
6673 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6674
6675 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6676 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6677 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6678
6679 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6680
6681#if IK5_ENABLED
6682 PURE module subroutine symm_ASS_CNA_SFA_CSB_SLB_IK5(matA, matB, classB, subsetB, matC, alpha, beta)
6683#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6684 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SLB_IK5
6685#endif
6686 use pm_kind, only: IKG => IK5
6687 integer(IKG) , intent(in) , optional :: alpha, beta
6688 integer(IKG) , intent(in) , contiguous :: matA(:,:)
6689 integer(IKG) , intent(in) , contiguous :: matB(:,:)
6690 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
6691 type(lowDia_type) , intent(in) :: subsetB
6692 type(symmetric_type) , intent(in) :: classB
6693 end subroutine
6694#endif
6695
6696#if IK4_ENABLED
6697 PURE module subroutine symm_ASS_CNA_SFA_CSB_SLB_IK4(matA, matB, classB, subsetB, matC, alpha, beta)
6698#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6699 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SLB_IK4
6700#endif
6701 use pm_kind, only: IKG => IK4
6702 integer(IKG) , intent(in) , optional :: alpha, beta
6703 integer(IKG) , intent(in) , contiguous :: matA(:,:)
6704 integer(IKG) , intent(in) , contiguous :: matB(:,:)
6705 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
6706 type(lowDia_type) , intent(in) :: subsetB
6707 type(symmetric_type) , intent(in) :: classB
6708 end subroutine
6709#endif
6710
6711#if IK3_ENABLED
6712 PURE module subroutine symm_ASS_CNA_SFA_CSB_SLB_IK3(matA, matB, classB, subsetB, matC, alpha, beta)
6713#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6714 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SLB_IK3
6715#endif
6716 use pm_kind, only: IKG => IK3
6717 integer(IKG) , intent(in) , optional :: alpha, beta
6718 integer(IKG) , intent(in) , contiguous :: matA(:,:)
6719 integer(IKG) , intent(in) , contiguous :: matB(:,:)
6720 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
6721 type(lowDia_type) , intent(in) :: subsetB
6722 type(symmetric_type) , intent(in) :: classB
6723 end subroutine
6724#endif
6725
6726#if IK2_ENABLED
6727 PURE module subroutine symm_ASS_CNA_SFA_CSB_SLB_IK2(matA, matB, classB, subsetB, matC, alpha, beta)
6728#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6729 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SLB_IK2
6730#endif
6731 use pm_kind, only: IKG => IK2
6732 integer(IKG) , intent(in) , optional :: alpha, beta
6733 integer(IKG) , intent(in) , contiguous :: matA(:,:)
6734 integer(IKG) , intent(in) , contiguous :: matB(:,:)
6735 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
6736 type(lowDia_type) , intent(in) :: subsetB
6737 type(symmetric_type) , intent(in) :: classB
6738 end subroutine
6739#endif
6740
6741#if IK1_ENABLED
6742 PURE module subroutine symm_ASS_CNA_SFA_CSB_SLB_IK1(matA, matB, classB, subsetB, matC, alpha, beta)
6743#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6744 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SLB_IK1
6745#endif
6746 use pm_kind, only: IKG => IK1
6747 integer(IKG) , intent(in) , optional :: alpha, beta
6748 integer(IKG) , intent(in) , contiguous :: matA(:,:)
6749 integer(IKG) , intent(in) , contiguous :: matB(:,:)
6750 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
6751 type(lowDia_type) , intent(in) :: subsetB
6752 type(symmetric_type) , intent(in) :: classB
6753 end subroutine
6754#endif
6755
6756 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6757
6758#if CK5_ENABLED
6759 PURE module subroutine symm_ASS_CNA_SFA_CSB_SLB_CK5(matA, matB, classB, subsetB, matC, alpha, beta)
6760#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6761 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SLB_CK5
6762#endif
6763 use pm_kind, only: CKG => CK5
6764 complex(CKG) , intent(in) , optional :: alpha, beta
6765 complex(CKG) , intent(in) , contiguous :: matA(:,:)
6766 complex(CKG) , intent(in) , contiguous :: matB(:,:)
6767 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
6768 type(lowDia_type) , intent(in) :: subsetB
6769 type(symmetric_type) , intent(in) :: classB
6770 end subroutine
6771#endif
6772
6773#if CK4_ENABLED
6774 PURE module subroutine symm_ASS_CNA_SFA_CSB_SLB_CK4(matA, matB, classB, subsetB, matC, alpha, beta)
6775#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6776 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SLB_CK4
6777#endif
6778 use pm_kind, only: CKG => CK4
6779 complex(CKG) , intent(in) , optional :: alpha, beta
6780 complex(CKG) , intent(in) , contiguous :: matA(:,:)
6781 complex(CKG) , intent(in) , contiguous :: matB(:,:)
6782 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
6783 type(lowDia_type) , intent(in) :: subsetB
6784 type(symmetric_type) , intent(in) :: classB
6785 end subroutine
6786#endif
6787
6788#if CK3_ENABLED
6789 PURE module subroutine symm_ASS_CNA_SFA_CSB_SLB_CK3(matA, matB, classB, subsetB, matC, alpha, beta)
6790#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6791 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SLB_CK3
6792#endif
6793 use pm_kind, only: CKG => CK3
6794 complex(CKG) , intent(in) , optional :: alpha, beta
6795 complex(CKG) , intent(in) , contiguous :: matA(:,:)
6796 complex(CKG) , intent(in) , contiguous :: matB(:,:)
6797 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
6798 type(lowDia_type) , intent(in) :: subsetB
6799 type(symmetric_type) , intent(in) :: classB
6800 end subroutine
6801#endif
6802
6803#if CK2_ENABLED
6804 PURE module subroutine symm_ASS_CNA_SFA_CSB_SLB_CK2(matA, matB, classB, subsetB, matC, alpha, beta)
6805#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6806 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SLB_CK2
6807#endif
6808 use pm_kind, only: CKG => CK2
6809 complex(CKG) , intent(in) , optional :: alpha, beta
6810 complex(CKG) , intent(in) , contiguous :: matA(:,:)
6811 complex(CKG) , intent(in) , contiguous :: matB(:,:)
6812 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
6813 type(lowDia_type) , intent(in) :: subsetB
6814 type(symmetric_type) , intent(in) :: classB
6815 end subroutine
6816#endif
6817
6818#if CK1_ENABLED
6819 PURE module subroutine symm_ASS_CNA_SFA_CSB_SLB_CK1(matA, matB, classB, subsetB, matC, alpha, beta)
6820#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6821 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SLB_CK1
6822#endif
6823 use pm_kind, only: CKG => CK1
6824 complex(CKG) , intent(in) , optional :: alpha, beta
6825 complex(CKG) , intent(in) , contiguous :: matA(:,:)
6826 complex(CKG) , intent(in) , contiguous :: matB(:,:)
6827 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
6828 type(lowDia_type) , intent(in) :: subsetB
6829 type(symmetric_type) , intent(in) :: classB
6830 end subroutine
6831#endif
6832
6833 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6834
6835#if RK5_ENABLED
6836 PURE module subroutine symm_ASS_CNA_SFA_CSB_SLB_RK5(matA, matB, classB, subsetB, matC, alpha, beta)
6837#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6838 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SLB_RK5
6839#endif
6840 use pm_kind, only: RKG => RK5
6841 real(RKG) , intent(in) , optional :: alpha, beta
6842 real(RKG) , intent(in) , contiguous :: matA(:,:)
6843 real(RKG) , intent(in) , contiguous :: matB(:,:)
6844 real(RKG) , intent(inout) , contiguous :: matC(:,:)
6845 type(lowDia_type) , intent(in) :: subsetB
6846 type(symmetric_type) , intent(in) :: classB
6847 end subroutine
6848#endif
6849
6850#if RK4_ENABLED
6851 PURE module subroutine symm_ASS_CNA_SFA_CSB_SLB_RK4(matA, matB, classB, subsetB, matC, alpha, beta)
6852#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6853 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SLB_RK4
6854#endif
6855 use pm_kind, only: RKG => RK4
6856 real(RKG) , intent(in) , optional :: alpha, beta
6857 real(RKG) , intent(in) , contiguous :: matA(:,:)
6858 real(RKG) , intent(in) , contiguous :: matB(:,:)
6859 real(RKG) , intent(inout) , contiguous :: matC(:,:)
6860 type(lowDia_type) , intent(in) :: subsetB
6861 type(symmetric_type) , intent(in) :: classB
6862 end subroutine
6863#endif
6864
6865#if RK3_ENABLED
6866 PURE module subroutine symm_ASS_CNA_SFA_CSB_SLB_RK3(matA, matB, classB, subsetB, matC, alpha, beta)
6867#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6868 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SLB_RK3
6869#endif
6870 use pm_kind, only: RKG => RK3
6871 real(RKG) , intent(in) , optional :: alpha, beta
6872 real(RKG) , intent(in) , contiguous :: matA(:,:)
6873 real(RKG) , intent(in) , contiguous :: matB(:,:)
6874 real(RKG) , intent(inout) , contiguous :: matC(:,:)
6875 type(lowDia_type) , intent(in) :: subsetB
6876 type(symmetric_type) , intent(in) :: classB
6877 end subroutine
6878#endif
6879
6880#if RK2_ENABLED
6881 PURE module subroutine symm_ASS_CNA_SFA_CSB_SLB_RK2(matA, matB, classB, subsetB, matC, alpha, beta)
6882#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6883 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SLB_RK2
6884#endif
6885 use pm_kind, only: RKG => RK2
6886 real(RKG) , intent(in) , optional :: alpha, beta
6887 real(RKG) , intent(in) , contiguous :: matA(:,:)
6888 real(RKG) , intent(in) , contiguous :: matB(:,:)
6889 real(RKG) , intent(inout) , contiguous :: matC(:,:)
6890 type(lowDia_type) , intent(in) :: subsetB
6891 type(symmetric_type) , intent(in) :: classB
6892 end subroutine
6893#endif
6894
6895#if RK1_ENABLED
6896 PURE module subroutine symm_ASS_CNA_SFA_CSB_SLB_RK1(matA, matB, classB, subsetB, matC, alpha, beta)
6897#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6898 !DEC$ ATTRIBUTES DLLEXPORT :: symm_ASS_CNA_SFA_CSB_SLB_RK1
6899#endif
6900 use pm_kind, only: RKG => RK1
6901 real(RKG) , intent(in) , optional :: alpha, beta
6902 real(RKG) , intent(in) , contiguous :: matA(:,:)
6903 real(RKG) , intent(in) , contiguous :: matB(:,:)
6904 real(RKG) , intent(inout) , contiguous :: matC(:,:)
6905 type(lowDia_type) , intent(in) :: subsetB
6906 type(symmetric_type) , intent(in) :: classB
6907 end subroutine
6908#endif
6909
6910 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6911
6912 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6913 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6914 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6915
6916 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6917 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6918 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6919
6920 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6921
6922#if IK5_ENABLED
6923 PURE module subroutine symm_EXP_CSA_SUA_CNB_SFB_IK5(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
6924#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6925 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SUA_CNB_SFB_IK5
6926#endif
6927 use pm_kind, only: IKG => IK5
6928 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
6929 integer(IKG) , intent(in) :: alpha, beta
6930 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
6931 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
6932 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
6933 type(uppDia_type) , intent(in) :: subsetA
6934 type(symmetric_type) , intent(in) :: classA
6935 end subroutine
6936#endif
6937
6938#if IK4_ENABLED
6939 PURE module subroutine symm_EXP_CSA_SUA_CNB_SFB_IK4(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
6940#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6941 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SUA_CNB_SFB_IK4
6942#endif
6943 use pm_kind, only: IKG => IK4
6944 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
6945 integer(IKG) , intent(in) :: alpha, beta
6946 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
6947 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
6948 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
6949 type(uppDia_type) , intent(in) :: subsetA
6950 type(symmetric_type) , intent(in) :: classA
6951 end subroutine
6952#endif
6953
6954#if IK3_ENABLED
6955 PURE module subroutine symm_EXP_CSA_SUA_CNB_SFB_IK3(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
6956#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6957 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SUA_CNB_SFB_IK3
6958#endif
6959 use pm_kind, only: IKG => IK3
6960 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
6961 integer(IKG) , intent(in) :: alpha, beta
6962 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
6963 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
6964 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
6965 type(uppDia_type) , intent(in) :: subsetA
6966 type(symmetric_type) , intent(in) :: classA
6967 end subroutine
6968#endif
6969
6970#if IK2_ENABLED
6971 PURE module subroutine symm_EXP_CSA_SUA_CNB_SFB_IK2(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
6972#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6973 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SUA_CNB_SFB_IK2
6974#endif
6975 use pm_kind, only: IKG => IK2
6976 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
6977 integer(IKG) , intent(in) :: alpha, beta
6978 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
6979 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
6980 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
6981 type(uppDia_type) , intent(in) :: subsetA
6982 type(symmetric_type) , intent(in) :: classA
6983 end subroutine
6984#endif
6985
6986#if IK1_ENABLED
6987 PURE module subroutine symm_EXP_CSA_SUA_CNB_SFB_IK1(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
6988#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6989 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SUA_CNB_SFB_IK1
6990#endif
6991 use pm_kind, only: IKG => IK1
6992 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
6993 integer(IKG) , intent(in) :: alpha, beta
6994 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
6995 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
6996 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
6997 type(uppDia_type) , intent(in) :: subsetA
6998 type(symmetric_type) , intent(in) :: classA
6999 end subroutine
7000#endif
7001
7002 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7003
7004#if CK5_ENABLED
7005 PURE module subroutine symm_EXP_CSA_SUA_CNB_SFB_CK5(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7006#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7007 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SUA_CNB_SFB_CK5
7008#endif
7009 use pm_kind, only: CKG => CK5
7010 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7011 complex(CKG) , intent(in) :: alpha, beta
7012 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7013 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7014 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7015 type(uppDia_type) , intent(in) :: subsetA
7016 type(symmetric_type) , intent(in) :: classA
7017 end subroutine
7018#endif
7019
7020#if CK4_ENABLED
7021 PURE module subroutine symm_EXP_CSA_SUA_CNB_SFB_CK4(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7022#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7023 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SUA_CNB_SFB_CK4
7024#endif
7025 use pm_kind, only: CKG => CK4
7026 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7027 complex(CKG) , intent(in) :: alpha, beta
7028 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7029 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7030 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7031 type(uppDia_type) , intent(in) :: subsetA
7032 type(symmetric_type) , intent(in) :: classA
7033 end subroutine
7034#endif
7035
7036#if CK3_ENABLED
7037 PURE module subroutine symm_EXP_CSA_SUA_CNB_SFB_CK3(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7038#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7039 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SUA_CNB_SFB_CK3
7040#endif
7041 use pm_kind, only: CKG => CK3
7042 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7043 complex(CKG) , intent(in) :: alpha, beta
7044 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7045 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7046 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7047 type(uppDia_type) , intent(in) :: subsetA
7048 type(symmetric_type) , intent(in) :: classA
7049 end subroutine
7050#endif
7051
7052#if CK2_ENABLED
7053 PURE module subroutine symm_EXP_CSA_SUA_CNB_SFB_CK2(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7054#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7055 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SUA_CNB_SFB_CK2
7056#endif
7057 use pm_kind, only: CKG => CK2
7058 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7059 complex(CKG) , intent(in) :: alpha, beta
7060 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7061 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7062 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7063 type(uppDia_type) , intent(in) :: subsetA
7064 type(symmetric_type) , intent(in) :: classA
7065 end subroutine
7066#endif
7067
7068#if CK1_ENABLED
7069 PURE module subroutine symm_EXP_CSA_SUA_CNB_SFB_CK1(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7070#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7071 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SUA_CNB_SFB_CK1
7072#endif
7073 use pm_kind, only: CKG => CK1
7074 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7075 complex(CKG) , intent(in) :: alpha, beta
7076 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7077 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7078 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7079 type(uppDia_type) , intent(in) :: subsetA
7080 type(symmetric_type) , intent(in) :: classA
7081 end subroutine
7082#endif
7083
7084 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7085
7086#if RK5_ENABLED
7087 PURE module subroutine symm_EXP_CSA_SUA_CNB_SFB_RK5(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7088#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7089 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SUA_CNB_SFB_RK5
7090#endif
7091 use pm_kind, only: RKG => RK5
7092 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7093 real(RKG) , intent(in) :: alpha, beta
7094 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7095 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7096 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7097 type(uppDia_type) , intent(in) :: subsetA
7098 type(symmetric_type) , intent(in) :: classA
7099 end subroutine
7100#endif
7101
7102#if RK4_ENABLED
7103 PURE module subroutine symm_EXP_CSA_SUA_CNB_SFB_RK4(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7104#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7105 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SUA_CNB_SFB_RK4
7106#endif
7107 use pm_kind, only: RKG => RK4
7108 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7109 real(RKG) , intent(in) :: alpha, beta
7110 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7111 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7112 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7113 type(uppDia_type) , intent(in) :: subsetA
7114 type(symmetric_type) , intent(in) :: classA
7115 end subroutine
7116#endif
7117
7118#if RK3_ENABLED
7119 PURE module subroutine symm_EXP_CSA_SUA_CNB_SFB_RK3(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7120#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7121 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SUA_CNB_SFB_RK3
7122#endif
7123 use pm_kind, only: RKG => RK3
7124 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7125 real(RKG) , intent(in) :: alpha, beta
7126 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7127 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7128 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7129 type(uppDia_type) , intent(in) :: subsetA
7130 type(symmetric_type) , intent(in) :: classA
7131 end subroutine
7132#endif
7133
7134#if RK2_ENABLED
7135 PURE module subroutine symm_EXP_CSA_SUA_CNB_SFB_RK2(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7136#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7137 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SUA_CNB_SFB_RK2
7138#endif
7139 use pm_kind, only: RKG => RK2
7140 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7141 real(RKG) , intent(in) :: alpha, beta
7142 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7143 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7144 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7145 type(uppDia_type) , intent(in) :: subsetA
7146 type(symmetric_type) , intent(in) :: classA
7147 end subroutine
7148#endif
7149
7150#if RK1_ENABLED
7151 PURE module subroutine symm_EXP_CSA_SUA_CNB_SFB_RK1(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7152#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7153 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SUA_CNB_SFB_RK1
7154#endif
7155 use pm_kind, only: RKG => RK1
7156 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7157 real(RKG) , intent(in) :: alpha, beta
7158 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7159 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7160 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7161 type(uppDia_type) , intent(in) :: subsetA
7162 type(symmetric_type) , intent(in) :: classA
7163 end subroutine
7164#endif
7165
7166 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7167
7168 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7169 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7170 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7171
7172 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7173
7174#if IK5_ENABLED
7175 PURE module subroutine symm_EXP_CSA_SLA_CNB_SFB_IK5(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7176#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7177 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SLA_CNB_SFB_IK5
7178#endif
7179 use pm_kind, only: IKG => IK5
7180 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7181 integer(IKG) , intent(in) :: alpha, beta
7182 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7183 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7184 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7185 type(lowDia_type) , intent(in) :: subsetA
7186 type(symmetric_type) , intent(in) :: classA
7187 end subroutine
7188#endif
7189
7190#if IK4_ENABLED
7191 PURE module subroutine symm_EXP_CSA_SLA_CNB_SFB_IK4(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7192#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7193 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SLA_CNB_SFB_IK4
7194#endif
7195 use pm_kind, only: IKG => IK4
7196 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7197 integer(IKG) , intent(in) :: alpha, beta
7198 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7199 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7200 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7201 type(lowDia_type) , intent(in) :: subsetA
7202 type(symmetric_type) , intent(in) :: classA
7203 end subroutine
7204#endif
7205
7206#if IK3_ENABLED
7207 PURE module subroutine symm_EXP_CSA_SLA_CNB_SFB_IK3(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7208#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7209 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SLA_CNB_SFB_IK3
7210#endif
7211 use pm_kind, only: IKG => IK3
7212 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7213 integer(IKG) , intent(in) :: alpha, beta
7214 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7215 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7216 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7217 type(lowDia_type) , intent(in) :: subsetA
7218 type(symmetric_type) , intent(in) :: classA
7219 end subroutine
7220#endif
7221
7222#if IK2_ENABLED
7223 PURE module subroutine symm_EXP_CSA_SLA_CNB_SFB_IK2(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7224#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7225 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SLA_CNB_SFB_IK2
7226#endif
7227 use pm_kind, only: IKG => IK2
7228 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7229 integer(IKG) , intent(in) :: alpha, beta
7230 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7231 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7232 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7233 type(lowDia_type) , intent(in) :: subsetA
7234 type(symmetric_type) , intent(in) :: classA
7235 end subroutine
7236#endif
7237
7238#if IK1_ENABLED
7239 PURE module subroutine symm_EXP_CSA_SLA_CNB_SFB_IK1(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7240#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7241 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SLA_CNB_SFB_IK1
7242#endif
7243 use pm_kind, only: IKG => IK1
7244 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7245 integer(IKG) , intent(in) :: alpha, beta
7246 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7247 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7248 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7249 type(lowDia_type) , intent(in) :: subsetA
7250 type(symmetric_type) , intent(in) :: classA
7251 end subroutine
7252#endif
7253
7254 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7255
7256#if CK5_ENABLED
7257 PURE module subroutine symm_EXP_CSA_SLA_CNB_SFB_CK5(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7258#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7259 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SLA_CNB_SFB_CK5
7260#endif
7261 use pm_kind, only: CKG => CK5
7262 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7263 complex(CKG) , intent(in) :: alpha, beta
7264 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7265 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7266 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7267 type(lowDia_type) , intent(in) :: subsetA
7268 type(symmetric_type) , intent(in) :: classA
7269 end subroutine
7270#endif
7271
7272#if CK4_ENABLED
7273 PURE module subroutine symm_EXP_CSA_SLA_CNB_SFB_CK4(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7274#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7275 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SLA_CNB_SFB_CK4
7276#endif
7277 use pm_kind, only: CKG => CK4
7278 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7279 complex(CKG) , intent(in) :: alpha, beta
7280 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7281 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7282 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7283 type(lowDia_type) , intent(in) :: subsetA
7284 type(symmetric_type) , intent(in) :: classA
7285 end subroutine
7286#endif
7287
7288#if CK3_ENABLED
7289 PURE module subroutine symm_EXP_CSA_SLA_CNB_SFB_CK3(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7290#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7291 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SLA_CNB_SFB_CK3
7292#endif
7293 use pm_kind, only: CKG => CK3
7294 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7295 complex(CKG) , intent(in) :: alpha, beta
7296 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7297 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7298 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7299 type(lowDia_type) , intent(in) :: subsetA
7300 type(symmetric_type) , intent(in) :: classA
7301 end subroutine
7302#endif
7303
7304#if CK2_ENABLED
7305 PURE module subroutine symm_EXP_CSA_SLA_CNB_SFB_CK2(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7306#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7307 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SLA_CNB_SFB_CK2
7308#endif
7309 use pm_kind, only: CKG => CK2
7310 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7311 complex(CKG) , intent(in) :: alpha, beta
7312 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7313 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7314 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7315 type(lowDia_type) , intent(in) :: subsetA
7316 type(symmetric_type) , intent(in) :: classA
7317 end subroutine
7318#endif
7319
7320#if CK1_ENABLED
7321 PURE module subroutine symm_EXP_CSA_SLA_CNB_SFB_CK1(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7322#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7323 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SLA_CNB_SFB_CK1
7324#endif
7325 use pm_kind, only: CKG => CK1
7326 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7327 complex(CKG) , intent(in) :: alpha, beta
7328 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7329 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7330 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7331 type(lowDia_type) , intent(in) :: subsetA
7332 type(symmetric_type) , intent(in) :: classA
7333 end subroutine
7334#endif
7335
7336 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7337
7338#if RK5_ENABLED
7339 PURE module subroutine symm_EXP_CSA_SLA_CNB_SFB_RK5(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7340#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7341 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SLA_CNB_SFB_RK5
7342#endif
7343 use pm_kind, only: RKG => RK5
7344 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7345 real(RKG) , intent(in) :: alpha, beta
7346 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7347 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7348 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7349 type(lowDia_type) , intent(in) :: subsetA
7350 type(symmetric_type) , intent(in) :: classA
7351 end subroutine
7352#endif
7353
7354#if RK4_ENABLED
7355 PURE module subroutine symm_EXP_CSA_SLA_CNB_SFB_RK4(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7356#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7357 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SLA_CNB_SFB_RK4
7358#endif
7359 use pm_kind, only: RKG => RK4
7360 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7361 real(RKG) , intent(in) :: alpha, beta
7362 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7363 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7364 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7365 type(lowDia_type) , intent(in) :: subsetA
7366 type(symmetric_type) , intent(in) :: classA
7367 end subroutine
7368#endif
7369
7370#if RK3_ENABLED
7371 PURE module subroutine symm_EXP_CSA_SLA_CNB_SFB_RK3(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7372#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7373 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SLA_CNB_SFB_RK3
7374#endif
7375 use pm_kind, only: RKG => RK3
7376 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7377 real(RKG) , intent(in) :: alpha, beta
7378 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7379 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7380 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7381 type(lowDia_type) , intent(in) :: subsetA
7382 type(symmetric_type) , intent(in) :: classA
7383 end subroutine
7384#endif
7385
7386#if RK2_ENABLED
7387 PURE module subroutine symm_EXP_CSA_SLA_CNB_SFB_RK2(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7388#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7389 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SLA_CNB_SFB_RK2
7390#endif
7391 use pm_kind, only: RKG => RK2
7392 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7393 real(RKG) , intent(in) :: alpha, beta
7394 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7395 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7396 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7397 type(lowDia_type) , intent(in) :: subsetA
7398 type(symmetric_type) , intent(in) :: classA
7399 end subroutine
7400#endif
7401
7402#if RK1_ENABLED
7403 PURE module subroutine symm_EXP_CSA_SLA_CNB_SFB_RK1(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7404#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7405 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CSA_SLA_CNB_SFB_RK1
7406#endif
7407 use pm_kind, only: RKG => RK1
7408 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7409 real(RKG) , intent(in) :: alpha, beta
7410 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7411 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7412 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7413 type(lowDia_type) , intent(in) :: subsetA
7414 type(symmetric_type) , intent(in) :: classA
7415 end subroutine
7416#endif
7417
7418 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7419
7420 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7421 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7422 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7423
7424 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7425
7426#if IK5_ENABLED
7427 PURE module subroutine symm_EXP_CNA_SFA_CSB_SUB_IK5(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7428#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7429 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SUB_IK5
7430#endif
7431 use pm_kind, only: IKG => IK5
7432 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7433 integer(IKG) , intent(in) :: alpha, beta
7434 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7435 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7436 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7437 type(uppDia_type) , intent(in) :: subsetB
7438 type(symmetric_type) , intent(in) :: classB
7439 end subroutine
7440#endif
7441
7442#if IK4_ENABLED
7443 PURE module subroutine symm_EXP_CNA_SFA_CSB_SUB_IK4(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7444#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7445 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SUB_IK4
7446#endif
7447 use pm_kind, only: IKG => IK4
7448 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7449 integer(IKG) , intent(in) :: alpha, beta
7450 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7451 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7452 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7453 type(uppDia_type) , intent(in) :: subsetB
7454 type(symmetric_type) , intent(in) :: classB
7455 end subroutine
7456#endif
7457
7458#if IK3_ENABLED
7459 PURE module subroutine symm_EXP_CNA_SFA_CSB_SUB_IK3(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7460#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7461 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SUB_IK3
7462#endif
7463 use pm_kind, only: IKG => IK3
7464 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7465 integer(IKG) , intent(in) :: alpha, beta
7466 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7467 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7468 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7469 type(uppDia_type) , intent(in) :: subsetB
7470 type(symmetric_type) , intent(in) :: classB
7471 end subroutine
7472#endif
7473
7474#if IK2_ENABLED
7475 PURE module subroutine symm_EXP_CNA_SFA_CSB_SUB_IK2(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7476#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7477 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SUB_IK2
7478#endif
7479 use pm_kind, only: IKG => IK2
7480 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7481 integer(IKG) , intent(in) :: alpha, beta
7482 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7483 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7484 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7485 type(uppDia_type) , intent(in) :: subsetB
7486 type(symmetric_type) , intent(in) :: classB
7487 end subroutine
7488#endif
7489
7490#if IK1_ENABLED
7491 PURE module subroutine symm_EXP_CNA_SFA_CSB_SUB_IK1(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7492#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7493 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SUB_IK1
7494#endif
7495 use pm_kind, only: IKG => IK1
7496 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7497 integer(IKG) , intent(in) :: alpha, beta
7498 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7499 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7500 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7501 type(uppDia_type) , intent(in) :: subsetB
7502 type(symmetric_type) , intent(in) :: classB
7503 end subroutine
7504#endif
7505
7506 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7507
7508#if CK5_ENABLED
7509 PURE module subroutine symm_EXP_CNA_SFA_CSB_SUB_CK5(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7510#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7511 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SUB_CK5
7512#endif
7513 use pm_kind, only: CKG => CK5
7514 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7515 complex(CKG) , intent(in) :: alpha, beta
7516 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7517 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7518 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7519 type(uppDia_type) , intent(in) :: subsetB
7520 type(symmetric_type) , intent(in) :: classB
7521 end subroutine
7522#endif
7523
7524#if CK4_ENABLED
7525 PURE module subroutine symm_EXP_CNA_SFA_CSB_SUB_CK4(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7526#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7527 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SUB_CK4
7528#endif
7529 use pm_kind, only: CKG => CK4
7530 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7531 complex(CKG) , intent(in) :: alpha, beta
7532 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7533 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7534 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7535 type(uppDia_type) , intent(in) :: subsetB
7536 type(symmetric_type) , intent(in) :: classB
7537 end subroutine
7538#endif
7539
7540#if CK3_ENABLED
7541 PURE module subroutine symm_EXP_CNA_SFA_CSB_SUB_CK3(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7542#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7543 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SUB_CK3
7544#endif
7545 use pm_kind, only: CKG => CK3
7546 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7547 complex(CKG) , intent(in) :: alpha, beta
7548 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7549 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7550 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7551 type(uppDia_type) , intent(in) :: subsetB
7552 type(symmetric_type) , intent(in) :: classB
7553 end subroutine
7554#endif
7555
7556#if CK2_ENABLED
7557 PURE module subroutine symm_EXP_CNA_SFA_CSB_SUB_CK2(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7558#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7559 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SUB_CK2
7560#endif
7561 use pm_kind, only: CKG => CK2
7562 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7563 complex(CKG) , intent(in) :: alpha, beta
7564 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7565 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7566 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7567 type(uppDia_type) , intent(in) :: subsetB
7568 type(symmetric_type) , intent(in) :: classB
7569 end subroutine
7570#endif
7571
7572#if CK1_ENABLED
7573 PURE module subroutine symm_EXP_CNA_SFA_CSB_SUB_CK1(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7574#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7575 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SUB_CK1
7576#endif
7577 use pm_kind, only: CKG => CK1
7578 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7579 complex(CKG) , intent(in) :: alpha, beta
7580 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7581 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7582 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7583 type(uppDia_type) , intent(in) :: subsetB
7584 type(symmetric_type) , intent(in) :: classB
7585 end subroutine
7586#endif
7587
7588 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7589
7590#if RK5_ENABLED
7591 PURE module subroutine symm_EXP_CNA_SFA_CSB_SUB_RK5(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7592#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7593 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SUB_RK5
7594#endif
7595 use pm_kind, only: RKG => RK5
7596 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7597 real(RKG) , intent(in) :: alpha, beta
7598 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7599 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7600 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7601 type(uppDia_type) , intent(in) :: subsetB
7602 type(symmetric_type) , intent(in) :: classB
7603 end subroutine
7604#endif
7605
7606#if RK4_ENABLED
7607 PURE module subroutine symm_EXP_CNA_SFA_CSB_SUB_RK4(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7608#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7609 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SUB_RK4
7610#endif
7611 use pm_kind, only: RKG => RK4
7612 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7613 real(RKG) , intent(in) :: alpha, beta
7614 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7615 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7616 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7617 type(uppDia_type) , intent(in) :: subsetB
7618 type(symmetric_type) , intent(in) :: classB
7619 end subroutine
7620#endif
7621
7622#if RK3_ENABLED
7623 PURE module subroutine symm_EXP_CNA_SFA_CSB_SUB_RK3(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7624#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7625 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SUB_RK3
7626#endif
7627 use pm_kind, only: RKG => RK3
7628 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7629 real(RKG) , intent(in) :: alpha, beta
7630 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7631 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7632 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7633 type(uppDia_type) , intent(in) :: subsetB
7634 type(symmetric_type) , intent(in) :: classB
7635 end subroutine
7636#endif
7637
7638#if RK2_ENABLED
7639 PURE module subroutine symm_EXP_CNA_SFA_CSB_SUB_RK2(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7640#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7641 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SUB_RK2
7642#endif
7643 use pm_kind, only: RKG => RK2
7644 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7645 real(RKG) , intent(in) :: alpha, beta
7646 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7647 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7648 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7649 type(uppDia_type) , intent(in) :: subsetB
7650 type(symmetric_type) , intent(in) :: classB
7651 end subroutine
7652#endif
7653
7654#if RK1_ENABLED
7655 PURE module subroutine symm_EXP_CNA_SFA_CSB_SUB_RK1(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7656#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7657 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SUB_RK1
7658#endif
7659 use pm_kind, only: RKG => RK1
7660 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7661 real(RKG) , intent(in) :: alpha, beta
7662 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7663 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7664 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7665 type(uppDia_type) , intent(in) :: subsetB
7666 type(symmetric_type) , intent(in) :: classB
7667 end subroutine
7668#endif
7669
7670 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7671
7672 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7673 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7674 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7675
7676 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7677
7678#if IK5_ENABLED
7679 PURE module subroutine symm_EXP_CNA_SFA_CSB_SLB_IK5(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7680#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7681 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SLB_IK5
7682#endif
7683 use pm_kind, only: IKG => IK5
7684 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7685 integer(IKG) , intent(in) :: alpha, beta
7686 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7687 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7688 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7689 type(lowDia_type) , intent(in) :: subsetB
7690 type(symmetric_type) , intent(in) :: classB
7691 end subroutine
7692#endif
7693
7694#if IK4_ENABLED
7695 PURE module subroutine symm_EXP_CNA_SFA_CSB_SLB_IK4(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7696#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7697 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SLB_IK4
7698#endif
7699 use pm_kind, only: IKG => IK4
7700 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7701 integer(IKG) , intent(in) :: alpha, beta
7702 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7703 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7704 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7705 type(lowDia_type) , intent(in) :: subsetB
7706 type(symmetric_type) , intent(in) :: classB
7707 end subroutine
7708#endif
7709
7710#if IK3_ENABLED
7711 PURE module subroutine symm_EXP_CNA_SFA_CSB_SLB_IK3(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7712#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7713 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SLB_IK3
7714#endif
7715 use pm_kind, only: IKG => IK3
7716 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7717 integer(IKG) , intent(in) :: alpha, beta
7718 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7719 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7720 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7721 type(lowDia_type) , intent(in) :: subsetB
7722 type(symmetric_type) , intent(in) :: classB
7723 end subroutine
7724#endif
7725
7726#if IK2_ENABLED
7727 PURE module subroutine symm_EXP_CNA_SFA_CSB_SLB_IK2(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7728#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7729 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SLB_IK2
7730#endif
7731 use pm_kind, only: IKG => IK2
7732 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7733 integer(IKG) , intent(in) :: alpha, beta
7734 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7735 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7736 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7737 type(lowDia_type) , intent(in) :: subsetB
7738 type(symmetric_type) , intent(in) :: classB
7739 end subroutine
7740#endif
7741
7742#if IK1_ENABLED
7743 PURE module subroutine symm_EXP_CNA_SFA_CSB_SLB_IK1(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7744#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7745 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SLB_IK1
7746#endif
7747 use pm_kind, only: IKG => IK1
7748 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7749 integer(IKG) , intent(in) :: alpha, beta
7750 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7751 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7752 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7753 type(lowDia_type) , intent(in) :: subsetB
7754 type(symmetric_type) , intent(in) :: classB
7755 end subroutine
7756#endif
7757
7758 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7759
7760#if CK5_ENABLED
7761 PURE module subroutine symm_EXP_CNA_SFA_CSB_SLB_CK5(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7762#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7763 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SLB_CK5
7764#endif
7765 use pm_kind, only: CKG => CK5
7766 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7767 complex(CKG) , intent(in) :: alpha, beta
7768 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7769 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7770 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7771 type(lowDia_type) , intent(in) :: subsetB
7772 type(symmetric_type) , intent(in) :: classB
7773 end subroutine
7774#endif
7775
7776#if CK4_ENABLED
7777 PURE module subroutine symm_EXP_CNA_SFA_CSB_SLB_CK4(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7778#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7779 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SLB_CK4
7780#endif
7781 use pm_kind, only: CKG => CK4
7782 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7783 complex(CKG) , intent(in) :: alpha, beta
7784 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7785 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7786 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7787 type(lowDia_type) , intent(in) :: subsetB
7788 type(symmetric_type) , intent(in) :: classB
7789 end subroutine
7790#endif
7791
7792#if CK3_ENABLED
7793 PURE module subroutine symm_EXP_CNA_SFA_CSB_SLB_CK3(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7794#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7795 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SLB_CK3
7796#endif
7797 use pm_kind, only: CKG => CK3
7798 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7799 complex(CKG) , intent(in) :: alpha, beta
7800 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7801 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7802 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7803 type(lowDia_type) , intent(in) :: subsetB
7804 type(symmetric_type) , intent(in) :: classB
7805 end subroutine
7806#endif
7807
7808#if CK2_ENABLED
7809 PURE module subroutine symm_EXP_CNA_SFA_CSB_SLB_CK2(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7810#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7811 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SLB_CK2
7812#endif
7813 use pm_kind, only: CKG => CK2
7814 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7815 complex(CKG) , intent(in) :: alpha, beta
7816 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7817 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7818 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7819 type(lowDia_type) , intent(in) :: subsetB
7820 type(symmetric_type) , intent(in) :: classB
7821 end subroutine
7822#endif
7823
7824#if CK1_ENABLED
7825 PURE module subroutine symm_EXP_CNA_SFA_CSB_SLB_CK1(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7826#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7827 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SLB_CK1
7828#endif
7829 use pm_kind, only: CKG => CK1
7830 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7831 complex(CKG) , intent(in) :: alpha, beta
7832 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7833 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7834 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7835 type(lowDia_type) , intent(in) :: subsetB
7836 type(symmetric_type) , intent(in) :: classB
7837 end subroutine
7838#endif
7839
7840 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7841
7842#if RK5_ENABLED
7843 PURE module subroutine symm_EXP_CNA_SFA_CSB_SLB_RK5(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7844#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7845 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SLB_RK5
7846#endif
7847 use pm_kind, only: RKG => RK5
7848 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7849 real(RKG) , intent(in) :: alpha, beta
7850 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7851 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7852 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7853 type(lowDia_type) , intent(in) :: subsetB
7854 type(symmetric_type) , intent(in) :: classB
7855 end subroutine
7856#endif
7857
7858#if RK4_ENABLED
7859 PURE module subroutine symm_EXP_CNA_SFA_CSB_SLB_RK4(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7860#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7861 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SLB_RK4
7862#endif
7863 use pm_kind, only: RKG => RK4
7864 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7865 real(RKG) , intent(in) :: alpha, beta
7866 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7867 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7868 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7869 type(lowDia_type) , intent(in) :: subsetB
7870 type(symmetric_type) , intent(in) :: classB
7871 end subroutine
7872#endif
7873
7874#if RK3_ENABLED
7875 PURE module subroutine symm_EXP_CNA_SFA_CSB_SLB_RK3(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7876#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7877 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SLB_RK3
7878#endif
7879 use pm_kind, only: RKG => RK3
7880 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7881 real(RKG) , intent(in) :: alpha, beta
7882 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7883 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7884 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7885 type(lowDia_type) , intent(in) :: subsetB
7886 type(symmetric_type) , intent(in) :: classB
7887 end subroutine
7888#endif
7889
7890#if RK2_ENABLED
7891 PURE module subroutine symm_EXP_CNA_SFA_CSB_SLB_RK2(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7892#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7893 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SLB_RK2
7894#endif
7895 use pm_kind, only: RKG => RK2
7896 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7897 real(RKG) , intent(in) :: alpha, beta
7898 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7899 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7900 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7901 type(lowDia_type) , intent(in) :: subsetB
7902 type(symmetric_type) , intent(in) :: classB
7903 end subroutine
7904#endif
7905
7906#if RK1_ENABLED
7907 PURE module subroutine symm_EXP_CNA_SFA_CSB_SLB_RK1(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
7908#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7909 !DEC$ ATTRIBUTES DLLEXPORT :: symm_EXP_CNA_SFA_CSB_SLB_RK1
7910#endif
7911 use pm_kind, only: RKG => RK1
7912 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
7913 real(RKG) , intent(in) :: alpha, beta
7914 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
7915 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
7916 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
7917 type(lowDia_type) , intent(in) :: subsetB
7918 type(symmetric_type) , intent(in) :: classB
7919 end subroutine
7920#endif
7921
7922 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7923
7924 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7925 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7926 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7927
7928 end interface
7929
7930 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7931 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7932 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7933
7934 ! BLAS 3: `SHEMM`, `DHEMM`, `CHEMM`, `ZHEMM`
7935
7936 interface setMatMulAdd
7937
7938 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7939 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7940 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7941
7942 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7943
7944#if IK5_ENABLED
7945 PURE module subroutine hemm_ASS_CHA_SUA_CNB_SFB_IK5(matA, classA, subsetA, matB, matC, alpha, beta)
7946#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7947 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SUA_CNB_SFB_IK5
7948#endif
7949 use pm_kind, only: IKG => IK5
7950 integer(IKG) , intent(in) , optional :: alpha, beta
7951 integer(IKG) , intent(in) , contiguous :: matA(:,:)
7952 integer(IKG) , intent(in) , contiguous :: matB(:,:)
7953 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
7954 type(uppDia_type) , intent(in) :: subsetA
7955 type(hermitian_type) , intent(in) :: classA
7956 end subroutine
7957#endif
7958
7959#if IK4_ENABLED
7960 PURE module subroutine hemm_ASS_CHA_SUA_CNB_SFB_IK4(matA, classA, subsetA, matB, matC, alpha, beta)
7961#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7962 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SUA_CNB_SFB_IK4
7963#endif
7964 use pm_kind, only: IKG => IK4
7965 integer(IKG) , intent(in) , optional :: alpha, beta
7966 integer(IKG) , intent(in) , contiguous :: matA(:,:)
7967 integer(IKG) , intent(in) , contiguous :: matB(:,:)
7968 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
7969 type(uppDia_type) , intent(in) :: subsetA
7970 type(hermitian_type) , intent(in) :: classA
7971 end subroutine
7972#endif
7973
7974#if IK3_ENABLED
7975 PURE module subroutine hemm_ASS_CHA_SUA_CNB_SFB_IK3(matA, classA, subsetA, matB, matC, alpha, beta)
7976#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7977 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SUA_CNB_SFB_IK3
7978#endif
7979 use pm_kind, only: IKG => IK3
7980 integer(IKG) , intent(in) , optional :: alpha, beta
7981 integer(IKG) , intent(in) , contiguous :: matA(:,:)
7982 integer(IKG) , intent(in) , contiguous :: matB(:,:)
7983 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
7984 type(uppDia_type) , intent(in) :: subsetA
7985 type(hermitian_type) , intent(in) :: classA
7986 end subroutine
7987#endif
7988
7989#if IK2_ENABLED
7990 PURE module subroutine hemm_ASS_CHA_SUA_CNB_SFB_IK2(matA, classA, subsetA, matB, matC, alpha, beta)
7991#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7992 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SUA_CNB_SFB_IK2
7993#endif
7994 use pm_kind, only: IKG => IK2
7995 integer(IKG) , intent(in) , optional :: alpha, beta
7996 integer(IKG) , intent(in) , contiguous :: matA(:,:)
7997 integer(IKG) , intent(in) , contiguous :: matB(:,:)
7998 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
7999 type(uppDia_type) , intent(in) :: subsetA
8000 type(hermitian_type) , intent(in) :: classA
8001 end subroutine
8002#endif
8003
8004#if IK1_ENABLED
8005 PURE module subroutine hemm_ASS_CHA_SUA_CNB_SFB_IK1(matA, classA, subsetA, matB, matC, alpha, beta)
8006#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8007 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SUA_CNB_SFB_IK1
8008#endif
8009 use pm_kind, only: IKG => IK1
8010 integer(IKG) , intent(in) , optional :: alpha, beta
8011 integer(IKG) , intent(in) , contiguous :: matA(:,:)
8012 integer(IKG) , intent(in) , contiguous :: matB(:,:)
8013 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
8014 type(uppDia_type) , intent(in) :: subsetA
8015 type(hermitian_type) , intent(in) :: classA
8016 end subroutine
8017#endif
8018
8019 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8020
8021#if CK5_ENABLED
8022 PURE module subroutine hemm_ASS_CHA_SUA_CNB_SFB_CK5(matA, classA, subsetA, matB, matC, alpha, beta)
8023#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8024 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SUA_CNB_SFB_CK5
8025#endif
8026 use pm_kind, only: CKG => CK5
8027 complex(CKG) , intent(in) , optional :: alpha, beta
8028 complex(CKG) , intent(in) , contiguous :: matA(:,:)
8029 complex(CKG) , intent(in) , contiguous :: matB(:,:)
8030 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
8031 type(uppDia_type) , intent(in) :: subsetA
8032 type(hermitian_type) , intent(in) :: classA
8033 end subroutine
8034#endif
8035
8036#if CK4_ENABLED
8037 PURE module subroutine hemm_ASS_CHA_SUA_CNB_SFB_CK4(matA, classA, subsetA, matB, matC, alpha, beta)
8038#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8039 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SUA_CNB_SFB_CK4
8040#endif
8041 use pm_kind, only: CKG => CK4
8042 complex(CKG) , intent(in) , optional :: alpha, beta
8043 complex(CKG) , intent(in) , contiguous :: matA(:,:)
8044 complex(CKG) , intent(in) , contiguous :: matB(:,:)
8045 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
8046 type(uppDia_type) , intent(in) :: subsetA
8047 type(hermitian_type) , intent(in) :: classA
8048 end subroutine
8049#endif
8050
8051#if CK3_ENABLED
8052 PURE module subroutine hemm_ASS_CHA_SUA_CNB_SFB_CK3(matA, classA, subsetA, matB, matC, alpha, beta)
8053#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8054 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SUA_CNB_SFB_CK3
8055#endif
8056 use pm_kind, only: CKG => CK3
8057 complex(CKG) , intent(in) , optional :: alpha, beta
8058 complex(CKG) , intent(in) , contiguous :: matA(:,:)
8059 complex(CKG) , intent(in) , contiguous :: matB(:,:)
8060 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
8061 type(uppDia_type) , intent(in) :: subsetA
8062 type(hermitian_type) , intent(in) :: classA
8063 end subroutine
8064#endif
8065
8066#if CK2_ENABLED
8067 PURE module subroutine hemm_ASS_CHA_SUA_CNB_SFB_CK2(matA, classA, subsetA, matB, matC, alpha, beta)
8068#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8069 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SUA_CNB_SFB_CK2
8070#endif
8071 use pm_kind, only: CKG => CK2
8072 complex(CKG) , intent(in) , optional :: alpha, beta
8073 complex(CKG) , intent(in) , contiguous :: matA(:,:)
8074 complex(CKG) , intent(in) , contiguous :: matB(:,:)
8075 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
8076 type(uppDia_type) , intent(in) :: subsetA
8077 type(hermitian_type) , intent(in) :: classA
8078 end subroutine
8079#endif
8080
8081#if CK1_ENABLED
8082 PURE module subroutine hemm_ASS_CHA_SUA_CNB_SFB_CK1(matA, classA, subsetA, matB, matC, alpha, beta)
8083#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8084 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SUA_CNB_SFB_CK1
8085#endif
8086 use pm_kind, only: CKG => CK1
8087 complex(CKG) , intent(in) , optional :: alpha, beta
8088 complex(CKG) , intent(in) , contiguous :: matA(:,:)
8089 complex(CKG) , intent(in) , contiguous :: matB(:,:)
8090 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
8091 type(uppDia_type) , intent(in) :: subsetA
8092 type(hermitian_type) , intent(in) :: classA
8093 end subroutine
8094#endif
8095
8096 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8097
8098#if RK5_ENABLED
8099 PURE module subroutine hemm_ASS_CHA_SUA_CNB_SFB_RK5(matA, classA, subsetA, matB, matC, alpha, beta)
8100#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8101 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SUA_CNB_SFB_RK5
8102#endif
8103 use pm_kind, only: RKG => RK5
8104 real(RKG) , intent(in) , optional :: alpha, beta
8105 real(RKG) , intent(in) , contiguous :: matA(:,:)
8106 real(RKG) , intent(in) , contiguous :: matB(:,:)
8107 real(RKG) , intent(inout) , contiguous :: matC(:,:)
8108 type(uppDia_type) , intent(in) :: subsetA
8109 type(hermitian_type) , intent(in) :: classA
8110 end subroutine
8111#endif
8112
8113#if RK4_ENABLED
8114 PURE module subroutine hemm_ASS_CHA_SUA_CNB_SFB_RK4(matA, classA, subsetA, matB, matC, alpha, beta)
8115#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8116 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SUA_CNB_SFB_RK4
8117#endif
8118 use pm_kind, only: RKG => RK4
8119 real(RKG) , intent(in) , optional :: alpha, beta
8120 real(RKG) , intent(in) , contiguous :: matA(:,:)
8121 real(RKG) , intent(in) , contiguous :: matB(:,:)
8122 real(RKG) , intent(inout) , contiguous :: matC(:,:)
8123 type(uppDia_type) , intent(in) :: subsetA
8124 type(hermitian_type) , intent(in) :: classA
8125 end subroutine
8126#endif
8127
8128#if RK3_ENABLED
8129 PURE module subroutine hemm_ASS_CHA_SUA_CNB_SFB_RK3(matA, classA, subsetA, matB, matC, alpha, beta)
8130#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8131 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SUA_CNB_SFB_RK3
8132#endif
8133 use pm_kind, only: RKG => RK3
8134 real(RKG) , intent(in) , optional :: alpha, beta
8135 real(RKG) , intent(in) , contiguous :: matA(:,:)
8136 real(RKG) , intent(in) , contiguous :: matB(:,:)
8137 real(RKG) , intent(inout) , contiguous :: matC(:,:)
8138 type(uppDia_type) , intent(in) :: subsetA
8139 type(hermitian_type) , intent(in) :: classA
8140 end subroutine
8141#endif
8142
8143#if RK2_ENABLED
8144 PURE module subroutine hemm_ASS_CHA_SUA_CNB_SFB_RK2(matA, classA, subsetA, matB, matC, alpha, beta)
8145#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8146 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SUA_CNB_SFB_RK2
8147#endif
8148 use pm_kind, only: RKG => RK2
8149 real(RKG) , intent(in) , optional :: alpha, beta
8150 real(RKG) , intent(in) , contiguous :: matA(:,:)
8151 real(RKG) , intent(in) , contiguous :: matB(:,:)
8152 real(RKG) , intent(inout) , contiguous :: matC(:,:)
8153 type(uppDia_type) , intent(in) :: subsetA
8154 type(hermitian_type) , intent(in) :: classA
8155 end subroutine
8156#endif
8157
8158#if RK1_ENABLED
8159 PURE module subroutine hemm_ASS_CHA_SUA_CNB_SFB_RK1(matA, classA, subsetA, matB, matC, alpha, beta)
8160#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8161 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SUA_CNB_SFB_RK1
8162#endif
8163 use pm_kind, only: RKG => RK1
8164 real(RKG) , intent(in) , optional :: alpha, beta
8165 real(RKG) , intent(in) , contiguous :: matA(:,:)
8166 real(RKG) , intent(in) , contiguous :: matB(:,:)
8167 real(RKG) , intent(inout) , contiguous :: matC(:,:)
8168 type(uppDia_type) , intent(in) :: subsetA
8169 type(hermitian_type) , intent(in) :: classA
8170 end subroutine
8171#endif
8172
8173 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8174
8175 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8176 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8177 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8178
8179 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8180
8181#if IK5_ENABLED
8182 PURE module subroutine hemm_ASS_CHA_SLA_CNB_SFB_IK5(matA, classA, subsetA, matB, matC, alpha, beta)
8183#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8184 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SLA_CNB_SFB_IK5
8185#endif
8186 use pm_kind, only: IKG => IK5
8187 integer(IKG) , intent(in) , optional :: alpha, beta
8188 integer(IKG) , intent(in) , contiguous :: matA(:,:)
8189 integer(IKG) , intent(in) , contiguous :: matB(:,:)
8190 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
8191 type(lowDia_type) , intent(in) :: subsetA
8192 type(hermitian_type) , intent(in) :: classA
8193 end subroutine
8194#endif
8195
8196#if IK4_ENABLED
8197 PURE module subroutine hemm_ASS_CHA_SLA_CNB_SFB_IK4(matA, classA, subsetA, matB, matC, alpha, beta)
8198#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8199 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SLA_CNB_SFB_IK4
8200#endif
8201 use pm_kind, only: IKG => IK4
8202 integer(IKG) , intent(in) , optional :: alpha, beta
8203 integer(IKG) , intent(in) , contiguous :: matA(:,:)
8204 integer(IKG) , intent(in) , contiguous :: matB(:,:)
8205 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
8206 type(lowDia_type) , intent(in) :: subsetA
8207 type(hermitian_type) , intent(in) :: classA
8208 end subroutine
8209#endif
8210
8211#if IK3_ENABLED
8212 PURE module subroutine hemm_ASS_CHA_SLA_CNB_SFB_IK3(matA, classA, subsetA, matB, matC, alpha, beta)
8213#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8214 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SLA_CNB_SFB_IK3
8215#endif
8216 use pm_kind, only: IKG => IK3
8217 integer(IKG) , intent(in) , optional :: alpha, beta
8218 integer(IKG) , intent(in) , contiguous :: matA(:,:)
8219 integer(IKG) , intent(in) , contiguous :: matB(:,:)
8220 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
8221 type(lowDia_type) , intent(in) :: subsetA
8222 type(hermitian_type) , intent(in) :: classA
8223 end subroutine
8224#endif
8225
8226#if IK2_ENABLED
8227 PURE module subroutine hemm_ASS_CHA_SLA_CNB_SFB_IK2(matA, classA, subsetA, matB, matC, alpha, beta)
8228#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8229 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SLA_CNB_SFB_IK2
8230#endif
8231 use pm_kind, only: IKG => IK2
8232 integer(IKG) , intent(in) , optional :: alpha, beta
8233 integer(IKG) , intent(in) , contiguous :: matA(:,:)
8234 integer(IKG) , intent(in) , contiguous :: matB(:,:)
8235 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
8236 type(lowDia_type) , intent(in) :: subsetA
8237 type(hermitian_type) , intent(in) :: classA
8238 end subroutine
8239#endif
8240
8241#if IK1_ENABLED
8242 PURE module subroutine hemm_ASS_CHA_SLA_CNB_SFB_IK1(matA, classA, subsetA, matB, matC, alpha, beta)
8243#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8244 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SLA_CNB_SFB_IK1
8245#endif
8246 use pm_kind, only: IKG => IK1
8247 integer(IKG) , intent(in) , optional :: alpha, beta
8248 integer(IKG) , intent(in) , contiguous :: matA(:,:)
8249 integer(IKG) , intent(in) , contiguous :: matB(:,:)
8250 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
8251 type(lowDia_type) , intent(in) :: subsetA
8252 type(hermitian_type) , intent(in) :: classA
8253 end subroutine
8254#endif
8255
8256 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8257
8258#if CK5_ENABLED
8259 PURE module subroutine hemm_ASS_CHA_SLA_CNB_SFB_CK5(matA, classA, subsetA, matB, matC, alpha, beta)
8260#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8261 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SLA_CNB_SFB_CK5
8262#endif
8263 use pm_kind, only: CKG => CK5
8264 complex(CKG) , intent(in) , optional :: alpha, beta
8265 complex(CKG) , intent(in) , contiguous :: matA(:,:)
8266 complex(CKG) , intent(in) , contiguous :: matB(:,:)
8267 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
8268 type(lowDia_type) , intent(in) :: subsetA
8269 type(hermitian_type) , intent(in) :: classA
8270 end subroutine
8271#endif
8272
8273#if CK4_ENABLED
8274 PURE module subroutine hemm_ASS_CHA_SLA_CNB_SFB_CK4(matA, classA, subsetA, matB, matC, alpha, beta)
8275#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8276 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SLA_CNB_SFB_CK4
8277#endif
8278 use pm_kind, only: CKG => CK4
8279 complex(CKG) , intent(in) , optional :: alpha, beta
8280 complex(CKG) , intent(in) , contiguous :: matA(:,:)
8281 complex(CKG) , intent(in) , contiguous :: matB(:,:)
8282 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
8283 type(lowDia_type) , intent(in) :: subsetA
8284 type(hermitian_type) , intent(in) :: classA
8285 end subroutine
8286#endif
8287
8288#if CK3_ENABLED
8289 PURE module subroutine hemm_ASS_CHA_SLA_CNB_SFB_CK3(matA, classA, subsetA, matB, matC, alpha, beta)
8290#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8291 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SLA_CNB_SFB_CK3
8292#endif
8293 use pm_kind, only: CKG => CK3
8294 complex(CKG) , intent(in) , optional :: alpha, beta
8295 complex(CKG) , intent(in) , contiguous :: matA(:,:)
8296 complex(CKG) , intent(in) , contiguous :: matB(:,:)
8297 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
8298 type(lowDia_type) , intent(in) :: subsetA
8299 type(hermitian_type) , intent(in) :: classA
8300 end subroutine
8301#endif
8302
8303#if CK2_ENABLED
8304 PURE module subroutine hemm_ASS_CHA_SLA_CNB_SFB_CK2(matA, classA, subsetA, matB, matC, alpha, beta)
8305#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8306 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SLA_CNB_SFB_CK2
8307#endif
8308 use pm_kind, only: CKG => CK2
8309 complex(CKG) , intent(in) , optional :: alpha, beta
8310 complex(CKG) , intent(in) , contiguous :: matA(:,:)
8311 complex(CKG) , intent(in) , contiguous :: matB(:,:)
8312 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
8313 type(lowDia_type) , intent(in) :: subsetA
8314 type(hermitian_type) , intent(in) :: classA
8315 end subroutine
8316#endif
8317
8318#if CK1_ENABLED
8319 PURE module subroutine hemm_ASS_CHA_SLA_CNB_SFB_CK1(matA, classA, subsetA, matB, matC, alpha, beta)
8320#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8321 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SLA_CNB_SFB_CK1
8322#endif
8323 use pm_kind, only: CKG => CK1
8324 complex(CKG) , intent(in) , optional :: alpha, beta
8325 complex(CKG) , intent(in) , contiguous :: matA(:,:)
8326 complex(CKG) , intent(in) , contiguous :: matB(:,:)
8327 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
8328 type(lowDia_type) , intent(in) :: subsetA
8329 type(hermitian_type) , intent(in) :: classA
8330 end subroutine
8331#endif
8332
8333 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8334
8335#if RK5_ENABLED
8336 PURE module subroutine hemm_ASS_CHA_SLA_CNB_SFB_RK5(matA, classA, subsetA, matB, matC, alpha, beta)
8337#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8338 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SLA_CNB_SFB_RK5
8339#endif
8340 use pm_kind, only: RKG => RK5
8341 real(RKG) , intent(in) , optional :: alpha, beta
8342 real(RKG) , intent(in) , contiguous :: matA(:,:)
8343 real(RKG) , intent(in) , contiguous :: matB(:,:)
8344 real(RKG) , intent(inout) , contiguous :: matC(:,:)
8345 type(lowDia_type) , intent(in) :: subsetA
8346 type(hermitian_type) , intent(in) :: classA
8347 end subroutine
8348#endif
8349
8350#if RK4_ENABLED
8351 PURE module subroutine hemm_ASS_CHA_SLA_CNB_SFB_RK4(matA, classA, subsetA, matB, matC, alpha, beta)
8352#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8353 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SLA_CNB_SFB_RK4
8354#endif
8355 use pm_kind, only: RKG => RK4
8356 real(RKG) , intent(in) , optional :: alpha, beta
8357 real(RKG) , intent(in) , contiguous :: matA(:,:)
8358 real(RKG) , intent(in) , contiguous :: matB(:,:)
8359 real(RKG) , intent(inout) , contiguous :: matC(:,:)
8360 type(lowDia_type) , intent(in) :: subsetA
8361 type(hermitian_type) , intent(in) :: classA
8362 end subroutine
8363#endif
8364
8365#if RK3_ENABLED
8366 PURE module subroutine hemm_ASS_CHA_SLA_CNB_SFB_RK3(matA, classA, subsetA, matB, matC, alpha, beta)
8367#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8368 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SLA_CNB_SFB_RK3
8369#endif
8370 use pm_kind, only: RKG => RK3
8371 real(RKG) , intent(in) , optional :: alpha, beta
8372 real(RKG) , intent(in) , contiguous :: matA(:,:)
8373 real(RKG) , intent(in) , contiguous :: matB(:,:)
8374 real(RKG) , intent(inout) , contiguous :: matC(:,:)
8375 type(lowDia_type) , intent(in) :: subsetA
8376 type(hermitian_type) , intent(in) :: classA
8377 end subroutine
8378#endif
8379
8380#if RK2_ENABLED
8381 PURE module subroutine hemm_ASS_CHA_SLA_CNB_SFB_RK2(matA, classA, subsetA, matB, matC, alpha, beta)
8382#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8383 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SLA_CNB_SFB_RK2
8384#endif
8385 use pm_kind, only: RKG => RK2
8386 real(RKG) , intent(in) , optional :: alpha, beta
8387 real(RKG) , intent(in) , contiguous :: matA(:,:)
8388 real(RKG) , intent(in) , contiguous :: matB(:,:)
8389 real(RKG) , intent(inout) , contiguous :: matC(:,:)
8390 type(lowDia_type) , intent(in) :: subsetA
8391 type(hermitian_type) , intent(in) :: classA
8392 end subroutine
8393#endif
8394
8395#if RK1_ENABLED
8396 PURE module subroutine hemm_ASS_CHA_SLA_CNB_SFB_RK1(matA, classA, subsetA, matB, matC, alpha, beta)
8397#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8398 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CHA_SLA_CNB_SFB_RK1
8399#endif
8400 use pm_kind, only: RKG => RK1
8401 real(RKG) , intent(in) , optional :: alpha, beta
8402 real(RKG) , intent(in) , contiguous :: matA(:,:)
8403 real(RKG) , intent(in) , contiguous :: matB(:,:)
8404 real(RKG) , intent(inout) , contiguous :: matC(:,:)
8405 type(lowDia_type) , intent(in) :: subsetA
8406 type(hermitian_type) , intent(in) :: classA
8407 end subroutine
8408#endif
8409
8410 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8411
8412 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8413 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8414 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8415
8416 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8417
8418#if IK5_ENABLED
8419 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SUB_IK5(matA, matB, classB, subsetB, matC, alpha, beta)
8420#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8421 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SUB_IK5
8422#endif
8423 use pm_kind, only: IKG => IK5
8424 integer(IKG) , intent(in) , optional :: alpha, beta
8425 integer(IKG) , intent(in) , contiguous :: matA(:,:)
8426 integer(IKG) , intent(in) , contiguous :: matB(:,:)
8427 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
8428 type(uppDia_type) , intent(in) :: subsetB
8429 type(hermitian_type) , intent(in) :: classB
8430 end subroutine
8431#endif
8432
8433#if IK4_ENABLED
8434 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SUB_IK4(matA, matB, classB, subsetB, matC, alpha, beta)
8435#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8436 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SUB_IK4
8437#endif
8438 use pm_kind, only: IKG => IK4
8439 integer(IKG) , intent(in) , optional :: alpha, beta
8440 integer(IKG) , intent(in) , contiguous :: matA(:,:)
8441 integer(IKG) , intent(in) , contiguous :: matB(:,:)
8442 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
8443 type(uppDia_type) , intent(in) :: subsetB
8444 type(hermitian_type) , intent(in) :: classB
8445 end subroutine
8446#endif
8447
8448#if IK3_ENABLED
8449 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SUB_IK3(matA, matB, classB, subsetB, matC, alpha, beta)
8450#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8451 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SUB_IK3
8452#endif
8453 use pm_kind, only: IKG => IK3
8454 integer(IKG) , intent(in) , optional :: alpha, beta
8455 integer(IKG) , intent(in) , contiguous :: matA(:,:)
8456 integer(IKG) , intent(in) , contiguous :: matB(:,:)
8457 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
8458 type(uppDia_type) , intent(in) :: subsetB
8459 type(hermitian_type) , intent(in) :: classB
8460 end subroutine
8461#endif
8462
8463#if IK2_ENABLED
8464 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SUB_IK2(matA, matB, classB, subsetB, matC, alpha, beta)
8465#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8466 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SUB_IK2
8467#endif
8468 use pm_kind, only: IKG => IK2
8469 integer(IKG) , intent(in) , optional :: alpha, beta
8470 integer(IKG) , intent(in) , contiguous :: matA(:,:)
8471 integer(IKG) , intent(in) , contiguous :: matB(:,:)
8472 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
8473 type(uppDia_type) , intent(in) :: subsetB
8474 type(hermitian_type) , intent(in) :: classB
8475 end subroutine
8476#endif
8477
8478#if IK1_ENABLED
8479 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SUB_IK1(matA, matB, classB, subsetB, matC, alpha, beta)
8480#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8481 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SUB_IK1
8482#endif
8483 use pm_kind, only: IKG => IK1
8484 integer(IKG) , intent(in) , optional :: alpha, beta
8485 integer(IKG) , intent(in) , contiguous :: matA(:,:)
8486 integer(IKG) , intent(in) , contiguous :: matB(:,:)
8487 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
8488 type(uppDia_type) , intent(in) :: subsetB
8489 type(hermitian_type) , intent(in) :: classB
8490 end subroutine
8491#endif
8492
8493 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8494
8495#if CK5_ENABLED
8496 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SUB_CK5(matA, matB, classB, subsetB, matC, alpha, beta)
8497#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8498 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SUB_CK5
8499#endif
8500 use pm_kind, only: CKG => CK5
8501 complex(CKG) , intent(in) , optional :: alpha, beta
8502 complex(CKG) , intent(in) , contiguous :: matA(:,:)
8503 complex(CKG) , intent(in) , contiguous :: matB(:,:)
8504 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
8505 type(uppDia_type) , intent(in) :: subsetB
8506 type(hermitian_type) , intent(in) :: classB
8507 end subroutine
8508#endif
8509
8510#if CK4_ENABLED
8511 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SUB_CK4(matA, matB, classB, subsetB, matC, alpha, beta)
8512#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8513 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SUB_CK4
8514#endif
8515 use pm_kind, only: CKG => CK4
8516 complex(CKG) , intent(in) , optional :: alpha, beta
8517 complex(CKG) , intent(in) , contiguous :: matA(:,:)
8518 complex(CKG) , intent(in) , contiguous :: matB(:,:)
8519 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
8520 type(uppDia_type) , intent(in) :: subsetB
8521 type(hermitian_type) , intent(in) :: classB
8522 end subroutine
8523#endif
8524
8525#if CK3_ENABLED
8526 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SUB_CK3(matA, matB, classB, subsetB, matC, alpha, beta)
8527#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8528 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SUB_CK3
8529#endif
8530 use pm_kind, only: CKG => CK3
8531 complex(CKG) , intent(in) , optional :: alpha, beta
8532 complex(CKG) , intent(in) , contiguous :: matA(:,:)
8533 complex(CKG) , intent(in) , contiguous :: matB(:,:)
8534 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
8535 type(uppDia_type) , intent(in) :: subsetB
8536 type(hermitian_type) , intent(in) :: classB
8537 end subroutine
8538#endif
8539
8540#if CK2_ENABLED
8541 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SUB_CK2(matA, matB, classB, subsetB, matC, alpha, beta)
8542#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8543 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SUB_CK2
8544#endif
8545 use pm_kind, only: CKG => CK2
8546 complex(CKG) , intent(in) , optional :: alpha, beta
8547 complex(CKG) , intent(in) , contiguous :: matA(:,:)
8548 complex(CKG) , intent(in) , contiguous :: matB(:,:)
8549 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
8550 type(uppDia_type) , intent(in) :: subsetB
8551 type(hermitian_type) , intent(in) :: classB
8552 end subroutine
8553#endif
8554
8555#if CK1_ENABLED
8556 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SUB_CK1(matA, matB, classB, subsetB, matC, alpha, beta)
8557#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8558 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SUB_CK1
8559#endif
8560 use pm_kind, only: CKG => CK1
8561 complex(CKG) , intent(in) , optional :: alpha, beta
8562 complex(CKG) , intent(in) , contiguous :: matA(:,:)
8563 complex(CKG) , intent(in) , contiguous :: matB(:,:)
8564 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
8565 type(uppDia_type) , intent(in) :: subsetB
8566 type(hermitian_type) , intent(in) :: classB
8567 end subroutine
8568#endif
8569
8570 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8571
8572#if RK5_ENABLED
8573 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SUB_RK5(matA, matB, classB, subsetB, matC, alpha, beta)
8574#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8575 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SUB_RK5
8576#endif
8577 use pm_kind, only: RKG => RK5
8578 real(RKG) , intent(in) , optional :: alpha, beta
8579 real(RKG) , intent(in) , contiguous :: matA(:,:)
8580 real(RKG) , intent(in) , contiguous :: matB(:,:)
8581 real(RKG) , intent(inout) , contiguous :: matC(:,:)
8582 type(uppDia_type) , intent(in) :: subsetB
8583 type(hermitian_type) , intent(in) :: classB
8584 end subroutine
8585#endif
8586
8587#if RK4_ENABLED
8588 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SUB_RK4(matA, matB, classB, subsetB, matC, alpha, beta)
8589#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8590 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SUB_RK4
8591#endif
8592 use pm_kind, only: RKG => RK4
8593 real(RKG) , intent(in) , optional :: alpha, beta
8594 real(RKG) , intent(in) , contiguous :: matA(:,:)
8595 real(RKG) , intent(in) , contiguous :: matB(:,:)
8596 real(RKG) , intent(inout) , contiguous :: matC(:,:)
8597 type(uppDia_type) , intent(in) :: subsetB
8598 type(hermitian_type) , intent(in) :: classB
8599 end subroutine
8600#endif
8601
8602#if RK3_ENABLED
8603 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SUB_RK3(matA, matB, classB, subsetB, matC, alpha, beta)
8604#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8605 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SUB_RK3
8606#endif
8607 use pm_kind, only: RKG => RK3
8608 real(RKG) , intent(in) , optional :: alpha, beta
8609 real(RKG) , intent(in) , contiguous :: matA(:,:)
8610 real(RKG) , intent(in) , contiguous :: matB(:,:)
8611 real(RKG) , intent(inout) , contiguous :: matC(:,:)
8612 type(uppDia_type) , intent(in) :: subsetB
8613 type(hermitian_type) , intent(in) :: classB
8614 end subroutine
8615#endif
8616
8617#if RK2_ENABLED
8618 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SUB_RK2(matA, matB, classB, subsetB, matC, alpha, beta)
8619#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8620 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SUB_RK2
8621#endif
8622 use pm_kind, only: RKG => RK2
8623 real(RKG) , intent(in) , optional :: alpha, beta
8624 real(RKG) , intent(in) , contiguous :: matA(:,:)
8625 real(RKG) , intent(in) , contiguous :: matB(:,:)
8626 real(RKG) , intent(inout) , contiguous :: matC(:,:)
8627 type(uppDia_type) , intent(in) :: subsetB
8628 type(hermitian_type) , intent(in) :: classB
8629 end subroutine
8630#endif
8631
8632#if RK1_ENABLED
8633 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SUB_RK1(matA, matB, classB, subsetB, matC, alpha, beta)
8634#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8635 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SUB_RK1
8636#endif
8637 use pm_kind, only: RKG => RK1
8638 real(RKG) , intent(in) , optional :: alpha, beta
8639 real(RKG) , intent(in) , contiguous :: matA(:,:)
8640 real(RKG) , intent(in) , contiguous :: matB(:,:)
8641 real(RKG) , intent(inout) , contiguous :: matC(:,:)
8642 type(uppDia_type) , intent(in) :: subsetB
8643 type(hermitian_type) , intent(in) :: classB
8644 end subroutine
8645#endif
8646
8647 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8648
8649 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8650 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8651 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8652
8653 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8654
8655#if IK5_ENABLED
8656 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SLB_IK5(matA, matB, classB, subsetB, matC, alpha, beta)
8657#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8658 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SLB_IK5
8659#endif
8660 use pm_kind, only: IKG => IK5
8661 integer(IKG) , intent(in) , optional :: alpha, beta
8662 integer(IKG) , intent(in) , contiguous :: matA(:,:)
8663 integer(IKG) , intent(in) , contiguous :: matB(:,:)
8664 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
8665 type(lowDia_type) , intent(in) :: subsetB
8666 type(hermitian_type) , intent(in) :: classB
8667 end subroutine
8668#endif
8669
8670#if IK4_ENABLED
8671 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SLB_IK4(matA, matB, classB, subsetB, matC, alpha, beta)
8672#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8673 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SLB_IK4
8674#endif
8675 use pm_kind, only: IKG => IK4
8676 integer(IKG) , intent(in) , optional :: alpha, beta
8677 integer(IKG) , intent(in) , contiguous :: matA(:,:)
8678 integer(IKG) , intent(in) , contiguous :: matB(:,:)
8679 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
8680 type(lowDia_type) , intent(in) :: subsetB
8681 type(hermitian_type) , intent(in) :: classB
8682 end subroutine
8683#endif
8684
8685#if IK3_ENABLED
8686 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SLB_IK3(matA, matB, classB, subsetB, matC, alpha, beta)
8687#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8688 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SLB_IK3
8689#endif
8690 use pm_kind, only: IKG => IK3
8691 integer(IKG) , intent(in) , optional :: alpha, beta
8692 integer(IKG) , intent(in) , contiguous :: matA(:,:)
8693 integer(IKG) , intent(in) , contiguous :: matB(:,:)
8694 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
8695 type(lowDia_type) , intent(in) :: subsetB
8696 type(hermitian_type) , intent(in) :: classB
8697 end subroutine
8698#endif
8699
8700#if IK2_ENABLED
8701 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SLB_IK2(matA, matB, classB, subsetB, matC, alpha, beta)
8702#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8703 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SLB_IK2
8704#endif
8705 use pm_kind, only: IKG => IK2
8706 integer(IKG) , intent(in) , optional :: alpha, beta
8707 integer(IKG) , intent(in) , contiguous :: matA(:,:)
8708 integer(IKG) , intent(in) , contiguous :: matB(:,:)
8709 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
8710 type(lowDia_type) , intent(in) :: subsetB
8711 type(hermitian_type) , intent(in) :: classB
8712 end subroutine
8713#endif
8714
8715#if IK1_ENABLED
8716 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SLB_IK1(matA, matB, classB, subsetB, matC, alpha, beta)
8717#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8718 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SLB_IK1
8719#endif
8720 use pm_kind, only: IKG => IK1
8721 integer(IKG) , intent(in) , optional :: alpha, beta
8722 integer(IKG) , intent(in) , contiguous :: matA(:,:)
8723 integer(IKG) , intent(in) , contiguous :: matB(:,:)
8724 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
8725 type(lowDia_type) , intent(in) :: subsetB
8726 type(hermitian_type) , intent(in) :: classB
8727 end subroutine
8728#endif
8729
8730 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8731
8732#if CK5_ENABLED
8733 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SLB_CK5(matA, matB, classB, subsetB, matC, alpha, beta)
8734#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8735 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SLB_CK5
8736#endif
8737 use pm_kind, only: CKG => CK5
8738 complex(CKG) , intent(in) , optional :: alpha, beta
8739 complex(CKG) , intent(in) , contiguous :: matA(:,:)
8740 complex(CKG) , intent(in) , contiguous :: matB(:,:)
8741 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
8742 type(lowDia_type) , intent(in) :: subsetB
8743 type(hermitian_type) , intent(in) :: classB
8744 end subroutine
8745#endif
8746
8747#if CK4_ENABLED
8748 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SLB_CK4(matA, matB, classB, subsetB, matC, alpha, beta)
8749#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8750 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SLB_CK4
8751#endif
8752 use pm_kind, only: CKG => CK4
8753 complex(CKG) , intent(in) , optional :: alpha, beta
8754 complex(CKG) , intent(in) , contiguous :: matA(:,:)
8755 complex(CKG) , intent(in) , contiguous :: matB(:,:)
8756 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
8757 type(lowDia_type) , intent(in) :: subsetB
8758 type(hermitian_type) , intent(in) :: classB
8759 end subroutine
8760#endif
8761
8762#if CK3_ENABLED
8763 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SLB_CK3(matA, matB, classB, subsetB, matC, alpha, beta)
8764#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8765 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SLB_CK3
8766#endif
8767 use pm_kind, only: CKG => CK3
8768 complex(CKG) , intent(in) , optional :: alpha, beta
8769 complex(CKG) , intent(in) , contiguous :: matA(:,:)
8770 complex(CKG) , intent(in) , contiguous :: matB(:,:)
8771 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
8772 type(lowDia_type) , intent(in) :: subsetB
8773 type(hermitian_type) , intent(in) :: classB
8774 end subroutine
8775#endif
8776
8777#if CK2_ENABLED
8778 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SLB_CK2(matA, matB, classB, subsetB, matC, alpha, beta)
8779#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8780 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SLB_CK2
8781#endif
8782 use pm_kind, only: CKG => CK2
8783 complex(CKG) , intent(in) , optional :: alpha, beta
8784 complex(CKG) , intent(in) , contiguous :: matA(:,:)
8785 complex(CKG) , intent(in) , contiguous :: matB(:,:)
8786 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
8787 type(lowDia_type) , intent(in) :: subsetB
8788 type(hermitian_type) , intent(in) :: classB
8789 end subroutine
8790#endif
8791
8792#if CK1_ENABLED
8793 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SLB_CK1(matA, matB, classB, subsetB, matC, alpha, beta)
8794#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8795 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SLB_CK1
8796#endif
8797 use pm_kind, only: CKG => CK1
8798 complex(CKG) , intent(in) , optional :: alpha, beta
8799 complex(CKG) , intent(in) , contiguous :: matA(:,:)
8800 complex(CKG) , intent(in) , contiguous :: matB(:,:)
8801 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
8802 type(lowDia_type) , intent(in) :: subsetB
8803 type(hermitian_type) , intent(in) :: classB
8804 end subroutine
8805#endif
8806
8807 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8808
8809#if RK5_ENABLED
8810 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SLB_RK5(matA, matB, classB, subsetB, matC, alpha, beta)
8811#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8812 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SLB_RK5
8813#endif
8814 use pm_kind, only: RKG => RK5
8815 real(RKG) , intent(in) , optional :: alpha, beta
8816 real(RKG) , intent(in) , contiguous :: matA(:,:)
8817 real(RKG) , intent(in) , contiguous :: matB(:,:)
8818 real(RKG) , intent(inout) , contiguous :: matC(:,:)
8819 type(lowDia_type) , intent(in) :: subsetB
8820 type(hermitian_type) , intent(in) :: classB
8821 end subroutine
8822#endif
8823
8824#if RK4_ENABLED
8825 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SLB_RK4(matA, matB, classB, subsetB, matC, alpha, beta)
8826#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8827 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SLB_RK4
8828#endif
8829 use pm_kind, only: RKG => RK4
8830 real(RKG) , intent(in) , optional :: alpha, beta
8831 real(RKG) , intent(in) , contiguous :: matA(:,:)
8832 real(RKG) , intent(in) , contiguous :: matB(:,:)
8833 real(RKG) , intent(inout) , contiguous :: matC(:,:)
8834 type(lowDia_type) , intent(in) :: subsetB
8835 type(hermitian_type) , intent(in) :: classB
8836 end subroutine
8837#endif
8838
8839#if RK3_ENABLED
8840 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SLB_RK3(matA, matB, classB, subsetB, matC, alpha, beta)
8841#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8842 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SLB_RK3
8843#endif
8844 use pm_kind, only: RKG => RK3
8845 real(RKG) , intent(in) , optional :: alpha, beta
8846 real(RKG) , intent(in) , contiguous :: matA(:,:)
8847 real(RKG) , intent(in) , contiguous :: matB(:,:)
8848 real(RKG) , intent(inout) , contiguous :: matC(:,:)
8849 type(lowDia_type) , intent(in) :: subsetB
8850 type(hermitian_type) , intent(in) :: classB
8851 end subroutine
8852#endif
8853
8854#if RK2_ENABLED
8855 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SLB_RK2(matA, matB, classB, subsetB, matC, alpha, beta)
8856#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8857 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SLB_RK2
8858#endif
8859 use pm_kind, only: RKG => RK2
8860 real(RKG) , intent(in) , optional :: alpha, beta
8861 real(RKG) , intent(in) , contiguous :: matA(:,:)
8862 real(RKG) , intent(in) , contiguous :: matB(:,:)
8863 real(RKG) , intent(inout) , contiguous :: matC(:,:)
8864 type(lowDia_type) , intent(in) :: subsetB
8865 type(hermitian_type) , intent(in) :: classB
8866 end subroutine
8867#endif
8868
8869#if RK1_ENABLED
8870 PURE module subroutine hemm_ASS_CNA_SFA_CHB_SLB_RK1(matA, matB, classB, subsetB, matC, alpha, beta)
8871#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8872 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_ASS_CNA_SFA_CHB_SLB_RK1
8873#endif
8874 use pm_kind, only: RKG => RK1
8875 real(RKG) , intent(in) , optional :: alpha, beta
8876 real(RKG) , intent(in) , contiguous :: matA(:,:)
8877 real(RKG) , intent(in) , contiguous :: matB(:,:)
8878 real(RKG) , intent(inout) , contiguous :: matC(:,:)
8879 type(lowDia_type) , intent(in) :: subsetB
8880 type(hermitian_type) , intent(in) :: classB
8881 end subroutine
8882#endif
8883
8884 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8885
8886 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8887 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8888 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8889
8890 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8891 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8892 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8893
8894 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8895
8896#if IK5_ENABLED
8897 PURE module subroutine hemm_EXP_CHA_SUA_CNB_SFB_IK5(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
8898#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8899 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SUA_CNB_SFB_IK5
8900#endif
8901 use pm_kind, only: IKG => IK5
8902 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
8903 integer(IKG) , intent(in) :: alpha, beta
8904 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
8905 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
8906 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
8907 type(uppDia_type) , intent(in) :: subsetA
8908 type(hermitian_type) , intent(in) :: classA
8909 end subroutine
8910#endif
8911
8912#if IK4_ENABLED
8913 PURE module subroutine hemm_EXP_CHA_SUA_CNB_SFB_IK4(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
8914#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8915 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SUA_CNB_SFB_IK4
8916#endif
8917 use pm_kind, only: IKG => IK4
8918 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
8919 integer(IKG) , intent(in) :: alpha, beta
8920 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
8921 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
8922 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
8923 type(uppDia_type) , intent(in) :: subsetA
8924 type(hermitian_type) , intent(in) :: classA
8925 end subroutine
8926#endif
8927
8928#if IK3_ENABLED
8929 PURE module subroutine hemm_EXP_CHA_SUA_CNB_SFB_IK3(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
8930#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8931 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SUA_CNB_SFB_IK3
8932#endif
8933 use pm_kind, only: IKG => IK3
8934 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
8935 integer(IKG) , intent(in) :: alpha, beta
8936 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
8937 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
8938 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
8939 type(uppDia_type) , intent(in) :: subsetA
8940 type(hermitian_type) , intent(in) :: classA
8941 end subroutine
8942#endif
8943
8944#if IK2_ENABLED
8945 PURE module subroutine hemm_EXP_CHA_SUA_CNB_SFB_IK2(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
8946#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8947 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SUA_CNB_SFB_IK2
8948#endif
8949 use pm_kind, only: IKG => IK2
8950 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
8951 integer(IKG) , intent(in) :: alpha, beta
8952 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
8953 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
8954 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
8955 type(uppDia_type) , intent(in) :: subsetA
8956 type(hermitian_type) , intent(in) :: classA
8957 end subroutine
8958#endif
8959
8960#if IK1_ENABLED
8961 PURE module subroutine hemm_EXP_CHA_SUA_CNB_SFB_IK1(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
8962#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8963 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SUA_CNB_SFB_IK1
8964#endif
8965 use pm_kind, only: IKG => IK1
8966 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
8967 integer(IKG) , intent(in) :: alpha, beta
8968 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
8969 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
8970 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
8971 type(uppDia_type) , intent(in) :: subsetA
8972 type(hermitian_type) , intent(in) :: classA
8973 end subroutine
8974#endif
8975
8976 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8977
8978#if CK5_ENABLED
8979 PURE module subroutine hemm_EXP_CHA_SUA_CNB_SFB_CK5(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
8980#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8981 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SUA_CNB_SFB_CK5
8982#endif
8983 use pm_kind, only: CKG => CK5
8984 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
8985 complex(CKG) , intent(in) :: alpha, beta
8986 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
8987 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
8988 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
8989 type(uppDia_type) , intent(in) :: subsetA
8990 type(hermitian_type) , intent(in) :: classA
8991 end subroutine
8992#endif
8993
8994#if CK4_ENABLED
8995 PURE module subroutine hemm_EXP_CHA_SUA_CNB_SFB_CK4(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
8996#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8997 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SUA_CNB_SFB_CK4
8998#endif
8999 use pm_kind, only: CKG => CK4
9000 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9001 complex(CKG) , intent(in) :: alpha, beta
9002 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9003 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9004 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9005 type(uppDia_type) , intent(in) :: subsetA
9006 type(hermitian_type) , intent(in) :: classA
9007 end subroutine
9008#endif
9009
9010#if CK3_ENABLED
9011 PURE module subroutine hemm_EXP_CHA_SUA_CNB_SFB_CK3(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9012#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9013 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SUA_CNB_SFB_CK3
9014#endif
9015 use pm_kind, only: CKG => CK3
9016 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9017 complex(CKG) , intent(in) :: alpha, beta
9018 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9019 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9020 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9021 type(uppDia_type) , intent(in) :: subsetA
9022 type(hermitian_type) , intent(in) :: classA
9023 end subroutine
9024#endif
9025
9026#if CK2_ENABLED
9027 PURE module subroutine hemm_EXP_CHA_SUA_CNB_SFB_CK2(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9028#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9029 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SUA_CNB_SFB_CK2
9030#endif
9031 use pm_kind, only: CKG => CK2
9032 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9033 complex(CKG) , intent(in) :: alpha, beta
9034 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9035 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9036 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9037 type(uppDia_type) , intent(in) :: subsetA
9038 type(hermitian_type) , intent(in) :: classA
9039 end subroutine
9040#endif
9041
9042#if CK1_ENABLED
9043 PURE module subroutine hemm_EXP_CHA_SUA_CNB_SFB_CK1(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9044#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9045 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SUA_CNB_SFB_CK1
9046#endif
9047 use pm_kind, only: CKG => CK1
9048 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9049 complex(CKG) , intent(in) :: alpha, beta
9050 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9051 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9052 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9053 type(uppDia_type) , intent(in) :: subsetA
9054 type(hermitian_type) , intent(in) :: classA
9055 end subroutine
9056#endif
9057
9058 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9059
9060#if RK5_ENABLED
9061 PURE module subroutine hemm_EXP_CHA_SUA_CNB_SFB_RK5(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9062#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9063 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SUA_CNB_SFB_RK5
9064#endif
9065 use pm_kind, only: RKG => RK5
9066 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9067 real(RKG) , intent(in) :: alpha, beta
9068 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9069 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9070 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9071 type(uppDia_type) , intent(in) :: subsetA
9072 type(hermitian_type) , intent(in) :: classA
9073 end subroutine
9074#endif
9075
9076#if RK4_ENABLED
9077 PURE module subroutine hemm_EXP_CHA_SUA_CNB_SFB_RK4(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9078#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9079 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SUA_CNB_SFB_RK4
9080#endif
9081 use pm_kind, only: RKG => RK4
9082 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9083 real(RKG) , intent(in) :: alpha, beta
9084 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9085 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9086 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9087 type(uppDia_type) , intent(in) :: subsetA
9088 type(hermitian_type) , intent(in) :: classA
9089 end subroutine
9090#endif
9091
9092#if RK3_ENABLED
9093 PURE module subroutine hemm_EXP_CHA_SUA_CNB_SFB_RK3(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9094#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9095 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SUA_CNB_SFB_RK3
9096#endif
9097 use pm_kind, only: RKG => RK3
9098 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9099 real(RKG) , intent(in) :: alpha, beta
9100 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9101 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9102 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9103 type(uppDia_type) , intent(in) :: subsetA
9104 type(hermitian_type) , intent(in) :: classA
9105 end subroutine
9106#endif
9107
9108#if RK2_ENABLED
9109 PURE module subroutine hemm_EXP_CHA_SUA_CNB_SFB_RK2(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9110#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9111 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SUA_CNB_SFB_RK2
9112#endif
9113 use pm_kind, only: RKG => RK2
9114 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9115 real(RKG) , intent(in) :: alpha, beta
9116 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9117 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9118 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9119 type(uppDia_type) , intent(in) :: subsetA
9120 type(hermitian_type) , intent(in) :: classA
9121 end subroutine
9122#endif
9123
9124#if RK1_ENABLED
9125 PURE module subroutine hemm_EXP_CHA_SUA_CNB_SFB_RK1(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9126#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9127 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SUA_CNB_SFB_RK1
9128#endif
9129 use pm_kind, only: RKG => RK1
9130 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9131 real(RKG) , intent(in) :: alpha, beta
9132 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9133 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9134 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9135 type(uppDia_type) , intent(in) :: subsetA
9136 type(hermitian_type) , intent(in) :: classA
9137 end subroutine
9138#endif
9139
9140 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9141
9142 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9143 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9144 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9145
9146 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9147
9148#if IK5_ENABLED
9149 PURE module subroutine hemm_EXP_CHA_SLA_CNB_SFB_IK5(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9150#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9151 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SLA_CNB_SFB_IK5
9152#endif
9153 use pm_kind, only: IKG => IK5
9154 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9155 integer(IKG) , intent(in) :: alpha, beta
9156 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9157 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9158 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9159 type(lowDia_type) , intent(in) :: subsetA
9160 type(hermitian_type) , intent(in) :: classA
9161 end subroutine
9162#endif
9163
9164#if IK4_ENABLED
9165 PURE module subroutine hemm_EXP_CHA_SLA_CNB_SFB_IK4(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9166#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9167 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SLA_CNB_SFB_IK4
9168#endif
9169 use pm_kind, only: IKG => IK4
9170 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9171 integer(IKG) , intent(in) :: alpha, beta
9172 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9173 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9174 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9175 type(lowDia_type) , intent(in) :: subsetA
9176 type(hermitian_type) , intent(in) :: classA
9177 end subroutine
9178#endif
9179
9180#if IK3_ENABLED
9181 PURE module subroutine hemm_EXP_CHA_SLA_CNB_SFB_IK3(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9182#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9183 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SLA_CNB_SFB_IK3
9184#endif
9185 use pm_kind, only: IKG => IK3
9186 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9187 integer(IKG) , intent(in) :: alpha, beta
9188 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9189 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9190 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9191 type(lowDia_type) , intent(in) :: subsetA
9192 type(hermitian_type) , intent(in) :: classA
9193 end subroutine
9194#endif
9195
9196#if IK2_ENABLED
9197 PURE module subroutine hemm_EXP_CHA_SLA_CNB_SFB_IK2(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9198#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9199 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SLA_CNB_SFB_IK2
9200#endif
9201 use pm_kind, only: IKG => IK2
9202 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9203 integer(IKG) , intent(in) :: alpha, beta
9204 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9205 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9206 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9207 type(lowDia_type) , intent(in) :: subsetA
9208 type(hermitian_type) , intent(in) :: classA
9209 end subroutine
9210#endif
9211
9212#if IK1_ENABLED
9213 PURE module subroutine hemm_EXP_CHA_SLA_CNB_SFB_IK1(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9214#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9215 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SLA_CNB_SFB_IK1
9216#endif
9217 use pm_kind, only: IKG => IK1
9218 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9219 integer(IKG) , intent(in) :: alpha, beta
9220 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9221 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9222 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9223 type(lowDia_type) , intent(in) :: subsetA
9224 type(hermitian_type) , intent(in) :: classA
9225 end subroutine
9226#endif
9227
9228 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9229
9230#if CK5_ENABLED
9231 PURE module subroutine hemm_EXP_CHA_SLA_CNB_SFB_CK5(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9232#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9233 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SLA_CNB_SFB_CK5
9234#endif
9235 use pm_kind, only: CKG => CK5
9236 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9237 complex(CKG) , intent(in) :: alpha, beta
9238 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9239 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9240 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9241 type(lowDia_type) , intent(in) :: subsetA
9242 type(hermitian_type) , intent(in) :: classA
9243 end subroutine
9244#endif
9245
9246#if CK4_ENABLED
9247 PURE module subroutine hemm_EXP_CHA_SLA_CNB_SFB_CK4(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9248#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9249 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SLA_CNB_SFB_CK4
9250#endif
9251 use pm_kind, only: CKG => CK4
9252 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9253 complex(CKG) , intent(in) :: alpha, beta
9254 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9255 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9256 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9257 type(lowDia_type) , intent(in) :: subsetA
9258 type(hermitian_type) , intent(in) :: classA
9259 end subroutine
9260#endif
9261
9262#if CK3_ENABLED
9263 PURE module subroutine hemm_EXP_CHA_SLA_CNB_SFB_CK3(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9264#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9265 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SLA_CNB_SFB_CK3
9266#endif
9267 use pm_kind, only: CKG => CK3
9268 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9269 complex(CKG) , intent(in) :: alpha, beta
9270 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9271 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9272 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9273 type(lowDia_type) , intent(in) :: subsetA
9274 type(hermitian_type) , intent(in) :: classA
9275 end subroutine
9276#endif
9277
9278#if CK2_ENABLED
9279 PURE module subroutine hemm_EXP_CHA_SLA_CNB_SFB_CK2(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9280#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9281 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SLA_CNB_SFB_CK2
9282#endif
9283 use pm_kind, only: CKG => CK2
9284 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9285 complex(CKG) , intent(in) :: alpha, beta
9286 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9287 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9288 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9289 type(lowDia_type) , intent(in) :: subsetA
9290 type(hermitian_type) , intent(in) :: classA
9291 end subroutine
9292#endif
9293
9294#if CK1_ENABLED
9295 PURE module subroutine hemm_EXP_CHA_SLA_CNB_SFB_CK1(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9296#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9297 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SLA_CNB_SFB_CK1
9298#endif
9299 use pm_kind, only: CKG => CK1
9300 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9301 complex(CKG) , intent(in) :: alpha, beta
9302 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9303 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9304 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9305 type(lowDia_type) , intent(in) :: subsetA
9306 type(hermitian_type) , intent(in) :: classA
9307 end subroutine
9308#endif
9309
9310 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9311
9312#if RK5_ENABLED
9313 PURE module subroutine hemm_EXP_CHA_SLA_CNB_SFB_RK5(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9314#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9315 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SLA_CNB_SFB_RK5
9316#endif
9317 use pm_kind, only: RKG => RK5
9318 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9319 real(RKG) , intent(in) :: alpha, beta
9320 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9321 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9322 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9323 type(lowDia_type) , intent(in) :: subsetA
9324 type(hermitian_type) , intent(in) :: classA
9325 end subroutine
9326#endif
9327
9328#if RK4_ENABLED
9329 PURE module subroutine hemm_EXP_CHA_SLA_CNB_SFB_RK4(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9330#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9331 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SLA_CNB_SFB_RK4
9332#endif
9333 use pm_kind, only: RKG => RK4
9334 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9335 real(RKG) , intent(in) :: alpha, beta
9336 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9337 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9338 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9339 type(lowDia_type) , intent(in) :: subsetA
9340 type(hermitian_type) , intent(in) :: classA
9341 end subroutine
9342#endif
9343
9344#if RK3_ENABLED
9345 PURE module subroutine hemm_EXP_CHA_SLA_CNB_SFB_RK3(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9346#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9347 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SLA_CNB_SFB_RK3
9348#endif
9349 use pm_kind, only: RKG => RK3
9350 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9351 real(RKG) , intent(in) :: alpha, beta
9352 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9353 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9354 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9355 type(lowDia_type) , intent(in) :: subsetA
9356 type(hermitian_type) , intent(in) :: classA
9357 end subroutine
9358#endif
9359
9360#if RK2_ENABLED
9361 PURE module subroutine hemm_EXP_CHA_SLA_CNB_SFB_RK2(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9362#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9363 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SLA_CNB_SFB_RK2
9364#endif
9365 use pm_kind, only: RKG => RK2
9366 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9367 real(RKG) , intent(in) :: alpha, beta
9368 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9369 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9370 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9371 type(lowDia_type) , intent(in) :: subsetA
9372 type(hermitian_type) , intent(in) :: classA
9373 end subroutine
9374#endif
9375
9376#if RK1_ENABLED
9377 PURE module subroutine hemm_EXP_CHA_SLA_CNB_SFB_RK1(matA, classA, subsetA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9378#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9379 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CHA_SLA_CNB_SFB_RK1
9380#endif
9381 use pm_kind, only: RKG => RK1
9382 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9383 real(RKG) , intent(in) :: alpha, beta
9384 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9385 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9386 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9387 type(lowDia_type) , intent(in) :: subsetA
9388 type(hermitian_type) , intent(in) :: classA
9389 end subroutine
9390#endif
9391
9392 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9393
9394 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9395 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9396 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9397
9398 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9399
9400#if IK5_ENABLED
9401 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SUB_IK5(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9402#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9403 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SUB_IK5
9404#endif
9405 use pm_kind, only: IKG => IK5
9406 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9407 integer(IKG) , intent(in) :: alpha, beta
9408 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9409 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9410 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9411 type(uppDia_type) , intent(in) :: subsetB
9412 type(hermitian_type) , intent(in) :: classB
9413 end subroutine
9414#endif
9415
9416#if IK4_ENABLED
9417 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SUB_IK4(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9418#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9419 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SUB_IK4
9420#endif
9421 use pm_kind, only: IKG => IK4
9422 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9423 integer(IKG) , intent(in) :: alpha, beta
9424 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9425 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9426 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9427 type(uppDia_type) , intent(in) :: subsetB
9428 type(hermitian_type) , intent(in) :: classB
9429 end subroutine
9430#endif
9431
9432#if IK3_ENABLED
9433 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SUB_IK3(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9434#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9435 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SUB_IK3
9436#endif
9437 use pm_kind, only: IKG => IK3
9438 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9439 integer(IKG) , intent(in) :: alpha, beta
9440 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9441 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9442 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9443 type(uppDia_type) , intent(in) :: subsetB
9444 type(hermitian_type) , intent(in) :: classB
9445 end subroutine
9446#endif
9447
9448#if IK2_ENABLED
9449 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SUB_IK2(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9450#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9451 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SUB_IK2
9452#endif
9453 use pm_kind, only: IKG => IK2
9454 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9455 integer(IKG) , intent(in) :: alpha, beta
9456 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9457 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9458 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9459 type(uppDia_type) , intent(in) :: subsetB
9460 type(hermitian_type) , intent(in) :: classB
9461 end subroutine
9462#endif
9463
9464#if IK1_ENABLED
9465 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SUB_IK1(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9466#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9467 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SUB_IK1
9468#endif
9469 use pm_kind, only: IKG => IK1
9470 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9471 integer(IKG) , intent(in) :: alpha, beta
9472 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9473 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9474 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9475 type(uppDia_type) , intent(in) :: subsetB
9476 type(hermitian_type) , intent(in) :: classB
9477 end subroutine
9478#endif
9479
9480 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9481
9482#if CK5_ENABLED
9483 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SUB_CK5(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9484#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9485 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SUB_CK5
9486#endif
9487 use pm_kind, only: CKG => CK5
9488 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9489 complex(CKG) , intent(in) :: alpha, beta
9490 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9491 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9492 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9493 type(uppDia_type) , intent(in) :: subsetB
9494 type(hermitian_type) , intent(in) :: classB
9495 end subroutine
9496#endif
9497
9498#if CK4_ENABLED
9499 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SUB_CK4(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9500#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9501 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SUB_CK4
9502#endif
9503 use pm_kind, only: CKG => CK4
9504 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9505 complex(CKG) , intent(in) :: alpha, beta
9506 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9507 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9508 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9509 type(uppDia_type) , intent(in) :: subsetB
9510 type(hermitian_type) , intent(in) :: classB
9511 end subroutine
9512#endif
9513
9514#if CK3_ENABLED
9515 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SUB_CK3(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9516#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9517 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SUB_CK3
9518#endif
9519 use pm_kind, only: CKG => CK3
9520 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9521 complex(CKG) , intent(in) :: alpha, beta
9522 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9523 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9524 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9525 type(uppDia_type) , intent(in) :: subsetB
9526 type(hermitian_type) , intent(in) :: classB
9527 end subroutine
9528#endif
9529
9530#if CK2_ENABLED
9531 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SUB_CK2(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9532#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9533 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SUB_CK2
9534#endif
9535 use pm_kind, only: CKG => CK2
9536 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9537 complex(CKG) , intent(in) :: alpha, beta
9538 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9539 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9540 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9541 type(uppDia_type) , intent(in) :: subsetB
9542 type(hermitian_type) , intent(in) :: classB
9543 end subroutine
9544#endif
9545
9546#if CK1_ENABLED
9547 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SUB_CK1(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9548#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9549 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SUB_CK1
9550#endif
9551 use pm_kind, only: CKG => CK1
9552 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9553 complex(CKG) , intent(in) :: alpha, beta
9554 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9555 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9556 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9557 type(uppDia_type) , intent(in) :: subsetB
9558 type(hermitian_type) , intent(in) :: classB
9559 end subroutine
9560#endif
9561
9562 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9563
9564#if RK5_ENABLED
9565 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SUB_RK5(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9566#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9567 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SUB_RK5
9568#endif
9569 use pm_kind, only: RKG => RK5
9570 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9571 real(RKG) , intent(in) :: alpha, beta
9572 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9573 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9574 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9575 type(uppDia_type) , intent(in) :: subsetB
9576 type(hermitian_type) , intent(in) :: classB
9577 end subroutine
9578#endif
9579
9580#if RK4_ENABLED
9581 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SUB_RK4(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9582#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9583 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SUB_RK4
9584#endif
9585 use pm_kind, only: RKG => RK4
9586 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9587 real(RKG) , intent(in) :: alpha, beta
9588 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9589 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9590 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9591 type(uppDia_type) , intent(in) :: subsetB
9592 type(hermitian_type) , intent(in) :: classB
9593 end subroutine
9594#endif
9595
9596#if RK3_ENABLED
9597 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SUB_RK3(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9598#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9599 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SUB_RK3
9600#endif
9601 use pm_kind, only: RKG => RK3
9602 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9603 real(RKG) , intent(in) :: alpha, beta
9604 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9605 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9606 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9607 type(uppDia_type) , intent(in) :: subsetB
9608 type(hermitian_type) , intent(in) :: classB
9609 end subroutine
9610#endif
9611
9612#if RK2_ENABLED
9613 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SUB_RK2(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9614#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9615 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SUB_RK2
9616#endif
9617 use pm_kind, only: RKG => RK2
9618 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9619 real(RKG) , intent(in) :: alpha, beta
9620 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9621 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9622 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9623 type(uppDia_type) , intent(in) :: subsetB
9624 type(hermitian_type) , intent(in) :: classB
9625 end subroutine
9626#endif
9627
9628#if RK1_ENABLED
9629 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SUB_RK1(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9630#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9631 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SUB_RK1
9632#endif
9633 use pm_kind, only: RKG => RK1
9634 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9635 real(RKG) , intent(in) :: alpha, beta
9636 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9637 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9638 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9639 type(uppDia_type) , intent(in) :: subsetB
9640 type(hermitian_type) , intent(in) :: classB
9641 end subroutine
9642#endif
9643
9644 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9645
9646 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9647 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9648 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9649
9650 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9651
9652#if IK5_ENABLED
9653 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SLB_IK5(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9654#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9655 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SLB_IK5
9656#endif
9657 use pm_kind, only: IKG => IK5
9658 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9659 integer(IKG) , intent(in) :: alpha, beta
9660 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9661 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9662 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9663 type(lowDia_type) , intent(in) :: subsetB
9664 type(hermitian_type) , intent(in) :: classB
9665 end subroutine
9666#endif
9667
9668#if IK4_ENABLED
9669 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SLB_IK4(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9670#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9671 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SLB_IK4
9672#endif
9673 use pm_kind, only: IKG => IK4
9674 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9675 integer(IKG) , intent(in) :: alpha, beta
9676 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9677 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9678 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9679 type(lowDia_type) , intent(in) :: subsetB
9680 type(hermitian_type) , intent(in) :: classB
9681 end subroutine
9682#endif
9683
9684#if IK3_ENABLED
9685 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SLB_IK3(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9686#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9687 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SLB_IK3
9688#endif
9689 use pm_kind, only: IKG => IK3
9690 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9691 integer(IKG) , intent(in) :: alpha, beta
9692 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9693 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9694 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9695 type(lowDia_type) , intent(in) :: subsetB
9696 type(hermitian_type) , intent(in) :: classB
9697 end subroutine
9698#endif
9699
9700#if IK2_ENABLED
9701 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SLB_IK2(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9702#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9703 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SLB_IK2
9704#endif
9705 use pm_kind, only: IKG => IK2
9706 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9707 integer(IKG) , intent(in) :: alpha, beta
9708 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9709 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9710 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9711 type(lowDia_type) , intent(in) :: subsetB
9712 type(hermitian_type) , intent(in) :: classB
9713 end subroutine
9714#endif
9715
9716#if IK1_ENABLED
9717 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SLB_IK1(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9718#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9719 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SLB_IK1
9720#endif
9721 use pm_kind, only: IKG => IK1
9722 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9723 integer(IKG) , intent(in) :: alpha, beta
9724 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9725 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9726 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9727 type(lowDia_type) , intent(in) :: subsetB
9728 type(hermitian_type) , intent(in) :: classB
9729 end subroutine
9730#endif
9731
9732 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9733
9734#if CK5_ENABLED
9735 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SLB_CK5(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9736#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9737 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SLB_CK5
9738#endif
9739 use pm_kind, only: CKG => CK5
9740 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9741 complex(CKG) , intent(in) :: alpha, beta
9742 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9743 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9744 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9745 type(lowDia_type) , intent(in) :: subsetB
9746 type(hermitian_type) , intent(in) :: classB
9747 end subroutine
9748#endif
9749
9750#if CK4_ENABLED
9751 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SLB_CK4(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9752#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9753 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SLB_CK4
9754#endif
9755 use pm_kind, only: CKG => CK4
9756 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9757 complex(CKG) , intent(in) :: alpha, beta
9758 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9759 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9760 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9761 type(lowDia_type) , intent(in) :: subsetB
9762 type(hermitian_type) , intent(in) :: classB
9763 end subroutine
9764#endif
9765
9766#if CK3_ENABLED
9767 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SLB_CK3(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9768#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9769 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SLB_CK3
9770#endif
9771 use pm_kind, only: CKG => CK3
9772 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9773 complex(CKG) , intent(in) :: alpha, beta
9774 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9775 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9776 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9777 type(lowDia_type) , intent(in) :: subsetB
9778 type(hermitian_type) , intent(in) :: classB
9779 end subroutine
9780#endif
9781
9782#if CK2_ENABLED
9783 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SLB_CK2(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9784#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9785 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SLB_CK2
9786#endif
9787 use pm_kind, only: CKG => CK2
9788 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9789 complex(CKG) , intent(in) :: alpha, beta
9790 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9791 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9792 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9793 type(lowDia_type) , intent(in) :: subsetB
9794 type(hermitian_type) , intent(in) :: classB
9795 end subroutine
9796#endif
9797
9798#if CK1_ENABLED
9799 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SLB_CK1(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9800#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9801 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SLB_CK1
9802#endif
9803 use pm_kind, only: CKG => CK1
9804 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9805 complex(CKG) , intent(in) :: alpha, beta
9806 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9807 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9808 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9809 type(lowDia_type) , intent(in) :: subsetB
9810 type(hermitian_type) , intent(in) :: classB
9811 end subroutine
9812#endif
9813
9814 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9815
9816#if RK5_ENABLED
9817 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SLB_RK5(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9818#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9819 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SLB_RK5
9820#endif
9821 use pm_kind, only: RKG => RK5
9822 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9823 real(RKG) , intent(in) :: alpha, beta
9824 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9825 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9826 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9827 type(lowDia_type) , intent(in) :: subsetB
9828 type(hermitian_type) , intent(in) :: classB
9829 end subroutine
9830#endif
9831
9832#if RK4_ENABLED
9833 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SLB_RK4(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9834#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9835 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SLB_RK4
9836#endif
9837 use pm_kind, only: RKG => RK4
9838 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9839 real(RKG) , intent(in) :: alpha, beta
9840 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9841 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9842 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9843 type(lowDia_type) , intent(in) :: subsetB
9844 type(hermitian_type) , intent(in) :: classB
9845 end subroutine
9846#endif
9847
9848#if RK3_ENABLED
9849 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SLB_RK3(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9850#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9851 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SLB_RK3
9852#endif
9853 use pm_kind, only: RKG => RK3
9854 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9855 real(RKG) , intent(in) :: alpha, beta
9856 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9857 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9858 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9859 type(lowDia_type) , intent(in) :: subsetB
9860 type(hermitian_type) , intent(in) :: classB
9861 end subroutine
9862#endif
9863
9864#if RK2_ENABLED
9865 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SLB_RK2(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9866#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9867 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SLB_RK2
9868#endif
9869 use pm_kind, only: RKG => RK2
9870 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9871 real(RKG) , intent(in) :: alpha, beta
9872 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9873 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9874 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9875 type(lowDia_type) , intent(in) :: subsetB
9876 type(hermitian_type) , intent(in) :: classB
9877 end subroutine
9878#endif
9879
9880#if RK1_ENABLED
9881 PURE module subroutine hemm_EXP_CNA_SFA_CHB_SLB_RK1(matA, matB, classB, subsetB, matC, alpha, beta, nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC)
9882#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9883 !DEC$ ATTRIBUTES DLLEXPORT :: hemm_EXP_CNA_SFA_CHB_SLB_RK1
9884#endif
9885 use pm_kind, only: RKG => RK1
9886 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, roffB, coffB, roffC, coffC
9887 real(RKG) , intent(in) :: alpha, beta
9888 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
9889 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
9890 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
9891 type(lowDia_type) , intent(in) :: subsetB
9892 type(hermitian_type) , intent(in) :: classB
9893 end subroutine
9894#endif
9895
9896 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9897
9898 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9899 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9900 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9901
9902 end interface
9903
9904 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9905 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9906 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9907
9908 ! BLAS 3: `SGEMM`, `DGEMM`, `CGEMM`, `ZGEMM`
9909
9910 interface setMatMulAdd
9911
9912 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9913 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9914 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9915
9916 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9917 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9918 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9919
9920 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9921
9922#if IK5_ENABLED
9923 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TNB_IK5(matA, matB, matC, alpha, beta)
9924#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9925 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TNB_IK5
9926#endif
9927 use pm_kind, only: IKG => IK5
9928 integer(IKG) , intent(in) , optional :: alpha, beta
9929 integer(IKG) , intent(in) , contiguous :: matA(:,:)
9930 integer(IKG) , intent(in) , contiguous :: matB(:,:)
9931 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
9932 end subroutine
9933#endif
9934
9935#if IK4_ENABLED
9936 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TNB_IK4(matA, matB, matC, alpha, beta)
9937#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9938 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TNB_IK4
9939#endif
9940 use pm_kind, only: IKG => IK4
9941 integer(IKG) , intent(in) , optional :: alpha, beta
9942 integer(IKG) , intent(in) , contiguous :: matA(:,:)
9943 integer(IKG) , intent(in) , contiguous :: matB(:,:)
9944 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
9945 end subroutine
9946#endif
9947
9948#if IK3_ENABLED
9949 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TNB_IK3(matA, matB, matC, alpha, beta)
9950#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9951 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TNB_IK3
9952#endif
9953 use pm_kind, only: IKG => IK3
9954 integer(IKG) , intent(in) , optional :: alpha, beta
9955 integer(IKG) , intent(in) , contiguous :: matA(:,:)
9956 integer(IKG) , intent(in) , contiguous :: matB(:,:)
9957 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
9958 end subroutine
9959#endif
9960
9961#if IK2_ENABLED
9962 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TNB_IK2(matA, matB, matC, alpha, beta)
9963#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9964 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TNB_IK2
9965#endif
9966 use pm_kind, only: IKG => IK2
9967 integer(IKG) , intent(in) , optional :: alpha, beta
9968 integer(IKG) , intent(in) , contiguous :: matA(:,:)
9969 integer(IKG) , intent(in) , contiguous :: matB(:,:)
9970 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
9971 end subroutine
9972#endif
9973
9974#if IK1_ENABLED
9975 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TNB_IK1(matA, matB, matC, alpha, beta)
9976#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9977 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TNB_IK1
9978#endif
9979 use pm_kind, only: IKG => IK1
9980 integer(IKG) , intent(in) , optional :: alpha, beta
9981 integer(IKG) , intent(in) , contiguous :: matA(:,:)
9982 integer(IKG) , intent(in) , contiguous :: matB(:,:)
9983 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
9984 end subroutine
9985#endif
9986
9987 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9988
9989#if CK5_ENABLED
9990 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TNB_CK5(matA, matB, matC, alpha, beta)
9991#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
9992 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TNB_CK5
9993#endif
9994 use pm_kind, only: CKG => CK5
9995 complex(CKG) , intent(in) , optional :: alpha, beta
9996 complex(CKG) , intent(in) , contiguous :: matA(:,:)
9997 complex(CKG) , intent(in) , contiguous :: matB(:,:)
9998 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
9999 end subroutine
10000#endif
10001
10002#if CK4_ENABLED
10003 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TNB_CK4(matA, matB, matC, alpha, beta)
10004#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10005 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TNB_CK4
10006#endif
10007 use pm_kind, only: CKG => CK4
10008 complex(CKG) , intent(in) , optional :: alpha, beta
10009 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10010 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10011 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10012 end subroutine
10013#endif
10014
10015#if CK3_ENABLED
10016 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TNB_CK3(matA, matB, matC, alpha, beta)
10017#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10018 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TNB_CK3
10019#endif
10020 use pm_kind, only: CKG => CK3
10021 complex(CKG) , intent(in) , optional :: alpha, beta
10022 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10023 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10024 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10025 end subroutine
10026#endif
10027
10028#if CK2_ENABLED
10029 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TNB_CK2(matA, matB, matC, alpha, beta)
10030#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10031 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TNB_CK2
10032#endif
10033 use pm_kind, only: CKG => CK2
10034 complex(CKG) , intent(in) , optional :: alpha, beta
10035 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10036 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10037 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10038 end subroutine
10039#endif
10040
10041#if CK1_ENABLED
10042 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TNB_CK1(matA, matB, matC, alpha, beta)
10043#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10044 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TNB_CK1
10045#endif
10046 use pm_kind, only: CKG => CK1
10047 complex(CKG) , intent(in) , optional :: alpha, beta
10048 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10049 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10050 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10051 end subroutine
10052#endif
10053
10054 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10055
10056#if RK5_ENABLED
10057 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TNB_RK5(matA, matB, matC, alpha, beta)
10058#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10059 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TNB_RK5
10060#endif
10061 use pm_kind, only: RKG => RK5
10062 real(RKG) , intent(in) , optional :: alpha, beta
10063 real(RKG) , intent(in) , contiguous :: matA(:,:)
10064 real(RKG) , intent(in) , contiguous :: matB(:,:)
10065 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10066 end subroutine
10067#endif
10068
10069#if RK4_ENABLED
10070 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TNB_RK4(matA, matB, matC, alpha, beta)
10071#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10072 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TNB_RK4
10073#endif
10074 use pm_kind, only: RKG => RK4
10075 real(RKG) , intent(in) , optional :: alpha, beta
10076 real(RKG) , intent(in) , contiguous :: matA(:,:)
10077 real(RKG) , intent(in) , contiguous :: matB(:,:)
10078 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10079 end subroutine
10080#endif
10081
10082#if RK3_ENABLED
10083 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TNB_RK3(matA, matB, matC, alpha, beta)
10084#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10085 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TNB_RK3
10086#endif
10087 use pm_kind, only: RKG => RK3
10088 real(RKG) , intent(in) , optional :: alpha, beta
10089 real(RKG) , intent(in) , contiguous :: matA(:,:)
10090 real(RKG) , intent(in) , contiguous :: matB(:,:)
10091 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10092 end subroutine
10093#endif
10094
10095#if RK2_ENABLED
10096 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TNB_RK2(matA, matB, matC, alpha, beta)
10097#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10098 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TNB_RK2
10099#endif
10100 use pm_kind, only: RKG => RK2
10101 real(RKG) , intent(in) , optional :: alpha, beta
10102 real(RKG) , intent(in) , contiguous :: matA(:,:)
10103 real(RKG) , intent(in) , contiguous :: matB(:,:)
10104 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10105 end subroutine
10106#endif
10107
10108#if RK1_ENABLED
10109 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TNB_RK1(matA, matB, matC, alpha, beta)
10110#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10111 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TNB_RK1
10112#endif
10113 use pm_kind, only: RKG => RK1
10114 real(RKG) , intent(in) , optional :: alpha, beta
10115 real(RKG) , intent(in) , contiguous :: matA(:,:)
10116 real(RKG) , intent(in) , contiguous :: matB(:,:)
10117 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10118 end subroutine
10119#endif
10120
10121 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10122
10123 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10124 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10125 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10126
10127 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10128
10129#if IK5_ENABLED
10130 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TNB_IK5(matA, operationA, matB, matC, alpha, beta)
10131#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10132 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TNB_IK5
10133#endif
10134 use pm_kind, only: IKG => IK5
10135 integer(IKG) , intent(in) , optional :: alpha, beta
10136 integer(IKG) , intent(in) , contiguous :: matA(:,:)
10137 integer(IKG) , intent(in) , contiguous :: matB(:,:)
10138 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
10139 type(transSymm_type) , intent(in) :: operationA
10140 end subroutine
10141#endif
10142
10143#if IK4_ENABLED
10144 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TNB_IK4(matA, operationA, matB, matC, alpha, beta)
10145#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10146 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TNB_IK4
10147#endif
10148 use pm_kind, only: IKG => IK4
10149 integer(IKG) , intent(in) , optional :: alpha, beta
10150 integer(IKG) , intent(in) , contiguous :: matA(:,:)
10151 integer(IKG) , intent(in) , contiguous :: matB(:,:)
10152 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
10153 type(transSymm_type) , intent(in) :: operationA
10154 end subroutine
10155#endif
10156
10157#if IK3_ENABLED
10158 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TNB_IK3(matA, operationA, matB, matC, alpha, beta)
10159#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10160 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TNB_IK3
10161#endif
10162 use pm_kind, only: IKG => IK3
10163 integer(IKG) , intent(in) , optional :: alpha, beta
10164 integer(IKG) , intent(in) , contiguous :: matA(:,:)
10165 integer(IKG) , intent(in) , contiguous :: matB(:,:)
10166 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
10167 type(transSymm_type) , intent(in) :: operationA
10168 end subroutine
10169#endif
10170
10171#if IK2_ENABLED
10172 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TNB_IK2(matA, operationA, matB, matC, alpha, beta)
10173#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10174 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TNB_IK2
10175#endif
10176 use pm_kind, only: IKG => IK2
10177 integer(IKG) , intent(in) , optional :: alpha, beta
10178 integer(IKG) , intent(in) , contiguous :: matA(:,:)
10179 integer(IKG) , intent(in) , contiguous :: matB(:,:)
10180 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
10181 type(transSymm_type) , intent(in) :: operationA
10182 end subroutine
10183#endif
10184
10185#if IK1_ENABLED
10186 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TNB_IK1(matA, operationA, matB, matC, alpha, beta)
10187#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10188 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TNB_IK1
10189#endif
10190 use pm_kind, only: IKG => IK1
10191 integer(IKG) , intent(in) , optional :: alpha, beta
10192 integer(IKG) , intent(in) , contiguous :: matA(:,:)
10193 integer(IKG) , intent(in) , contiguous :: matB(:,:)
10194 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
10195 type(transSymm_type) , intent(in) :: operationA
10196 end subroutine
10197#endif
10198
10199 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10200
10201#if CK5_ENABLED
10202 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TNB_CK5(matA, operationA, matB, matC, alpha, beta)
10203#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10204 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TNB_CK5
10205#endif
10206 use pm_kind, only: CKG => CK5
10207 complex(CKG) , intent(in) , optional :: alpha, beta
10208 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10209 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10210 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10211 type(transSymm_type) , intent(in) :: operationA
10212 end subroutine
10213#endif
10214
10215#if CK4_ENABLED
10216 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TNB_CK4(matA, operationA, matB, matC, alpha, beta)
10217#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10218 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TNB_CK4
10219#endif
10220 use pm_kind, only: CKG => CK4
10221 complex(CKG) , intent(in) , optional :: alpha, beta
10222 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10223 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10224 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10225 type(transSymm_type) , intent(in) :: operationA
10226 end subroutine
10227#endif
10228
10229#if CK3_ENABLED
10230 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TNB_CK3(matA, operationA, matB, matC, alpha, beta)
10231#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10232 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TNB_CK3
10233#endif
10234 use pm_kind, only: CKG => CK3
10235 complex(CKG) , intent(in) , optional :: alpha, beta
10236 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10237 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10238 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10239 type(transSymm_type) , intent(in) :: operationA
10240 end subroutine
10241#endif
10242
10243#if CK2_ENABLED
10244 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TNB_CK2(matA, operationA, matB, matC, alpha, beta)
10245#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10246 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TNB_CK2
10247#endif
10248 use pm_kind, only: CKG => CK2
10249 complex(CKG) , intent(in) , optional :: alpha, beta
10250 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10251 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10252 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10253 type(transSymm_type) , intent(in) :: operationA
10254 end subroutine
10255#endif
10256
10257#if CK1_ENABLED
10258 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TNB_CK1(matA, operationA, matB, matC, alpha, beta)
10259#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10260 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TNB_CK1
10261#endif
10262 use pm_kind, only: CKG => CK1
10263 complex(CKG) , intent(in) , optional :: alpha, beta
10264 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10265 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10266 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10267 type(transSymm_type) , intent(in) :: operationA
10268 end subroutine
10269#endif
10270
10271 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10272
10273#if RK5_ENABLED
10274 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TNB_RK5(matA, operationA, matB, matC, alpha, beta)
10275#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10276 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TNB_RK5
10277#endif
10278 use pm_kind, only: RKG => RK5
10279 real(RKG) , intent(in) , optional :: alpha, beta
10280 real(RKG) , intent(in) , contiguous :: matA(:,:)
10281 real(RKG) , intent(in) , contiguous :: matB(:,:)
10282 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10283 type(transSymm_type) , intent(in) :: operationA
10284 end subroutine
10285#endif
10286
10287#if RK4_ENABLED
10288 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TNB_RK4(matA, operationA, matB, matC, alpha, beta)
10289#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10290 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TNB_RK4
10291#endif
10292 use pm_kind, only: RKG => RK4
10293 real(RKG) , intent(in) , optional :: alpha, beta
10294 real(RKG) , intent(in) , contiguous :: matA(:,:)
10295 real(RKG) , intent(in) , contiguous :: matB(:,:)
10296 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10297 type(transSymm_type) , intent(in) :: operationA
10298 end subroutine
10299#endif
10300
10301#if RK3_ENABLED
10302 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TNB_RK3(matA, operationA, matB, matC, alpha, beta)
10303#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10304 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TNB_RK3
10305#endif
10306 use pm_kind, only: RKG => RK3
10307 real(RKG) , intent(in) , optional :: alpha, beta
10308 real(RKG) , intent(in) , contiguous :: matA(:,:)
10309 real(RKG) , intent(in) , contiguous :: matB(:,:)
10310 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10311 type(transSymm_type) , intent(in) :: operationA
10312 end subroutine
10313#endif
10314
10315#if RK2_ENABLED
10316 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TNB_RK2(matA, operationA, matB, matC, alpha, beta)
10317#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10318 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TNB_RK2
10319#endif
10320 use pm_kind, only: RKG => RK2
10321 real(RKG) , intent(in) , optional :: alpha, beta
10322 real(RKG) , intent(in) , contiguous :: matA(:,:)
10323 real(RKG) , intent(in) , contiguous :: matB(:,:)
10324 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10325 type(transSymm_type) , intent(in) :: operationA
10326 end subroutine
10327#endif
10328
10329#if RK1_ENABLED
10330 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TNB_RK1(matA, operationA, matB, matC, alpha, beta)
10331#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10332 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TNB_RK1
10333#endif
10334 use pm_kind, only: RKG => RK1
10335 real(RKG) , intent(in) , optional :: alpha, beta
10336 real(RKG) , intent(in) , contiguous :: matA(:,:)
10337 real(RKG) , intent(in) , contiguous :: matB(:,:)
10338 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10339 type(transSymm_type) , intent(in) :: operationA
10340 end subroutine
10341#endif
10342
10343 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10344
10345 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10346 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10347 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10348
10349 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10350
10351#if IK5_ENABLED
10352 PURE module subroutine gemm_ASS_SFA_SFB_THA_TNB_IK5(matA, operationA, matB, matC, alpha, beta)
10353#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10354 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TNB_IK5
10355#endif
10356 use pm_kind, only: IKG => IK5
10357 integer(IKG) , intent(in) , optional :: alpha, beta
10358 integer(IKG) , intent(in) , contiguous :: matA(:,:)
10359 integer(IKG) , intent(in) , contiguous :: matB(:,:)
10360 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
10361 type(transHerm_type) , intent(in) :: operationA
10362 end subroutine
10363#endif
10364
10365#if IK4_ENABLED
10366 PURE module subroutine gemm_ASS_SFA_SFB_THA_TNB_IK4(matA, operationA, matB, matC, alpha, beta)
10367#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10368 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TNB_IK4
10369#endif
10370 use pm_kind, only: IKG => IK4
10371 integer(IKG) , intent(in) , optional :: alpha, beta
10372 integer(IKG) , intent(in) , contiguous :: matA(:,:)
10373 integer(IKG) , intent(in) , contiguous :: matB(:,:)
10374 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
10375 type(transHerm_type) , intent(in) :: operationA
10376 end subroutine
10377#endif
10378
10379#if IK3_ENABLED
10380 PURE module subroutine gemm_ASS_SFA_SFB_THA_TNB_IK3(matA, operationA, matB, matC, alpha, beta)
10381#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10382 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TNB_IK3
10383#endif
10384 use pm_kind, only: IKG => IK3
10385 integer(IKG) , intent(in) , optional :: alpha, beta
10386 integer(IKG) , intent(in) , contiguous :: matA(:,:)
10387 integer(IKG) , intent(in) , contiguous :: matB(:,:)
10388 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
10389 type(transHerm_type) , intent(in) :: operationA
10390 end subroutine
10391#endif
10392
10393#if IK2_ENABLED
10394 PURE module subroutine gemm_ASS_SFA_SFB_THA_TNB_IK2(matA, operationA, matB, matC, alpha, beta)
10395#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10396 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TNB_IK2
10397#endif
10398 use pm_kind, only: IKG => IK2
10399 integer(IKG) , intent(in) , optional :: alpha, beta
10400 integer(IKG) , intent(in) , contiguous :: matA(:,:)
10401 integer(IKG) , intent(in) , contiguous :: matB(:,:)
10402 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
10403 type(transHerm_type) , intent(in) :: operationA
10404 end subroutine
10405#endif
10406
10407#if IK1_ENABLED
10408 PURE module subroutine gemm_ASS_SFA_SFB_THA_TNB_IK1(matA, operationA, matB, matC, alpha, beta)
10409#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10410 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TNB_IK1
10411#endif
10412 use pm_kind, only: IKG => IK1
10413 integer(IKG) , intent(in) , optional :: alpha, beta
10414 integer(IKG) , intent(in) , contiguous :: matA(:,:)
10415 integer(IKG) , intent(in) , contiguous :: matB(:,:)
10416 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
10417 type(transHerm_type) , intent(in) :: operationA
10418 end subroutine
10419#endif
10420
10421 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10422
10423#if CK5_ENABLED
10424 PURE module subroutine gemm_ASS_SFA_SFB_THA_TNB_CK5(matA, operationA, matB, matC, alpha, beta)
10425#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10426 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TNB_CK5
10427#endif
10428 use pm_kind, only: CKG => CK5
10429 complex(CKG) , intent(in) , optional :: alpha, beta
10430 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10431 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10432 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10433 type(transHerm_type) , intent(in) :: operationA
10434 end subroutine
10435#endif
10436
10437#if CK4_ENABLED
10438 PURE module subroutine gemm_ASS_SFA_SFB_THA_TNB_CK4(matA, operationA, matB, matC, alpha, beta)
10439#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10440 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TNB_CK4
10441#endif
10442 use pm_kind, only: CKG => CK4
10443 complex(CKG) , intent(in) , optional :: alpha, beta
10444 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10445 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10446 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10447 type(transHerm_type) , intent(in) :: operationA
10448 end subroutine
10449#endif
10450
10451#if CK3_ENABLED
10452 PURE module subroutine gemm_ASS_SFA_SFB_THA_TNB_CK3(matA, operationA, matB, matC, alpha, beta)
10453#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10454 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TNB_CK3
10455#endif
10456 use pm_kind, only: CKG => CK3
10457 complex(CKG) , intent(in) , optional :: alpha, beta
10458 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10459 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10460 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10461 type(transHerm_type) , intent(in) :: operationA
10462 end subroutine
10463#endif
10464
10465#if CK2_ENABLED
10466 PURE module subroutine gemm_ASS_SFA_SFB_THA_TNB_CK2(matA, operationA, matB, matC, alpha, beta)
10467#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10468 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TNB_CK2
10469#endif
10470 use pm_kind, only: CKG => CK2
10471 complex(CKG) , intent(in) , optional :: alpha, beta
10472 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10473 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10474 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10475 type(transHerm_type) , intent(in) :: operationA
10476 end subroutine
10477#endif
10478
10479#if CK1_ENABLED
10480 PURE module subroutine gemm_ASS_SFA_SFB_THA_TNB_CK1(matA, operationA, matB, matC, alpha, beta)
10481#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10482 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TNB_CK1
10483#endif
10484 use pm_kind, only: CKG => CK1
10485 complex(CKG) , intent(in) , optional :: alpha, beta
10486 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10487 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10488 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10489 type(transHerm_type) , intent(in) :: operationA
10490 end subroutine
10491#endif
10492
10493 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10494
10495#if RK5_ENABLED
10496 PURE module subroutine gemm_ASS_SFA_SFB_THA_TNB_RK5(matA, operationA, matB, matC, alpha, beta)
10497#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10498 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TNB_RK5
10499#endif
10500 use pm_kind, only: RKG => RK5
10501 real(RKG) , intent(in) , optional :: alpha, beta
10502 real(RKG) , intent(in) , contiguous :: matA(:,:)
10503 real(RKG) , intent(in) , contiguous :: matB(:,:)
10504 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10505 type(transHerm_type) , intent(in) :: operationA
10506 end subroutine
10507#endif
10508
10509#if RK4_ENABLED
10510 PURE module subroutine gemm_ASS_SFA_SFB_THA_TNB_RK4(matA, operationA, matB, matC, alpha, beta)
10511#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10512 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TNB_RK4
10513#endif
10514 use pm_kind, only: RKG => RK4
10515 real(RKG) , intent(in) , optional :: alpha, beta
10516 real(RKG) , intent(in) , contiguous :: matA(:,:)
10517 real(RKG) , intent(in) , contiguous :: matB(:,:)
10518 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10519 type(transHerm_type) , intent(in) :: operationA
10520 end subroutine
10521#endif
10522
10523#if RK3_ENABLED
10524 PURE module subroutine gemm_ASS_SFA_SFB_THA_TNB_RK3(matA, operationA, matB, matC, alpha, beta)
10525#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10526 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TNB_RK3
10527#endif
10528 use pm_kind, only: RKG => RK3
10529 real(RKG) , intent(in) , optional :: alpha, beta
10530 real(RKG) , intent(in) , contiguous :: matA(:,:)
10531 real(RKG) , intent(in) , contiguous :: matB(:,:)
10532 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10533 type(transHerm_type) , intent(in) :: operationA
10534 end subroutine
10535#endif
10536
10537#if RK2_ENABLED
10538 PURE module subroutine gemm_ASS_SFA_SFB_THA_TNB_RK2(matA, operationA, matB, matC, alpha, beta)
10539#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10540 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TNB_RK2
10541#endif
10542 use pm_kind, only: RKG => RK2
10543 real(RKG) , intent(in) , optional :: alpha, beta
10544 real(RKG) , intent(in) , contiguous :: matA(:,:)
10545 real(RKG) , intent(in) , contiguous :: matB(:,:)
10546 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10547 type(transHerm_type) , intent(in) :: operationA
10548 end subroutine
10549#endif
10550
10551#if RK1_ENABLED
10552 PURE module subroutine gemm_ASS_SFA_SFB_THA_TNB_RK1(matA, operationA, matB, matC, alpha, beta)
10553#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10554 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TNB_RK1
10555#endif
10556 use pm_kind, only: RKG => RK1
10557 real(RKG) , intent(in) , optional :: alpha, beta
10558 real(RKG) , intent(in) , contiguous :: matA(:,:)
10559 real(RKG) , intent(in) , contiguous :: matB(:,:)
10560 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10561 type(transHerm_type) , intent(in) :: operationA
10562 end subroutine
10563#endif
10564
10565 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10566
10567 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10568 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10569 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10570
10571 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10572
10573#if IK5_ENABLED
10574 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TSB_IK5(matA, matB, operationB, matC, alpha, beta)
10575#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10576 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TSB_IK5
10577#endif
10578 use pm_kind, only: IKG => IK5
10579 integer(IKG) , intent(in) , optional :: alpha, beta
10580 integer(IKG) , intent(in) , contiguous :: matA(:,:)
10581 integer(IKG) , intent(in) , contiguous :: matB(:,:)
10582 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
10583 type(transSymm_type) , intent(in) :: operationB
10584 end subroutine
10585#endif
10586
10587#if IK4_ENABLED
10588 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TSB_IK4(matA, matB, operationB, matC, alpha, beta)
10589#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10590 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TSB_IK4
10591#endif
10592 use pm_kind, only: IKG => IK4
10593 integer(IKG) , intent(in) , optional :: alpha, beta
10594 integer(IKG) , intent(in) , contiguous :: matA(:,:)
10595 integer(IKG) , intent(in) , contiguous :: matB(:,:)
10596 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
10597 type(transSymm_type) , intent(in) :: operationB
10598 end subroutine
10599#endif
10600
10601#if IK3_ENABLED
10602 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TSB_IK3(matA, matB, operationB, matC, alpha, beta)
10603#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10604 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TSB_IK3
10605#endif
10606 use pm_kind, only: IKG => IK3
10607 integer(IKG) , intent(in) , optional :: alpha, beta
10608 integer(IKG) , intent(in) , contiguous :: matA(:,:)
10609 integer(IKG) , intent(in) , contiguous :: matB(:,:)
10610 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
10611 type(transSymm_type) , intent(in) :: operationB
10612 end subroutine
10613#endif
10614
10615#if IK2_ENABLED
10616 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TSB_IK2(matA, matB, operationB, matC, alpha, beta)
10617#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10618 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TSB_IK2
10619#endif
10620 use pm_kind, only: IKG => IK2
10621 integer(IKG) , intent(in) , optional :: alpha, beta
10622 integer(IKG) , intent(in) , contiguous :: matA(:,:)
10623 integer(IKG) , intent(in) , contiguous :: matB(:,:)
10624 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
10625 type(transSymm_type) , intent(in) :: operationB
10626 end subroutine
10627#endif
10628
10629#if IK1_ENABLED
10630 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TSB_IK1(matA, matB, operationB, matC, alpha, beta)
10631#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10632 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TSB_IK1
10633#endif
10634 use pm_kind, only: IKG => IK1
10635 integer(IKG) , intent(in) , optional :: alpha, beta
10636 integer(IKG) , intent(in) , contiguous :: matA(:,:)
10637 integer(IKG) , intent(in) , contiguous :: matB(:,:)
10638 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
10639 type(transSymm_type) , intent(in) :: operationB
10640 end subroutine
10641#endif
10642
10643 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10644
10645#if CK5_ENABLED
10646 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TSB_CK5(matA, matB, operationB, matC, alpha, beta)
10647#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10648 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TSB_CK5
10649#endif
10650 use pm_kind, only: CKG => CK5
10651 complex(CKG) , intent(in) , optional :: alpha, beta
10652 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10653 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10654 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10655 type(transSymm_type) , intent(in) :: operationB
10656 end subroutine
10657#endif
10658
10659#if CK4_ENABLED
10660 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TSB_CK4(matA, matB, operationB, matC, alpha, beta)
10661#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10662 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TSB_CK4
10663#endif
10664 use pm_kind, only: CKG => CK4
10665 complex(CKG) , intent(in) , optional :: alpha, beta
10666 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10667 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10668 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10669 type(transSymm_type) , intent(in) :: operationB
10670 end subroutine
10671#endif
10672
10673#if CK3_ENABLED
10674 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TSB_CK3(matA, matB, operationB, matC, alpha, beta)
10675#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10676 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TSB_CK3
10677#endif
10678 use pm_kind, only: CKG => CK3
10679 complex(CKG) , intent(in) , optional :: alpha, beta
10680 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10681 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10682 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10683 type(transSymm_type) , intent(in) :: operationB
10684 end subroutine
10685#endif
10686
10687#if CK2_ENABLED
10688 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TSB_CK2(matA, matB, operationB, matC, alpha, beta)
10689#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10690 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TSB_CK2
10691#endif
10692 use pm_kind, only: CKG => CK2
10693 complex(CKG) , intent(in) , optional :: alpha, beta
10694 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10695 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10696 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10697 type(transSymm_type) , intent(in) :: operationB
10698 end subroutine
10699#endif
10700
10701#if CK1_ENABLED
10702 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TSB_CK1(matA, matB, operationB, matC, alpha, beta)
10703#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10704 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TSB_CK1
10705#endif
10706 use pm_kind, only: CKG => CK1
10707 complex(CKG) , intent(in) , optional :: alpha, beta
10708 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10709 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10710 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10711 type(transSymm_type) , intent(in) :: operationB
10712 end subroutine
10713#endif
10714
10715 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10716
10717#if RK5_ENABLED
10718 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TSB_RK5(matA, matB, operationB, matC, alpha, beta)
10719#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10720 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TSB_RK5
10721#endif
10722 use pm_kind, only: RKG => RK5
10723 real(RKG) , intent(in) , optional :: alpha, beta
10724 real(RKG) , intent(in) , contiguous :: matA(:,:)
10725 real(RKG) , intent(in) , contiguous :: matB(:,:)
10726 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10727 type(transSymm_type) , intent(in) :: operationB
10728 end subroutine
10729#endif
10730
10731#if RK4_ENABLED
10732 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TSB_RK4(matA, matB, operationB, matC, alpha, beta)
10733#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10734 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TSB_RK4
10735#endif
10736 use pm_kind, only: RKG => RK4
10737 real(RKG) , intent(in) , optional :: alpha, beta
10738 real(RKG) , intent(in) , contiguous :: matA(:,:)
10739 real(RKG) , intent(in) , contiguous :: matB(:,:)
10740 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10741 type(transSymm_type) , intent(in) :: operationB
10742 end subroutine
10743#endif
10744
10745#if RK3_ENABLED
10746 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TSB_RK3(matA, matB, operationB, matC, alpha, beta)
10747#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10748 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TSB_RK3
10749#endif
10750 use pm_kind, only: RKG => RK3
10751 real(RKG) , intent(in) , optional :: alpha, beta
10752 real(RKG) , intent(in) , contiguous :: matA(:,:)
10753 real(RKG) , intent(in) , contiguous :: matB(:,:)
10754 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10755 type(transSymm_type) , intent(in) :: operationB
10756 end subroutine
10757#endif
10758
10759#if RK2_ENABLED
10760 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TSB_RK2(matA, matB, operationB, matC, alpha, beta)
10761#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10762 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TSB_RK2
10763#endif
10764 use pm_kind, only: RKG => RK2
10765 real(RKG) , intent(in) , optional :: alpha, beta
10766 real(RKG) , intent(in) , contiguous :: matA(:,:)
10767 real(RKG) , intent(in) , contiguous :: matB(:,:)
10768 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10769 type(transSymm_type) , intent(in) :: operationB
10770 end subroutine
10771#endif
10772
10773#if RK1_ENABLED
10774 PURE module subroutine gemm_ASS_SFA_SFB_TNA_TSB_RK1(matA, matB, operationB, matC, alpha, beta)
10775#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10776 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_TSB_RK1
10777#endif
10778 use pm_kind, only: RKG => RK1
10779 real(RKG) , intent(in) , optional :: alpha, beta
10780 real(RKG) , intent(in) , contiguous :: matA(:,:)
10781 real(RKG) , intent(in) , contiguous :: matB(:,:)
10782 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10783 type(transSymm_type) , intent(in) :: operationB
10784 end subroutine
10785#endif
10786
10787 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10788
10789 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10790 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10791 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10792
10793 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10794
10795#if IK5_ENABLED
10796 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TSB_IK5(matA, operationA, matB, operationB, matC, alpha, beta)
10797#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10798 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TSB_IK5
10799#endif
10800 use pm_kind, only: IKG => IK5
10801 integer(IKG) , intent(in) , optional :: alpha, beta
10802 integer(IKG) , intent(in) , contiguous :: matA(:,:)
10803 integer(IKG) , intent(in) , contiguous :: matB(:,:)
10804 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
10805 type(transSymm_type) , intent(in) :: operationA
10806 type(transSymm_type) , intent(in) :: operationB
10807 end subroutine
10808#endif
10809
10810#if IK4_ENABLED
10811 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TSB_IK4(matA, operationA, matB, operationB, matC, alpha, beta)
10812#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10813 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TSB_IK4
10814#endif
10815 use pm_kind, only: IKG => IK4
10816 integer(IKG) , intent(in) , optional :: alpha, beta
10817 integer(IKG) , intent(in) , contiguous :: matA(:,:)
10818 integer(IKG) , intent(in) , contiguous :: matB(:,:)
10819 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
10820 type(transSymm_type) , intent(in) :: operationA
10821 type(transSymm_type) , intent(in) :: operationB
10822 end subroutine
10823#endif
10824
10825#if IK3_ENABLED
10826 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TSB_IK3(matA, operationA, matB, operationB, matC, alpha, beta)
10827#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10828 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TSB_IK3
10829#endif
10830 use pm_kind, only: IKG => IK3
10831 integer(IKG) , intent(in) , optional :: alpha, beta
10832 integer(IKG) , intent(in) , contiguous :: matA(:,:)
10833 integer(IKG) , intent(in) , contiguous :: matB(:,:)
10834 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
10835 type(transSymm_type) , intent(in) :: operationA
10836 type(transSymm_type) , intent(in) :: operationB
10837 end subroutine
10838#endif
10839
10840#if IK2_ENABLED
10841 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TSB_IK2(matA, operationA, matB, operationB, matC, alpha, beta)
10842#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10843 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TSB_IK2
10844#endif
10845 use pm_kind, only: IKG => IK2
10846 integer(IKG) , intent(in) , optional :: alpha, beta
10847 integer(IKG) , intent(in) , contiguous :: matA(:,:)
10848 integer(IKG) , intent(in) , contiguous :: matB(:,:)
10849 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
10850 type(transSymm_type) , intent(in) :: operationA
10851 type(transSymm_type) , intent(in) :: operationB
10852 end subroutine
10853#endif
10854
10855#if IK1_ENABLED
10856 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TSB_IK1(matA, operationA, matB, operationB, matC, alpha, beta)
10857#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10858 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TSB_IK1
10859#endif
10860 use pm_kind, only: IKG => IK1
10861 integer(IKG) , intent(in) , optional :: alpha, beta
10862 integer(IKG) , intent(in) , contiguous :: matA(:,:)
10863 integer(IKG) , intent(in) , contiguous :: matB(:,:)
10864 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
10865 type(transSymm_type) , intent(in) :: operationA
10866 type(transSymm_type) , intent(in) :: operationB
10867 end subroutine
10868#endif
10869
10870 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10871
10872#if CK5_ENABLED
10873 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TSB_CK5(matA, operationA, matB, operationB, matC, alpha, beta)
10874#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10875 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TSB_CK5
10876#endif
10877 use pm_kind, only: CKG => CK5
10878 complex(CKG) , intent(in) , optional :: alpha, beta
10879 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10880 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10881 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10882 type(transSymm_type) , intent(in) :: operationA
10883 type(transSymm_type) , intent(in) :: operationB
10884 end subroutine
10885#endif
10886
10887#if CK4_ENABLED
10888 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TSB_CK4(matA, operationA, matB, operationB, matC, alpha, beta)
10889#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10890 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TSB_CK4
10891#endif
10892 use pm_kind, only: CKG => CK4
10893 complex(CKG) , intent(in) , optional :: alpha, beta
10894 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10895 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10896 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10897 type(transSymm_type) , intent(in) :: operationA
10898 type(transSymm_type) , intent(in) :: operationB
10899 end subroutine
10900#endif
10901
10902#if CK3_ENABLED
10903 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TSB_CK3(matA, operationA, matB, operationB, matC, alpha, beta)
10904#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10905 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TSB_CK3
10906#endif
10907 use pm_kind, only: CKG => CK3
10908 complex(CKG) , intent(in) , optional :: alpha, beta
10909 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10910 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10911 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10912 type(transSymm_type) , intent(in) :: operationA
10913 type(transSymm_type) , intent(in) :: operationB
10914 end subroutine
10915#endif
10916
10917#if CK2_ENABLED
10918 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TSB_CK2(matA, operationA, matB, operationB, matC, alpha, beta)
10919#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10920 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TSB_CK2
10921#endif
10922 use pm_kind, only: CKG => CK2
10923 complex(CKG) , intent(in) , optional :: alpha, beta
10924 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10925 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10926 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10927 type(transSymm_type) , intent(in) :: operationA
10928 type(transSymm_type) , intent(in) :: operationB
10929 end subroutine
10930#endif
10931
10932#if CK1_ENABLED
10933 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TSB_CK1(matA, operationA, matB, operationB, matC, alpha, beta)
10934#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10935 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TSB_CK1
10936#endif
10937 use pm_kind, only: CKG => CK1
10938 complex(CKG) , intent(in) , optional :: alpha, beta
10939 complex(CKG) , intent(in) , contiguous :: matA(:,:)
10940 complex(CKG) , intent(in) , contiguous :: matB(:,:)
10941 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
10942 type(transSymm_type) , intent(in) :: operationA
10943 type(transSymm_type) , intent(in) :: operationB
10944 end subroutine
10945#endif
10946
10947 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10948
10949#if RK5_ENABLED
10950 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TSB_RK5(matA, operationA, matB, operationB, matC, alpha, beta)
10951#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10952 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TSB_RK5
10953#endif
10954 use pm_kind, only: RKG => RK5
10955 real(RKG) , intent(in) , optional :: alpha, beta
10956 real(RKG) , intent(in) , contiguous :: matA(:,:)
10957 real(RKG) , intent(in) , contiguous :: matB(:,:)
10958 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10959 type(transSymm_type) , intent(in) :: operationA
10960 type(transSymm_type) , intent(in) :: operationB
10961 end subroutine
10962#endif
10963
10964#if RK4_ENABLED
10965 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TSB_RK4(matA, operationA, matB, operationB, matC, alpha, beta)
10966#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10967 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TSB_RK4
10968#endif
10969 use pm_kind, only: RKG => RK4
10970 real(RKG) , intent(in) , optional :: alpha, beta
10971 real(RKG) , intent(in) , contiguous :: matA(:,:)
10972 real(RKG) , intent(in) , contiguous :: matB(:,:)
10973 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10974 type(transSymm_type) , intent(in) :: operationA
10975 type(transSymm_type) , intent(in) :: operationB
10976 end subroutine
10977#endif
10978
10979#if RK3_ENABLED
10980 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TSB_RK3(matA, operationA, matB, operationB, matC, alpha, beta)
10981#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10982 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TSB_RK3
10983#endif
10984 use pm_kind, only: RKG => RK3
10985 real(RKG) , intent(in) , optional :: alpha, beta
10986 real(RKG) , intent(in) , contiguous :: matA(:,:)
10987 real(RKG) , intent(in) , contiguous :: matB(:,:)
10988 real(RKG) , intent(inout) , contiguous :: matC(:,:)
10989 type(transSymm_type) , intent(in) :: operationA
10990 type(transSymm_type) , intent(in) :: operationB
10991 end subroutine
10992#endif
10993
10994#if RK2_ENABLED
10995 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TSB_RK2(matA, operationA, matB, operationB, matC, alpha, beta)
10996#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
10997 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TSB_RK2
10998#endif
10999 use pm_kind, only: RKG => RK2
11000 real(RKG) , intent(in) , optional :: alpha, beta
11001 real(RKG) , intent(in) , contiguous :: matA(:,:)
11002 real(RKG) , intent(in) , contiguous :: matB(:,:)
11003 real(RKG) , intent(inout) , contiguous :: matC(:,:)
11004 type(transSymm_type) , intent(in) :: operationA
11005 type(transSymm_type) , intent(in) :: operationB
11006 end subroutine
11007#endif
11008
11009#if RK1_ENABLED
11010 PURE module subroutine gemm_ASS_SFA_SFB_TSA_TSB_RK1(matA, operationA, matB, operationB, matC, alpha, beta)
11011#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11012 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_TSB_RK1
11013#endif
11014 use pm_kind, only: RKG => RK1
11015 real(RKG) , intent(in) , optional :: alpha, beta
11016 real(RKG) , intent(in) , contiguous :: matA(:,:)
11017 real(RKG) , intent(in) , contiguous :: matB(:,:)
11018 real(RKG) , intent(inout) , contiguous :: matC(:,:)
11019 type(transSymm_type) , intent(in) :: operationA
11020 type(transSymm_type) , intent(in) :: operationB
11021 end subroutine
11022#endif
11023
11024 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11025
11026 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11027 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11028 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11029
11030 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11031
11032#if IK5_ENABLED
11033 PURE module subroutine gemm_ASS_SFA_SFB_THA_TSB_IK5(matA, operationA, matB, operationB, matC, alpha, beta)
11034#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11035 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TSB_IK5
11036#endif
11037 use pm_kind, only: IKG => IK5
11038 integer(IKG) , intent(in) , optional :: alpha, beta
11039 integer(IKG) , intent(in) , contiguous :: matA(:,:)
11040 integer(IKG) , intent(in) , contiguous :: matB(:,:)
11041 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
11042 type(transHerm_type) , intent(in) :: operationA
11043 type(transSymm_type) , intent(in) :: operationB
11044 end subroutine
11045#endif
11046
11047#if IK4_ENABLED
11048 PURE module subroutine gemm_ASS_SFA_SFB_THA_TSB_IK4(matA, operationA, matB, operationB, matC, alpha, beta)
11049#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11050 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TSB_IK4
11051#endif
11052 use pm_kind, only: IKG => IK4
11053 integer(IKG) , intent(in) , optional :: alpha, beta
11054 integer(IKG) , intent(in) , contiguous :: matA(:,:)
11055 integer(IKG) , intent(in) , contiguous :: matB(:,:)
11056 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
11057 type(transHerm_type) , intent(in) :: operationA
11058 type(transSymm_type) , intent(in) :: operationB
11059 end subroutine
11060#endif
11061
11062#if IK3_ENABLED
11063 PURE module subroutine gemm_ASS_SFA_SFB_THA_TSB_IK3(matA, operationA, matB, operationB, matC, alpha, beta)
11064#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11065 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TSB_IK3
11066#endif
11067 use pm_kind, only: IKG => IK3
11068 integer(IKG) , intent(in) , optional :: alpha, beta
11069 integer(IKG) , intent(in) , contiguous :: matA(:,:)
11070 integer(IKG) , intent(in) , contiguous :: matB(:,:)
11071 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
11072 type(transHerm_type) , intent(in) :: operationA
11073 type(transSymm_type) , intent(in) :: operationB
11074 end subroutine
11075#endif
11076
11077#if IK2_ENABLED
11078 PURE module subroutine gemm_ASS_SFA_SFB_THA_TSB_IK2(matA, operationA, matB, operationB, matC, alpha, beta)
11079#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11080 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TSB_IK2
11081#endif
11082 use pm_kind, only: IKG => IK2
11083 integer(IKG) , intent(in) , optional :: alpha, beta
11084 integer(IKG) , intent(in) , contiguous :: matA(:,:)
11085 integer(IKG) , intent(in) , contiguous :: matB(:,:)
11086 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
11087 type(transHerm_type) , intent(in) :: operationA
11088 type(transSymm_type) , intent(in) :: operationB
11089 end subroutine
11090#endif
11091
11092#if IK1_ENABLED
11093 PURE module subroutine gemm_ASS_SFA_SFB_THA_TSB_IK1(matA, operationA, matB, operationB, matC, alpha, beta)
11094#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11095 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TSB_IK1
11096#endif
11097 use pm_kind, only: IKG => IK1
11098 integer(IKG) , intent(in) , optional :: alpha, beta
11099 integer(IKG) , intent(in) , contiguous :: matA(:,:)
11100 integer(IKG) , intent(in) , contiguous :: matB(:,:)
11101 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
11102 type(transHerm_type) , intent(in) :: operationA
11103 type(transSymm_type) , intent(in) :: operationB
11104 end subroutine
11105#endif
11106
11107 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11108
11109#if CK5_ENABLED
11110 PURE module subroutine gemm_ASS_SFA_SFB_THA_TSB_CK5(matA, operationA, matB, operationB, matC, alpha, beta)
11111#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11112 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TSB_CK5
11113#endif
11114 use pm_kind, only: CKG => CK5
11115 complex(CKG) , intent(in) , optional :: alpha, beta
11116 complex(CKG) , intent(in) , contiguous :: matA(:,:)
11117 complex(CKG) , intent(in) , contiguous :: matB(:,:)
11118 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
11119 type(transHerm_type) , intent(in) :: operationA
11120 type(transSymm_type) , intent(in) :: operationB
11121 end subroutine
11122#endif
11123
11124#if CK4_ENABLED
11125 PURE module subroutine gemm_ASS_SFA_SFB_THA_TSB_CK4(matA, operationA, matB, operationB, matC, alpha, beta)
11126#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11127 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TSB_CK4
11128#endif
11129 use pm_kind, only: CKG => CK4
11130 complex(CKG) , intent(in) , optional :: alpha, beta
11131 complex(CKG) , intent(in) , contiguous :: matA(:,:)
11132 complex(CKG) , intent(in) , contiguous :: matB(:,:)
11133 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
11134 type(transHerm_type) , intent(in) :: operationA
11135 type(transSymm_type) , intent(in) :: operationB
11136 end subroutine
11137#endif
11138
11139#if CK3_ENABLED
11140 PURE module subroutine gemm_ASS_SFA_SFB_THA_TSB_CK3(matA, operationA, matB, operationB, matC, alpha, beta)
11141#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11142 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TSB_CK3
11143#endif
11144 use pm_kind, only: CKG => CK3
11145 complex(CKG) , intent(in) , optional :: alpha, beta
11146 complex(CKG) , intent(in) , contiguous :: matA(:,:)
11147 complex(CKG) , intent(in) , contiguous :: matB(:,:)
11148 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
11149 type(transHerm_type) , intent(in) :: operationA
11150 type(transSymm_type) , intent(in) :: operationB
11151 end subroutine
11152#endif
11153
11154#if CK2_ENABLED
11155 PURE module subroutine gemm_ASS_SFA_SFB_THA_TSB_CK2(matA, operationA, matB, operationB, matC, alpha, beta)
11156#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11157 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TSB_CK2
11158#endif
11159 use pm_kind, only: CKG => CK2
11160 complex(CKG) , intent(in) , optional :: alpha, beta
11161 complex(CKG) , intent(in) , contiguous :: matA(:,:)
11162 complex(CKG) , intent(in) , contiguous :: matB(:,:)
11163 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
11164 type(transHerm_type) , intent(in) :: operationA
11165 type(transSymm_type) , intent(in) :: operationB
11166 end subroutine
11167#endif
11168
11169#if CK1_ENABLED
11170 PURE module subroutine gemm_ASS_SFA_SFB_THA_TSB_CK1(matA, operationA, matB, operationB, matC, alpha, beta)
11171#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11172 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TSB_CK1
11173#endif
11174 use pm_kind, only: CKG => CK1
11175 complex(CKG) , intent(in) , optional :: alpha, beta
11176 complex(CKG) , intent(in) , contiguous :: matA(:,:)
11177 complex(CKG) , intent(in) , contiguous :: matB(:,:)
11178 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
11179 type(transHerm_type) , intent(in) :: operationA
11180 type(transSymm_type) , intent(in) :: operationB
11181 end subroutine
11182#endif
11183
11184 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11185
11186#if RK5_ENABLED
11187 PURE module subroutine gemm_ASS_SFA_SFB_THA_TSB_RK5(matA, operationA, matB, operationB, matC, alpha, beta)
11188#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11189 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TSB_RK5
11190#endif
11191 use pm_kind, only: RKG => RK5
11192 real(RKG) , intent(in) , optional :: alpha, beta
11193 real(RKG) , intent(in) , contiguous :: matA(:,:)
11194 real(RKG) , intent(in) , contiguous :: matB(:,:)
11195 real(RKG) , intent(inout) , contiguous :: matC(:,:)
11196 type(transHerm_type) , intent(in) :: operationA
11197 type(transSymm_type) , intent(in) :: operationB
11198 end subroutine
11199#endif
11200
11201#if RK4_ENABLED
11202 PURE module subroutine gemm_ASS_SFA_SFB_THA_TSB_RK4(matA, operationA, matB, operationB, matC, alpha, beta)
11203#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11204 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TSB_RK4
11205#endif
11206 use pm_kind, only: RKG => RK4
11207 real(RKG) , intent(in) , optional :: alpha, beta
11208 real(RKG) , intent(in) , contiguous :: matA(:,:)
11209 real(RKG) , intent(in) , contiguous :: matB(:,:)
11210 real(RKG) , intent(inout) , contiguous :: matC(:,:)
11211 type(transHerm_type) , intent(in) :: operationA
11212 type(transSymm_type) , intent(in) :: operationB
11213 end subroutine
11214#endif
11215
11216#if RK3_ENABLED
11217 PURE module subroutine gemm_ASS_SFA_SFB_THA_TSB_RK3(matA, operationA, matB, operationB, matC, alpha, beta)
11218#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11219 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TSB_RK3
11220#endif
11221 use pm_kind, only: RKG => RK3
11222 real(RKG) , intent(in) , optional :: alpha, beta
11223 real(RKG) , intent(in) , contiguous :: matA(:,:)
11224 real(RKG) , intent(in) , contiguous :: matB(:,:)
11225 real(RKG) , intent(inout) , contiguous :: matC(:,:)
11226 type(transHerm_type) , intent(in) :: operationA
11227 type(transSymm_type) , intent(in) :: operationB
11228 end subroutine
11229#endif
11230
11231#if RK2_ENABLED
11232 PURE module subroutine gemm_ASS_SFA_SFB_THA_TSB_RK2(matA, operationA, matB, operationB, matC, alpha, beta)
11233#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11234 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TSB_RK2
11235#endif
11236 use pm_kind, only: RKG => RK2
11237 real(RKG) , intent(in) , optional :: alpha, beta
11238 real(RKG) , intent(in) , contiguous :: matA(:,:)
11239 real(RKG) , intent(in) , contiguous :: matB(:,:)
11240 real(RKG) , intent(inout) , contiguous :: matC(:,:)
11241 type(transHerm_type) , intent(in) :: operationA
11242 type(transSymm_type) , intent(in) :: operationB
11243 end subroutine
11244#endif
11245
11246#if RK1_ENABLED
11247 PURE module subroutine gemm_ASS_SFA_SFB_THA_TSB_RK1(matA, operationA, matB, operationB, matC, alpha, beta)
11248#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11249 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_TSB_RK1
11250#endif
11251 use pm_kind, only: RKG => RK1
11252 real(RKG) , intent(in) , optional :: alpha, beta
11253 real(RKG) , intent(in) , contiguous :: matA(:,:)
11254 real(RKG) , intent(in) , contiguous :: matB(:,:)
11255 real(RKG) , intent(inout) , contiguous :: matC(:,:)
11256 type(transHerm_type) , intent(in) :: operationA
11257 type(transSymm_type) , intent(in) :: operationB
11258 end subroutine
11259#endif
11260
11261 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11262
11263 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11264 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11265 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11266
11267 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11268
11269#if IK5_ENABLED
11270 PURE module subroutine gemm_ASS_SFA_SFB_TNA_THB_IK5(matA, matB, operationB, matC, alpha, beta)
11271#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11272 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_THB_IK5
11273#endif
11274 use pm_kind, only: IKG => IK5
11275 integer(IKG) , intent(in) , optional :: alpha, beta
11276 integer(IKG) , intent(in) , contiguous :: matA(:,:)
11277 integer(IKG) , intent(in) , contiguous :: matB(:,:)
11278 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
11279 type(transHerm_type) , intent(in) :: operationB
11280 end subroutine
11281#endif
11282
11283#if IK4_ENABLED
11284 PURE module subroutine gemm_ASS_SFA_SFB_TNA_THB_IK4(matA, matB, operationB, matC, alpha, beta)
11285#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11286 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_THB_IK4
11287#endif
11288 use pm_kind, only: IKG => IK4
11289 integer(IKG) , intent(in) , optional :: alpha, beta
11290 integer(IKG) , intent(in) , contiguous :: matA(:,:)
11291 integer(IKG) , intent(in) , contiguous :: matB(:,:)
11292 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
11293 type(transHerm_type) , intent(in) :: operationB
11294 end subroutine
11295#endif
11296
11297#if IK3_ENABLED
11298 PURE module subroutine gemm_ASS_SFA_SFB_TNA_THB_IK3(matA, matB, operationB, matC, alpha, beta)
11299#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11300 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_THB_IK3
11301#endif
11302 use pm_kind, only: IKG => IK3
11303 integer(IKG) , intent(in) , optional :: alpha, beta
11304 integer(IKG) , intent(in) , contiguous :: matA(:,:)
11305 integer(IKG) , intent(in) , contiguous :: matB(:,:)
11306 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
11307 type(transHerm_type) , intent(in) :: operationB
11308 end subroutine
11309#endif
11310
11311#if IK2_ENABLED
11312 PURE module subroutine gemm_ASS_SFA_SFB_TNA_THB_IK2(matA, matB, operationB, matC, alpha, beta)
11313#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11314 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_THB_IK2
11315#endif
11316 use pm_kind, only: IKG => IK2
11317 integer(IKG) , intent(in) , optional :: alpha, beta
11318 integer(IKG) , intent(in) , contiguous :: matA(:,:)
11319 integer(IKG) , intent(in) , contiguous :: matB(:,:)
11320 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
11321 type(transHerm_type) , intent(in) :: operationB
11322 end subroutine
11323#endif
11324
11325#if IK1_ENABLED
11326 PURE module subroutine gemm_ASS_SFA_SFB_TNA_THB_IK1(matA, matB, operationB, matC, alpha, beta)
11327#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11328 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_THB_IK1
11329#endif
11330 use pm_kind, only: IKG => IK1
11331 integer(IKG) , intent(in) , optional :: alpha, beta
11332 integer(IKG) , intent(in) , contiguous :: matA(:,:)
11333 integer(IKG) , intent(in) , contiguous :: matB(:,:)
11334 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
11335 type(transHerm_type) , intent(in) :: operationB
11336 end subroutine
11337#endif
11338
11339 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11340
11341#if CK5_ENABLED
11342 PURE module subroutine gemm_ASS_SFA_SFB_TNA_THB_CK5(matA, matB, operationB, matC, alpha, beta)
11343#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11344 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_THB_CK5
11345#endif
11346 use pm_kind, only: CKG => CK5
11347 complex(CKG) , intent(in) , optional :: alpha, beta
11348 complex(CKG) , intent(in) , contiguous :: matA(:,:)
11349 complex(CKG) , intent(in) , contiguous :: matB(:,:)
11350 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
11351 type(transHerm_type) , intent(in) :: operationB
11352 end subroutine
11353#endif
11354
11355#if CK4_ENABLED
11356 PURE module subroutine gemm_ASS_SFA_SFB_TNA_THB_CK4(matA, matB, operationB, matC, alpha, beta)
11357#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11358 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_THB_CK4
11359#endif
11360 use pm_kind, only: CKG => CK4
11361 complex(CKG) , intent(in) , optional :: alpha, beta
11362 complex(CKG) , intent(in) , contiguous :: matA(:,:)
11363 complex(CKG) , intent(in) , contiguous :: matB(:,:)
11364 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
11365 type(transHerm_type) , intent(in) :: operationB
11366 end subroutine
11367#endif
11368
11369#if CK3_ENABLED
11370 PURE module subroutine gemm_ASS_SFA_SFB_TNA_THB_CK3(matA, matB, operationB, matC, alpha, beta)
11371#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11372 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_THB_CK3
11373#endif
11374 use pm_kind, only: CKG => CK3
11375 complex(CKG) , intent(in) , optional :: alpha, beta
11376 complex(CKG) , intent(in) , contiguous :: matA(:,:)
11377 complex(CKG) , intent(in) , contiguous :: matB(:,:)
11378 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
11379 type(transHerm_type) , intent(in) :: operationB
11380 end subroutine
11381#endif
11382
11383#if CK2_ENABLED
11384 PURE module subroutine gemm_ASS_SFA_SFB_TNA_THB_CK2(matA, matB, operationB, matC, alpha, beta)
11385#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11386 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_THB_CK2
11387#endif
11388 use pm_kind, only: CKG => CK2
11389 complex(CKG) , intent(in) , optional :: alpha, beta
11390 complex(CKG) , intent(in) , contiguous :: matA(:,:)
11391 complex(CKG) , intent(in) , contiguous :: matB(:,:)
11392 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
11393 type(transHerm_type) , intent(in) :: operationB
11394 end subroutine
11395#endif
11396
11397#if CK1_ENABLED
11398 PURE module subroutine gemm_ASS_SFA_SFB_TNA_THB_CK1(matA, matB, operationB, matC, alpha, beta)
11399#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11400 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_THB_CK1
11401#endif
11402 use pm_kind, only: CKG => CK1
11403 complex(CKG) , intent(in) , optional :: alpha, beta
11404 complex(CKG) , intent(in) , contiguous :: matA(:,:)
11405 complex(CKG) , intent(in) , contiguous :: matB(:,:)
11406 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
11407 type(transHerm_type) , intent(in) :: operationB
11408 end subroutine
11409#endif
11410
11411 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11412
11413#if RK5_ENABLED
11414 PURE module subroutine gemm_ASS_SFA_SFB_TNA_THB_RK5(matA, matB, operationB, matC, alpha, beta)
11415#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11416 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_THB_RK5
11417#endif
11418 use pm_kind, only: RKG => RK5
11419 real(RKG) , intent(in) , optional :: alpha, beta
11420 real(RKG) , intent(in) , contiguous :: matA(:,:)
11421 real(RKG) , intent(in) , contiguous :: matB(:,:)
11422 real(RKG) , intent(inout) , contiguous :: matC(:,:)
11423 type(transHerm_type) , intent(in) :: operationB
11424 end subroutine
11425#endif
11426
11427#if RK4_ENABLED
11428 PURE module subroutine gemm_ASS_SFA_SFB_TNA_THB_RK4(matA, matB, operationB, matC, alpha, beta)
11429#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11430 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_THB_RK4
11431#endif
11432 use pm_kind, only: RKG => RK4
11433 real(RKG) , intent(in) , optional :: alpha, beta
11434 real(RKG) , intent(in) , contiguous :: matA(:,:)
11435 real(RKG) , intent(in) , contiguous :: matB(:,:)
11436 real(RKG) , intent(inout) , contiguous :: matC(:,:)
11437 type(transHerm_type) , intent(in) :: operationB
11438 end subroutine
11439#endif
11440
11441#if RK3_ENABLED
11442 PURE module subroutine gemm_ASS_SFA_SFB_TNA_THB_RK3(matA, matB, operationB, matC, alpha, beta)
11443#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11444 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_THB_RK3
11445#endif
11446 use pm_kind, only: RKG => RK3
11447 real(RKG) , intent(in) , optional :: alpha, beta
11448 real(RKG) , intent(in) , contiguous :: matA(:,:)
11449 real(RKG) , intent(in) , contiguous :: matB(:,:)
11450 real(RKG) , intent(inout) , contiguous :: matC(:,:)
11451 type(transHerm_type) , intent(in) :: operationB
11452 end subroutine
11453#endif
11454
11455#if RK2_ENABLED
11456 PURE module subroutine gemm_ASS_SFA_SFB_TNA_THB_RK2(matA, matB, operationB, matC, alpha, beta)
11457#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11458 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_THB_RK2
11459#endif
11460 use pm_kind, only: RKG => RK2
11461 real(RKG) , intent(in) , optional :: alpha, beta
11462 real(RKG) , intent(in) , contiguous :: matA(:,:)
11463 real(RKG) , intent(in) , contiguous :: matB(:,:)
11464 real(RKG) , intent(inout) , contiguous :: matC(:,:)
11465 type(transHerm_type) , intent(in) :: operationB
11466 end subroutine
11467#endif
11468
11469#if RK1_ENABLED
11470 PURE module subroutine gemm_ASS_SFA_SFB_TNA_THB_RK1(matA, matB, operationB, matC, alpha, beta)
11471#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11472 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TNA_THB_RK1
11473#endif
11474 use pm_kind, only: RKG => RK1
11475 real(RKG) , intent(in) , optional :: alpha, beta
11476 real(RKG) , intent(in) , contiguous :: matA(:,:)
11477 real(RKG) , intent(in) , contiguous :: matB(:,:)
11478 real(RKG) , intent(inout) , contiguous :: matC(:,:)
11479 type(transHerm_type) , intent(in) :: operationB
11480 end subroutine
11481#endif
11482
11483 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11484
11485 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11486 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11487 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11488
11489 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11490
11491#if IK5_ENABLED
11492 PURE module subroutine gemm_ASS_SFA_SFB_TSA_THB_IK5(matA, operationA, matB, operationB, matC, alpha, beta)
11493#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11494 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_THB_IK5
11495#endif
11496 use pm_kind, only: IKG => IK5
11497 integer(IKG) , intent(in) , optional :: alpha, beta
11498 integer(IKG) , intent(in) , contiguous :: matA(:,:)
11499 integer(IKG) , intent(in) , contiguous :: matB(:,:)
11500 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
11501 type(transSymm_type) , intent(in) :: operationA
11502 type(transHerm_type) , intent(in) :: operationB
11503 end subroutine
11504#endif
11505
11506#if IK4_ENABLED
11507 PURE module subroutine gemm_ASS_SFA_SFB_TSA_THB_IK4(matA, operationA, matB, operationB, matC, alpha, beta)
11508#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11509 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_THB_IK4
11510#endif
11511 use pm_kind, only: IKG => IK4
11512 integer(IKG) , intent(in) , optional :: alpha, beta
11513 integer(IKG) , intent(in) , contiguous :: matA(:,:)
11514 integer(IKG) , intent(in) , contiguous :: matB(:,:)
11515 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
11516 type(transSymm_type) , intent(in) :: operationA
11517 type(transHerm_type) , intent(in) :: operationB
11518 end subroutine
11519#endif
11520
11521#if IK3_ENABLED
11522 PURE module subroutine gemm_ASS_SFA_SFB_TSA_THB_IK3(matA, operationA, matB, operationB, matC, alpha, beta)
11523#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11524 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_THB_IK3
11525#endif
11526 use pm_kind, only: IKG => IK3
11527 integer(IKG) , intent(in) , optional :: alpha, beta
11528 integer(IKG) , intent(in) , contiguous :: matA(:,:)
11529 integer(IKG) , intent(in) , contiguous :: matB(:,:)
11530 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
11531 type(transSymm_type) , intent(in) :: operationA
11532 type(transHerm_type) , intent(in) :: operationB
11533 end subroutine
11534#endif
11535
11536#if IK2_ENABLED
11537 PURE module subroutine gemm_ASS_SFA_SFB_TSA_THB_IK2(matA, operationA, matB, operationB, matC, alpha, beta)
11538#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11539 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_THB_IK2
11540#endif
11541 use pm_kind, only: IKG => IK2
11542 integer(IKG) , intent(in) , optional :: alpha, beta
11543 integer(IKG) , intent(in) , contiguous :: matA(:,:)
11544 integer(IKG) , intent(in) , contiguous :: matB(:,:)
11545 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
11546 type(transSymm_type) , intent(in) :: operationA
11547 type(transHerm_type) , intent(in) :: operationB
11548 end subroutine
11549#endif
11550
11551#if IK1_ENABLED
11552 PURE module subroutine gemm_ASS_SFA_SFB_TSA_THB_IK1(matA, operationA, matB, operationB, matC, alpha, beta)
11553#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11554 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_THB_IK1
11555#endif
11556 use pm_kind, only: IKG => IK1
11557 integer(IKG) , intent(in) , optional :: alpha, beta
11558 integer(IKG) , intent(in) , contiguous :: matA(:,:)
11559 integer(IKG) , intent(in) , contiguous :: matB(:,:)
11560 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
11561 type(transSymm_type) , intent(in) :: operationA
11562 type(transHerm_type) , intent(in) :: operationB
11563 end subroutine
11564#endif
11565
11566 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11567
11568#if CK5_ENABLED
11569 PURE module subroutine gemm_ASS_SFA_SFB_TSA_THB_CK5(matA, operationA, matB, operationB, matC, alpha, beta)
11570#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11571 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_THB_CK5
11572#endif
11573 use pm_kind, only: CKG => CK5
11574 complex(CKG) , intent(in) , optional :: alpha, beta
11575 complex(CKG) , intent(in) , contiguous :: matA(:,:)
11576 complex(CKG) , intent(in) , contiguous :: matB(:,:)
11577 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
11578 type(transSymm_type) , intent(in) :: operationA
11579 type(transHerm_type) , intent(in) :: operationB
11580 end subroutine
11581#endif
11582
11583#if CK4_ENABLED
11584 PURE module subroutine gemm_ASS_SFA_SFB_TSA_THB_CK4(matA, operationA, matB, operationB, matC, alpha, beta)
11585#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11586 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_THB_CK4
11587#endif
11588 use pm_kind, only: CKG => CK4
11589 complex(CKG) , intent(in) , optional :: alpha, beta
11590 complex(CKG) , intent(in) , contiguous :: matA(:,:)
11591 complex(CKG) , intent(in) , contiguous :: matB(:,:)
11592 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
11593 type(transSymm_type) , intent(in) :: operationA
11594 type(transHerm_type) , intent(in) :: operationB
11595 end subroutine
11596#endif
11597
11598#if CK3_ENABLED
11599 PURE module subroutine gemm_ASS_SFA_SFB_TSA_THB_CK3(matA, operationA, matB, operationB, matC, alpha, beta)
11600#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11601 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_THB_CK3
11602#endif
11603 use pm_kind, only: CKG => CK3
11604 complex(CKG) , intent(in) , optional :: alpha, beta
11605 complex(CKG) , intent(in) , contiguous :: matA(:,:)
11606 complex(CKG) , intent(in) , contiguous :: matB(:,:)
11607 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
11608 type(transSymm_type) , intent(in) :: operationA
11609 type(transHerm_type) , intent(in) :: operationB
11610 end subroutine
11611#endif
11612
11613#if CK2_ENABLED
11614 PURE module subroutine gemm_ASS_SFA_SFB_TSA_THB_CK2(matA, operationA, matB, operationB, matC, alpha, beta)
11615#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11616 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_THB_CK2
11617#endif
11618 use pm_kind, only: CKG => CK2
11619 complex(CKG) , intent(in) , optional :: alpha, beta
11620 complex(CKG) , intent(in) , contiguous :: matA(:,:)
11621 complex(CKG) , intent(in) , contiguous :: matB(:,:)
11622 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
11623 type(transSymm_type) , intent(in) :: operationA
11624 type(transHerm_type) , intent(in) :: operationB
11625 end subroutine
11626#endif
11627
11628#if CK1_ENABLED
11629 PURE module subroutine gemm_ASS_SFA_SFB_TSA_THB_CK1(matA, operationA, matB, operationB, matC, alpha, beta)
11630#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11631 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_THB_CK1
11632#endif
11633 use pm_kind, only: CKG => CK1
11634 complex(CKG) , intent(in) , optional :: alpha, beta
11635 complex(CKG) , intent(in) , contiguous :: matA(:,:)
11636 complex(CKG) , intent(in) , contiguous :: matB(:,:)
11637 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
11638 type(transSymm_type) , intent(in) :: operationA
11639 type(transHerm_type) , intent(in) :: operationB
11640 end subroutine
11641#endif
11642
11643 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11644
11645#if RK5_ENABLED
11646 PURE module subroutine gemm_ASS_SFA_SFB_TSA_THB_RK5(matA, operationA, matB, operationB, matC, alpha, beta)
11647#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11648 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_THB_RK5
11649#endif
11650 use pm_kind, only: RKG => RK5
11651 real(RKG) , intent(in) , optional :: alpha, beta
11652 real(RKG) , intent(in) , contiguous :: matA(:,:)
11653 real(RKG) , intent(in) , contiguous :: matB(:,:)
11654 real(RKG) , intent(inout) , contiguous :: matC(:,:)
11655 type(transSymm_type) , intent(in) :: operationA
11656 type(transHerm_type) , intent(in) :: operationB
11657 end subroutine
11658#endif
11659
11660#if RK4_ENABLED
11661 PURE module subroutine gemm_ASS_SFA_SFB_TSA_THB_RK4(matA, operationA, matB, operationB, matC, alpha, beta)
11662#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11663 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_THB_RK4
11664#endif
11665 use pm_kind, only: RKG => RK4
11666 real(RKG) , intent(in) , optional :: alpha, beta
11667 real(RKG) , intent(in) , contiguous :: matA(:,:)
11668 real(RKG) , intent(in) , contiguous :: matB(:,:)
11669 real(RKG) , intent(inout) , contiguous :: matC(:,:)
11670 type(transSymm_type) , intent(in) :: operationA
11671 type(transHerm_type) , intent(in) :: operationB
11672 end subroutine
11673#endif
11674
11675#if RK3_ENABLED
11676 PURE module subroutine gemm_ASS_SFA_SFB_TSA_THB_RK3(matA, operationA, matB, operationB, matC, alpha, beta)
11677#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11678 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_THB_RK3
11679#endif
11680 use pm_kind, only: RKG => RK3
11681 real(RKG) , intent(in) , optional :: alpha, beta
11682 real(RKG) , intent(in) , contiguous :: matA(:,:)
11683 real(RKG) , intent(in) , contiguous :: matB(:,:)
11684 real(RKG) , intent(inout) , contiguous :: matC(:,:)
11685 type(transSymm_type) , intent(in) :: operationA
11686 type(transHerm_type) , intent(in) :: operationB
11687 end subroutine
11688#endif
11689
11690#if RK2_ENABLED
11691 PURE module subroutine gemm_ASS_SFA_SFB_TSA_THB_RK2(matA, operationA, matB, operationB, matC, alpha, beta)
11692#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11693 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_THB_RK2
11694#endif
11695 use pm_kind, only: RKG => RK2
11696 real(RKG) , intent(in) , optional :: alpha, beta
11697 real(RKG) , intent(in) , contiguous :: matA(:,:)
11698 real(RKG) , intent(in) , contiguous :: matB(:,:)
11699 real(RKG) , intent(inout) , contiguous :: matC(:,:)
11700 type(transSymm_type) , intent(in) :: operationA
11701 type(transHerm_type) , intent(in) :: operationB
11702 end subroutine
11703#endif
11704
11705#if RK1_ENABLED
11706 PURE module subroutine gemm_ASS_SFA_SFB_TSA_THB_RK1(matA, operationA, matB, operationB, matC, alpha, beta)
11707#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11708 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_TSA_THB_RK1
11709#endif
11710 use pm_kind, only: RKG => RK1
11711 real(RKG) , intent(in) , optional :: alpha, beta
11712 real(RKG) , intent(in) , contiguous :: matA(:,:)
11713 real(RKG) , intent(in) , contiguous :: matB(:,:)
11714 real(RKG) , intent(inout) , contiguous :: matC(:,:)
11715 type(transSymm_type) , intent(in) :: operationA
11716 type(transHerm_type) , intent(in) :: operationB
11717 end subroutine
11718#endif
11719
11720 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11721
11722 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11723 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11724 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11725
11726 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11727
11728#if IK5_ENABLED
11729 PURE module subroutine gemm_ASS_SFA_SFB_THA_THB_IK5(matA, operationA, matB, operationB, matC, alpha, beta)
11730#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11731 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_THB_IK5
11732#endif
11733 use pm_kind, only: IKG => IK5
11734 integer(IKG) , intent(in) , optional :: alpha, beta
11735 integer(IKG) , intent(in) , contiguous :: matA(:,:)
11736 integer(IKG) , intent(in) , contiguous :: matB(:,:)
11737 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
11738 type(transHerm_type) , intent(in) :: operationA
11739 type(transHerm_type) , intent(in) :: operationB
11740 end subroutine
11741#endif
11742
11743#if IK4_ENABLED
11744 PURE module subroutine gemm_ASS_SFA_SFB_THA_THB_IK4(matA, operationA, matB, operationB, matC, alpha, beta)
11745#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11746 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_THB_IK4
11747#endif
11748 use pm_kind, only: IKG => IK4
11749 integer(IKG) , intent(in) , optional :: alpha, beta
11750 integer(IKG) , intent(in) , contiguous :: matA(:,:)
11751 integer(IKG) , intent(in) , contiguous :: matB(:,:)
11752 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
11753 type(transHerm_type) , intent(in) :: operationA
11754 type(transHerm_type) , intent(in) :: operationB
11755 end subroutine
11756#endif
11757
11758#if IK3_ENABLED
11759 PURE module subroutine gemm_ASS_SFA_SFB_THA_THB_IK3(matA, operationA, matB, operationB, matC, alpha, beta)
11760#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11761 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_THB_IK3
11762#endif
11763 use pm_kind, only: IKG => IK3
11764 integer(IKG) , intent(in) , optional :: alpha, beta
11765 integer(IKG) , intent(in) , contiguous :: matA(:,:)
11766 integer(IKG) , intent(in) , contiguous :: matB(:,:)
11767 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
11768 type(transHerm_type) , intent(in) :: operationA
11769 type(transHerm_type) , intent(in) :: operationB
11770 end subroutine
11771#endif
11772
11773#if IK2_ENABLED
11774 PURE module subroutine gemm_ASS_SFA_SFB_THA_THB_IK2(matA, operationA, matB, operationB, matC, alpha, beta)
11775#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11776 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_THB_IK2
11777#endif
11778 use pm_kind, only: IKG => IK2
11779 integer(IKG) , intent(in) , optional :: alpha, beta
11780 integer(IKG) , intent(in) , contiguous :: matA(:,:)
11781 integer(IKG) , intent(in) , contiguous :: matB(:,:)
11782 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
11783 type(transHerm_type) , intent(in) :: operationA
11784 type(transHerm_type) , intent(in) :: operationB
11785 end subroutine
11786#endif
11787
11788#if IK1_ENABLED
11789 PURE module subroutine gemm_ASS_SFA_SFB_THA_THB_IK1(matA, operationA, matB, operationB, matC, alpha, beta)
11790#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11791 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_THB_IK1
11792#endif
11793 use pm_kind, only: IKG => IK1
11794 integer(IKG) , intent(in) , optional :: alpha, beta
11795 integer(IKG) , intent(in) , contiguous :: matA(:,:)
11796 integer(IKG) , intent(in) , contiguous :: matB(:,:)
11797 integer(IKG) , intent(inout) , contiguous :: matC(:,:)
11798 type(transHerm_type) , intent(in) :: operationA
11799 type(transHerm_type) , intent(in) :: operationB
11800 end subroutine
11801#endif
11802
11803 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11804
11805#if CK5_ENABLED
11806 PURE module subroutine gemm_ASS_SFA_SFB_THA_THB_CK5(matA, operationA, matB, operationB, matC, alpha, beta)
11807#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11808 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_THB_CK5
11809#endif
11810 use pm_kind, only: CKG => CK5
11811 complex(CKG) , intent(in) , optional :: alpha, beta
11812 complex(CKG) , intent(in) , contiguous :: matA(:,:)
11813 complex(CKG) , intent(in) , contiguous :: matB(:,:)
11814 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
11815 type(transHerm_type) , intent(in) :: operationA
11816 type(transHerm_type) , intent(in) :: operationB
11817 end subroutine
11818#endif
11819
11820#if CK4_ENABLED
11821 PURE module subroutine gemm_ASS_SFA_SFB_THA_THB_CK4(matA, operationA, matB, operationB, matC, alpha, beta)
11822#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11823 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_THB_CK4
11824#endif
11825 use pm_kind, only: CKG => CK4
11826 complex(CKG) , intent(in) , optional :: alpha, beta
11827 complex(CKG) , intent(in) , contiguous :: matA(:,:)
11828 complex(CKG) , intent(in) , contiguous :: matB(:,:)
11829 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
11830 type(transHerm_type) , intent(in) :: operationA
11831 type(transHerm_type) , intent(in) :: operationB
11832 end subroutine
11833#endif
11834
11835#if CK3_ENABLED
11836 PURE module subroutine gemm_ASS_SFA_SFB_THA_THB_CK3(matA, operationA, matB, operationB, matC, alpha, beta)
11837#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11838 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_THB_CK3
11839#endif
11840 use pm_kind, only: CKG => CK3
11841 complex(CKG) , intent(in) , optional :: alpha, beta
11842 complex(CKG) , intent(in) , contiguous :: matA(:,:)
11843 complex(CKG) , intent(in) , contiguous :: matB(:,:)
11844 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
11845 type(transHerm_type) , intent(in) :: operationA
11846 type(transHerm_type) , intent(in) :: operationB
11847 end subroutine
11848#endif
11849
11850#if CK2_ENABLED
11851 PURE module subroutine gemm_ASS_SFA_SFB_THA_THB_CK2(matA, operationA, matB, operationB, matC, alpha, beta)
11852#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11853 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_THB_CK2
11854#endif
11855 use pm_kind, only: CKG => CK2
11856 complex(CKG) , intent(in) , optional :: alpha, beta
11857 complex(CKG) , intent(in) , contiguous :: matA(:,:)
11858 complex(CKG) , intent(in) , contiguous :: matB(:,:)
11859 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
11860 type(transHerm_type) , intent(in) :: operationA
11861 type(transHerm_type) , intent(in) :: operationB
11862 end subroutine
11863#endif
11864
11865#if CK1_ENABLED
11866 PURE module subroutine gemm_ASS_SFA_SFB_THA_THB_CK1(matA, operationA, matB, operationB, matC, alpha, beta)
11867#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11868 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_THB_CK1
11869#endif
11870 use pm_kind, only: CKG => CK1
11871 complex(CKG) , intent(in) , optional :: alpha, beta
11872 complex(CKG) , intent(in) , contiguous :: matA(:,:)
11873 complex(CKG) , intent(in) , contiguous :: matB(:,:)
11874 complex(CKG) , intent(inout) , contiguous :: matC(:,:)
11875 type(transHerm_type) , intent(in) :: operationA
11876 type(transHerm_type) , intent(in) :: operationB
11877 end subroutine
11878#endif
11879
11880 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11881
11882#if RK5_ENABLED
11883 PURE module subroutine gemm_ASS_SFA_SFB_THA_THB_RK5(matA, operationA, matB, operationB, matC, alpha, beta)
11884#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11885 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_THB_RK5
11886#endif
11887 use pm_kind, only: RKG => RK5
11888 real(RKG) , intent(in) , optional :: alpha, beta
11889 real(RKG) , intent(in) , contiguous :: matA(:,:)
11890 real(RKG) , intent(in) , contiguous :: matB(:,:)
11891 real(RKG) , intent(inout) , contiguous :: matC(:,:)
11892 type(transHerm_type) , intent(in) :: operationA
11893 type(transHerm_type) , intent(in) :: operationB
11894 end subroutine
11895#endif
11896
11897#if RK4_ENABLED
11898 PURE module subroutine gemm_ASS_SFA_SFB_THA_THB_RK4(matA, operationA, matB, operationB, matC, alpha, beta)
11899#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11900 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_THB_RK4
11901#endif
11902 use pm_kind, only: RKG => RK4
11903 real(RKG) , intent(in) , optional :: alpha, beta
11904 real(RKG) , intent(in) , contiguous :: matA(:,:)
11905 real(RKG) , intent(in) , contiguous :: matB(:,:)
11906 real(RKG) , intent(inout) , contiguous :: matC(:,:)
11907 type(transHerm_type) , intent(in) :: operationA
11908 type(transHerm_type) , intent(in) :: operationB
11909 end subroutine
11910#endif
11911
11912#if RK3_ENABLED
11913 PURE module subroutine gemm_ASS_SFA_SFB_THA_THB_RK3(matA, operationA, matB, operationB, matC, alpha, beta)
11914#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11915 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_THB_RK3
11916#endif
11917 use pm_kind, only: RKG => RK3
11918 real(RKG) , intent(in) , optional :: alpha, beta
11919 real(RKG) , intent(in) , contiguous :: matA(:,:)
11920 real(RKG) , intent(in) , contiguous :: matB(:,:)
11921 real(RKG) , intent(inout) , contiguous :: matC(:,:)
11922 type(transHerm_type) , intent(in) :: operationA
11923 type(transHerm_type) , intent(in) :: operationB
11924 end subroutine
11925#endif
11926
11927#if RK2_ENABLED
11928 PURE module subroutine gemm_ASS_SFA_SFB_THA_THB_RK2(matA, operationA, matB, operationB, matC, alpha, beta)
11929#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11930 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_THB_RK2
11931#endif
11932 use pm_kind, only: RKG => RK2
11933 real(RKG) , intent(in) , optional :: alpha, beta
11934 real(RKG) , intent(in) , contiguous :: matA(:,:)
11935 real(RKG) , intent(in) , contiguous :: matB(:,:)
11936 real(RKG) , intent(inout) , contiguous :: matC(:,:)
11937 type(transHerm_type) , intent(in) :: operationA
11938 type(transHerm_type) , intent(in) :: operationB
11939 end subroutine
11940#endif
11941
11942#if RK1_ENABLED
11943 PURE module subroutine gemm_ASS_SFA_SFB_THA_THB_RK1(matA, operationA, matB, operationB, matC, alpha, beta)
11944#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11945 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_ASS_SFA_SFB_THA_THB_RK1
11946#endif
11947 use pm_kind, only: RKG => RK1
11948 real(RKG) , intent(in) , optional :: alpha, beta
11949 real(RKG) , intent(in) , contiguous :: matA(:,:)
11950 real(RKG) , intent(in) , contiguous :: matB(:,:)
11951 real(RKG) , intent(inout) , contiguous :: matC(:,:)
11952 type(transHerm_type) , intent(in) :: operationA
11953 type(transHerm_type) , intent(in) :: operationB
11954 end subroutine
11955#endif
11956
11957 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11958
11959 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11960 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11961 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11962
11963 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11964 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11965 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11966
11967 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11968
11969#if IK5_ENABLED
11970 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TNB_IK5(matA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
11971#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11972 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TNB_IK5
11973#endif
11974 use pm_kind, only: IKG => IK5
11975 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
11976 integer(IKG) , intent(in) :: alpha, beta
11977 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
11978 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
11979 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
11980 end subroutine
11981#endif
11982
11983#if IK4_ENABLED
11984 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TNB_IK4(matA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
11985#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
11986 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TNB_IK4
11987#endif
11988 use pm_kind, only: IKG => IK4
11989 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
11990 integer(IKG) , intent(in) :: alpha, beta
11991 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
11992 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
11993 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
11994 end subroutine
11995#endif
11996
11997#if IK3_ENABLED
11998 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TNB_IK3(matA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
11999#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12000 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TNB_IK3
12001#endif
12002 use pm_kind, only: IKG => IK3
12003 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12004 integer(IKG) , intent(in) :: alpha, beta
12005 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12006 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12007 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12008 end subroutine
12009#endif
12010
12011#if IK2_ENABLED
12012 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TNB_IK2(matA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12013#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12014 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TNB_IK2
12015#endif
12016 use pm_kind, only: IKG => IK2
12017 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12018 integer(IKG) , intent(in) :: alpha, beta
12019 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12020 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12021 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12022 end subroutine
12023#endif
12024
12025#if IK1_ENABLED
12026 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TNB_IK1(matA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12027#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12028 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TNB_IK1
12029#endif
12030 use pm_kind, only: IKG => IK1
12031 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12032 integer(IKG) , intent(in) :: alpha, beta
12033 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12034 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12035 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12036 end subroutine
12037#endif
12038
12039 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12040
12041#if CK5_ENABLED
12042 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TNB_CK5(matA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12043#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12044 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TNB_CK5
12045#endif
12046 use pm_kind, only: CKG => CK5
12047 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12048 complex(CKG) , intent(in) :: alpha, beta
12049 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12050 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12051 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12052 end subroutine
12053#endif
12054
12055#if CK4_ENABLED
12056 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TNB_CK4(matA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12057#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12058 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TNB_CK4
12059#endif
12060 use pm_kind, only: CKG => CK4
12061 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12062 complex(CKG) , intent(in) :: alpha, beta
12063 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12064 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12065 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12066 end subroutine
12067#endif
12068
12069#if CK3_ENABLED
12070 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TNB_CK3(matA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12071#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12072 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TNB_CK3
12073#endif
12074 use pm_kind, only: CKG => CK3
12075 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12076 complex(CKG) , intent(in) :: alpha, beta
12077 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12078 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12079 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12080 end subroutine
12081#endif
12082
12083#if CK2_ENABLED
12084 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TNB_CK2(matA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12085#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12086 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TNB_CK2
12087#endif
12088 use pm_kind, only: CKG => CK2
12089 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12090 complex(CKG) , intent(in) :: alpha, beta
12091 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12092 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12093 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12094 end subroutine
12095#endif
12096
12097#if CK1_ENABLED
12098 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TNB_CK1(matA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12099#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12100 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TNB_CK1
12101#endif
12102 use pm_kind, only: CKG => CK1
12103 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12104 complex(CKG) , intent(in) :: alpha, beta
12105 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12106 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12107 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12108 end subroutine
12109#endif
12110
12111 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12112
12113#if RK5_ENABLED
12114 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TNB_RK5(matA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12115#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12116 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TNB_RK5
12117#endif
12118 use pm_kind, only: RKG => RK5
12119 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12120 real(RKG) , intent(in) :: alpha, beta
12121 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12122 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12123 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12124 end subroutine
12125#endif
12126
12127#if RK4_ENABLED
12128 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TNB_RK4(matA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12129#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12130 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TNB_RK4
12131#endif
12132 use pm_kind, only: RKG => RK4
12133 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12134 real(RKG) , intent(in) :: alpha, beta
12135 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12136 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12137 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12138 end subroutine
12139#endif
12140
12141#if RK3_ENABLED
12142 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TNB_RK3(matA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12143#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12144 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TNB_RK3
12145#endif
12146 use pm_kind, only: RKG => RK3
12147 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12148 real(RKG) , intent(in) :: alpha, beta
12149 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12150 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12151 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12152 end subroutine
12153#endif
12154
12155#if RK2_ENABLED
12156 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TNB_RK2(matA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12157#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12158 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TNB_RK2
12159#endif
12160 use pm_kind, only: RKG => RK2
12161 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12162 real(RKG) , intent(in) :: alpha, beta
12163 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12164 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12165 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12166 end subroutine
12167#endif
12168
12169#if RK1_ENABLED
12170 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TNB_RK1(matA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12171#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12172 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TNB_RK1
12173#endif
12174 use pm_kind, only: RKG => RK1
12175 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12176 real(RKG) , intent(in) :: alpha, beta
12177 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12178 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12179 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12180 end subroutine
12181#endif
12182
12183 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12184
12185 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12186 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12187 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12188
12189 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12190
12191#if IK5_ENABLED
12192 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TNB_IK5(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12193#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12194 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TNB_IK5
12195#endif
12196 use pm_kind, only: IKG => IK5
12197 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12198 integer(IKG) , intent(in) :: alpha, beta
12199 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12200 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12201 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12202 type(transSymm_type) , intent(in) :: operationA
12203 end subroutine
12204#endif
12205
12206#if IK4_ENABLED
12207 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TNB_IK4(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12208#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12209 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TNB_IK4
12210#endif
12211 use pm_kind, only: IKG => IK4
12212 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12213 integer(IKG) , intent(in) :: alpha, beta
12214 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12215 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12216 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12217 type(transSymm_type) , intent(in) :: operationA
12218 end subroutine
12219#endif
12220
12221#if IK3_ENABLED
12222 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TNB_IK3(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12223#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12224 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TNB_IK3
12225#endif
12226 use pm_kind, only: IKG => IK3
12227 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12228 integer(IKG) , intent(in) :: alpha, beta
12229 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12230 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12231 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12232 type(transSymm_type) , intent(in) :: operationA
12233 end subroutine
12234#endif
12235
12236#if IK2_ENABLED
12237 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TNB_IK2(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12238#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12239 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TNB_IK2
12240#endif
12241 use pm_kind, only: IKG => IK2
12242 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12243 integer(IKG) , intent(in) :: alpha, beta
12244 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12245 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12246 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12247 type(transSymm_type) , intent(in) :: operationA
12248 end subroutine
12249#endif
12250
12251#if IK1_ENABLED
12252 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TNB_IK1(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12253#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12254 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TNB_IK1
12255#endif
12256 use pm_kind, only: IKG => IK1
12257 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12258 integer(IKG) , intent(in) :: alpha, beta
12259 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12260 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12261 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12262 type(transSymm_type) , intent(in) :: operationA
12263 end subroutine
12264#endif
12265
12266 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12267
12268#if CK5_ENABLED
12269 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TNB_CK5(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12270#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12271 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TNB_CK5
12272#endif
12273 use pm_kind, only: CKG => CK5
12274 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12275 complex(CKG) , intent(in) :: alpha, beta
12276 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12277 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12278 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12279 type(transSymm_type) , intent(in) :: operationA
12280 end subroutine
12281#endif
12282
12283#if CK4_ENABLED
12284 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TNB_CK4(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12285#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12286 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TNB_CK4
12287#endif
12288 use pm_kind, only: CKG => CK4
12289 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12290 complex(CKG) , intent(in) :: alpha, beta
12291 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12292 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12293 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12294 type(transSymm_type) , intent(in) :: operationA
12295 end subroutine
12296#endif
12297
12298#if CK3_ENABLED
12299 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TNB_CK3(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12300#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12301 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TNB_CK3
12302#endif
12303 use pm_kind, only: CKG => CK3
12304 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12305 complex(CKG) , intent(in) :: alpha, beta
12306 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12307 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12308 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12309 type(transSymm_type) , intent(in) :: operationA
12310 end subroutine
12311#endif
12312
12313#if CK2_ENABLED
12314 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TNB_CK2(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12315#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12316 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TNB_CK2
12317#endif
12318 use pm_kind, only: CKG => CK2
12319 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12320 complex(CKG) , intent(in) :: alpha, beta
12321 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12322 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12323 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12324 type(transSymm_type) , intent(in) :: operationA
12325 end subroutine
12326#endif
12327
12328#if CK1_ENABLED
12329 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TNB_CK1(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12330#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12331 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TNB_CK1
12332#endif
12333 use pm_kind, only: CKG => CK1
12334 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12335 complex(CKG) , intent(in) :: alpha, beta
12336 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12337 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12338 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12339 type(transSymm_type) , intent(in) :: operationA
12340 end subroutine
12341#endif
12342
12343 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12344
12345#if RK5_ENABLED
12346 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TNB_RK5(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12347#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12348 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TNB_RK5
12349#endif
12350 use pm_kind, only: RKG => RK5
12351 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12352 real(RKG) , intent(in) :: alpha, beta
12353 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12354 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12355 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12356 type(transSymm_type) , intent(in) :: operationA
12357 end subroutine
12358#endif
12359
12360#if RK4_ENABLED
12361 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TNB_RK4(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12362#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12363 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TNB_RK4
12364#endif
12365 use pm_kind, only: RKG => RK4
12366 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12367 real(RKG) , intent(in) :: alpha, beta
12368 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12369 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12370 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12371 type(transSymm_type) , intent(in) :: operationA
12372 end subroutine
12373#endif
12374
12375#if RK3_ENABLED
12376 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TNB_RK3(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12377#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12378 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TNB_RK3
12379#endif
12380 use pm_kind, only: RKG => RK3
12381 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12382 real(RKG) , intent(in) :: alpha, beta
12383 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12384 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12385 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12386 type(transSymm_type) , intent(in) :: operationA
12387 end subroutine
12388#endif
12389
12390#if RK2_ENABLED
12391 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TNB_RK2(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12392#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12393 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TNB_RK2
12394#endif
12395 use pm_kind, only: RKG => RK2
12396 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12397 real(RKG) , intent(in) :: alpha, beta
12398 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12399 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12400 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12401 type(transSymm_type) , intent(in) :: operationA
12402 end subroutine
12403#endif
12404
12405#if RK1_ENABLED
12406 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TNB_RK1(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12407#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12408 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TNB_RK1
12409#endif
12410 use pm_kind, only: RKG => RK1
12411 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12412 real(RKG) , intent(in) :: alpha, beta
12413 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12414 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12415 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12416 type(transSymm_type) , intent(in) :: operationA
12417 end subroutine
12418#endif
12419
12420 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12421
12422 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12423 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12424 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12425
12426 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12427
12428#if IK5_ENABLED
12429 PURE module subroutine gemm_EXP_SFA_SFB_THA_TNB_IK5(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12430#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12431 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TNB_IK5
12432#endif
12433 use pm_kind, only: IKG => IK5
12434 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12435 integer(IKG) , intent(in) :: alpha, beta
12436 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12437 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12438 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12439 type(transHerm_type) , intent(in) :: operationA
12440 end subroutine
12441#endif
12442
12443#if IK4_ENABLED
12444 PURE module subroutine gemm_EXP_SFA_SFB_THA_TNB_IK4(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12445#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12446 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TNB_IK4
12447#endif
12448 use pm_kind, only: IKG => IK4
12449 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12450 integer(IKG) , intent(in) :: alpha, beta
12451 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12452 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12453 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12454 type(transHerm_type) , intent(in) :: operationA
12455 end subroutine
12456#endif
12457
12458#if IK3_ENABLED
12459 PURE module subroutine gemm_EXP_SFA_SFB_THA_TNB_IK3(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12460#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12461 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TNB_IK3
12462#endif
12463 use pm_kind, only: IKG => IK3
12464 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12465 integer(IKG) , intent(in) :: alpha, beta
12466 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12467 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12468 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12469 type(transHerm_type) , intent(in) :: operationA
12470 end subroutine
12471#endif
12472
12473#if IK2_ENABLED
12474 PURE module subroutine gemm_EXP_SFA_SFB_THA_TNB_IK2(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12475#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12476 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TNB_IK2
12477#endif
12478 use pm_kind, only: IKG => IK2
12479 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12480 integer(IKG) , intent(in) :: alpha, beta
12481 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12482 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12483 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12484 type(transHerm_type) , intent(in) :: operationA
12485 end subroutine
12486#endif
12487
12488#if IK1_ENABLED
12489 PURE module subroutine gemm_EXP_SFA_SFB_THA_TNB_IK1(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12490#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12491 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TNB_IK1
12492#endif
12493 use pm_kind, only: IKG => IK1
12494 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12495 integer(IKG) , intent(in) :: alpha, beta
12496 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12497 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12498 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12499 type(transHerm_type) , intent(in) :: operationA
12500 end subroutine
12501#endif
12502
12503 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12504
12505#if CK5_ENABLED
12506 PURE module subroutine gemm_EXP_SFA_SFB_THA_TNB_CK5(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12507#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12508 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TNB_CK5
12509#endif
12510 use pm_kind, only: CKG => CK5
12511 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12512 complex(CKG) , intent(in) :: alpha, beta
12513 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12514 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12515 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12516 type(transHerm_type) , intent(in) :: operationA
12517 end subroutine
12518#endif
12519
12520#if CK4_ENABLED
12521 PURE module subroutine gemm_EXP_SFA_SFB_THA_TNB_CK4(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12522#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12523 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TNB_CK4
12524#endif
12525 use pm_kind, only: CKG => CK4
12526 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12527 complex(CKG) , intent(in) :: alpha, beta
12528 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12529 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12530 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12531 type(transHerm_type) , intent(in) :: operationA
12532 end subroutine
12533#endif
12534
12535#if CK3_ENABLED
12536 PURE module subroutine gemm_EXP_SFA_SFB_THA_TNB_CK3(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12537#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12538 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TNB_CK3
12539#endif
12540 use pm_kind, only: CKG => CK3
12541 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12542 complex(CKG) , intent(in) :: alpha, beta
12543 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12544 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12545 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12546 type(transHerm_type) , intent(in) :: operationA
12547 end subroutine
12548#endif
12549
12550#if CK2_ENABLED
12551 PURE module subroutine gemm_EXP_SFA_SFB_THA_TNB_CK2(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12552#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12553 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TNB_CK2
12554#endif
12555 use pm_kind, only: CKG => CK2
12556 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12557 complex(CKG) , intent(in) :: alpha, beta
12558 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12559 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12560 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12561 type(transHerm_type) , intent(in) :: operationA
12562 end subroutine
12563#endif
12564
12565#if CK1_ENABLED
12566 PURE module subroutine gemm_EXP_SFA_SFB_THA_TNB_CK1(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12567#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12568 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TNB_CK1
12569#endif
12570 use pm_kind, only: CKG => CK1
12571 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12572 complex(CKG) , intent(in) :: alpha, beta
12573 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12574 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12575 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12576 type(transHerm_type) , intent(in) :: operationA
12577 end subroutine
12578#endif
12579
12580 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12581
12582#if RK5_ENABLED
12583 PURE module subroutine gemm_EXP_SFA_SFB_THA_TNB_RK5(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12584#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12585 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TNB_RK5
12586#endif
12587 use pm_kind, only: RKG => RK5
12588 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12589 real(RKG) , intent(in) :: alpha, beta
12590 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12591 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12592 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12593 type(transHerm_type) , intent(in) :: operationA
12594 end subroutine
12595#endif
12596
12597#if RK4_ENABLED
12598 PURE module subroutine gemm_EXP_SFA_SFB_THA_TNB_RK4(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12599#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12600 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TNB_RK4
12601#endif
12602 use pm_kind, only: RKG => RK4
12603 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12604 real(RKG) , intent(in) :: alpha, beta
12605 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12606 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12607 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12608 type(transHerm_type) , intent(in) :: operationA
12609 end subroutine
12610#endif
12611
12612#if RK3_ENABLED
12613 PURE module subroutine gemm_EXP_SFA_SFB_THA_TNB_RK3(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12614#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12615 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TNB_RK3
12616#endif
12617 use pm_kind, only: RKG => RK3
12618 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12619 real(RKG) , intent(in) :: alpha, beta
12620 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12621 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12622 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12623 type(transHerm_type) , intent(in) :: operationA
12624 end subroutine
12625#endif
12626
12627#if RK2_ENABLED
12628 PURE module subroutine gemm_EXP_SFA_SFB_THA_TNB_RK2(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12629#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12630 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TNB_RK2
12631#endif
12632 use pm_kind, only: RKG => RK2
12633 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12634 real(RKG) , intent(in) :: alpha, beta
12635 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12636 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12637 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12638 type(transHerm_type) , intent(in) :: operationA
12639 end subroutine
12640#endif
12641
12642#if RK1_ENABLED
12643 PURE module subroutine gemm_EXP_SFA_SFB_THA_TNB_RK1(matA, operationA, matB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12644#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12645 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TNB_RK1
12646#endif
12647 use pm_kind, only: RKG => RK1
12648 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12649 real(RKG) , intent(in) :: alpha, beta
12650 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12651 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12652 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12653 type(transHerm_type) , intent(in) :: operationA
12654 end subroutine
12655#endif
12656
12657 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12658
12659 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12660 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12661 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12662
12663 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12664
12665#if IK5_ENABLED
12666 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TSB_IK5(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12667#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12668 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TSB_IK5
12669#endif
12670 use pm_kind, only: IKG => IK5
12671 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12672 integer(IKG) , intent(in) :: alpha, beta
12673 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12674 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12675 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12676 type(transSymm_type) , intent(in) :: operationB
12677 end subroutine
12678#endif
12679
12680#if IK4_ENABLED
12681 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TSB_IK4(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12682#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12683 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TSB_IK4
12684#endif
12685 use pm_kind, only: IKG => IK4
12686 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12687 integer(IKG) , intent(in) :: alpha, beta
12688 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12689 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12690 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12691 type(transSymm_type) , intent(in) :: operationB
12692 end subroutine
12693#endif
12694
12695#if IK3_ENABLED
12696 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TSB_IK3(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12697#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12698 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TSB_IK3
12699#endif
12700 use pm_kind, only: IKG => IK3
12701 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12702 integer(IKG) , intent(in) :: alpha, beta
12703 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12704 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12705 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12706 type(transSymm_type) , intent(in) :: operationB
12707 end subroutine
12708#endif
12709
12710#if IK2_ENABLED
12711 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TSB_IK2(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12712#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12713 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TSB_IK2
12714#endif
12715 use pm_kind, only: IKG => IK2
12716 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12717 integer(IKG) , intent(in) :: alpha, beta
12718 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12719 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12720 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12721 type(transSymm_type) , intent(in) :: operationB
12722 end subroutine
12723#endif
12724
12725#if IK1_ENABLED
12726 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TSB_IK1(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12727#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12728 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TSB_IK1
12729#endif
12730 use pm_kind, only: IKG => IK1
12731 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12732 integer(IKG) , intent(in) :: alpha, beta
12733 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12734 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12735 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12736 type(transSymm_type) , intent(in) :: operationB
12737 end subroutine
12738#endif
12739
12740 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12741
12742#if CK5_ENABLED
12743 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TSB_CK5(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12744#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12745 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TSB_CK5
12746#endif
12747 use pm_kind, only: CKG => CK5
12748 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12749 complex(CKG) , intent(in) :: alpha, beta
12750 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12751 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12752 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12753 type(transSymm_type) , intent(in) :: operationB
12754 end subroutine
12755#endif
12756
12757#if CK4_ENABLED
12758 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TSB_CK4(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12759#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12760 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TSB_CK4
12761#endif
12762 use pm_kind, only: CKG => CK4
12763 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12764 complex(CKG) , intent(in) :: alpha, beta
12765 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12766 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12767 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12768 type(transSymm_type) , intent(in) :: operationB
12769 end subroutine
12770#endif
12771
12772#if CK3_ENABLED
12773 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TSB_CK3(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12774#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12775 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TSB_CK3
12776#endif
12777 use pm_kind, only: CKG => CK3
12778 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12779 complex(CKG) , intent(in) :: alpha, beta
12780 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12781 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12782 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12783 type(transSymm_type) , intent(in) :: operationB
12784 end subroutine
12785#endif
12786
12787#if CK2_ENABLED
12788 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TSB_CK2(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12789#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12790 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TSB_CK2
12791#endif
12792 use pm_kind, only: CKG => CK2
12793 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12794 complex(CKG) , intent(in) :: alpha, beta
12795 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12796 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12797 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12798 type(transSymm_type) , intent(in) :: operationB
12799 end subroutine
12800#endif
12801
12802#if CK1_ENABLED
12803 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TSB_CK1(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12804#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12805 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TSB_CK1
12806#endif
12807 use pm_kind, only: CKG => CK1
12808 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12809 complex(CKG) , intent(in) :: alpha, beta
12810 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12811 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12812 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12813 type(transSymm_type) , intent(in) :: operationB
12814 end subroutine
12815#endif
12816
12817 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12818
12819#if RK5_ENABLED
12820 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TSB_RK5(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12821#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12822 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TSB_RK5
12823#endif
12824 use pm_kind, only: RKG => RK5
12825 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12826 real(RKG) , intent(in) :: alpha, beta
12827 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12828 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12829 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12830 type(transSymm_type) , intent(in) :: operationB
12831 end subroutine
12832#endif
12833
12834#if RK4_ENABLED
12835 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TSB_RK4(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12836#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12837 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TSB_RK4
12838#endif
12839 use pm_kind, only: RKG => RK4
12840 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12841 real(RKG) , intent(in) :: alpha, beta
12842 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12843 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12844 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12845 type(transSymm_type) , intent(in) :: operationB
12846 end subroutine
12847#endif
12848
12849#if RK3_ENABLED
12850 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TSB_RK3(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12851#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12852 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TSB_RK3
12853#endif
12854 use pm_kind, only: RKG => RK3
12855 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12856 real(RKG) , intent(in) :: alpha, beta
12857 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12858 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12859 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12860 type(transSymm_type) , intent(in) :: operationB
12861 end subroutine
12862#endif
12863
12864#if RK2_ENABLED
12865 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TSB_RK2(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12866#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12867 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TSB_RK2
12868#endif
12869 use pm_kind, only: RKG => RK2
12870 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12871 real(RKG) , intent(in) :: alpha, beta
12872 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12873 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12874 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12875 type(transSymm_type) , intent(in) :: operationB
12876 end subroutine
12877#endif
12878
12879#if RK1_ENABLED
12880 PURE module subroutine gemm_EXP_SFA_SFB_TNA_TSB_RK1(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12881#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12882 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_TSB_RK1
12883#endif
12884 use pm_kind, only: RKG => RK1
12885 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12886 real(RKG) , intent(in) :: alpha, beta
12887 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12888 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12889 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12890 type(transSymm_type) , intent(in) :: operationB
12891 end subroutine
12892#endif
12893
12894 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12895
12896 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12897 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12898 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12899
12900 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12901
12902#if IK5_ENABLED
12903 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TSB_IK5(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12904#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12905 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TSB_IK5
12906#endif
12907 use pm_kind, only: IKG => IK5
12908 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12909 integer(IKG) , intent(in) :: alpha, beta
12910 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12911 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12912 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12913 type(transSymm_type) , intent(in) :: operationA
12914 type(transSymm_type) , intent(in) :: operationB
12915 end subroutine
12916#endif
12917
12918#if IK4_ENABLED
12919 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TSB_IK4(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12920#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12921 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TSB_IK4
12922#endif
12923 use pm_kind, only: IKG => IK4
12924 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12925 integer(IKG) , intent(in) :: alpha, beta
12926 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12927 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12928 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12929 type(transSymm_type) , intent(in) :: operationA
12930 type(transSymm_type) , intent(in) :: operationB
12931 end subroutine
12932#endif
12933
12934#if IK3_ENABLED
12935 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TSB_IK3(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12936#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12937 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TSB_IK3
12938#endif
12939 use pm_kind, only: IKG => IK3
12940 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12941 integer(IKG) , intent(in) :: alpha, beta
12942 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12943 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12944 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12945 type(transSymm_type) , intent(in) :: operationA
12946 type(transSymm_type) , intent(in) :: operationB
12947 end subroutine
12948#endif
12949
12950#if IK2_ENABLED
12951 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TSB_IK2(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12952#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12953 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TSB_IK2
12954#endif
12955 use pm_kind, only: IKG => IK2
12956 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12957 integer(IKG) , intent(in) :: alpha, beta
12958 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12959 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12960 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12961 type(transSymm_type) , intent(in) :: operationA
12962 type(transSymm_type) , intent(in) :: operationB
12963 end subroutine
12964#endif
12965
12966#if IK1_ENABLED
12967 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TSB_IK1(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12968#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12969 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TSB_IK1
12970#endif
12971 use pm_kind, only: IKG => IK1
12972 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12973 integer(IKG) , intent(in) :: alpha, beta
12974 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12975 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12976 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12977 type(transSymm_type) , intent(in) :: operationA
12978 type(transSymm_type) , intent(in) :: operationB
12979 end subroutine
12980#endif
12981
12982 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12983
12984#if CK5_ENABLED
12985 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TSB_CK5(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
12986#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
12987 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TSB_CK5
12988#endif
12989 use pm_kind, only: CKG => CK5
12990 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
12991 complex(CKG) , intent(in) :: alpha, beta
12992 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
12993 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
12994 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
12995 type(transSymm_type) , intent(in) :: operationA
12996 type(transSymm_type) , intent(in) :: operationB
12997 end subroutine
12998#endif
12999
13000#if CK4_ENABLED
13001 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TSB_CK4(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13002#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13003 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TSB_CK4
13004#endif
13005 use pm_kind, only: CKG => CK4
13006 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13007 complex(CKG) , intent(in) :: alpha, beta
13008 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13009 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13010 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13011 type(transSymm_type) , intent(in) :: operationA
13012 type(transSymm_type) , intent(in) :: operationB
13013 end subroutine
13014#endif
13015
13016#if CK3_ENABLED
13017 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TSB_CK3(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13018#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13019 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TSB_CK3
13020#endif
13021 use pm_kind, only: CKG => CK3
13022 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13023 complex(CKG) , intent(in) :: alpha, beta
13024 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13025 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13026 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13027 type(transSymm_type) , intent(in) :: operationA
13028 type(transSymm_type) , intent(in) :: operationB
13029 end subroutine
13030#endif
13031
13032#if CK2_ENABLED
13033 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TSB_CK2(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13034#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13035 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TSB_CK2
13036#endif
13037 use pm_kind, only: CKG => CK2
13038 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13039 complex(CKG) , intent(in) :: alpha, beta
13040 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13041 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13042 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13043 type(transSymm_type) , intent(in) :: operationA
13044 type(transSymm_type) , intent(in) :: operationB
13045 end subroutine
13046#endif
13047
13048#if CK1_ENABLED
13049 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TSB_CK1(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13050#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13051 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TSB_CK1
13052#endif
13053 use pm_kind, only: CKG => CK1
13054 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13055 complex(CKG) , intent(in) :: alpha, beta
13056 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13057 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13058 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13059 type(transSymm_type) , intent(in) :: operationA
13060 type(transSymm_type) , intent(in) :: operationB
13061 end subroutine
13062#endif
13063
13064 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13065
13066#if RK5_ENABLED
13067 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TSB_RK5(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13068#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13069 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TSB_RK5
13070#endif
13071 use pm_kind, only: RKG => RK5
13072 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13073 real(RKG) , intent(in) :: alpha, beta
13074 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13075 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13076 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13077 type(transSymm_type) , intent(in) :: operationA
13078 type(transSymm_type) , intent(in) :: operationB
13079 end subroutine
13080#endif
13081
13082#if RK4_ENABLED
13083 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TSB_RK4(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13084#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13085 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TSB_RK4
13086#endif
13087 use pm_kind, only: RKG => RK4
13088 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13089 real(RKG) , intent(in) :: alpha, beta
13090 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13091 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13092 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13093 type(transSymm_type) , intent(in) :: operationA
13094 type(transSymm_type) , intent(in) :: operationB
13095 end subroutine
13096#endif
13097
13098#if RK3_ENABLED
13099 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TSB_RK3(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13100#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13101 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TSB_RK3
13102#endif
13103 use pm_kind, only: RKG => RK3
13104 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13105 real(RKG) , intent(in) :: alpha, beta
13106 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13107 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13108 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13109 type(transSymm_type) , intent(in) :: operationA
13110 type(transSymm_type) , intent(in) :: operationB
13111 end subroutine
13112#endif
13113
13114#if RK2_ENABLED
13115 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TSB_RK2(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13116#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13117 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TSB_RK2
13118#endif
13119 use pm_kind, only: RKG => RK2
13120 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13121 real(RKG) , intent(in) :: alpha, beta
13122 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13123 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13124 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13125 type(transSymm_type) , intent(in) :: operationA
13126 type(transSymm_type) , intent(in) :: operationB
13127 end subroutine
13128#endif
13129
13130#if RK1_ENABLED
13131 PURE module subroutine gemm_EXP_SFA_SFB_TSA_TSB_RK1(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13132#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13133 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_TSB_RK1
13134#endif
13135 use pm_kind, only: RKG => RK1
13136 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13137 real(RKG) , intent(in) :: alpha, beta
13138 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13139 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13140 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13141 type(transSymm_type) , intent(in) :: operationA
13142 type(transSymm_type) , intent(in) :: operationB
13143 end subroutine
13144#endif
13145
13146 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13147
13148 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13149 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13150 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13151
13152 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13153
13154#if IK5_ENABLED
13155 PURE module subroutine gemm_EXP_SFA_SFB_THA_TSB_IK5(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13156#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13157 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TSB_IK5
13158#endif
13159 use pm_kind, only: IKG => IK5
13160 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13161 integer(IKG) , intent(in) :: alpha, beta
13162 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13163 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13164 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13165 type(transHerm_type) , intent(in) :: operationA
13166 type(transSymm_type) , intent(in) :: operationB
13167 end subroutine
13168#endif
13169
13170#if IK4_ENABLED
13171 PURE module subroutine gemm_EXP_SFA_SFB_THA_TSB_IK4(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13172#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13173 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TSB_IK4
13174#endif
13175 use pm_kind, only: IKG => IK4
13176 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13177 integer(IKG) , intent(in) :: alpha, beta
13178 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13179 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13180 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13181 type(transHerm_type) , intent(in) :: operationA
13182 type(transSymm_type) , intent(in) :: operationB
13183 end subroutine
13184#endif
13185
13186#if IK3_ENABLED
13187 PURE module subroutine gemm_EXP_SFA_SFB_THA_TSB_IK3(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13188#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13189 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TSB_IK3
13190#endif
13191 use pm_kind, only: IKG => IK3
13192 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13193 integer(IKG) , intent(in) :: alpha, beta
13194 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13195 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13196 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13197 type(transHerm_type) , intent(in) :: operationA
13198 type(transSymm_type) , intent(in) :: operationB
13199 end subroutine
13200#endif
13201
13202#if IK2_ENABLED
13203 PURE module subroutine gemm_EXP_SFA_SFB_THA_TSB_IK2(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13204#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13205 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TSB_IK2
13206#endif
13207 use pm_kind, only: IKG => IK2
13208 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13209 integer(IKG) , intent(in) :: alpha, beta
13210 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13211 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13212 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13213 type(transHerm_type) , intent(in) :: operationA
13214 type(transSymm_type) , intent(in) :: operationB
13215 end subroutine
13216#endif
13217
13218#if IK1_ENABLED
13219 PURE module subroutine gemm_EXP_SFA_SFB_THA_TSB_IK1(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13220#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13221 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TSB_IK1
13222#endif
13223 use pm_kind, only: IKG => IK1
13224 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13225 integer(IKG) , intent(in) :: alpha, beta
13226 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13227 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13228 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13229 type(transHerm_type) , intent(in) :: operationA
13230 type(transSymm_type) , intent(in) :: operationB
13231 end subroutine
13232#endif
13233
13234 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13235
13236#if CK5_ENABLED
13237 PURE module subroutine gemm_EXP_SFA_SFB_THA_TSB_CK5(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13238#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13239 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TSB_CK5
13240#endif
13241 use pm_kind, only: CKG => CK5
13242 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13243 complex(CKG) , intent(in) :: alpha, beta
13244 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13245 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13246 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13247 type(transHerm_type) , intent(in) :: operationA
13248 type(transSymm_type) , intent(in) :: operationB
13249 end subroutine
13250#endif
13251
13252#if CK4_ENABLED
13253 PURE module subroutine gemm_EXP_SFA_SFB_THA_TSB_CK4(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13254#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13255 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TSB_CK4
13256#endif
13257 use pm_kind, only: CKG => CK4
13258 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13259 complex(CKG) , intent(in) :: alpha, beta
13260 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13261 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13262 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13263 type(transHerm_type) , intent(in) :: operationA
13264 type(transSymm_type) , intent(in) :: operationB
13265 end subroutine
13266#endif
13267
13268#if CK3_ENABLED
13269 PURE module subroutine gemm_EXP_SFA_SFB_THA_TSB_CK3(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13270#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13271 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TSB_CK3
13272#endif
13273 use pm_kind, only: CKG => CK3
13274 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13275 complex(CKG) , intent(in) :: alpha, beta
13276 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13277 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13278 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13279 type(transHerm_type) , intent(in) :: operationA
13280 type(transSymm_type) , intent(in) :: operationB
13281 end subroutine
13282#endif
13283
13284#if CK2_ENABLED
13285 PURE module subroutine gemm_EXP_SFA_SFB_THA_TSB_CK2(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13286#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13287 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TSB_CK2
13288#endif
13289 use pm_kind, only: CKG => CK2
13290 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13291 complex(CKG) , intent(in) :: alpha, beta
13292 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13293 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13294 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13295 type(transHerm_type) , intent(in) :: operationA
13296 type(transSymm_type) , intent(in) :: operationB
13297 end subroutine
13298#endif
13299
13300#if CK1_ENABLED
13301 PURE module subroutine gemm_EXP_SFA_SFB_THA_TSB_CK1(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13302#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13303 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TSB_CK1
13304#endif
13305 use pm_kind, only: CKG => CK1
13306 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13307 complex(CKG) , intent(in) :: alpha, beta
13308 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13309 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13310 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13311 type(transHerm_type) , intent(in) :: operationA
13312 type(transSymm_type) , intent(in) :: operationB
13313 end subroutine
13314#endif
13315
13316 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13317
13318#if RK5_ENABLED
13319 PURE module subroutine gemm_EXP_SFA_SFB_THA_TSB_RK5(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13320#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13321 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TSB_RK5
13322#endif
13323 use pm_kind, only: RKG => RK5
13324 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13325 real(RKG) , intent(in) :: alpha, beta
13326 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13327 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13328 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13329 type(transHerm_type) , intent(in) :: operationA
13330 type(transSymm_type) , intent(in) :: operationB
13331 end subroutine
13332#endif
13333
13334#if RK4_ENABLED
13335 PURE module subroutine gemm_EXP_SFA_SFB_THA_TSB_RK4(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13336#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13337 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TSB_RK4
13338#endif
13339 use pm_kind, only: RKG => RK4
13340 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13341 real(RKG) , intent(in) :: alpha, beta
13342 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13343 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13344 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13345 type(transHerm_type) , intent(in) :: operationA
13346 type(transSymm_type) , intent(in) :: operationB
13347 end subroutine
13348#endif
13349
13350#if RK3_ENABLED
13351 PURE module subroutine gemm_EXP_SFA_SFB_THA_TSB_RK3(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13352#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13353 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TSB_RK3
13354#endif
13355 use pm_kind, only: RKG => RK3
13356 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13357 real(RKG) , intent(in) :: alpha, beta
13358 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13359 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13360 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13361 type(transHerm_type) , intent(in) :: operationA
13362 type(transSymm_type) , intent(in) :: operationB
13363 end subroutine
13364#endif
13365
13366#if RK2_ENABLED
13367 PURE module subroutine gemm_EXP_SFA_SFB_THA_TSB_RK2(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13368#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13369 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TSB_RK2
13370#endif
13371 use pm_kind, only: RKG => RK2
13372 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13373 real(RKG) , intent(in) :: alpha, beta
13374 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13375 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13376 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13377 type(transHerm_type) , intent(in) :: operationA
13378 type(transSymm_type) , intent(in) :: operationB
13379 end subroutine
13380#endif
13381
13382#if RK1_ENABLED
13383 PURE module subroutine gemm_EXP_SFA_SFB_THA_TSB_RK1(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13384#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13385 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_TSB_RK1
13386#endif
13387 use pm_kind, only: RKG => RK1
13388 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13389 real(RKG) , intent(in) :: alpha, beta
13390 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13391 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13392 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13393 type(transHerm_type) , intent(in) :: operationA
13394 type(transSymm_type) , intent(in) :: operationB
13395 end subroutine
13396#endif
13397
13398 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13399
13400 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13401 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13402 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13403
13404 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13405
13406#if IK5_ENABLED
13407 PURE module subroutine gemm_EXP_SFA_SFB_TNA_THB_IK5(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13408#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13409 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_THB_IK5
13410#endif
13411 use pm_kind, only: IKG => IK5
13412 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13413 integer(IKG) , intent(in) :: alpha, beta
13414 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13415 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13416 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13417 type(transHerm_type) , intent(in) :: operationB
13418 end subroutine
13419#endif
13420
13421#if IK4_ENABLED
13422 PURE module subroutine gemm_EXP_SFA_SFB_TNA_THB_IK4(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13423#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13424 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_THB_IK4
13425#endif
13426 use pm_kind, only: IKG => IK4
13427 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13428 integer(IKG) , intent(in) :: alpha, beta
13429 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13430 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13431 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13432 type(transHerm_type) , intent(in) :: operationB
13433 end subroutine
13434#endif
13435
13436#if IK3_ENABLED
13437 PURE module subroutine gemm_EXP_SFA_SFB_TNA_THB_IK3(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13438#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13439 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_THB_IK3
13440#endif
13441 use pm_kind, only: IKG => IK3
13442 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13443 integer(IKG) , intent(in) :: alpha, beta
13444 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13445 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13446 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13447 type(transHerm_type) , intent(in) :: operationB
13448 end subroutine
13449#endif
13450
13451#if IK2_ENABLED
13452 PURE module subroutine gemm_EXP_SFA_SFB_TNA_THB_IK2(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13453#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13454 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_THB_IK2
13455#endif
13456 use pm_kind, only: IKG => IK2
13457 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13458 integer(IKG) , intent(in) :: alpha, beta
13459 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13460 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13461 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13462 type(transHerm_type) , intent(in) :: operationB
13463 end subroutine
13464#endif
13465
13466#if IK1_ENABLED
13467 PURE module subroutine gemm_EXP_SFA_SFB_TNA_THB_IK1(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13468#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13469 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_THB_IK1
13470#endif
13471 use pm_kind, only: IKG => IK1
13472 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13473 integer(IKG) , intent(in) :: alpha, beta
13474 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13475 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13476 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13477 type(transHerm_type) , intent(in) :: operationB
13478 end subroutine
13479#endif
13480
13481 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13482
13483#if CK5_ENABLED
13484 PURE module subroutine gemm_EXP_SFA_SFB_TNA_THB_CK5(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13485#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13486 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_THB_CK5
13487#endif
13488 use pm_kind, only: CKG => CK5
13489 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13490 complex(CKG) , intent(in) :: alpha, beta
13491 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13492 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13493 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13494 type(transHerm_type) , intent(in) :: operationB
13495 end subroutine
13496#endif
13497
13498#if CK4_ENABLED
13499 PURE module subroutine gemm_EXP_SFA_SFB_TNA_THB_CK4(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13500#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13501 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_THB_CK4
13502#endif
13503 use pm_kind, only: CKG => CK4
13504 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13505 complex(CKG) , intent(in) :: alpha, beta
13506 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13507 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13508 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13509 type(transHerm_type) , intent(in) :: operationB
13510 end subroutine
13511#endif
13512
13513#if CK3_ENABLED
13514 PURE module subroutine gemm_EXP_SFA_SFB_TNA_THB_CK3(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13515#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13516 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_THB_CK3
13517#endif
13518 use pm_kind, only: CKG => CK3
13519 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13520 complex(CKG) , intent(in) :: alpha, beta
13521 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13522 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13523 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13524 type(transHerm_type) , intent(in) :: operationB
13525 end subroutine
13526#endif
13527
13528#if CK2_ENABLED
13529 PURE module subroutine gemm_EXP_SFA_SFB_TNA_THB_CK2(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13530#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13531 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_THB_CK2
13532#endif
13533 use pm_kind, only: CKG => CK2
13534 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13535 complex(CKG) , intent(in) :: alpha, beta
13536 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13537 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13538 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13539 type(transHerm_type) , intent(in) :: operationB
13540 end subroutine
13541#endif
13542
13543#if CK1_ENABLED
13544 PURE module subroutine gemm_EXP_SFA_SFB_TNA_THB_CK1(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13545#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13546 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_THB_CK1
13547#endif
13548 use pm_kind, only: CKG => CK1
13549 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13550 complex(CKG) , intent(in) :: alpha, beta
13551 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13552 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13553 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13554 type(transHerm_type) , intent(in) :: operationB
13555 end subroutine
13556#endif
13557
13558 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13559
13560#if RK5_ENABLED
13561 PURE module subroutine gemm_EXP_SFA_SFB_TNA_THB_RK5(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13562#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13563 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_THB_RK5
13564#endif
13565 use pm_kind, only: RKG => RK5
13566 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13567 real(RKG) , intent(in) :: alpha, beta
13568 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13569 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13570 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13571 type(transHerm_type) , intent(in) :: operationB
13572 end subroutine
13573#endif
13574
13575#if RK4_ENABLED
13576 PURE module subroutine gemm_EXP_SFA_SFB_TNA_THB_RK4(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13577#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13578 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_THB_RK4
13579#endif
13580 use pm_kind, only: RKG => RK4
13581 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13582 real(RKG) , intent(in) :: alpha, beta
13583 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13584 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13585 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13586 type(transHerm_type) , intent(in) :: operationB
13587 end subroutine
13588#endif
13589
13590#if RK3_ENABLED
13591 PURE module subroutine gemm_EXP_SFA_SFB_TNA_THB_RK3(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13592#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13593 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_THB_RK3
13594#endif
13595 use pm_kind, only: RKG => RK3
13596 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13597 real(RKG) , intent(in) :: alpha, beta
13598 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13599 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13600 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13601 type(transHerm_type) , intent(in) :: operationB
13602 end subroutine
13603#endif
13604
13605#if RK2_ENABLED
13606 PURE module subroutine gemm_EXP_SFA_SFB_TNA_THB_RK2(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13607#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13608 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_THB_RK2
13609#endif
13610 use pm_kind, only: RKG => RK2
13611 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13612 real(RKG) , intent(in) :: alpha, beta
13613 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13614 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13615 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13616 type(transHerm_type) , intent(in) :: operationB
13617 end subroutine
13618#endif
13619
13620#if RK1_ENABLED
13621 PURE module subroutine gemm_EXP_SFA_SFB_TNA_THB_RK1(matA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13622#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13623 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TNA_THB_RK1
13624#endif
13625 use pm_kind, only: RKG => RK1
13626 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13627 real(RKG) , intent(in) :: alpha, beta
13628 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13629 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13630 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13631 type(transHerm_type) , intent(in) :: operationB
13632 end subroutine
13633#endif
13634
13635 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13636
13637 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13638 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13639 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13640
13641 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13642
13643#if IK5_ENABLED
13644 PURE module subroutine gemm_EXP_SFA_SFB_TSA_THB_IK5(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13645#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13646 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_THB_IK5
13647#endif
13648 use pm_kind, only: IKG => IK5
13649 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13650 integer(IKG) , intent(in) :: alpha, beta
13651 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13652 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13653 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13654 type(transSymm_type) , intent(in) :: operationA
13655 type(transHerm_type) , intent(in) :: operationB
13656 end subroutine
13657#endif
13658
13659#if IK4_ENABLED
13660 PURE module subroutine gemm_EXP_SFA_SFB_TSA_THB_IK4(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13661#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13662 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_THB_IK4
13663#endif
13664 use pm_kind, only: IKG => IK4
13665 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13666 integer(IKG) , intent(in) :: alpha, beta
13667 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13668 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13669 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13670 type(transSymm_type) , intent(in) :: operationA
13671 type(transHerm_type) , intent(in) :: operationB
13672 end subroutine
13673#endif
13674
13675#if IK3_ENABLED
13676 PURE module subroutine gemm_EXP_SFA_SFB_TSA_THB_IK3(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13677#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13678 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_THB_IK3
13679#endif
13680 use pm_kind, only: IKG => IK3
13681 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13682 integer(IKG) , intent(in) :: alpha, beta
13683 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13684 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13685 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13686 type(transSymm_type) , intent(in) :: operationA
13687 type(transHerm_type) , intent(in) :: operationB
13688 end subroutine
13689#endif
13690
13691#if IK2_ENABLED
13692 PURE module subroutine gemm_EXP_SFA_SFB_TSA_THB_IK2(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13693#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13694 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_THB_IK2
13695#endif
13696 use pm_kind, only: IKG => IK2
13697 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13698 integer(IKG) , intent(in) :: alpha, beta
13699 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13700 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13701 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13702 type(transSymm_type) , intent(in) :: operationA
13703 type(transHerm_type) , intent(in) :: operationB
13704 end subroutine
13705#endif
13706
13707#if IK1_ENABLED
13708 PURE module subroutine gemm_EXP_SFA_SFB_TSA_THB_IK1(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13709#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13710 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_THB_IK1
13711#endif
13712 use pm_kind, only: IKG => IK1
13713 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13714 integer(IKG) , intent(in) :: alpha, beta
13715 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13716 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13717 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13718 type(transSymm_type) , intent(in) :: operationA
13719 type(transHerm_type) , intent(in) :: operationB
13720 end subroutine
13721#endif
13722
13723 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13724
13725#if CK5_ENABLED
13726 PURE module subroutine gemm_EXP_SFA_SFB_TSA_THB_CK5(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13727#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13728 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_THB_CK5
13729#endif
13730 use pm_kind, only: CKG => CK5
13731 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13732 complex(CKG) , intent(in) :: alpha, beta
13733 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13734 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13735 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13736 type(transSymm_type) , intent(in) :: operationA
13737 type(transHerm_type) , intent(in) :: operationB
13738 end subroutine
13739#endif
13740
13741#if CK4_ENABLED
13742 PURE module subroutine gemm_EXP_SFA_SFB_TSA_THB_CK4(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13743#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13744 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_THB_CK4
13745#endif
13746 use pm_kind, only: CKG => CK4
13747 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13748 complex(CKG) , intent(in) :: alpha, beta
13749 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13750 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13751 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13752 type(transSymm_type) , intent(in) :: operationA
13753 type(transHerm_type) , intent(in) :: operationB
13754 end subroutine
13755#endif
13756
13757#if CK3_ENABLED
13758 PURE module subroutine gemm_EXP_SFA_SFB_TSA_THB_CK3(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13759#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13760 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_THB_CK3
13761#endif
13762 use pm_kind, only: CKG => CK3
13763 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13764 complex(CKG) , intent(in) :: alpha, beta
13765 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13766 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13767 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13768 type(transSymm_type) , intent(in) :: operationA
13769 type(transHerm_type) , intent(in) :: operationB
13770 end subroutine
13771#endif
13772
13773#if CK2_ENABLED
13774 PURE module subroutine gemm_EXP_SFA_SFB_TSA_THB_CK2(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13775#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13776 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_THB_CK2
13777#endif
13778 use pm_kind, only: CKG => CK2
13779 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13780 complex(CKG) , intent(in) :: alpha, beta
13781 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13782 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13783 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13784 type(transSymm_type) , intent(in) :: operationA
13785 type(transHerm_type) , intent(in) :: operationB
13786 end subroutine
13787#endif
13788
13789#if CK1_ENABLED
13790 PURE module subroutine gemm_EXP_SFA_SFB_TSA_THB_CK1(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13791#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13792 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_THB_CK1
13793#endif
13794 use pm_kind, only: CKG => CK1
13795 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13796 complex(CKG) , intent(in) :: alpha, beta
13797 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13798 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13799 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13800 type(transSymm_type) , intent(in) :: operationA
13801 type(transHerm_type) , intent(in) :: operationB
13802 end subroutine
13803#endif
13804
13805 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13806
13807#if RK5_ENABLED
13808 PURE module subroutine gemm_EXP_SFA_SFB_TSA_THB_RK5(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13809#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13810 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_THB_RK5
13811#endif
13812 use pm_kind, only: RKG => RK5
13813 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13814 real(RKG) , intent(in) :: alpha, beta
13815 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13816 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13817 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13818 type(transSymm_type) , intent(in) :: operationA
13819 type(transHerm_type) , intent(in) :: operationB
13820 end subroutine
13821#endif
13822
13823#if RK4_ENABLED
13824 PURE module subroutine gemm_EXP_SFA_SFB_TSA_THB_RK4(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13825#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13826 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_THB_RK4
13827#endif
13828 use pm_kind, only: RKG => RK4
13829 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13830 real(RKG) , intent(in) :: alpha, beta
13831 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13832 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13833 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13834 type(transSymm_type) , intent(in) :: operationA
13835 type(transHerm_type) , intent(in) :: operationB
13836 end subroutine
13837#endif
13838
13839#if RK3_ENABLED
13840 PURE module subroutine gemm_EXP_SFA_SFB_TSA_THB_RK3(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13841#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13842 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_THB_RK3
13843#endif
13844 use pm_kind, only: RKG => RK3
13845 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13846 real(RKG) , intent(in) :: alpha, beta
13847 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13848 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13849 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13850 type(transSymm_type) , intent(in) :: operationA
13851 type(transHerm_type) , intent(in) :: operationB
13852 end subroutine
13853#endif
13854
13855#if RK2_ENABLED
13856 PURE module subroutine gemm_EXP_SFA_SFB_TSA_THB_RK2(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13857#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13858 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_THB_RK2
13859#endif
13860 use pm_kind, only: RKG => RK2
13861 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13862 real(RKG) , intent(in) :: alpha, beta
13863 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13864 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13865 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13866 type(transSymm_type) , intent(in) :: operationA
13867 type(transHerm_type) , intent(in) :: operationB
13868 end subroutine
13869#endif
13870
13871#if RK1_ENABLED
13872 PURE module subroutine gemm_EXP_SFA_SFB_TSA_THB_RK1(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13873#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13874 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_TSA_THB_RK1
13875#endif
13876 use pm_kind, only: RKG => RK1
13877 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13878 real(RKG) , intent(in) :: alpha, beta
13879 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13880 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13881 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13882 type(transSymm_type) , intent(in) :: operationA
13883 type(transHerm_type) , intent(in) :: operationB
13884 end subroutine
13885#endif
13886
13887 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13888
13889 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13890 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13891 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13892
13893 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13894
13895#if IK5_ENABLED
13896 PURE module subroutine gemm_EXP_SFA_SFB_THA_THB_IK5(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13897#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13898 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_THB_IK5
13899#endif
13900 use pm_kind, only: IKG => IK5
13901 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13902 integer(IKG) , intent(in) :: alpha, beta
13903 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13904 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13905 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13906 type(transHerm_type) , intent(in) :: operationA
13907 type(transHerm_type) , intent(in) :: operationB
13908 end subroutine
13909#endif
13910
13911#if IK4_ENABLED
13912 PURE module subroutine gemm_EXP_SFA_SFB_THA_THB_IK4(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13913#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13914 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_THB_IK4
13915#endif
13916 use pm_kind, only: IKG => IK4
13917 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13918 integer(IKG) , intent(in) :: alpha, beta
13919 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13920 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13921 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13922 type(transHerm_type) , intent(in) :: operationA
13923 type(transHerm_type) , intent(in) :: operationB
13924 end subroutine
13925#endif
13926
13927#if IK3_ENABLED
13928 PURE module subroutine gemm_EXP_SFA_SFB_THA_THB_IK3(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13929#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13930 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_THB_IK3
13931#endif
13932 use pm_kind, only: IKG => IK3
13933 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13934 integer(IKG) , intent(in) :: alpha, beta
13935 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13936 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13937 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13938 type(transHerm_type) , intent(in) :: operationA
13939 type(transHerm_type) , intent(in) :: operationB
13940 end subroutine
13941#endif
13942
13943#if IK2_ENABLED
13944 PURE module subroutine gemm_EXP_SFA_SFB_THA_THB_IK2(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13945#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13946 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_THB_IK2
13947#endif
13948 use pm_kind, only: IKG => IK2
13949 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13950 integer(IKG) , intent(in) :: alpha, beta
13951 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13952 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13953 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13954 type(transHerm_type) , intent(in) :: operationA
13955 type(transHerm_type) , intent(in) :: operationB
13956 end subroutine
13957#endif
13958
13959#if IK1_ENABLED
13960 PURE module subroutine gemm_EXP_SFA_SFB_THA_THB_IK1(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13961#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13962 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_THB_IK1
13963#endif
13964 use pm_kind, only: IKG => IK1
13965 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13966 integer(IKG) , intent(in) :: alpha, beta
13967 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13968 integer(IKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13969 integer(IKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13970 type(transHerm_type) , intent(in) :: operationA
13971 type(transHerm_type) , intent(in) :: operationB
13972 end subroutine
13973#endif
13974
13975 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13976
13977#if CK5_ENABLED
13978 PURE module subroutine gemm_EXP_SFA_SFB_THA_THB_CK5(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13979#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13980 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_THB_CK5
13981#endif
13982 use pm_kind, only: CKG => CK5
13983 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
13984 complex(CKG) , intent(in) :: alpha, beta
13985 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
13986 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
13987 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
13988 type(transHerm_type) , intent(in) :: operationA
13989 type(transHerm_type) , intent(in) :: operationB
13990 end subroutine
13991#endif
13992
13993#if CK4_ENABLED
13994 PURE module subroutine gemm_EXP_SFA_SFB_THA_THB_CK4(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
13995#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
13996 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_THB_CK4
13997#endif
13998 use pm_kind, only: CKG => CK4
13999 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
14000 complex(CKG) , intent(in) :: alpha, beta
14001 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
14002 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
14003 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
14004 type(transHerm_type) , intent(in) :: operationA
14005 type(transHerm_type) , intent(in) :: operationB
14006 end subroutine
14007#endif
14008
14009#if CK3_ENABLED
14010 PURE module subroutine gemm_EXP_SFA_SFB_THA_THB_CK3(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
14011#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14012 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_THB_CK3
14013#endif
14014 use pm_kind, only: CKG => CK3
14015 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
14016 complex(CKG) , intent(in) :: alpha, beta
14017 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
14018 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
14019 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
14020 type(transHerm_type) , intent(in) :: operationA
14021 type(transHerm_type) , intent(in) :: operationB
14022 end subroutine
14023#endif
14024
14025#if CK2_ENABLED
14026 PURE module subroutine gemm_EXP_SFA_SFB_THA_THB_CK2(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
14027#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14028 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_THB_CK2
14029#endif
14030 use pm_kind, only: CKG => CK2
14031 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
14032 complex(CKG) , intent(in) :: alpha, beta
14033 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
14034 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
14035 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
14036 type(transHerm_type) , intent(in) :: operationA
14037 type(transHerm_type) , intent(in) :: operationB
14038 end subroutine
14039#endif
14040
14041#if CK1_ENABLED
14042 PURE module subroutine gemm_EXP_SFA_SFB_THA_THB_CK1(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
14043#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14044 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_THB_CK1
14045#endif
14046 use pm_kind, only: CKG => CK1
14047 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
14048 complex(CKG) , intent(in) :: alpha, beta
14049 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
14050 complex(CKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
14051 complex(CKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
14052 type(transHerm_type) , intent(in) :: operationA
14053 type(transHerm_type) , intent(in) :: operationB
14054 end subroutine
14055#endif
14056
14057 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14058
14059#if RK5_ENABLED
14060 PURE module subroutine gemm_EXP_SFA_SFB_THA_THB_RK5(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
14061#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14062 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_THB_RK5
14063#endif
14064 use pm_kind, only: RKG => RK5
14065 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
14066 real(RKG) , intent(in) :: alpha, beta
14067 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
14068 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
14069 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
14070 type(transHerm_type) , intent(in) :: operationA
14071 type(transHerm_type) , intent(in) :: operationB
14072 end subroutine
14073#endif
14074
14075#if RK4_ENABLED
14076 PURE module subroutine gemm_EXP_SFA_SFB_THA_THB_RK4(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
14077#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14078 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_THB_RK4
14079#endif
14080 use pm_kind, only: RKG => RK4
14081 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
14082 real(RKG) , intent(in) :: alpha, beta
14083 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
14084 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
14085 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
14086 type(transHerm_type) , intent(in) :: operationA
14087 type(transHerm_type) , intent(in) :: operationB
14088 end subroutine
14089#endif
14090
14091#if RK3_ENABLED
14092 PURE module subroutine gemm_EXP_SFA_SFB_THA_THB_RK3(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
14093#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14094 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_THB_RK3
14095#endif
14096 use pm_kind, only: RKG => RK3
14097 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
14098 real(RKG) , intent(in) :: alpha, beta
14099 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
14100 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
14101 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
14102 type(transHerm_type) , intent(in) :: operationA
14103 type(transHerm_type) , intent(in) :: operationB
14104 end subroutine
14105#endif
14106
14107#if RK2_ENABLED
14108 PURE module subroutine gemm_EXP_SFA_SFB_THA_THB_RK2(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
14109#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14110 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_THB_RK2
14111#endif
14112 use pm_kind, only: RKG => RK2
14113 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
14114 real(RKG) , intent(in) :: alpha, beta
14115 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
14116 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
14117 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
14118 type(transHerm_type) , intent(in) :: operationA
14119 type(transHerm_type) , intent(in) :: operationB
14120 end subroutine
14121#endif
14122
14123#if RK1_ENABLED
14124 PURE module subroutine gemm_EXP_SFA_SFB_THA_THB_RK1(matA, operationA, matB, operationB, matC, alpha, beta, nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC)
14125#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
14126 !DEC$ ATTRIBUTES DLLEXPORT :: gemm_EXP_SFA_SFB_THA_THB_RK1
14127#endif
14128 use pm_kind, only: RKG => RK1
14129 integer(IK) , intent(in) :: nrow, ncol, ndum, roffA, coffA, roffB, coffB, roffC, coffC
14130 real(RKG) , intent(in) :: alpha, beta
14131 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
14132 real(RKG) , intent(in) , contiguous :: matB(1 - roffB :, 1 - coffB :)
14133 real(RKG) , intent(inout) , contiguous :: matC(1 - roffC :, 1 - coffC :)
14134 type(transHerm_type) , intent(in) :: operationA
14135 type(transHerm_type) , intent(in) :: operationB
14136 end subroutine
14137#endif
14138
14139 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14140
14141 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14142 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14143 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14144
14145 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14146 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14147 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14148
14149 end interface
14150
14151!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14152
14153end module pm_matrixMulAdd ! LCOV_EXCL_LINE
Return the result of the multiplication of two input General matrices matA and matB added to a third ...
Definition: pm_blas.F90:396
Return the result of the multiplication of a General matrix matA in Rectangular Default packing forma...
Definition: pm_blas.F90:102
Return the result of the multiplication of two input Hermitian-General/General-Hermitian matrices mat...
Definition: pm_blas.F90:360
Return the result of the multiplication of a Hermitian matrix matA in Rectangular Default packing for...
Definition: pm_blas.F90:232
Return the result of the multiplication of a Hermitian matrix matA in Linear Full Packed format with ...
Definition: pm_blas.F90:156
Return the result of the multiplication of a Symmetric matrix matA in Linear Full Packed format with ...
Definition: pm_blas.F90:194
Return the result of the multiplication of two input Symmetric-General/General-Symmetric matrices mat...
Definition: pm_blas.F90:307
Return the result of the multiplication of a Symmetric matrix matA in Rectangular Default packing for...
Definition: pm_blas.F90:270
Return the result of the multiplication of the input matrices/vector matA and matB in the user-specif...
This module contains a set of generic interfaces to the BLAS routines.
Definition: pm_blas.F90:35
character(*, SK), parameter MODULE_NAME
Definition: pm_blas.F90:41
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
integer, parameter IK3
Definition: pm_kind.F90:368
integer, parameter RK5
Definition: pm_kind.F90:478
integer, parameter RK4
Definition: pm_kind.F90:489
integer, parameter IK1
Definition: pm_kind.F90:382
integer, parameter RK2
Definition: pm_kind.F90:511
integer, parameter CK1
Definition: pm_kind.F90:464
integer, parameter RK3
Definition: pm_kind.F90:500
integer, parameter LK
The default logical kind in the ParaMonte library: kind(.true.) in Fortran, kind(....
Definition: pm_kind.F90:541
integer, parameter CK5
Definition: pm_kind.F90:420
integer, parameter CK4
Definition: pm_kind.F90:431
integer, parameter IK2
Definition: pm_kind.F90:375
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 IK4
Definition: pm_kind.F90:361
integer, parameter RKD
The double precision real kind in Fortran mode. On most platforms, this is an 64-bit real kind.
Definition: pm_kind.F90:568
integer, parameter IK5
Definition: pm_kind.F90:354
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 RKS
The single-precision real kind in Fortran mode. On most platforms, this is an 32-bit real kind.
Definition: pm_kind.F90:567
integer, parameter RK1
Definition: pm_kind.F90:522
This module contains abstract and concrete derived types that are required for compile-time resolutio...
type(symmetric_type), parameter symmetric
This is a scalar parameter object of type symmetric_type that is exclusively used to signify the Symm...
type(hermitian_type), parameter hermitian
This is a scalar parameter object of type hermitian_type that is exclusively used to signify the Herm...
This module contains procedures and generic interfaces relevant to combined matrix-matrix or matrix-v...
This module contains abstract and concrete derived types that are required for compile-time resolutio...
type(lfpack_type), parameter lfpack
This is an object instance of class lfpack_type that is exclusively used to signify Linear Full conti...
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 module contains abstract and concrete derived types and procedures related to various common mat...
type(transSymm_type), parameter transSymm
This is a scalar parameter object of type transSymm_type that is exclusively used to request Symmetri...
type(transHerm_type), parameter transHerm
This is a scalar parameter object of type transHerm_type that is exclusively used to request Hermitia...
This is a concrete derived type whose instances are exclusively used to signify the Hermitian class o...
This is a concrete derived type whose instances are exclusively used to signify the Symmetric class o...
This is a concrete derived type whose instances are exclusively used to signify Linear Full contiguou...
This is a concrete derived type whose instances are exclusively used to request lower-diagonal triang...
This is a concrete derived type whose instances are exclusively used to request upper-diagonal triang...
This is a concrete derived type whose instances are exclusively used to request Hermitian (conjugate)...
This is a concrete derived type whose instances are exclusively used to request Symmetric transpose (...