119      SUBROUTINE zlatb4( PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE,
 
  129      INTEGER            IMAT, KL, KU, M, MODE, N
 
  130      DOUBLE PRECISION   ANORM, CNDNUM
 
  136      DOUBLE PRECISION   SHRINK, TENTH
 
  137      parameter( shrink = 0.25d0, tenth = 0.1d+0 )
 
  139      parameter( one = 1.0d+0 )
 
  141      parameter( two = 2.0d+0 )
 
  147      DOUBLE PRECISION   BADC1, BADC2, EPS, LARGE, SMALL
 
  151      DOUBLE PRECISION   DLAMCH
 
  152      EXTERNAL           lsamen, dlamch
 
  155      INTRINSIC          abs, max, sqrt
 
  158      SAVE               eps, small, large, badc1, badc2, first
 
  161      DATA               first / .true. /
 
  169         eps = dlamch( 
'Precision' )
 
  171         badc1 = sqrt( badc2 )
 
  172         small = dlamch( 
'Safe minimum' )
 
  174         small = shrink*( small / eps )
 
  188      IF( lsamen( 2, c2, 
'QR' ) .OR. lsamen( 2, c2, 
'LQ' ) .OR.
 
  189     $    lsamen( 2, c2, 
'QL' ) .OR. lsamen( 2, c2, 
'RQ' ) ) 
THEN 
  200         ELSE IF( imat.EQ.2 ) 
THEN 
  203         ELSE IF( imat.EQ.3 ) 
THEN 
  215         ELSE IF( imat.EQ.6 ) 
THEN 
  223         ELSE IF( imat.EQ.8 ) 
THEN 
  229      ELSE IF( lsamen( 2, c2, 
'QK' ) ) 
THEN 
  255         ELSE IF( imat.EQ.3 ) 
THEN 
  264         ELSE IF( imat.EQ.4 ) 
THEN 
  280            IF( imat.GE.5 .AND. imat.LE.14 ) 
THEN 
  288            ELSE IF( imat.EQ.15 ) 
THEN 
  296            ELSE IF( imat.EQ.16 ) 
THEN 
  304            ELSE IF( imat.EQ.17 ) 
THEN 
  313            ELSE IF( imat.EQ.18 ) 
THEN 
  321            ELSE IF( imat.EQ.19 ) 
THEN 
  333      ELSE IF( lsamen( 2, c2, 
'GE' ) ) 
THEN 
  346         ELSE IF( imat.EQ.2 ) 
THEN 
  349         ELSE IF( imat.EQ.3 ) 
THEN 
  361         ELSE IF( imat.EQ.9 ) 
THEN 
  367         IF( imat.EQ.10 ) 
THEN 
  369         ELSE IF( imat.EQ.11 ) 
THEN 
  375      ELSE IF( lsamen( 2, c2, 
'GB' ) ) 
THEN 
  387         ELSE IF( imat.EQ.6 ) 
THEN 
  395         ELSE IF( imat.EQ.8 ) 
THEN 
  401      ELSE IF( lsamen( 2, c2, 
'GT' ) ) 
THEN 
  422         ELSE IF( imat.EQ.4 ) 
THEN 
  428         IF( imat.EQ.5 .OR. imat.EQ.11 ) 
THEN 
  430         ELSE IF( imat.EQ.6 .OR. imat.EQ.12 ) 
THEN 
  436      ELSE IF( lsamen( 2, c2, 
'PO' ) .OR. lsamen( 2, c2, 
'PP' ) ) 
THEN 
  458         ELSE IF( imat.EQ.7 ) 
THEN 
  466         ELSE IF( imat.EQ.9 ) 
THEN 
  472      ELSE IF( lsamen( 2, c2, 
'HE' ) .OR. lsamen( 2, c2, 
'HP' ) .OR.
 
  473     $         lsamen( 2, c2, 
'SY' ) .OR. lsamen( 2, c2, 
'SP' ) ) 
THEN 
  495         ELSE IF( imat.EQ.8 ) 
THEN 
  503         ELSE IF( imat.EQ.10 ) 
THEN 
  509      ELSE IF( lsamen( 2, c2, 
'PB' ) ) 
THEN 
  521         ELSE IF( imat.EQ.6 ) 
THEN 
  529         ELSE IF( imat.EQ.8 ) 
THEN 
  535      ELSE IF( lsamen( 2, c2, 
'PT' ) ) 
THEN 
  552         ELSE IF( imat.EQ.4 ) 
THEN 
  558         IF( imat.EQ.5 .OR. imat.EQ.11 ) 
THEN 
  560         ELSE IF( imat.EQ.6 .OR. imat.EQ.12 ) 
THEN 
  566      ELSE IF( lsamen( 2, c2, 
'TR' ) .OR. lsamen( 2, c2, 
'TP' ) ) 
THEN 
  577         IF( mat.EQ.1 .OR. mat.EQ.7 ) 
THEN 
  580         ELSE IF( imat.LT.0 ) 
THEN 
  590         IF( mat.EQ.3 .OR. mat.EQ.9 ) 
THEN 
  592         ELSE IF( mat.EQ.4 .OR. mat.EQ.10 ) 
THEN 
  600         ELSE IF( mat.EQ.6 ) 
THEN 
  606      ELSE IF( lsamen( 2, c2, 
'TB' ) ) 
THEN 
  617         IF( mat.EQ.2 .OR. mat.EQ.8 ) 
THEN 
  619         ELSE IF( mat.EQ.3 .OR. mat.EQ.9 ) 
THEN 
  627         ELSE IF( mat.EQ.5 ) 
THEN 
 
subroutine zlatb4(path, imat, m, n, type, kl, ku, anorm, mode, cndnum, dist)
ZLATB4