! Replaces DTBSV 24 procedures ! Level 2 REAL (DTBSV) ! . 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 dtbsv_01 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbsv('L','C','U',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_201 END MODULE dtbsv_01 MODULE dtbsv_02 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbsv('L','C','N',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_202 END MODULE dtbsv_02 MODULE dtbsv_03 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbsv('U','C','U',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_203 END MODULE dtbsv_03 MODULE dtbsv_04 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbsv('U','C','N',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_204 END MODULE dtbsv_04 MODULE dtbsv_05 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbsv('L','T','U',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_205 END MODULE dtbsv_05 MODULE dtbsv_06 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbsv('L','T','N',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_206 END MODULE dtbsv_06 MODULE dtbsv_07 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbsv('U','T','U',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_207 END MODULE dtbsv_07 MODULE dtbsv_08 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbsv('U','T','N',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_208 END MODULE dtbsv_08 MODULE dtbsv_09 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbsv('L','N','U',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_209 END MODULE dtbsv_09 MODULE dtbsv_10 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbsv('L','N','N',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_210 END MODULE dtbsv_10 MODULE dtbsv_11 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbsv('U','N','U',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_211 END MODULE dtbsv_11 MODULE dtbsv_12 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 b = alpha*b CALL dtbsv('U','N','N',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_212 END MODULE dtbsv_12 MODULE dtbsv_13 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbsv('L','C','U',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_213 END MODULE dtbsv_13 MODULE dtbsv_14 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbsv('L','C','N',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_214 END MODULE dtbsv_14 MODULE dtbsv_15 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbsv('U','C','U',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_215 END MODULE dtbsv_15 MODULE dtbsv_16 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbsv('U','C','N',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_216 END MODULE dtbsv_16 MODULE dtbsv_17 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbsv('L','T','U',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_217 END MODULE dtbsv_17 MODULE dtbsv_18 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbsv('L','T','N',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_218 END MODULE dtbsv_18 MODULE dtbsv_19 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbsv('U','T','U',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_219 END MODULE dtbsv_19 MODULE dtbsv_20 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbsv('U','T','N',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_220 END MODULE dtbsv_20 MODULE dtbsv_21 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbsv('L','N','U',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_221 END MODULE dtbsv_21 MODULE dtbsv_22 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbsv('L','N','N',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_222 END MODULE dtbsv_22 MODULE dtbsv_23 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbsv('U','N','U',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_223 END MODULE dtbsv_23 MODULE dtbsv_24 CONTAINS SUBROUTINE dtbsv_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 dtbsv n = SIZE(b) k = SIZE(a,1) - 1 CALL dtbsv('U','N','N',n,k,a,k+1,b,1) END SUBROUTINE dtbsv_224 END MODULE dtbsv_24