! Replaces DTPSV 24 procedures ! Level 2 REAL (DTPSV) ! . 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(-1) b ! 210 any L b < alpha a(-1) b ! 211 any U b < alpha a(-1) b ! 212 any b < alpha a(-1) 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(-1) b ! 222 1.0 L b < a(-1) b ! 223 1.0 U b < a(-1) b ! 224 1.0 b < a(-1) 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 dtpsv_01 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) b = alpha*b CALL dtpsv('L','C','U',n,a,b,1) END SUBROUTINE dtpsv_201 END MODULE dtpsv_01 MODULE dtpsv_02 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) b = alpha*b CALL dtpsv('L','C','N',n,a,b,1) END SUBROUTINE dtpsv_202 END MODULE dtpsv_02 MODULE dtpsv_03 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) b = alpha*b CALL dtpsv('U','C','U',n,a,b,1) END SUBROUTINE dtpsv_203 END MODULE dtpsv_03 MODULE dtpsv_04 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) b = alpha*b CALL dtpsv('U','C','N',n,a,b,1) END SUBROUTINE dtpsv_204 END MODULE dtpsv_04 MODULE dtpsv_05 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) b = alpha*b CALL dtpsv('L','T','U',n,a,b,1) END SUBROUTINE dtpsv_205 END MODULE dtpsv_05 MODULE dtpsv_06 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) b = alpha*b CALL dtpsv('L','T','N',n,a,b,1) END SUBROUTINE dtpsv_206 END MODULE dtpsv_06 MODULE dtpsv_07 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) b = alpha*b CALL dtpsv('U','T','U',n,a,b,1) END SUBROUTINE dtpsv_207 END MODULE dtpsv_07 MODULE dtpsv_08 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) b = alpha*b CALL dtpsv('U','T','N',n,a,b,1) END SUBROUTINE dtpsv_208 END MODULE dtpsv_08 MODULE dtpsv_09 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) b = alpha*b CALL dtpsv('L','N','U',n,a,b,1) END SUBROUTINE dtpsv_209 END MODULE dtpsv_09 MODULE dtpsv_10 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) b = alpha*b CALL dtpsv('L','N','N',n,a,b,1) END SUBROUTINE dtpsv_210 END MODULE dtpsv_10 MODULE dtpsv_11 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) b = alpha*b CALL dtpsv('U','N','U',n,a,b,1) END SUBROUTINE dtpsv_211 END MODULE dtpsv_11 MODULE dtpsv_12 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) b = alpha*b CALL dtpsv('U','N','N',n,a,b,1) END SUBROUTINE dtpsv_212 END MODULE dtpsv_12 MODULE dtpsv_13 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) CALL dtpsv('L','C','U',n,a,b,1) END SUBROUTINE dtpsv_213 END MODULE dtpsv_13 MODULE dtpsv_14 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) CALL dtpsv('L','C','N',n,a,b,1) END SUBROUTINE dtpsv_214 END MODULE dtpsv_14 MODULE dtpsv_15 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) CALL dtpsv('U','C','U',n,a,b,1) END SUBROUTINE dtpsv_215 END MODULE dtpsv_15 MODULE dtpsv_16 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) CALL dtpsv('U','C','N',n,a,b,1) END SUBROUTINE dtpsv_216 END MODULE dtpsv_16 MODULE dtpsv_17 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) CALL dtpsv('L','T','U',n,a,b,1) END SUBROUTINE dtpsv_217 END MODULE dtpsv_17 MODULE dtpsv_18 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) CALL dtpsv('L','T','N',n,a,b,1) END SUBROUTINE dtpsv_218 END MODULE dtpsv_18 MODULE dtpsv_19 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) CALL dtpsv('U','T','U',n,a,b,1) END SUBROUTINE dtpsv_219 END MODULE dtpsv_19 MODULE dtpsv_20 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) CALL dtpsv('U','T','N',n,a,b,1) END SUBROUTINE dtpsv_220 END MODULE dtpsv_20 MODULE dtpsv_21 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) CALL dtpsv('L','N','U',n,a,b,1) END SUBROUTINE dtpsv_221 END MODULE dtpsv_21 MODULE dtpsv_22 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) CALL dtpsv('L','N','N',n,a,b,1) END SUBROUTINE dtpsv_222 END MODULE dtpsv_22 MODULE dtpsv_23 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) CALL dtpsv('U','N','U',n,a,b,1) END SUBROUTINE dtpsv_223 END MODULE dtpsv_23 MODULE dtpsv_24 CONTAINS SUBROUTINE dtpsv_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 dtpsv n = SIZE(b) CALL dtpsv('U','N','N',n,a,b,1) END SUBROUTINE dtpsv_224 END MODULE dtpsv_24