142      SUBROUTINE sgeequb( M, N, A, LDA, R, C, ROWCND, COLCND, AMAX,
 
  150      INTEGER            INFO, LDA, M, N
 
  151      REAL               AMAX, COLCND, ROWCND
 
  154      REAL               A( LDA, * ), C( * ), R( * )
 
  161      parameter( one = 1.0e+0, zero = 0.0e+0 )
 
  165      REAL               BIGNUM, RCMAX, RCMIN, SMLNUM, RADIX, LOGRDX
 
  175      INTRINSIC          abs, max, min, log
 
  184      ELSE IF( n.LT.0 ) 
THEN 
  186      ELSE IF( lda.LT.max( 1, m ) ) 
THEN 
  190         CALL xerbla( 
'SGEEQUB', -info )
 
  196      IF( m.EQ.0 .OR. n.EQ.0 ) 
THEN 
  205      smlnum = slamch( 
'S' )
 
  206      bignum = one / smlnum
 
  207      radix = slamch( 
'B' )
 
  208      logrdx = log( radix )
 
  220            r( i ) = max( r( i ), abs( a( i, j ) ) )
 
  224         IF( r( i ).GT.zero ) 
THEN 
  225            r( i ) = radix**int( log( r( i ) ) / logrdx )
 
  234         rcmax = max( rcmax, r( i ) )
 
  235         rcmin = min( rcmin, r( i ) )
 
  239      IF( rcmin.EQ.zero ) 
THEN 
  244            IF( r( i ).EQ.zero ) 
THEN 
  254            r( i ) = one / min( max( r( i ), smlnum ), bignum )
 
  259         rowcnd = max( rcmin, smlnum ) / min( rcmax, bignum )
 
  273            c( j ) = max( c( j ), abs( a( i, j ) )*r( i ) )
 
  275         IF( c( j ).GT.zero ) 
THEN 
  276            c( j ) = radix**int( log( c( j ) ) / logrdx )
 
  285         rcmin = min( rcmin, c( j ) )
 
  286         rcmax = max( rcmax, c( j ) )
 
  289      IF( rcmin.EQ.zero ) 
THEN 
  294            IF( c( j ).EQ.zero ) 
THEN 
  304            c( j ) = one / min( max( c( j ), smlnum ), bignum )
 
  309         colcnd = max( rcmin, smlnum ) / min( rcmax, bignum )
 
 
subroutine sgeequb(m, n, a, lda, r, c, rowcnd, colcnd, amax, info)
SGEEQUB