! Replaces DTRMV 24 procedures ! Level 2 REAL (DTRMV) ! . 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 dtrmv_01 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) b = alpha*b CALL dtrmv('L','C','U',n,a,n,b,1) END SUBROUTINE dtrmv_201 END MODULE dtrmv_01 MODULE dtrmv_02 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) b = alpha*b CALL dtrmv('L','C','N',n,a,n,b,1) END SUBROUTINE dtrmv_202 END MODULE dtrmv_02 MODULE dtrmv_03 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) b = alpha*b CALL dtrmv('U','C','U',n,a,n,b,1) END SUBROUTINE dtrmv_203 END MODULE dtrmv_03 MODULE dtrmv_04 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) b = alpha*b CALL dtrmv('U','C','N',n,a,n,b,1) END SUBROUTINE dtrmv_204 END MODULE dtrmv_04 MODULE dtrmv_05 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) b = alpha*b CALL dtrmv('L','T','U',n,a,n,b,1) END SUBROUTINE dtrmv_205 END MODULE dtrmv_05 MODULE dtrmv_06 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) b = alpha*b CALL dtrmv('L','T','N',n,a,n,b,1) END SUBROUTINE dtrmv_206 END MODULE dtrmv_06 MODULE dtrmv_07 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) b = alpha*b CALL dtrmv('U','T','U',n,a,n,b,1) END SUBROUTINE dtrmv_207 END MODULE dtrmv_07 MODULE dtrmv_08 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) b = alpha*b CALL dtrmv('U','T','N',n,a,n,b,1) END SUBROUTINE dtrmv_208 END MODULE dtrmv_08 MODULE dtrmv_09 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) b = alpha*b CALL dtrmv('L','N','U',n,a,n,b,1) END SUBROUTINE dtrmv_209 END MODULE dtrmv_09 MODULE dtrmv_10 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) b = alpha*b CALL dtrmv('L','N','N',n,a,n,b,1) END SUBROUTINE dtrmv_210 END MODULE dtrmv_10 MODULE dtrmv_11 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) b = alpha*b CALL dtrmv('U','N','U',n,a,n,b,1) END SUBROUTINE dtrmv_211 END MODULE dtrmv_11 MODULE dtrmv_12 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) b = alpha*b CALL dtrmv('U','N','N',n,a,n,b,1) END SUBROUTINE dtrmv_212 END MODULE dtrmv_12 MODULE dtrmv_13 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) CALL dtrmv('L','C','U',n,a,n,b,1) END SUBROUTINE dtrmv_213 END MODULE dtrmv_13 MODULE dtrmv_14 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) CALL dtrmv('L','C','N',n,a,n,b,1) END SUBROUTINE dtrmv_214 END MODULE dtrmv_14 MODULE dtrmv_15 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) CALL dtrmv('U','C','U',n,a,n,b,1) END SUBROUTINE dtrmv_215 END MODULE dtrmv_15 MODULE dtrmv_16 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) CALL dtrmv('U','C','N',n,a,n,b,1) END SUBROUTINE dtrmv_216 END MODULE dtrmv_16 MODULE dtrmv_17 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) CALL dtrmv('L','T','U',n,a,n,b,1) END SUBROUTINE dtrmv_217 END MODULE dtrmv_17 MODULE dtrmv_18 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) CALL dtrmv('L','T','N',n,a,n,b,1) END SUBROUTINE dtrmv_218 END MODULE dtrmv_18 MODULE dtrmv_19 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) CALL dtrmv('U','T','U',n,a,n,b,1) END SUBROUTINE dtrmv_219 END MODULE dtrmv_19 MODULE dtrmv_20 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) CALL dtrmv('U','T','N',n,a,n,b,1) END SUBROUTINE dtrmv_220 END MODULE dtrmv_20 MODULE dtrmv_21 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) CALL dtrmv('L','N','U',n,a,n,b,1) END SUBROUTINE dtrmv_221 END MODULE dtrmv_21 MODULE dtrmv_22 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) CALL dtrmv('L','N','N',n,a,n,b,1) END SUBROUTINE dtrmv_222 END MODULE dtrmv_22 MODULE dtrmv_23 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) CALL dtrmv('U','N','U',n,a,n,b,1) END SUBROUTINE dtrmv_223 END MODULE dtrmv_23 MODULE dtrmv_24 CONTAINS SUBROUTINE dtrmv_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 dtrmv n = SIZE(b) CALL dtrmv('U','N','N',n,a,n,b,1) END SUBROUTINE dtrmv_224 END MODULE dtrmv_24