! Replaces DTPMV 24 procedures ! Level 2 REAL (DTPMV) ! . 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 dtpmv_01 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) b = alpha*b CALL dtpmv('L','C','U',n,a,b,1) END SUBROUTINE dtpmv_201 END MODULE dtpmv_01 MODULE dtpmv_02 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) b = alpha*b CALL dtpmv('L','C','N',n,a,b,1) END SUBROUTINE dtpmv_202 END MODULE dtpmv_02 MODULE dtpmv_03 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) b = alpha*b CALL dtpmv('U','C','U',n,a,b,1) END SUBROUTINE dtpmv_203 END MODULE dtpmv_03 MODULE dtpmv_04 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) b = alpha*b CALL dtpmv('U','C','N',n,a,b,1) END SUBROUTINE dtpmv_204 END MODULE dtpmv_04 MODULE dtpmv_05 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) b = alpha*b CALL dtpmv('L','T','U',n,a,b,1) END SUBROUTINE dtpmv_205 END MODULE dtpmv_05 MODULE dtpmv_06 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) b = alpha*b CALL dtpmv('L','T','N',n,a,b,1) END SUBROUTINE dtpmv_206 END MODULE dtpmv_06 MODULE dtpmv_07 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) b = alpha*b CALL dtpmv('U','T','U',n,a,b,1) END SUBROUTINE dtpmv_207 END MODULE dtpmv_07 MODULE dtpmv_08 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) b = alpha*b CALL dtpmv('U','T','N',n,a,b,1) END SUBROUTINE dtpmv_208 END MODULE dtpmv_08 MODULE dtpmv_09 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) b = alpha*b CALL dtpmv('L','N','U',n,a,b,1) END SUBROUTINE dtpmv_209 END MODULE dtpmv_09 MODULE dtpmv_10 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) b = alpha*b CALL dtpmv('L','N','N',n,a,b,1) END SUBROUTINE dtpmv_210 END MODULE dtpmv_10 MODULE dtpmv_11 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) b = alpha*b CALL dtpmv('U','N','U',n,a,b,1) END SUBROUTINE dtpmv_211 END MODULE dtpmv_11 MODULE dtpmv_12 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) b = alpha*b CALL dtpmv('U','N','N',n,a,b,1) END SUBROUTINE dtpmv_212 END MODULE dtpmv_12 MODULE dtpmv_13 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) CALL dtpmv('L','C','U',n,a,b,1) END SUBROUTINE dtpmv_213 END MODULE dtpmv_13 MODULE dtpmv_14 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) CALL dtpmv('L','C','N',n,a,b,1) END SUBROUTINE dtpmv_214 END MODULE dtpmv_14 MODULE dtpmv_15 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) CALL dtpmv('U','C','U',n,a,b,1) END SUBROUTINE dtpmv_215 END MODULE dtpmv_15 MODULE dtpmv_16 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) CALL dtpmv('U','C','N',n,a,b,1) END SUBROUTINE dtpmv_216 END MODULE dtpmv_16 MODULE dtpmv_17 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) CALL dtpmv('L','T','U',n,a,b,1) END SUBROUTINE dtpmv_217 END MODULE dtpmv_17 MODULE dtpmv_18 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) CALL dtpmv('L','T','N',n,a,b,1) END SUBROUTINE dtpmv_218 END MODULE dtpmv_18 MODULE dtpmv_19 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) CALL dtpmv('U','T','U',n,a,b,1) END SUBROUTINE dtpmv_219 END MODULE dtpmv_19 MODULE dtpmv_20 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) CALL dtpmv('U','T','N',n,a,b,1) END SUBROUTINE dtpmv_220 END MODULE dtpmv_20 MODULE dtpmv_21 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) CALL dtpmv('L','N','U',n,a,b,1) END SUBROUTINE dtpmv_221 END MODULE dtpmv_21 MODULE dtpmv_22 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) CALL dtpmv('L','N','N',n,a,b,1) END SUBROUTINE dtpmv_222 END MODULE dtpmv_22 MODULE dtpmv_23 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) CALL dtpmv('U','N','U',n,a,b,1) END SUBROUTINE dtpmv_223 END MODULE dtpmv_23 MODULE dtpmv_24 CONTAINS SUBROUTINE dtpmv_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 :: n ! .. External Procedures .. EXTERNAL dtpmv n = SIZE(b) CALL dtpmv('U','N','N',n,a,b,1) END SUBROUTINE dtpmv_224 END MODULE dtpmv_24