138      SUBROUTINE chst01( N, ILO, IHI, A, LDA, H, LDH, Q, LDQ, WORK,
 
  139     $                   LWORK, RWORK, RESULT )
 
  146      INTEGER            IHI, ILO, LDA, LDH, LDQ, LWORK, N
 
  149      REAL               RESULT( 2 ), RWORK( * )
 
  150      COMPLEX            A( LDA, * ), H( LDH, * ), Q( LDQ, * ),
 
  158      parameter( one = 1.0e+0, zero = 0.0e+0 )
 
  162      REAL               ANORM, EPS, OVFL, SMLNUM, UNFL, WNORM
 
  166      EXTERNAL           clange, slamch
 
  172      INTRINSIC          cmplx, max, min
 
  184      unfl = slamch( 
'Safe minimum' )
 
  185      eps = slamch( 
'Precision' )
 
  187      smlnum = unfl*n / eps
 
  194      CALL clacpy( 
' ', n, n, a, lda, work, ldwork )
 
  198      CALL cgemm( 
'No transpose', 
'No transpose', n, n, n, cmplx( one ),
 
  199     $            q, ldq, h, ldh, cmplx( zero ), work( ldwork*n+1 ),
 
  204      CALL cgemm( 
'No transpose', 
'Conjugate transpose', n, n, n,
 
  205     $            cmplx( -one ), work( ldwork*n+1 ), ldwork, q, ldq,
 
  206     $            cmplx( one ), work, ldwork )
 
  208      anorm = max( clange( 
'1', n, n, a, lda, rwork ), unfl )
 
  209      wnorm = clange( 
'1', n, n, work, ldwork, rwork )
 
  213      result( 1 ) = min( wnorm, anorm ) / max( smlnum, anorm*eps ) / n
 
  217      CALL cunt01( 
'Columns', n, n, q, ldq, work, lwork, rwork,
 
 
subroutine chst01(n, ilo, ihi, a, lda, h, ldh, q, ldq, work, lwork, rwork, result)
CHST01
subroutine cunt01(rowcol, m, n, u, ldu, work, lwork, rwork, resid)
CUNT01
subroutine cgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
CGEMM
subroutine clacpy(uplo, m, n, a, lda, b, ldb)
CLACPY copies all or part of one two-dimensional array to another.