133      SUBROUTINE dget02( TRANS, M, N, NRHS, A, LDA, X, LDX, B, LDB,
 
  142      INTEGER            LDA, LDB, LDX, M, N, NRHS
 
  143      DOUBLE PRECISION   RESID
 
  146      DOUBLE PRECISION   A( LDA, * ), B( LDB, * ), RWORK( * ),
 
  153      DOUBLE PRECISION   ZERO, ONE
 
  154      parameter( zero = 0.0d+0, one = 1.0d+0 )
 
  158      DOUBLE PRECISION   ANORM, BNORM, EPS, XNORM
 
  162      DOUBLE PRECISION   DASUM, DLAMCH, DLANGE
 
  163      EXTERNAL           lsame, dasum, dlamch, dlange
 
  175      IF( m.LE.0 .OR. n.LE.0 .OR. nrhs.EQ.0 ) 
THEN 
  180      IF( lsame( trans, 
'T' ) .OR. lsame( trans, 
'C' ) ) 
THEN 
  190      eps = dlamch( 
'Epsilon' )
 
  191      IF( lsame( trans, 
'N' ) ) 
THEN 
  192         anorm = dlange( 
'1', m, n, a, lda, rwork )
 
  194         anorm = dlange( 
'I', m, n, a, lda, rwork )
 
  196      IF( anorm.LE.zero ) 
THEN 
  203      CALL dgemm( trans, 
'No transpose', n1, nrhs, n2, -one, a, lda, x,
 
  211         bnorm = dasum( n1, b( 1, j ), 1 )
 
  212         xnorm = dasum( n2, x( 1, j ), 1 )
 
  213         IF( xnorm.LE.zero ) 
THEN 
  216            resid = max( resid, ( ( bnorm / anorm ) / xnorm ) / eps )
 
 
subroutine dget02(trans, m, n, nrhs, a, lda, x, ldx, b, ldb, rwork, resid)
DGET02
subroutine dgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
DGEMM