1 SUBROUTINE dgetrs( TRANS, N, NRHS, A, LDA, IPIV, B, LDB, INFO )
10 INTEGER INFO, LDA, LDB, N, NRHS
14 DOUBLE PRECISION A( LDA, * ), B( LDB, * )
67 parameter( one = 1.0d+0 )
87 notran = lsame( trans,
'N' )
88 IF( .NOT.notran .AND. .NOT.lsame( trans,
'T' ) .AND. .NOT.
89 $ lsame( trans,
'C' ) )
THEN
91 ELSE IF( n.LT.0 )
THEN
93 ELSE IF( nrhs.LT.0 )
THEN
95 ELSE IF( lda.LT.max( 1, n ) )
THEN
97 ELSE IF( ldb.LT.max( 1, n ) )
THEN
101 CALL xerbla(
'DGETRS', -info )
107 IF( n.EQ.0 .OR. nrhs.EQ.0 )
116 CALL dlaswp( nrhs, b, ldb, 1, n, ipiv, 1 )
120 CALL dtrsm(
'Left',
'Lower',
'No transpose',
'Unit', n, nrhs,
121 $ one, a, lda, b, ldb )
125 CALL dtrsm(
'Left',
'Upper',
'No transpose',
'Non-unit', n,
126 $ nrhs, one, a, lda, b, ldb )
133 CALL dtrsm(
'Left',
'Upper',
'Transpose',
'Non-unit', n, nrhs,
134 $ one, a, lda, b, ldb )
138 CALL dtrsm(
'Left',
'Lower',
'Transpose',
'Unit', n, nrhs, one,
143 CALL dlaswp( nrhs, b, ldb, 1, n, ipiv, -1 )
subroutine dgetrs(TRANS, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
subroutine dlaswp(N, A, LDA, K1, K2, IPIV, INCX)
subroutine dtrsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
subroutine xerbla(SRNAME, INFO)