167      SUBROUTINE dlatb9( PATH, IMAT, M, P, N, TYPE, KLA, KUA, KLB, KUB,
 
  168     $                   ANORM, BNORM, MODEA, MODEB, CNDNMA, CNDNMB,
 
  176      CHARACTER          DISTA, DISTB, TYPE
 
  178      INTEGER            IMAT, KLA, KLB, KUA, KUB, M, MODEA, MODEB, N, P
 
  179      DOUBLE PRECISION   ANORM, BNORM, CNDNMA, CNDNMB
 
  185      DOUBLE PRECISION   SHRINK, TENTH
 
  186      PARAMETER          ( SHRINK = 0.25d0, tenth = 0.1d+0 )
 
  187      DOUBLE PRECISION   ONE, TEN
 
  188      parameter( one = 1.0d+0, ten = 1.0d+1 )
 
  192      DOUBLE PRECISION   BADC1, BADC2, EPS, LARGE, SMALL
 
  196      DOUBLE PRECISION   DLAMCH
 
  197      EXTERNAL           lsamen, dlamch
 
  203      SAVE               eps, small, large, badc1, badc2, first
 
  206      DATA               first / .true. /
 
  214         eps = dlamch( 
'Precision' )
 
  216         badc1 = sqrt( badc2 )
 
  217         small = dlamch( 
'Safe minimum' )
 
  219         small = shrink*( small / eps )
 
  233      IF( lsamen( 3, path, 
'GRQ' ) .OR. lsamen( 3, path, 
'LSE' ) .OR.
 
  234     $    lsamen( 3, path, 
'GSV' ) ) 
THEN 
  247         ELSE IF( imat.EQ.2 ) 
THEN 
  256         ELSE IF( imat.EQ.3 ) 
THEN 
  276      ELSE IF( lsamen( 3, path, 
'GQR' ) .OR. lsamen( 3, path, 
'GLM' ) )
 
  289         ELSE IF( imat.EQ.2 ) 
THEN 
  298         ELSE IF( imat.EQ.3 ) 
THEN 
  323      IF( lsamen( 3, path, 
'GQR' ) .OR. lsamen( 3, path, 
'GRQ' ) .OR.
 
  324     $    lsamen( 3, path, 
'GSV' ) ) 
THEN 
  328         ELSE IF( imat.EQ.6 ) 
THEN 
  331         ELSE IF( imat.EQ.7 ) 
THEN 
  334         ELSE IF( imat.EQ.8 ) 
THEN 
  342      IF( lsamen( 3, path, 
'GQR' ) .OR. lsamen( 3, path, 
'GRQ' ) ) 
THEN 
  346         ELSE IF( imat.EQ.8 ) 
THEN 
 
subroutine dlatb9(path, imat, m, p, n, type, kla, kua, klb, kub, anorm, bnorm, modea, modeb, cndnma, cndnmb, dista, distb)
DLATB9