! Replaces ZHEMM 16 procedures ! Level 3 COMPLEX (ZHEMM) ! . right ! . alpha beta lower side c ! 301 any any L R c < alpha b a + beta c ! 302 any any L c < alpha a b + beta c ! 303 any any R c < alpha b a + beta c ! 304 any any c < alpha a b + beta c ! 305 any 0.0 L R c < alpha b a ! 306 any 0.0 L c < alpha a b ! 307 any 0.0 R c < alpha b a ! 308 any 0.0 c < alpha a b ! 309 1.0 any L R c < b a + beta c ! 310 1.0 any L c < a b + beta c ! 311 1.0 any R c < b a + beta c ! 312 1.0 any c < a b + beta c ! 313 1.0 0.0 L R c < b a ! 314 1.0 0.0 L c < a b ! 315 1.0 0.0 R c < b a ! 316 1.0 0.0 c < a b MODULE zhemm_01 CONTAINS SUBROUTINE zhemm_301(alpha,a,b,beta,c,lower,right_side) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_right_type, blas_lower_type ! .. Scalar Arguments .. COMPLEX (wp), INTENT (IN) :: alpha, beta TYPE (blas_lower_type), INTENT (IN) :: lower TYPE (blas_right_type), INTENT (IN) :: right_side ! .. Array Arguments .. COMPLEX (wp), INTENT (IN) :: a(:,:), b(:,:) COMPLEX (wp), INTENT (INOUT) :: c(:,:) ! .. Local Scalar .. INTEGER :: m, n ! .. External Procedures .. EXTERNAL zhemm m = SIZE(c,1) n = SIZE(c,2) CALL zhemm('R','L',m,n,alpha,a,n,b,m,beta,c,m) END SUBROUTINE zhemm_301 END MODULE zhemm_01 MODULE zhemm_02 CONTAINS SUBROUTINE zhemm_302(alpha,a,b,beta,c,lower) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_lower_type ! .. Scalar Arguments .. COMPLEX (wp), INTENT (IN) :: alpha, beta TYPE (blas_lower_type), INTENT (IN) :: lower ! .. Array Arguments .. COMPLEX (wp), INTENT (IN) :: a(:,:), b(:,:) COMPLEX (wp), INTENT (INOUT) :: c(:,:) ! .. Local Scalar .. INTEGER :: m, n ! .. External Procedures .. EXTERNAL zhemm m = SIZE(c,1) n = SIZE(c,2) CALL zhemm('L','L',m,n,alpha,a,m,b,m,beta,c,m) END SUBROUTINE zhemm_302 END MODULE zhemm_02 MODULE zhemm_03 CONTAINS SUBROUTINE zhemm_303(alpha,a,b,beta,c,right_side) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_right_type ! .. Scalar Arguments .. COMPLEX (wp), INTENT (IN) :: alpha, beta TYPE (blas_right_type), INTENT (IN) :: right_side ! .. Array Arguments .. COMPLEX (wp), INTENT (IN) :: a(:,:), b(:,:) COMPLEX (wp), INTENT (INOUT) :: c(:,:) ! .. Local Scalar .. INTEGER :: m, n ! .. External Procedures .. EXTERNAL zhemm m = SIZE(c,1) n = SIZE(c,2) CALL zhemm('R','U',m,n,alpha,a,n,b,m,beta,c,m) END SUBROUTINE zhemm_303 END MODULE zhemm_03 MODULE zhemm_04 CONTAINS SUBROUTINE zhemm_304(alpha,a,b,beta,c) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp ! .. Scalar Arguments .. COMPLEX (wp), INTENT (IN) :: alpha, beta ! .. Array Arguments .. COMPLEX (wp), INTENT (IN) :: a(:,:), b(:,:) COMPLEX (wp), INTENT (INOUT) :: c(:,:) ! .. Local Scalar .. INTEGER :: m, n ! .. External Procedures .. EXTERNAL zhemm m = SIZE(c,1) n = SIZE(c,2) CALL zhemm('L','U',m,n,alpha,a,m,b,m,beta,c,m) END SUBROUTINE zhemm_304 END MODULE zhemm_04 MODULE zhemm_05 CONTAINS SUBROUTINE zhemm_305(alpha,a,b,c,lower,right_side) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_right_type, blas_lower_type ! .. Parameters .. COMPLEX (wp), PARAMETER :: zero = (0.0_wp,0.0_wp) ! .. Scalar Arguments .. COMPLEX (wp), INTENT (IN) :: alpha TYPE (blas_lower_type), INTENT (IN) :: lower TYPE (blas_right_type), INTENT (IN) :: right_side ! .. Array Arguments .. COMPLEX (wp), INTENT (IN) :: a(:,:), b(:,:) COMPLEX (wp), INTENT (INOUT) :: c(:,:) ! .. Local Scalar .. INTEGER :: m, n ! .. External Procedures .. EXTERNAL zhemm m = SIZE(c,1) n = SIZE(c,2) CALL zhemm('R','L',m,n,alpha,a,n,b,m,zero,c,m) END SUBROUTINE zhemm_305 END MODULE zhemm_05 MODULE zhemm_06 CONTAINS SUBROUTINE zhemm_306(alpha,a,b,c,lower) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_lower_type ! .. Parameters .. COMPLEX (wp), PARAMETER :: zero = (0.0_wp,0.0_wp) ! .. Scalar Arguments .. COMPLEX (wp), INTENT (IN) :: alpha TYPE (blas_lower_type), INTENT (IN) :: lower ! .. Array Arguments .. COMPLEX (wp), INTENT (IN) :: a(:,:), b(:,:) COMPLEX (wp), INTENT (INOUT) :: c(:,:) ! .. Local Scalar .. INTEGER :: m, n ! .. External Procedures .. EXTERNAL zhemm m = SIZE(c,1) n = SIZE(c,2) CALL zhemm('L','L',m,n,alpha,a,m,b,m,zero,c,m) END SUBROUTINE zhemm_306 END MODULE zhemm_06 MODULE zhemm_07 CONTAINS SUBROUTINE zhemm_307(alpha,a,b,c,right_side) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_right_type ! .. Parameters .. COMPLEX (wp), PARAMETER :: zero = (0.0_wp,0.0_wp) ! .. Scalar Arguments .. COMPLEX (wp), INTENT (IN) :: alpha TYPE (blas_right_type), INTENT (IN) :: right_side ! .. Array Arguments .. COMPLEX (wp), INTENT (IN) :: a(:,:), b(:,:) COMPLEX (wp), INTENT (INOUT) :: c(:,:) ! .. Local Scalar .. INTEGER :: m, n ! .. External Procedures .. EXTERNAL zhemm m = SIZE(c,1) n = SIZE(c,2) CALL zhemm('R','U',m,n,alpha,a,n,b,m,zero,c,m) END SUBROUTINE zhemm_307 END MODULE zhemm_07 MODULE zhemm_08 CONTAINS SUBROUTINE zhemm_308(alpha,a,b,c) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp ! .. Parameters .. COMPLEX (wp), PARAMETER :: zero = (0.0_wp,0.0_wp) ! .. Scalar Arguments .. COMPLEX (wp), INTENT (IN) :: alpha ! .. Array Arguments .. COMPLEX (wp), INTENT (IN) :: a(:,:), b(:,:) COMPLEX (wp), INTENT (INOUT) :: c(:,:) ! .. Local Scalar .. INTEGER :: m, n ! .. External Procedures .. EXTERNAL zhemm m = SIZE(c,1) n = SIZE(c,2) CALL zhemm('L','U',m,n,alpha,a,m,b,m,zero,c,m) END SUBROUTINE zhemm_308 END MODULE zhemm_08 MODULE zhemm_09 CONTAINS SUBROUTINE zhemm_309(a,b,beta,c,lower,right_side) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_right_type, blas_lower_type ! .. Parameters .. COMPLEX (wp), PARAMETER :: one = (1.0_wp,0.0_wp) ! .. Scalar Arguments .. COMPLEX (wp), INTENT (IN) :: beta TYPE (blas_lower_type), INTENT (IN) :: lower TYPE (blas_right_type), INTENT (IN) :: right_side ! .. Array Arguments .. COMPLEX (wp), INTENT (IN) :: a(:,:), b(:,:) COMPLEX (wp), INTENT (INOUT) :: c(:,:) ! .. Local Scalar .. INTEGER :: m, n ! .. External Procedures .. EXTERNAL zhemm m = SIZE(c,1) n = SIZE(c,2) CALL zhemm('R','L',m,n,one,a,n,b,m,beta,c,m) END SUBROUTINE zhemm_309 END MODULE zhemm_09 MODULE zhemm_10 CONTAINS SUBROUTINE zhemm_310(a,b,beta,c,lower) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_lower_type ! .. Parameters .. COMPLEX (wp), PARAMETER :: one = (1.0_wp,0.0_wp) ! .. Scalar Arguments .. COMPLEX (wp), INTENT (IN) :: beta TYPE (blas_lower_type), INTENT (IN) :: lower ! .. Array Arguments .. COMPLEX (wp), INTENT (IN) :: a(:,:), b(:,:) COMPLEX (wp), INTENT (INOUT) :: c(:,:) ! .. Local Scalar .. INTEGER :: m, n ! .. External Procedures .. EXTERNAL zhemm m = SIZE(c,1) n = SIZE(c,2) CALL zhemm('L','L',m,n,one,a,m,b,m,beta,c,m) END SUBROUTINE zhemm_310 END MODULE zhemm_10 MODULE zhemm_11 CONTAINS SUBROUTINE zhemm_311(a,b,beta,c,right_side) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_right_type ! .. Parameters .. COMPLEX (wp), PARAMETER :: one = (1.0_wp,0.0_wp) ! .. Scalar Arguments .. COMPLEX (wp), INTENT (IN) :: beta TYPE (blas_right_type), INTENT (IN) :: right_side ! .. Array Arguments .. COMPLEX (wp), INTENT (IN) :: a(:,:), b(:,:) COMPLEX (wp), INTENT (INOUT) :: c(:,:) ! .. Local Scalar .. INTEGER :: m, n ! .. External Procedures .. EXTERNAL zhemm m = SIZE(c,1) n = SIZE(c,2) CALL zhemm('R','U',m,n,one,a,n,b,m,beta,c,m) END SUBROUTINE zhemm_311 END MODULE zhemm_11 MODULE zhemm_12 CONTAINS SUBROUTINE zhemm_312(a,b,beta,c) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp ! .. Parameters .. COMPLEX (wp), PARAMETER :: one = (1.0_wp,0.0_wp) ! .. Scalar Arguments .. COMPLEX (wp), INTENT (IN) :: beta ! .. Array Arguments .. COMPLEX (wp), INTENT (IN) :: a(:,:), b(:,:) COMPLEX (wp), INTENT (INOUT) :: c(:,:) ! .. Local Scalar .. INTEGER :: m, n ! .. External Procedures .. EXTERNAL zhemm m = SIZE(c,1) n = SIZE(c,2) CALL zhemm('L','U',m,n,one,a,m,b,m,beta,c,m) END SUBROUTINE zhemm_312 END MODULE zhemm_12 MODULE zhemm_13 CONTAINS SUBROUTINE zhemm_313(a,b,c,lower,right_side) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_right_type, blas_lower_type ! .. Parameters .. COMPLEX (wp), PARAMETER :: zero = (0.0_wp,0.0_wp) COMPLEX (wp), PARAMETER :: one = (1.0_wp,0.0_wp) ! .. Scalar Arguments .. TYPE (blas_lower_type), INTENT (IN) :: lower TYPE (blas_right_type), INTENT (IN) :: right_side ! .. Array Arguments .. COMPLEX (wp), INTENT (IN) :: a(:,:), b(:,:) COMPLEX (wp), INTENT (INOUT) :: c(:,:) ! .. Local Scalar .. INTEGER :: m, n ! .. External Procedures .. EXTERNAL zhemm m = SIZE(c,1) n = SIZE(c,2) CALL zhemm('R','L',m,n,one,a,n,b,m,zero,c,m) END SUBROUTINE zhemm_313 END MODULE zhemm_13 MODULE zhemm_14 CONTAINS SUBROUTINE zhemm_314(a,b,c,lower) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_lower_type ! .. Parameters .. COMPLEX (wp), PARAMETER :: zero = (0.0_wp,0.0_wp) COMPLEX (wp), PARAMETER :: one = (1.0_wp,0.0_wp) ! .. Scalar Arguments .. TYPE (blas_lower_type), INTENT (IN) :: lower ! .. Array Arguments .. COMPLEX (wp), INTENT (IN) :: a(:,:), b(:,:) COMPLEX (wp), INTENT (INOUT) :: c(:,:) ! .. Local Scalar .. INTEGER :: m, n ! .. External Procedures .. EXTERNAL zhemm m = SIZE(c,1) n = SIZE(c,2) CALL zhemm('L','L',m,n,one,a,m,b,m,zero,c,m) END SUBROUTINE zhemm_314 END MODULE zhemm_14 MODULE zhemm_15 CONTAINS SUBROUTINE zhemm_315(a,b,c,right_side) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_right_type ! .. Parameters .. COMPLEX (wp), PARAMETER :: zero = (0.0_wp,0.0_wp) COMPLEX (wp), PARAMETER :: one = (1.0_wp,0.0_wp) ! .. Scalar Arguments .. TYPE (blas_right_type), INTENT (IN) :: right_side ! .. Array Arguments .. COMPLEX (wp), INTENT (IN) :: a(:,:), b(:,:) COMPLEX (wp), INTENT (INOUT) :: c(:,:) ! .. Local Scalar .. INTEGER :: m, n ! .. External Procedures .. EXTERNAL zhemm m = SIZE(c,1) n = SIZE(c,2) CALL zhemm('R','U',m,n,one,a,n,b,m,zero,c,m) END SUBROUTINE zhemm_315 END MODULE zhemm_15 MODULE zhemm_16 CONTAINS SUBROUTINE zhemm_316(a,b,c) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp ! .. Parameters .. COMPLEX (wp), PARAMETER :: zero = (0.0_wp,0.0_wp) COMPLEX (wp), PARAMETER :: one = (1.0_wp,0.0_wp) ! .. Scalar Arguments .. ! .. Array Arguments .. COMPLEX (wp), INTENT (IN) :: a(:,:), b(:,:) COMPLEX (wp), INTENT (INOUT) :: c(:,:) ! .. Local Scalar .. INTEGER :: m, n ! .. External Procedures .. EXTERNAL zhemm m = SIZE(c,1) n = SIZE(c,2) CALL zhemm('L','U',m,n,one,a,m,b,m,zero,c,m) END SUBROUTINE zhemm_316 END MODULE zhemm_16