! Replaces DGBMV 12 procedures ! . alpha op_a beta c ! 201 any T any c < alpha a(T) b + beta c ! 202 any T 0.0 c < alpha a(T) b ! 203* any H any c < alpha a(H) b + beta c ! 204* any H 0.0 c < alpha a(H) b ! 205 any any c < alpha a b + beta c ! 206 any 0.0 c < alpha a b ! 207 1.0 T any c < a(T) b + beta c ! 208 1.0 T 0.0 c < a(T) b ! 209* 1.0 H any c < a(H) b + beta c ! 210* 1.0 H 0.0 c < a(H) b ! 211 1.0 any c < a b + beta c ! 212 1.0 0.0 c < a b ! * means not needed for the REAL case MODULE dgbmv_01 CONTAINS SUBROUTINE dgbmv_201(alpha,a,op_a,b,beta,c,kd) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_trans_type ! .. Scalar Arguments .. INTEGER, INTENT (IN) :: kd REAL (wp), INTENT (IN) :: alpha, beta TYPE (blas_trans_type), INTENT (IN) :: op_a ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:), b(:) REAL (wp), INTENT (INOUT) :: c(:) ! .. Local Scalar .. INTEGER :: kl, ku, m, n ! .. External Procedures .. EXTERNAL dgbmv m = SIZE(c) n = SIZE(a,2) ku = kd - 1 kl = SIZE(a,1) - kd CALL dgbmv('T',m,n,kl,ku,alpha,a,SIZE(a,1),b,1,beta,c,1) END SUBROUTINE dgbmv_201 END MODULE dgbmv_01 MODULE dgbmv_02 CONTAINS SUBROUTINE dgbmv_202(alpha,a,op_a,b,c,kd) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_trans_type ! .. Parameters .. REAL (wp), PARAMETER :: zero = 0.0_wp ! .. Scalar Arguments .. INTEGER, INTENT (IN) :: kd REAL (wp), INTENT (IN) :: alpha TYPE (blas_trans_type), INTENT (IN) :: op_a ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:), b(:) REAL (wp), INTENT (OUT) :: c(:) ! .. Local Scalar .. INTEGER :: kl, ku, m, n ! .. External Procedures .. EXTERNAL dgbmv m = SIZE(c) n = SIZE(a,2) ku = kd - 1 kl = SIZE(a,1) - kd CALL dgbmv('T',m,n,kl,ku,alpha,a,SIZE(a,1),b,1,zero,c,1) END SUBROUTINE dgbmv_202 END MODULE dgbmv_02 MODULE dgbmv_03 CONTAINS SUBROUTINE dgbmv_203(alpha,a,op_a,b,beta,c,kd) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_conj_trans_type ! .. Scalar Arguments .. INTEGER, INTENT (IN) :: kd REAL (wp), INTENT (IN) :: alpha, beta TYPE (blas_conj_trans_type), INTENT (IN) :: op_a ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:), b(:) REAL (wp), INTENT (INOUT) :: c(:) ! .. Local Scalar .. INTEGER :: kl, ku, m, n ! .. External Procedures .. EXTERNAL dgbmv m = SIZE(c) n = SIZE(a,2) ku = kd - 1 kl = SIZE(a,1) - kd CALL dgbmv('C',m,n,kl,ku,alpha,a,SIZE(a,1),b,1,beta,c,1) END SUBROUTINE dgbmv_203 END MODULE dgbmv_03 MODULE dgbmv_04 CONTAINS SUBROUTINE dgbmv_204(alpha,a,op_a,b,c,kd) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_conj_trans_type ! .. Parameters .. REAL (wp), PARAMETER :: zero = 0.0_wp ! .. Scalar Arguments .. INTEGER, INTENT (IN) :: kd REAL (wp), INTENT (IN) :: alpha TYPE (blas_conj_trans_type), INTENT (IN) :: op_a ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:), b(:) REAL (wp), INTENT (OUT) :: c(:) ! .. Local Scalar .. INTEGER :: kl, ku, m, n ! .. External Procedures .. EXTERNAL dgbmv m = SIZE(c) n = SIZE(a,2) ku = kd - 1 kl = SIZE(a,1) - kd CALL dgbmv('C',m,n,kl,ku,alpha,a,SIZE(a,1),b,1,zero,c,1) END SUBROUTINE dgbmv_204 END MODULE dgbmv_04 MODULE dgbmv_05 CONTAINS SUBROUTINE dgbmv_205(alpha,a,b,beta,c,kd) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp ! .. Scalar Arguments .. INTEGER, INTENT (IN) :: kd REAL (wp), INTENT (IN) :: alpha, beta ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:), b(:) REAL (wp), INTENT (INOUT) :: c(:) ! .. Local Scalar .. INTEGER :: kl, ku, m, n ! .. External Procedures .. EXTERNAL dgbmv m = SIZE(b) n = SIZE(a,2) ku = kd - 1 kl = SIZE(a,1) - kd CALL dgbmv('N',m,n,kl,ku,alpha,a,SIZE(a,1),b,1,beta,c,1) END SUBROUTINE dgbmv_205 END MODULE dgbmv_05 MODULE dgbmv_06 CONTAINS SUBROUTINE dgbmv_206(alpha,a,b,c,kd) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp ! .. Parameters .. REAL (wp), PARAMETER :: zero = 0.0_wp ! .. Scalar Arguments .. INTEGER, INTENT (IN) :: kd REAL (wp), INTENT (IN) :: alpha ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:), b(:) REAL (wp), INTENT (OUT) :: c(:) ! .. Local Scalar .. INTEGER :: kl, ku, m, n ! .. External Procedures .. EXTERNAL dgbmv m = SIZE(b) n = SIZE(a,2) ku = kd - 1 kl = SIZE(a,1) - kd CALL dgbmv('N',m,n,kl,ku,alpha,a,SIZE(a,1),b,1,zero,c,1) END SUBROUTINE dgbmv_206 END MODULE dgbmv_06 MODULE dgbmv_07 CONTAINS SUBROUTINE dgbmv_207(a,op_a,b,beta,c,kd) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_trans_type ! .. Parameters .. REAL (wp), PARAMETER :: one = 1.0_wp ! .. Scalar Arguments .. INTEGER, INTENT (IN) :: kd REAL (wp), INTENT (IN) :: beta TYPE (blas_trans_type), INTENT (IN) :: op_a ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:), b(:) REAL (wp), INTENT (INOUT) :: c(:) ! .. Local Scalar .. INTEGER :: kl, ku, m, n ! .. External Procedures .. EXTERNAL dgbmv m = SIZE(b) n = SIZE(a,2) ku = kd - 1 kl = SIZE(a,1) - kd CALL dgbmv('T',m,n,kl,ku,one,a,SIZE(a,1),b,1,beta,c,1) END SUBROUTINE dgbmv_207 END MODULE dgbmv_07 MODULE dgbmv_08 CONTAINS SUBROUTINE dgbmv_208(a,op_a,b,c,kd) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_trans_type ! .. Parameters .. REAL (wp), PARAMETER :: one = 1.0_wp REAL (wp), PARAMETER :: zero = 0.0_wp ! .. Scalar Arguments .. INTEGER, INTENT (IN) :: kd TYPE (blas_trans_type), INTENT (IN) :: op_a ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:), b(:) REAL (wp), INTENT (OUT) :: c(:) ! .. Local Scalar .. INTEGER :: kl, ku, m, n ! .. External Procedures .. EXTERNAL dgbmv m = SIZE(b) n = SIZE(a,2) ku = kd - 1 kl = SIZE(a,1) - kd CALL dgbmv('T',m,n,kl,ku,one,a,SIZE(a,1),b,1,zero,c,1) END SUBROUTINE dgbmv_208 END MODULE dgbmv_08 MODULE dgbmv_09 CONTAINS SUBROUTINE dgbmv_209(a,op_a,b,beta,c,kd) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_conj_trans_type ! .. Parameters .. REAL (wp), PARAMETER :: one = 1.0_wp ! .. Scalar Arguments .. INTEGER, INTENT (IN) :: kd REAL (wp), INTENT (IN) :: beta TYPE (blas_conj_trans_type), INTENT (IN) :: op_a ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:), b(:) REAL (wp), INTENT (INOUT) :: c(:) ! .. Local Scalar .. INTEGER :: kl, ku, m, n ! .. External Procedures .. EXTERNAL dgbmv m = SIZE(b) n = SIZE(a,2) ku = kd - 1 kl = SIZE(a,1) - kd CALL dgbmv('C',m,n,kl,ku,one,a,SIZE(a,1),b,1,beta,c,1) END SUBROUTINE dgbmv_209 END MODULE dgbmv_09 MODULE dgbmv_10 CONTAINS SUBROUTINE dgbmv_210(a,op_a,b,c,kd) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_conj_trans_type ! .. Parameters .. REAL (wp), PARAMETER :: one = 1.0_wp REAL (wp), PARAMETER :: zero = 0.0_wp ! .. Scalar Arguments .. INTEGER, INTENT (IN) :: kd TYPE (blas_conj_trans_type), INTENT (IN) :: op_a ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:), b(:) REAL (wp), INTENT (OUT) :: c(:) ! .. Local Scalar .. INTEGER :: kl, ku, m, n ! .. External Procedures .. EXTERNAL dgbmv m = SIZE(b) n = SIZE(a,2) ku = kd - 1 kl = SIZE(a,1) - kd CALL dgbmv('C',m,n,kl,ku,one,a,SIZE(a,1),b,1,zero,c,1) END SUBROUTINE dgbmv_210 END MODULE dgbmv_10 MODULE dgbmv_11 CONTAINS SUBROUTINE dgbmv_211(a,b,beta,c,kd) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp ! .. Parameters .. REAL (wp), PARAMETER :: one = 1.0_wp ! .. Scalar Arguments .. INTEGER, INTENT (IN) :: kd REAL (wp), INTENT (IN) :: beta ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:), b(:) REAL (wp), INTENT (INOUT) :: c(:) ! .. Local Scalar .. INTEGER :: kl, ku, m, n ! .. External Procedures .. EXTERNAL dgbmv m = SIZE(c) n = SIZE(a,2) ku = kd - 1 kl = SIZE(a,1) - kd CALL dgbmv('N',m,n,kl,ku,one,a,SIZE(a,1),b,1,beta,c,1) END SUBROUTINE dgbmv_211 END MODULE dgbmv_11 MODULE dgbmv_12 CONTAINS SUBROUTINE dgbmv_212(a,b,c,kd) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp ! .. Parameters .. REAL (wp), PARAMETER :: one = 1.0_wp REAL (wp), PARAMETER :: zero = 0.0_wp ! .. Scalar Arguments .. INTEGER, INTENT (IN) :: kd ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:), b(:) REAL (wp), INTENT (OUT) :: c(:) ! .. Local Scalar .. INTEGER :: kl, ku, m, n ! .. External Procedures .. EXTERNAL dgbmv m = SIZE(c) n = SIZE(a,2) ku = kd - 1 kl = SIZE(a,1) - kd CALL dgbmv('N',m,n,kl,ku,one,a,SIZE(a,1),b,1,zero,c,1) END SUBROUTINE dgbmv_212 END MODULE dgbmv_12