118      SUBROUTINE slatb4( PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE,
 
  128      INTEGER            IMAT, KL, KU, M, MODE, N
 
  136      parameter( shrink = 0.25e0, tenth = 0.1e+0 )
 
  138      parameter( one = 1.0e+0 )
 
  140      parameter( two = 2.0e+0 )
 
  146      REAL               BADC1, BADC2, EPS, LARGE, SMALL
 
  151      EXTERNAL           lsamen, slamch
 
  154      INTRINSIC          abs, max, sqrt
 
  157      SAVE               eps, small, large, badc1, badc2, first
 
  160      DATA               first / .true. /
 
  168         eps = slamch( 
'Precision' )
 
  170         badc1 = sqrt( badc2 )
 
  171         small = slamch( 
'Safe minimum' )
 
  173         small = shrink*( small / eps )
 
  184      IF( lsamen( 2, c2, 
'QR' ) .OR. lsamen( 2, c2, 
'LQ' ) .OR.
 
  185     $    lsamen( 2, c2, 
'QL' ) .OR. lsamen( 2, c2, 
'RQ' ) ) 
THEN 
  199         ELSE IF( imat.EQ.2 ) 
THEN 
  202         ELSE IF( imat.EQ.3 ) 
THEN 
  214         ELSE IF( imat.EQ.6 ) 
THEN 
  222         ELSE IF( imat.EQ.8 ) 
THEN 
  228      ELSE IF( lsamen( 2, c2, 
'QK' ) ) 
THEN 
  254         ELSE IF( imat.EQ.3 ) 
THEN 
  263         ELSE IF( imat.EQ.4 ) 
THEN 
  279            IF( imat.GE.5 .AND. imat.LE.14 ) 
THEN 
  287            ELSE IF( imat.EQ.15 ) 
THEN 
  295            ELSE IF( imat.EQ.16 ) 
THEN 
  303            ELSE IF( imat.EQ.17 ) 
THEN 
  312            ELSE IF( imat.EQ.18 ) 
THEN 
  320            ELSE IF( imat.EQ.19 ) 
THEN 
  332      ELSE IF( lsamen( 2, c2, 
'GE' ) ) 
THEN 
  345         ELSE IF( imat.EQ.2 ) 
THEN 
  348         ELSE IF( imat.EQ.3 ) 
THEN 
  360         ELSE IF( imat.EQ.9 ) 
THEN 
  366         IF( imat.EQ.10 ) 
THEN 
  368         ELSE IF( imat.EQ.11 ) 
THEN 
  374      ELSE IF( lsamen( 2, c2, 
'GB' ) ) 
THEN 
  386         ELSE IF( imat.EQ.6 ) 
THEN 
  394         ELSE IF( imat.EQ.8 ) 
THEN 
  400      ELSE IF( lsamen( 2, c2, 
'GT' ) ) 
THEN 
  421         ELSE IF( imat.EQ.4 ) 
THEN 
  427         IF( imat.EQ.5 .OR. imat.EQ.11 ) 
THEN 
  429         ELSE IF( imat.EQ.6 .OR. imat.EQ.12 ) 
THEN 
  435      ELSE IF( lsamen( 2, c2, 
'PO' ) .OR. lsamen( 2, c2, 
'PP' ) ) 
THEN 
  457         ELSE IF( imat.EQ.7 ) 
THEN 
  465         ELSE IF( imat.EQ.9 ) 
THEN 
  472      ELSE IF( lsamen( 2, c2, 
'SY' ) .OR. lsamen( 2, c2, 
'SP' ) ) 
THEN 
  494         ELSE IF( imat.EQ.8 ) 
THEN 
  502         ELSE IF( imat.EQ.10 ) 
THEN 
  508      ELSE IF( lsamen( 2, c2, 
'PB' ) ) 
THEN 
  520         ELSE IF( imat.EQ.6 ) 
THEN 
  528         ELSE IF( imat.EQ.8 ) 
THEN 
  534      ELSE IF( lsamen( 2, c2, 
'PT' ) ) 
THEN 
  551         ELSE IF( imat.EQ.4 ) 
THEN 
  557         IF( imat.EQ.5 .OR. imat.EQ.11 ) 
THEN 
  559         ELSE IF( imat.EQ.6 .OR. imat.EQ.12 ) 
THEN 
  565      ELSE IF( lsamen( 2, c2, 
'TR' ) .OR. lsamen( 2, c2, 
'TP' ) ) 
THEN 
  576         IF( mat.EQ.1 .OR. mat.EQ.7 ) 
THEN 
  579         ELSE IF( imat.LT.0 ) 
THEN 
  589         IF( mat.EQ.3 .OR. mat.EQ.9 ) 
THEN 
  591         ELSE IF( mat.EQ.4 ) 
THEN 
  593         ELSE IF( mat.EQ.10 ) 
THEN 
  601         ELSE IF( mat.EQ.6 ) 
THEN 
  607      ELSE IF( lsamen( 2, c2, 
'TB' ) ) 
THEN 
  618         IF( mat.EQ.2 .OR. mat.EQ.8 ) 
THEN 
  620         ELSE IF( mat.EQ.3 .OR. mat.EQ.9 ) 
THEN 
  628         ELSE IF( mat.EQ.5 ) 
THEN 
 
subroutine slatb4(path, imat, m, n, type, kl, ku, anorm, mode, cndnum, dist)
SLATB4