! Replaces DTBMV 24 procedures ! Level 2 REAL (DTBMV) ! . unit ! . alpha op_a lower diag b ! 201* any H L U b < alpha a(H) b ! 202* any H L b < alpha a(H) b ! 203* any H U b < alpha a(H) b ! 204* any H b < alpha a(H) b ! 205 any T L U b < alpha a(T) b ! 206 any T L b < alpha a(T) b ! 207 any T U b < alpha a(T) b ! 208 any T b < alpha a(T) b ! 209 any L U b < alpha a b ! 210 any L b < alpha a b ! 211 any U b < alpha a b ! 212 any b < alpha a b ! 213* 1.0 H L U b < a(H) b ! 214* 1.0 H L b < a(H) b ! 215* 1.0 H U b < a(H) b ! 216* 1.0 H b < a(H) b ! 217 1.0 T L U b < a(T) b ! 218 1.0 T L b < a(T) b ! 219 1.0 T U b < a(T) b ! 220 1.0 T b < a(T) b ! 221 1.0 L U b < a b ! 222 1.0 L b < a b ! 223 1.0 U b < a b ! 224 1.0 b < a b ! * means not needed for the REAL case ! . all procedures with op_a of type "blas_conj_trans" ! . are not needed but have been added for consistency ! . with the complex case ! . (201, 202, 203, 204, 213, 214, 215, 216) MODULE dtbmv_01 CONTAINS SUBROUTINE dtbmv_201(alpha,a,op_a,b,lower,unit_diag) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_lower_type, blas_unit_diag_type, & blas_conj_trans_type ! .. Scalar Arguments .. REAL (wp), INTENT (IN) :: alpha TYPE (blas_conj_trans_type), INTENT (IN) :: op_a TYPE (blas_lower_type), INTENT (IN) :: lower TYPE (blas_unit_diag_type), INTENT (IN) :: unit_diag ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbmv('L','C','U',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_201 END MODULE dtbmv_01 MODULE dtbmv_02 CONTAINS SUBROUTINE dtbmv_202(alpha,a,op_a,b,lower) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_lower_type, blas_conj_trans_type ! .. Scalar Arguments .. REAL (wp), INTENT (IN) :: alpha TYPE (blas_conj_trans_type), INTENT (IN) :: op_a TYPE (blas_lower_type), INTENT (IN) :: lower ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbmv('L','C','N',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_202 END MODULE dtbmv_02 MODULE dtbmv_03 CONTAINS SUBROUTINE dtbmv_203(alpha,a,op_a,b,unit_diag) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_unit_diag_type, blas_conj_trans_type ! .. Scalar Arguments .. REAL (wp), INTENT (IN) :: alpha TYPE (blas_conj_trans_type), INTENT (IN) :: op_a TYPE (blas_unit_diag_type), INTENT (IN) :: unit_diag ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbmv('U','C','U',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_203 END MODULE dtbmv_03 MODULE dtbmv_04 CONTAINS SUBROUTINE dtbmv_204(alpha,a,op_a,b) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_conj_trans_type ! .. Scalar Arguments .. REAL (wp), INTENT (IN) :: alpha TYPE (blas_conj_trans_type), INTENT (IN) :: op_a ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbmv('U','C','N',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_204 END MODULE dtbmv_04 MODULE dtbmv_05 CONTAINS SUBROUTINE dtbmv_205(alpha,a,op_a,b,lower,unit_diag) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_lower_type, blas_unit_diag_type, & blas_trans_type ! .. Scalar Arguments .. REAL (wp), INTENT (IN) :: alpha TYPE (blas_trans_type), INTENT (IN) :: op_a TYPE (blas_lower_type), INTENT (IN) :: lower TYPE (blas_unit_diag_type), INTENT (IN) :: unit_diag ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbmv('L','T','U',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_205 END MODULE dtbmv_05 MODULE dtbmv_06 CONTAINS SUBROUTINE dtbmv_206(alpha,a,op_a,b,lower) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_lower_type, blas_trans_type ! .. Scalar Arguments .. REAL (wp), INTENT (IN) :: alpha TYPE (blas_trans_type), INTENT (IN) :: op_a TYPE (blas_lower_type), INTENT (IN) :: lower ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbmv('L','T','N',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_206 END MODULE dtbmv_06 MODULE dtbmv_07 CONTAINS SUBROUTINE dtbmv_207(alpha,a,op_a,b,unit_diag) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_unit_diag_type, blas_trans_type ! .. Scalar Arguments .. REAL (wp), INTENT (IN) :: alpha TYPE (blas_trans_type), INTENT (IN) :: op_a TYPE (blas_unit_diag_type), INTENT (IN) :: unit_diag ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbmv('U','T','U',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_207 END MODULE dtbmv_07 MODULE dtbmv_08 CONTAINS SUBROUTINE dtbmv_208(alpha,a,op_a,b) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_trans_type ! .. Scalar Arguments .. REAL (wp), INTENT (IN) :: alpha TYPE (blas_trans_type), INTENT (IN) :: op_a ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbmv('U','T','N',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_208 END MODULE dtbmv_08 MODULE dtbmv_09 CONTAINS SUBROUTINE dtbmv_209(alpha,a,b,lower,unit_diag) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_lower_type, blas_unit_diag_type ! .. Scalar Arguments .. REAL (wp), INTENT (IN) :: alpha TYPE (blas_lower_type), INTENT (IN) :: lower TYPE (blas_unit_diag_type), INTENT (IN) :: unit_diag ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbmv('L','N','U',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_209 END MODULE dtbmv_09 MODULE dtbmv_10 CONTAINS SUBROUTINE dtbmv_210(alpha,a,b,lower) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_lower_type ! .. Scalar Arguments .. REAL (wp), INTENT (IN) :: alpha TYPE (blas_lower_type), INTENT (IN) :: lower ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbmv('L','N','N',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_210 END MODULE dtbmv_10 MODULE dtbmv_11 CONTAINS SUBROUTINE dtbmv_211(alpha,a,b,unit_diag) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_unit_diag_type ! .. Scalar Arguments .. REAL (wp), INTENT (IN) :: alpha TYPE (blas_unit_diag_type), INTENT (IN) :: unit_diag ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbmv('U','N','U',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_211 END MODULE dtbmv_11 MODULE dtbmv_12 CONTAINS SUBROUTINE dtbmv_212(alpha,a,b) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp ! .. Scalar Arguments .. REAL (wp), INTENT (IN) :: alpha ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbmv('U','N','N',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_212 END MODULE dtbmv_12 MODULE dtbmv_13 CONTAINS SUBROUTINE dtbmv_213(a,op_a,b,lower,unit_diag) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_lower_type, blas_unit_diag_type, & blas_conj_trans_type ! .. Scalar Arguments .. TYPE (blas_conj_trans_type), INTENT (IN) :: op_a TYPE (blas_lower_type), INTENT (IN) :: lower TYPE (blas_unit_diag_type), INTENT (IN) :: unit_diag ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbmv('L','C','U',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_213 END MODULE dtbmv_13 MODULE dtbmv_14 CONTAINS SUBROUTINE dtbmv_214(a,op_a,b,lower) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_lower_type, blas_conj_trans_type ! .. Scalar Arguments .. TYPE (blas_conj_trans_type), INTENT (IN) :: op_a TYPE (blas_lower_type), INTENT (IN) :: lower ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbmv('L','C','N',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_214 END MODULE dtbmv_14 MODULE dtbmv_15 CONTAINS SUBROUTINE dtbmv_215(a,op_a,b,unit_diag) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_unit_diag_type, blas_conj_trans_type ! .. Scalar Arguments .. TYPE (blas_conj_trans_type), INTENT (IN) :: op_a TYPE (blas_unit_diag_type), INTENT (IN) :: unit_diag ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbmv('U','C','U',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_215 END MODULE dtbmv_15 MODULE dtbmv_16 CONTAINS SUBROUTINE dtbmv_216(a,op_a,b) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_conj_trans_type ! .. Scalar Arguments .. TYPE (blas_conj_trans_type), INTENT (IN) :: op_a ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbmv('U','C','N',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_216 END MODULE dtbmv_16 MODULE dtbmv_17 CONTAINS SUBROUTINE dtbmv_217(a,op_a,b,lower,unit_diag) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_lower_type, blas_unit_diag_type, & blas_trans_type ! .. Scalar Arguments .. TYPE (blas_trans_type), INTENT (IN) :: op_a TYPE (blas_lower_type), INTENT (IN) :: lower TYPE (blas_unit_diag_type), INTENT (IN) :: unit_diag ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbmv('L','T','U',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_217 END MODULE dtbmv_17 MODULE dtbmv_18 CONTAINS SUBROUTINE dtbmv_218(a,op_a,b,lower) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_lower_type, blas_trans_type ! .. Scalar Arguments .. TYPE (blas_trans_type), INTENT (IN) :: op_a TYPE (blas_lower_type), INTENT (IN) :: lower ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbmv('L','T','N',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_218 END MODULE dtbmv_18 MODULE dtbmv_19 CONTAINS SUBROUTINE dtbmv_219(a,op_a,b,unit_diag) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_unit_diag_type, blas_trans_type ! .. Scalar Arguments .. TYPE (blas_trans_type), INTENT (IN) :: op_a TYPE (blas_unit_diag_type), INTENT (IN) :: unit_diag ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbmv('U','T','U',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_219 END MODULE dtbmv_19 MODULE dtbmv_20 CONTAINS SUBROUTINE dtbmv_220(a,op_a,b) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_trans_type ! .. Scalar Arguments .. TYPE (blas_trans_type), INTENT (IN) :: op_a ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbmv('U','T','N',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_220 END MODULE dtbmv_20 MODULE dtbmv_21 CONTAINS SUBROUTINE dtbmv_221(a,b,lower,unit_diag) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_lower_type, blas_unit_diag_type ! .. Scalar Arguments .. TYPE (blas_lower_type), INTENT (IN) :: lower TYPE (blas_unit_diag_type), INTENT (IN) :: unit_diag ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbmv('L','N','U',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_221 END MODULE dtbmv_21 MODULE dtbmv_22 CONTAINS SUBROUTINE dtbmv_222(a,b,lower) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_lower_type ! .. Scalar Arguments .. TYPE (blas_lower_type), INTENT (IN) :: lower ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbmv('L','N','N',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_222 END MODULE dtbmv_22 MODULE dtbmv_23 CONTAINS SUBROUTINE dtbmv_223(a,b,unit_diag) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp USE blas_keywords, ONLY : blas_unit_diag_type ! .. Scalar Arguments .. TYPE (blas_unit_diag_type), INTENT (IN) :: unit_diag ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbmv('U','N','U',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_223 END MODULE dtbmv_23 MODULE dtbmv_24 CONTAINS SUBROUTINE dtbmv_224(a,b) ! .. Use Statements .. USE blas_kinds, ONLY : wp => dp ! .. Array Arguments .. REAL (wp), INTENT (IN) :: a(:,:) REAL (wp), INTENT (INOUT) :: b(:) ! .. Local Scalar .. INTEGER :: k, n ! .. External Procedures .. EXTERNAL dtbmv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbmv('U','N','N',n,k,a,k+1,b,1) END SUBROUTINE dtbmv_224 END MODULE dtbmv_24