334      SUBROUTINE zdrvst2stg( NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH,
 
  335     $                   NOUNIT, A, LDA, D1, D2, D3, WA1, WA2, WA3, U,
 
  336     $                   LDU, V, TAU, Z, WORK, LWORK, RWORK, LRWORK,
 
  337     $                   IWORK, LIWORK, RESULT, INFO )
 
  344      INTEGER            INFO, LDA, LDU, LIWORK, LRWORK, LWORK, NOUNIT,
 
  346      DOUBLE PRECISION   THRESH
 
  350      INTEGER            ISEED( 4 ), IWORK( * ), NN( * )
 
  351      DOUBLE PRECISION   D1( * ), D2( * ), D3( * ), RESULT( * ),
 
  352     $                   rwork( * ), wa1( * ), wa2( * ), wa3( * )
 
  353      COMPLEX*16         A( LDA, * ), TAU( * ), U( LDU, * ),
 
  354     $                   v( ldu, * ), work( * ), z( ldu, * )
 
  361      DOUBLE PRECISION   ZERO, ONE, TWO, TEN
 
  362      PARAMETER          ( ZERO = 0.0d+0, one = 1.0d+0, two = 2.0d+0,
 
  364      DOUBLE PRECISION   HALF
 
  365      parameter( half = one / two )
 
  366      COMPLEX*16         CZERO, CONE
 
  367      parameter( czero = ( 0.0d+0, 0.0d+0 ),
 
  368     $                   cone = ( 1.0d+0, 0.0d+0 ) )
 
  370      parameter( maxtyp = 18 )
 
  375      INTEGER            I, IDIAG, IHBW, IINFO, IL, IMODE, INDWRK, INDX,
 
  376     $                   irow, itemp, itype, iu, iuplo, j, j1, j2, jcol,
 
  377     $                   jsize, jtype, kd, lgn, liwedc, lrwedc, lwedc,
 
  378     $                   m, m2, m3, mtypes, n, nerrs, nmats, nmax,
 
  380      DOUBLE PRECISION   ABSTOL, ANINV, ANORM, COND, OVFL, RTOVFL,
 
  381     $                   RTUNFL, TEMP1, TEMP2, TEMP3, ULP, ULPINV, UNFL,
 
  385      INTEGER            IDUMMA( 1 ), IOLDSD( 4 ), ISEED2( 4 ),
 
  386     $                   ISEED3( 4 ), KMAGN( MAXTYP ), KMODE( MAXTYP ),
 
  390      DOUBLE PRECISION   DLAMCH, DLARND, DSXT1
 
  391      EXTERNAL           DLAMCH, DLARND, DSXT1
 
  402      INTRINSIC          abs, dble, int, log, max, min, sqrt
 
  405      DATA               ktype / 1, 2, 5*4, 5*5, 3*8, 3*9 /
 
  406      DATA               kmagn / 2*1, 1, 1, 1, 2, 3, 1, 1, 1, 2, 3, 1,
 
  408      DATA               kmode / 2*0, 4, 3, 1, 4, 4, 4, 3, 1, 4, 4, 0,
 
  421         nmax = max( nmax, nn( j ) )
 
  428      IF( nsizes.LT.0 ) 
THEN 
  430      ELSE IF( badnn ) 
THEN 
  432      ELSE IF( ntypes.LT.0 ) 
THEN 
  434      ELSE IF( lda.LT.nmax ) 
THEN 
  436      ELSE IF( ldu.LT.nmax ) 
THEN 
  438      ELSE IF( 2*max( 2, nmax )**2.GT.lwork ) 
THEN 
  443         CALL xerbla( 
'ZDRVST2STG', -info )
 
  449      IF( nsizes.EQ.0 .OR. ntypes.EQ.0 )
 
  454      unfl = dlamch( 
'Safe minimum' )
 
  455      ovfl = dlamch( 
'Overflow' )
 
  456      ulp = dlamch( 
'Epsilon' )*dlamch( 
'Base' )
 
  458      rtunfl = sqrt( unfl )
 
  459      rtovfl = sqrt( ovfl )
 
  464         iseed2( i ) = iseed( i )
 
  465         iseed3( i ) = iseed( i )
 
  471      DO 1220 jsize = 1, nsizes
 
  474            lgn = int( log( dble( n ) ) / log( two ) )
 
  479            lwedc = max( 2*n+n*n, 2*n*n )
 
  480            lrwedc = 1 + 4*n + 2*n*lgn + 3*n**2
 
  487         aninv = one / dble( max( 1, n ) )
 
  489         IF( nsizes.NE.1 ) 
THEN 
  490            mtypes = min( maxtyp, ntypes )
 
  492            mtypes = min( maxtyp+1, ntypes )
 
  495         DO 1210 jtype = 1, mtypes
 
  496            IF( .NOT.dotype( jtype ) )
 
  502               ioldsd( j ) = iseed( j )
 
  520            IF( mtypes.GT.maxtyp )
 
  523            itype = ktype( jtype )
 
  524            imode = kmode( jtype )
 
  528            GO TO ( 40, 50, 60 )kmagn( jtype )
 
  535            anorm = ( rtovfl*ulp )*aninv
 
  539            anorm = rtunfl*n*ulpinv
 
  544            CALL zlaset( 
'Full', lda, n, czero, czero, a, lda )
 
  552            IF( itype.EQ.1 ) 
THEN 
  555            ELSE IF( itype.EQ.2 ) 
THEN 
  560                  a( jcol, jcol ) = anorm
 
  563            ELSE IF( itype.EQ.4 ) 
THEN 
  567               CALL zlatms( n, n, 
'S', iseed, 
'H', rwork, imode, cond,
 
  568     $                      anorm, 0, 0, 
'N', a, lda, work, iinfo )
 
  570            ELSE IF( itype.EQ.5 ) 
THEN 
  574               CALL zlatms( n, n, 
'S', iseed, 
'H', rwork, imode, cond,
 
  575     $                      anorm, n, n, 
'N', a, lda, work, iinfo )
 
  577            ELSE IF( itype.EQ.7 ) 
THEN 
  581               CALL zlatmr( n, n, 
'S', iseed, 
'H', work, 6, one, cone,
 
  582     $                      
'T', 
'N', work( n+1 ), 1, one,
 
  583     $                      work( 2*n+1 ), 1, one, 
'N', idumma, 0, 0,
 
  584     $                      zero, anorm, 
'NO', a, lda, iwork, iinfo )
 
  586            ELSE IF( itype.EQ.8 ) 
THEN 
  590               CALL zlatmr( n, n, 
'S', iseed, 
'H', work, 6, one, cone,
 
  591     $                      
'T', 
'N', work( n+1 ), 1, one,
 
  592     $                      work( 2*n+1 ), 1, one, 
'N', idumma, n, n,
 
  593     $                      zero, anorm, 
'NO', a, lda, iwork, iinfo )
 
  595            ELSE IF( itype.EQ.9 ) 
THEN 
  599               ihbw = int( ( n-1 )*dlarnd( 1, iseed3 ) )
 
  600               CALL zlatms( n, n, 
'S', iseed, 
'H', rwork, imode, cond,
 
  601     $                      anorm, ihbw, ihbw, 
'Z', u, ldu, work,
 
  606               CALL zlaset( 
'Full', lda, n, czero, czero, a, lda )
 
  607               DO 100 idiag = -ihbw, ihbw
 
  608                  irow = ihbw - idiag + 1
 
  609                  j1 = max( 1, idiag+1 )
 
  610                  j2 = min( n, n+idiag )
 
  613                     a( i, j ) = u( irow, j )
 
  620            IF( iinfo.NE.0 ) 
THEN 
  621               WRITE( nounit, fmt = 9999 )
'Generator', iinfo, n, jtype,
 
  634               il = 1 + int( ( n-1 )*dlarnd( 1, iseed2 ) )
 
  635               iu = 1 + int( ( n-1 )*dlarnd( 1, iseed2 ) )
 
  647               IF( iuplo.EQ.0 ) 
THEN 
  655               CALL zlacpy( 
' ', n, n, a, lda, v, ldu )
 
  658               CALL zheevd( 
'V', uplo, n, a, ldu, d1, work, lwedc,
 
  659     $                      rwork, lrwedc, iwork, liwedc, iinfo )
 
  660               IF( iinfo.NE.0 ) 
THEN 
  661                  WRITE( nounit, fmt = 9999 )
'ZHEEVD(V,' // uplo //
 
  662     $               
')', iinfo, n, jtype, ioldsd
 
  664                  IF( iinfo.LT.0 ) 
THEN 
  667                     result( ntest ) = ulpinv
 
  668                     result( ntest+1 ) = ulpinv
 
  669                     result( ntest+2 ) = ulpinv
 
  676               CALL zhet21( 1, uplo, n, 0, v, ldu, d1, d2, a, ldu, z,
 
  677     $                      ldu, tau, work, rwork, result( ntest ) )
 
  679               CALL zlacpy( 
' ', n, n, v, ldu, a, lda )
 
  683     $                      lwork, rwork, lrwedc, iwork, liwedc, iinfo )
 
  684               IF( iinfo.NE.0 ) 
THEN 
  685                  WRITE( nounit, fmt = 9999 )
 
  686     $               
'ZHEEVD_2STAGE(N,' // uplo //
 
  687     $               
')', iinfo, n, jtype, ioldsd
 
  689                  IF( iinfo.LT.0 ) 
THEN 
  692                     result( ntest ) = ulpinv
 
  702                  temp1 = max( temp1, abs( d1( j ) ), abs( d3( j ) ) )
 
  703                  temp2 = max( temp2, abs( d1( j )-d3( j ) ) )
 
  705               result( ntest ) = temp2 / max( unfl,
 
  706     $                           ulp*max( temp1, temp2 ) )
 
  709               CALL zlacpy( 
' ', n, n, v, ldu, a, lda )
 
  714                  temp3 = max( abs( d1( 1 ) ), abs( d1( n ) ) )
 
  716                     vl = d1( il ) - max( half*( d1( il )-d1( il-1 ) ),
 
  717     $                    ten*ulp*temp3, ten*rtunfl )
 
  718                  ELSE IF( n.GT.0 ) 
THEN 
  719                     vl = d1( 1 ) - max( half*( d1( n )-d1( 1 ) ),
 
  720     $                    ten*ulp*temp3, ten*rtunfl )
 
  723                     vu = d1( iu ) + max( half*( d1( iu+1 )-d1( iu ) ),
 
  724     $                    ten*ulp*temp3, ten*rtunfl )
 
  725                  ELSE IF( n.GT.0 ) 
THEN 
  726                     vu = d1( n ) + max( half*( d1( n )-d1( 1 ) ),
 
  727     $                    ten*ulp*temp3, ten*rtunfl )
 
  735               CALL zheevx( 
'V', 
'A', uplo, n, a, ldu, vl, vu, il, iu,
 
  736     $                      abstol, m, wa1, z, ldu, work, lwork, rwork,
 
  737     $                      iwork, iwork( 5*n+1 ), iinfo )
 
  738               IF( iinfo.NE.0 ) 
THEN 
  739                  WRITE( nounit, fmt = 9999 )
'ZHEEVX(V,A,' // uplo //
 
  740     $               
')', iinfo, n, jtype, ioldsd
 
  742                  IF( iinfo.LT.0 ) 
THEN 
  745                     result( ntest ) = ulpinv
 
  746                     result( ntest+1 ) = ulpinv
 
  747                     result( ntest+2 ) = ulpinv
 
  754               CALL zlacpy( 
' ', n, n, v, ldu, a, lda )
 
  756               CALL zhet21( 1, uplo, n, 0, a, ldu, wa1, d2, z, ldu, v,
 
  757     $                      ldu, tau, work, rwork, result( ntest ) )
 
  761     $                             il, iu, abstol, m2, wa2, z, ldu,
 
  762     $                             work, lwork, rwork, iwork, 
 
  763     $                             iwork( 5*n+1 ), iinfo )
 
  764               IF( iinfo.NE.0 ) 
THEN 
  765                  WRITE( nounit, fmt = 9999 )
 
  766     $               
'ZHEEVX_2STAGE(N,A,' // uplo //
 
  767     $               
')', iinfo, n, jtype, ioldsd
 
  769                  IF( iinfo.LT.0 ) 
THEN 
  772                     result( ntest ) = ulpinv
 
  782                  temp1 = max( temp1, abs( wa1( j ) ), abs( wa2( j ) ) )
 
  783                  temp2 = max( temp2, abs( wa1( j )-wa2( j ) ) )
 
  785               result( ntest ) = temp2 / max( unfl,
 
  786     $                           ulp*max( temp1, temp2 ) )
 
  789               CALL zlacpy( 
' ', n, n, v, ldu, a, lda )
 
  793               CALL zheevx( 
'V', 
'I', uplo, n, a, ldu, vl, vu, il, iu,
 
  794     $                      abstol, m2, wa2, z, ldu, work, lwork, rwork,
 
  795     $                      iwork, iwork( 5*n+1 ), iinfo )
 
  796               IF( iinfo.NE.0 ) 
THEN 
  797                  WRITE( nounit, fmt = 9999 )
'ZHEEVX(V,I,' // uplo //
 
  798     $               
')', iinfo, n, jtype, ioldsd
 
  800                  IF( iinfo.LT.0 ) 
THEN 
  803                     result( ntest ) = ulpinv
 
  810               CALL zlacpy( 
' ', n, n, v, ldu, a, lda )
 
  812               CALL zhet22( 1, uplo, n, m2, 0, a, ldu, wa2, d2, z, ldu,
 
  813     $                      v, ldu, tau, work, rwork, result( ntest ) )
 
  818     $                             il, iu, abstol, m3, wa3, z, ldu,
 
  819     $                             work, lwork, rwork, iwork, 
 
  820     $                             iwork( 5*n+1 ), iinfo )
 
  821               IF( iinfo.NE.0 ) 
THEN 
  822                  WRITE( nounit, fmt = 9999 )
 
  823     $               
'ZHEEVX_2STAGE(N,I,' // uplo //
 
  824     $               
')', iinfo, n, jtype, ioldsd
 
  826                  IF( iinfo.LT.0 ) 
THEN 
  829                     result( ntest ) = ulpinv
 
  836               temp1 = dsxt1( 1, wa2, m2, wa3, m3, abstol, ulp, unfl )
 
  837               temp2 = dsxt1( 1, wa3, m3, wa2, m2, abstol, ulp, unfl )
 
  839                  temp3 = max( abs( wa1( 1 ) ), abs( wa1( n ) ) )
 
  843               result( ntest ) = ( temp1+temp2 ) /
 
  844     $                           max( unfl, temp3*ulp )
 
  847               CALL zlacpy( 
' ', n, n, v, ldu, a, lda )
 
  851               CALL zheevx( 
'V', 
'V', uplo, n, a, ldu, vl, vu, il, iu,
 
  852     $                      abstol, m2, wa2, z, ldu, work, lwork, rwork,
 
  853     $                      iwork, iwork( 5*n+1 ), iinfo )
 
  854               IF( iinfo.NE.0 ) 
THEN 
  855                  WRITE( nounit, fmt = 9999 )
'ZHEEVX(V,V,' // uplo //
 
  856     $               
')', iinfo, n, jtype, ioldsd
 
  858                  IF( iinfo.LT.0 ) 
THEN 
  861                     result( ntest ) = ulpinv
 
  868               CALL zlacpy( 
' ', n, n, v, ldu, a, lda )
 
  870               CALL zhet22( 1, uplo, n, m2, 0, a, ldu, wa2, d2, z, ldu,
 
  871     $                      v, ldu, tau, work, rwork, result( ntest ) )
 
  876     $                             il, iu, abstol, m3, wa3, z, ldu,
 
  877     $                             work, lwork, rwork, iwork, 
 
  878     $                             iwork( 5*n+1 ), iinfo )
 
  879               IF( iinfo.NE.0 ) 
THEN 
  880                  WRITE( nounit, fmt = 9999 )
 
  881     $               
'ZHEEVX_2STAGE(N,V,' // uplo //
 
  882     $               
')', iinfo, n, jtype, ioldsd
 
  884                  IF( iinfo.LT.0 ) 
THEN 
  887                     result( ntest ) = ulpinv
 
  892               IF( m3.EQ.0 .AND. n.GT.0 ) 
THEN 
  893                  result( ntest ) = ulpinv
 
  899               temp1 = dsxt1( 1, wa2, m2, wa3, m3, abstol, ulp, unfl )
 
  900               temp2 = dsxt1( 1, wa3, m3, wa2, m2, abstol, ulp, unfl )
 
  902                  temp3 = max( abs( wa1( 1 ) ), abs( wa1( n ) ) )
 
  906               result( ntest ) = ( temp1+temp2 ) /
 
  907     $                           max( unfl, temp3*ulp )
 
  913               CALL zlacpy( 
' ', n, n, v, ldu, a, lda )
 
  918               IF( iuplo.EQ.1 ) 
THEN 
  922                        work( indx ) = a( i, j )
 
  930                        work( indx ) = a( i, j )
 
  937               indwrk = n*( n+1 ) / 2 + 1
 
  938               CALL zhpevd( 
'V', uplo, n, work, d1, z, ldu,
 
  939     $                      work( indwrk ), lwedc, rwork, lrwedc, iwork,
 
  941               IF( iinfo.NE.0 ) 
THEN 
  942                  WRITE( nounit, fmt = 9999 )
'ZHPEVD(V,' // uplo //
 
  943     $               
')', iinfo, n, jtype, ioldsd
 
  945                  IF( iinfo.LT.0 ) 
THEN 
  948                     result( ntest ) = ulpinv
 
  949                     result( ntest+1 ) = ulpinv
 
  950                     result( ntest+2 ) = ulpinv
 
  957               CALL zhet21( 1, uplo, n, 0, a, lda, d1, d2, z, ldu, v,
 
  958     $                      ldu, tau, work, rwork, result( ntest ) )
 
  960               IF( iuplo.EQ.1 ) 
THEN 
  964                        work( indx ) = a( i, j )
 
  972                        work( indx ) = a( i, j )
 
  979               indwrk = n*( n+1 ) / 2 + 1
 
  980               CALL zhpevd( 
'N', uplo, n, work, d3, z, ldu,
 
  981     $                      work( indwrk ), lwedc, rwork, lrwedc, iwork,
 
  983               IF( iinfo.NE.0 ) 
THEN 
  984                  WRITE( nounit, fmt = 9999 )
'ZHPEVD(N,' // uplo //
 
  985     $               
')', iinfo, n, jtype, ioldsd
 
  987                  IF( iinfo.LT.0 ) 
THEN 
  990                     result( ntest ) = ulpinv
 
 1000                  temp1 = max( temp1, abs( d1( j ) ), abs( d3( j ) ) )
 
 1001                  temp2 = max( temp2, abs( d1( j )-d3( j ) ) )
 
 1003               result( ntest ) = temp2 / max( unfl,
 
 1004     $                           ulp*max( temp1, temp2 ) )
 
 1010               IF( iuplo.EQ.1 ) 
THEN 
 1014                        work( indx ) = a( i, j )
 
 1022                        work( indx ) = a( i, j )
 
 1031                  temp3 = max( abs( d1( 1 ) ), abs( d1( n ) ) )
 
 1033                     vl = d1( il ) - max( half*( d1( il )-d1( il-1 ) ),
 
 1034     $                    ten*ulp*temp3, ten*rtunfl )
 
 1035                  ELSE IF( n.GT.0 ) 
THEN 
 1036                     vl = d1( 1 ) - max( half*( d1( n )-d1( 1 ) ),
 
 1037     $                    ten*ulp*temp3, ten*rtunfl )
 
 1040                     vu = d1( iu ) + max( half*( d1( iu+1 )-d1( iu ) ),
 
 1041     $                    ten*ulp*temp3, ten*rtunfl )
 
 1042                  ELSE IF( n.GT.0 ) 
THEN 
 1043                     vu = d1( n ) + max( half*( d1( n )-d1( 1 ) ),
 
 1044     $                    ten*ulp*temp3, ten*rtunfl )
 
 1052               CALL zhpevx( 
'V', 
'A', uplo, n, work, vl, vu, il, iu,
 
 1053     $                      abstol, m, wa1, z, ldu, v, rwork, iwork,
 
 1054     $                      iwork( 5*n+1 ), iinfo )
 
 1055               IF( iinfo.NE.0 ) 
THEN 
 1056                  WRITE( nounit, fmt = 9999 )
'ZHPEVX(V,A,' // uplo //
 
 1057     $               
')', iinfo, n, jtype, ioldsd
 
 1059                  IF( iinfo.LT.0 ) 
THEN 
 1062                     result( ntest ) = ulpinv
 
 1063                     result( ntest+1 ) = ulpinv
 
 1064                     result( ntest+2 ) = ulpinv
 
 1071               CALL zhet21( 1, uplo, n, 0, a, ldu, wa1, d2, z, ldu, v,
 
 1072     $                      ldu, tau, work, rwork, result( ntest ) )
 
 1076               IF( iuplo.EQ.1 ) 
THEN 
 1080                        work( indx ) = a( i, j )
 
 1088                        work( indx ) = a( i, j )
 
 1094               CALL zhpevx( 
'N', 
'A', uplo, n, work, vl, vu, il, iu,
 
 1095     $                      abstol, m2, wa2, z, ldu, v, rwork, iwork,
 
 1096     $                      iwork( 5*n+1 ), iinfo )
 
 1097               IF( iinfo.NE.0 ) 
THEN 
 1098                  WRITE( nounit, fmt = 9999 )
'ZHPEVX(N,A,' // uplo //
 
 1099     $               
')', iinfo, n, jtype, ioldsd
 
 1101                  IF( iinfo.LT.0 ) 
THEN 
 1104                     result( ntest ) = ulpinv
 
 1114                  temp1 = max( temp1, abs( wa1( j ) ), abs( wa2( j ) ) )
 
 1115                  temp2 = max( temp2, abs( wa1( j )-wa2( j ) ) )
 
 1117               result( ntest ) = temp2 / max( unfl,
 
 1118     $                           ulp*max( temp1, temp2 ) )
 
 1122               IF( iuplo.EQ.1 ) 
THEN 
 1126                        work( indx ) = a( i, j )
 
 1134                        work( indx ) = a( i, j )
 
 1140               CALL zhpevx( 
'V', 
'I', uplo, n, work, vl, vu, il, iu,
 
 1141     $                      abstol, m2, wa2, z, ldu, v, rwork, iwork,
 
 1142     $                      iwork( 5*n+1 ), iinfo )
 
 1143               IF( iinfo.NE.0 ) 
THEN 
 1144                  WRITE( nounit, fmt = 9999 )
'ZHPEVX(V,I,' // uplo //
 
 1145     $               
')', iinfo, n, jtype, ioldsd
 
 1147                  IF( iinfo.LT.0 ) 
THEN 
 1150                     result( ntest ) = ulpinv
 
 1151                     result( ntest+1 ) = ulpinv
 
 1152                     result( ntest+2 ) = ulpinv
 
 1159               CALL zhet22( 1, uplo, n, m2, 0, a, ldu, wa2, d2, z, ldu,
 
 1160     $                      v, ldu, tau, work, rwork, result( ntest ) )
 
 1164               IF( iuplo.EQ.1 ) 
THEN 
 1168                        work( indx ) = a( i, j )
 
 1176                        work( indx ) = a( i, j )
 
 1182               CALL zhpevx( 
'N', 
'I', uplo, n, work, vl, vu, il, iu,
 
 1183     $                      abstol, m3, wa3, z, ldu, v, rwork, iwork,
 
 1184     $                      iwork( 5*n+1 ), iinfo )
 
 1185               IF( iinfo.NE.0 ) 
THEN 
 1186                  WRITE( nounit, fmt = 9999 )
'ZHPEVX(N,I,' // uplo //
 
 1187     $               
')', iinfo, n, jtype, ioldsd
 
 1189                  IF( iinfo.LT.0 ) 
THEN 
 1192                     result( ntest ) = ulpinv
 
 1199               temp1 = dsxt1( 1, wa2, m2, wa3, m3, abstol, ulp, unfl )
 
 1200               temp2 = dsxt1( 1, wa3, m3, wa2, m2, abstol, ulp, unfl )
 
 1202                  temp3 = max( abs( wa1( 1 ) ), abs( wa1( n ) ) )
 
 1206               result( ntest ) = ( temp1+temp2 ) /
 
 1207     $                           max( unfl, temp3*ulp )
 
 1211               IF( iuplo.EQ.1 ) 
THEN 
 1215                        work( indx ) = a( i, j )
 
 1223                        work( indx ) = a( i, j )
 
 1229               CALL zhpevx( 
'V', 
'V', uplo, n, work, vl, vu, il, iu,
 
 1230     $                      abstol, m2, wa2, z, ldu, v, rwork, iwork,
 
 1231     $                      iwork( 5*n+1 ), iinfo )
 
 1232               IF( iinfo.NE.0 ) 
THEN 
 1233                  WRITE( nounit, fmt = 9999 )
'ZHPEVX(V,V,' // uplo //
 
 1234     $               
')', iinfo, n, jtype, ioldsd
 
 1236                  IF( iinfo.LT.0 ) 
THEN 
 1239                     result( ntest ) = ulpinv
 
 1240                     result( ntest+1 ) = ulpinv
 
 1241                     result( ntest+2 ) = ulpinv
 
 1248               CALL zhet22( 1, uplo, n, m2, 0, a, ldu, wa2, d2, z, ldu,
 
 1249     $                      v, ldu, tau, work, rwork, result( ntest ) )
 
 1253               IF( iuplo.EQ.1 ) 
THEN 
 1257                        work( indx ) = a( i, j )
 
 1265                        work( indx ) = a( i, j )
 
 1271               CALL zhpevx( 
'N', 
'V', uplo, n, work, vl, vu, il, iu,
 
 1272     $                      abstol, m3, wa3, z, ldu, v, rwork, iwork,
 
 1273     $                      iwork( 5*n+1 ), iinfo )
 
 1274               IF( iinfo.NE.0 ) 
THEN 
 1275                  WRITE( nounit, fmt = 9999 )
'ZHPEVX(N,V,' // uplo //
 
 1276     $               
')', iinfo, n, jtype, ioldsd
 
 1278                  IF( iinfo.LT.0 ) 
THEN 
 1281                     result( ntest ) = ulpinv
 
 1286               IF( m3.EQ.0 .AND. n.GT.0 ) 
THEN 
 1287                  result( ntest ) = ulpinv
 
 1293               temp1 = dsxt1( 1, wa2, m2, wa3, m3, abstol, ulp, unfl )
 
 1294               temp2 = dsxt1( 1, wa3, m3, wa2, m2, abstol, ulp, unfl )
 
 1296                  temp3 = max( abs( wa1( 1 ) ), abs( wa1( n ) ) )
 
 1300               result( ntest ) = ( temp1+temp2 ) /
 
 1301     $                           max( unfl, temp3*ulp )
 
 1307               IF( jtype.LE.7 ) 
THEN 
 1309               ELSE IF( jtype.GE.8 .AND. jtype.LE.15 ) 
THEN 
 1318               IF( iuplo.EQ.1 ) 
THEN 
 1320                     DO 560 i = max( 1, j-kd ), j
 
 1321                        v( kd+1+i-j, j ) = a( i, j )
 
 1326                     DO 580 i = j, min( n, j+kd )
 
 1327                        v( 1+i-j, j ) = a( i, j )
 
 1333               CALL zhbevd( 
'V', uplo, n, kd, v, ldu, d1, z, ldu, work,
 
 1334     $                      lwedc, rwork, lrwedc, iwork, liwedc, iinfo )
 
 1335               IF( iinfo.NE.0 ) 
THEN 
 1336                  WRITE( nounit, fmt = 9998 )
'ZHBEVD(V,' // uplo //
 
 1337     $               
')', iinfo, n, kd, jtype, ioldsd
 
 1339                  IF( iinfo.LT.0 ) 
THEN 
 1342                     result( ntest ) = ulpinv
 
 1343                     result( ntest+1 ) = ulpinv
 
 1344                     result( ntest+2 ) = ulpinv
 
 1351               CALL zhet21( 1, uplo, n, 0, a, lda, d1, d2, z, ldu, v,
 
 1352     $                      ldu, tau, work, rwork, result( ntest ) )
 
 1354               IF( iuplo.EQ.1 ) 
THEN 
 1356                     DO 600 i = max( 1, j-kd ), j
 
 1357                        v( kd+1+i-j, j ) = a( i, j )
 
 1362                     DO 620 i = j, min( n, j+kd )
 
 1363                        v( 1+i-j, j ) = a( i, j )
 
 1370     $                             z, ldu, work, lwork, rwork,
 
 1371     $                             lrwedc, iwork, liwedc, iinfo )
 
 1372               IF( iinfo.NE.0 ) 
THEN 
 1373                  WRITE( nounit, fmt = 9998 )
 
 1374     $               
'ZHBEVD_2STAGE(N,' // uplo //
 
 1375     $               
')', iinfo, n, kd, jtype, ioldsd
 
 1377                  IF( iinfo.LT.0 ) 
THEN 
 1380                     result( ntest ) = ulpinv
 
 1390                  temp1 = max( temp1, abs( d1( j ) ), abs( d3( j ) ) )
 
 1391                  temp2 = max( temp2, abs( d1( j )-d3( j ) ) )
 
 1393               result( ntest ) = temp2 / max( unfl,
 
 1394     $                           ulp*max( temp1, temp2 ) )
 
 1400               IF( iuplo.EQ.1 ) 
THEN 
 1402                     DO 660 i = max( 1, j-kd ), j
 
 1403                        v( kd+1+i-j, j ) = a( i, j )
 
 1408                     DO 680 i = j, min( n, j+kd )
 
 1409                        v( 1+i-j, j ) = a( i, j )
 
 1415               CALL zhbevx( 
'V', 
'A', uplo, n, kd, v, ldu, u, ldu, vl,
 
 1416     $                      vu, il, iu, abstol, m, wa1, z, ldu, work,
 
 1417     $                      rwork, iwork, iwork( 5*n+1 ), iinfo )
 
 1418               IF( iinfo.NE.0 ) 
THEN 
 1419                  WRITE( nounit, fmt = 9999 )
'ZHBEVX(V,A,' // uplo //
 
 1420     $               
')', iinfo, n, kd, jtype, ioldsd
 
 1422                  IF( iinfo.LT.0 ) 
THEN 
 1425                     result( ntest ) = ulpinv
 
 1426                     result( ntest+1 ) = ulpinv
 
 1427                     result( ntest+2 ) = ulpinv
 
 1434               CALL zhet21( 1, uplo, n, 0, a, ldu, wa1, d2, z, ldu, v,
 
 1435     $                      ldu, tau, work, rwork, result( ntest ) )
 
 1439               IF( iuplo.EQ.1 ) 
THEN 
 1441                     DO 700 i = max( 1, j-kd ), j
 
 1442                        v( kd+1+i-j, j ) = a( i, j )
 
 1447                     DO 720 i = j, min( n, j+kd )
 
 1448                        v( 1+i-j, j ) = a( i, j )
 
 1454     $                             u, ldu, vl, vu, il, iu, abstol,
 
 1455     $                             m2, wa2, z, ldu, work, lwork,
 
 1456     $                             rwork, iwork, iwork( 5*n+1 ), iinfo )
 
 1457               IF( iinfo.NE.0 ) 
THEN 
 1458                  WRITE( nounit, fmt = 9998 )
 
 1459     $               
'ZHBEVX_2STAGE(N,A,' // uplo //
 
 1460     $               
')', iinfo, n, kd, jtype, ioldsd
 
 1462                  IF( iinfo.LT.0 ) 
THEN 
 1465                     result( ntest ) = ulpinv
 
 1475                  temp1 = max( temp1, abs( wa1( j ) ), abs( wa2( j ) ) )
 
 1476                  temp2 = max( temp2, abs( wa1( j )-wa2( j ) ) )
 
 1478               result( ntest ) = temp2 / max( unfl,
 
 1479     $                           ulp*max( temp1, temp2 ) )
 
 1486               IF( iuplo.EQ.1 ) 
THEN 
 1488                     DO 760 i = max( 1, j-kd ), j
 
 1489                        v( kd+1+i-j, j ) = a( i, j )
 
 1494                     DO 780 i = j, min( n, j+kd )
 
 1495                        v( 1+i-j, j ) = a( i, j )
 
 1500               CALL zhbevx( 
'V', 
'I', uplo, n, kd, v, ldu, u, ldu, vl,
 
 1501     $                      vu, il, iu, abstol, m2, wa2, z, ldu, work,
 
 1502     $                      rwork, iwork, iwork( 5*n+1 ), iinfo )
 
 1503               IF( iinfo.NE.0 ) 
THEN 
 1504                  WRITE( nounit, fmt = 9998 )
'ZHBEVX(V,I,' // uplo //
 
 1505     $               
')', iinfo, n, kd, jtype, ioldsd
 
 1507                  IF( iinfo.LT.0 ) 
THEN 
 1510                     result( ntest ) = ulpinv
 
 1511                     result( ntest+1 ) = ulpinv
 
 1512                     result( ntest+2 ) = ulpinv
 
 1519               CALL zhet22( 1, uplo, n, m2, 0, a, ldu, wa2, d2, z, ldu,
 
 1520     $                      v, ldu, tau, work, rwork, result( ntest ) )
 
 1524               IF( iuplo.EQ.1 ) 
THEN 
 1526                     DO 800 i = max( 1, j-kd ), j
 
 1527                        v( kd+1+i-j, j ) = a( i, j )
 
 1532                     DO 820 i = j, min( n, j+kd )
 
 1533                        v( 1+i-j, j ) = a( i, j )
 
 1538     $                             u, ldu, vl, vu, il, iu, abstol,
 
 1539     $                             m3, wa3, z, ldu, work, lwork,
 
 1540     $                             rwork, iwork, iwork( 5*n+1 ), iinfo )
 
 1541               IF( iinfo.NE.0 ) 
THEN 
 1542                  WRITE( nounit, fmt = 9998 )
 
 1543     $               
'ZHBEVX_2STAGE(N,I,' // uplo //
 
 1544     $               
')', iinfo, n, kd, jtype, ioldsd
 
 1546                  IF( iinfo.LT.0 ) 
THEN 
 1549                     result( ntest ) = ulpinv
 
 1556               temp1 = dsxt1( 1, wa2, m2, wa3, m3, abstol, ulp, unfl )
 
 1557               temp2 = dsxt1( 1, wa3, m3, wa2, m2, abstol, ulp, unfl )
 
 1559                  temp3 = max( abs( wa1( 1 ) ), abs( wa1( n ) ) )
 
 1563               result( ntest ) = ( temp1+temp2 ) /
 
 1564     $                           max( unfl, temp3*ulp )
 
 1571               IF( iuplo.EQ.1 ) 
THEN 
 1573                     DO 850 i = max( 1, j-kd ), j
 
 1574                        v( kd+1+i-j, j ) = a( i, j )
 
 1579                     DO 870 i = j, min( n, j+kd )
 
 1580                        v( 1+i-j, j ) = a( i, j )
 
 1584               CALL zhbevx( 
'V', 
'V', uplo, n, kd, v, ldu, u, ldu, vl,
 
 1585     $                      vu, il, iu, abstol, m2, wa2, z, ldu, work,
 
 1586     $                      rwork, iwork, iwork( 5*n+1 ), iinfo )
 
 1587               IF( iinfo.NE.0 ) 
THEN 
 1588                  WRITE( nounit, fmt = 9998 )
'ZHBEVX(V,V,' // uplo //
 
 1589     $               
')', iinfo, n, kd, jtype, ioldsd
 
 1591                  IF( iinfo.LT.0 ) 
THEN 
 1594                     result( ntest ) = ulpinv
 
 1595                     result( ntest+1 ) = ulpinv
 
 1596                     result( ntest+2 ) = ulpinv
 
 1603               CALL zhet22( 1, uplo, n, m2, 0, a, ldu, wa2, d2, z, ldu,
 
 1604     $                      v, ldu, tau, work, rwork, result( ntest ) )
 
 1608               IF( iuplo.EQ.1 ) 
THEN 
 1610                     DO 890 i = max( 1, j-kd ), j
 
 1611                        v( kd+1+i-j, j ) = a( i, j )
 
 1616                     DO 910 i = j, min( n, j+kd )
 
 1617                        v( 1+i-j, j ) = a( i, j )
 
 1622     $                             u, ldu, vl, vu, il, iu, abstol,
 
 1623     $                             m3, wa3, z, ldu, work, lwork,
 
 1624     $                             rwork, iwork, iwork( 5*n+1 ), iinfo )
 
 1625               IF( iinfo.NE.0 ) 
THEN 
 1626                  WRITE( nounit, fmt = 9998 )
 
 1627     $               
'ZHBEVX_2STAGE(N,V,' // uplo //
 
 1628     $               
')', iinfo, n, kd, jtype, ioldsd
 
 1630                  IF( iinfo.LT.0 ) 
THEN 
 1633                     result( ntest ) = ulpinv
 
 1638               IF( m3.EQ.0 .AND. n.GT.0 ) 
THEN 
 1639                  result( ntest ) = ulpinv
 
 1645               temp1 = dsxt1( 1, wa2, m2, wa3, m3, abstol, ulp, unfl )
 
 1646               temp2 = dsxt1( 1, wa3, m3, wa2, m2, abstol, ulp, unfl )
 
 1648                  temp3 = max( abs( wa1( 1 ) ), abs( wa1( n ) ) )
 
 1652               result( ntest ) = ( temp1+temp2 ) /
 
 1653     $                           max( unfl, temp3*ulp )
 
 1659               CALL zlacpy( 
' ', n, n, a, lda, v, ldu )
 
 1662               CALL zheev( 
'V', uplo, n, a, ldu, d1, work, lwork, rwork,
 
 1664               IF( iinfo.NE.0 ) 
THEN 
 1665                  WRITE( nounit, fmt = 9999 )
'ZHEEV(V,' // uplo // 
')',
 
 1666     $               iinfo, n, jtype, ioldsd
 
 1668                  IF( iinfo.LT.0 ) 
THEN 
 1671                     result( ntest ) = ulpinv
 
 1672                     result( ntest+1 ) = ulpinv
 
 1673                     result( ntest+2 ) = ulpinv
 
 1680               CALL zhet21( 1, uplo, n, 0, v, ldu, d1, d2, a, ldu, z,
 
 1681     $                      ldu, tau, work, rwork, result( ntest ) )
 
 1683               CALL zlacpy( 
' ', n, n, v, ldu, a, lda )
 
 1687     $                            work, lwork, rwork, iinfo )
 
 1688               IF( iinfo.NE.0 ) 
THEN 
 1689                  WRITE( nounit, fmt = 9999 )
 
 1690     $               
'ZHEEV_2STAGE(N,' // uplo // 
')',
 
 1691     $               iinfo, n, jtype, ioldsd
 
 1693                  IF( iinfo.LT.0 ) 
THEN 
 1696                     result( ntest ) = ulpinv
 
 1706                  temp1 = max( temp1, abs( d1( j ) ), abs( d3( j ) ) )
 
 1707                  temp2 = max( temp2, abs( d1( j )-d3( j ) ) )
 
 1709               result( ntest ) = temp2 / max( unfl,
 
 1710     $                           ulp*max( temp1, temp2 ) )
 
 1714               CALL zlacpy( 
' ', n, n, v, ldu, a, lda )
 
 1721               IF( iuplo.EQ.1 ) 
THEN 
 1725                        work( indx ) = a( i, j )
 
 1733                        work( indx ) = a( i, j )
 
 1740               indwrk = n*( n+1 ) / 2 + 1
 
 1741               CALL zhpev( 
'V', uplo, n, work, d1, z, ldu,
 
 1742     $                     work( indwrk ), rwork, iinfo )
 
 1743               IF( iinfo.NE.0 ) 
THEN 
 1744                  WRITE( nounit, fmt = 9999 )
'ZHPEV(V,' // uplo // 
')',
 
 1745     $               iinfo, n, jtype, ioldsd
 
 1747                  IF( iinfo.LT.0 ) 
THEN 
 1750                     result( ntest ) = ulpinv
 
 1751                     result( ntest+1 ) = ulpinv
 
 1752                     result( ntest+2 ) = ulpinv
 
 1759               CALL zhet21( 1, uplo, n, 0, a, lda, d1, d2, z, ldu, v,
 
 1760     $                      ldu, tau, work, rwork, result( ntest ) )
 
 1762               IF( iuplo.EQ.1 ) 
THEN 
 1766                        work( indx ) = a( i, j )
 
 1774                        work( indx ) = a( i, j )
 
 1781               indwrk = n*( n+1 ) / 2 + 1
 
 1782               CALL zhpev( 
'N', uplo, n, work, d3, z, ldu,
 
 1783     $                     work( indwrk ), rwork, iinfo )
 
 1784               IF( iinfo.NE.0 ) 
THEN 
 1785                  WRITE( nounit, fmt = 9999 )
'ZHPEV(N,' // uplo // 
')',
 
 1786     $               iinfo, n, jtype, ioldsd
 
 1788                  IF( iinfo.LT.0 ) 
THEN 
 1791                     result( ntest ) = ulpinv
 
 1801                  temp1 = max( temp1, abs( d1( j ) ), abs( d3( j ) ) )
 
 1802                  temp2 = max( temp2, abs( d1( j )-d3( j ) ) )
 
 1804               result( ntest ) = temp2 / max( unfl,
 
 1805     $                           ulp*max( temp1, temp2 ) )
 
 1811               IF( jtype.LE.7 ) 
THEN 
 1813               ELSE IF( jtype.GE.8 .AND. jtype.LE.15 ) 
THEN 
 1822               IF( iuplo.EQ.1 ) 
THEN 
 1824                     DO 1060 i = max( 1, j-kd ), j
 
 1825                        v( kd+1+i-j, j ) = a( i, j )
 
 1830                     DO 1080 i = j, min( n, j+kd )
 
 1831                        v( 1+i-j, j ) = a( i, j )
 
 1837               CALL zhbev( 
'V', uplo, n, kd, v, ldu, d1, z, ldu, work,
 
 1839               IF( iinfo.NE.0 ) 
THEN 
 1840                  WRITE( nounit, fmt = 9998 )
'ZHBEV(V,' // uplo // 
')',
 
 1841     $               iinfo, n, kd, jtype, ioldsd
 
 1843                  IF( iinfo.LT.0 ) 
THEN 
 1846                     result( ntest ) = ulpinv
 
 1847                     result( ntest+1 ) = ulpinv
 
 1848                     result( ntest+2 ) = ulpinv
 
 1855               CALL zhet21( 1, uplo, n, 0, a, lda, d1, d2, z, ldu, v,
 
 1856     $                      ldu, tau, work, rwork, result( ntest ) )
 
 1858               IF( iuplo.EQ.1 ) 
THEN 
 1860                     DO 1100 i = max( 1, j-kd ), j
 
 1861                        v( kd+1+i-j, j ) = a( i, j )
 
 1866                     DO 1120 i = j, min( n, j+kd )
 
 1867                        v( 1+i-j, j ) = a( i, j )
 
 1873               CALL zhbev_2stage( 
'N', uplo, n, kd, v, ldu, d3, z, ldu,
 
 1874     $                            work, lwork, rwork, iinfo )
 
 1875               IF( iinfo.NE.0 ) 
THEN 
 1876                  WRITE( nounit, fmt = 9998 )
 
 1877     $               
'ZHBEV_2STAGE(N,' // uplo // 
')',
 
 1878     $               iinfo, n, kd, jtype, ioldsd
 
 1880                  IF( iinfo.LT.0 ) 
THEN 
 1883                     result( ntest ) = ulpinv
 
 1895                  temp1 = max( temp1, abs( d1( j ) ), abs( d3( j ) ) )
 
 1896                  temp2 = max( temp2, abs( d1( j )-d3( j ) ) )
 
 1898               result( ntest ) = temp2 / max( unfl,
 
 1899     $                           ulp*max( temp1, temp2 ) )
 
 1901               CALL zlacpy( 
' ', n, n, a, lda, v, ldu )
 
 1903               CALL zheevr( 
'V', 
'A', uplo, n, a, ldu, vl, vu, il, iu,
 
 1904     $                      abstol, m, wa1, z, ldu, iwork, work, lwork,
 
 1905     $                      rwork, lrwork, iwork( 2*n+1 ), liwork-2*n,
 
 1907               IF( iinfo.NE.0 ) 
THEN 
 1908                  WRITE( nounit, fmt = 9999 )
'ZHEEVR(V,A,' // uplo //
 
 1909     $               
')', iinfo, n, jtype, ioldsd
 
 1911                  IF( iinfo.LT.0 ) 
THEN 
 1914                     result( ntest ) = ulpinv
 
 1915                     result( ntest+1 ) = ulpinv
 
 1916                     result( ntest+2 ) = ulpinv
 
 1923               CALL zlacpy( 
' ', n, n, v, ldu, a, lda )
 
 1925               CALL zhet21( 1, uplo, n, 0, a, ldu, wa1, d2, z, ldu, v,
 
 1926     $                      ldu, tau, work, rwork, result( ntest ) )
 
 1930     $                             il, iu, abstol, m2, wa2, z, ldu,
 
 1931     $                             iwork, work, lwork, rwork, lrwork,
 
 1932     $                             iwork( 2*n+1 ), liwork-2*n, iinfo )
 
 1933               IF( iinfo.NE.0 ) 
THEN 
 1934                  WRITE( nounit, fmt = 9999 )
 
 1935     $               
'ZHEEVR_2STAGE(N,A,' // uplo //
 
 1936     $               
')', iinfo, n, jtype, ioldsd
 
 1938                  IF( iinfo.LT.0 ) 
THEN 
 1941                     result( ntest ) = ulpinv
 
 1951                  temp1 = max( temp1, abs( wa1( j ) ), abs( wa2( j ) ) )
 
 1952                  temp2 = max( temp2, abs( wa1( j )-wa2( j ) ) )
 
 1954               result( ntest ) = temp2 / max( unfl,
 
 1955     $                           ulp*max( temp1, temp2 ) )
 
 1960               CALL zlacpy( 
' ', n, n, v, ldu, a, lda )
 
 1961               CALL zheevr( 
'V', 
'I', uplo, n, a, ldu, vl, vu, il, iu,
 
 1962     $                      abstol, m2, wa2, z, ldu, iwork, work, lwork,
 
 1963     $                      rwork, lrwork, iwork( 2*n+1 ), liwork-2*n,
 
 1965               IF( iinfo.NE.0 ) 
THEN 
 1966                  WRITE( nounit, fmt = 9999 )
'ZHEEVR(V,I,' // uplo //
 
 1967     $               
')', iinfo, n, jtype, ioldsd
 
 1969                  IF( iinfo.LT.0 ) 
THEN 
 1972                     result( ntest ) = ulpinv
 
 1973                     result( ntest+1 ) = ulpinv
 
 1974                     result( ntest+2 ) = ulpinv
 
 1981               CALL zlacpy( 
' ', n, n, v, ldu, a, lda )
 
 1983               CALL zhet22( 1, uplo, n, m2, 0, a, ldu, wa2, d2, z, ldu,
 
 1984     $                      v, ldu, tau, work, rwork, result( ntest ) )
 
 1987               CALL zlacpy( 
' ', n, n, v, ldu, a, lda )
 
 1989     $                             il, iu, abstol, m3, wa3, z, ldu,
 
 1990     $                             iwork, work, lwork, rwork, lrwork,
 
 1991     $                             iwork( 2*n+1 ), liwork-2*n, iinfo )
 
 1992               IF( iinfo.NE.0 ) 
THEN 
 1993                  WRITE( nounit, fmt = 9999 )
 
 1994     $               
'ZHEEVR_2STAGE(N,I,' // uplo //
 
 1995     $               
')', iinfo, n, jtype, ioldsd
 
 1997                  IF( iinfo.LT.0 ) 
THEN 
 2000                     result( ntest ) = ulpinv
 
 2007               temp1 = dsxt1( 1, wa2, m2, wa3, m3, abstol, ulp, unfl )
 
 2008               temp2 = dsxt1( 1, wa3, m3, wa2, m2, abstol, ulp, unfl )
 
 2009               result( ntest ) = ( temp1+temp2 ) /
 
 2010     $                           max( unfl, ulp*temp3 )
 
 2014               CALL zlacpy( 
' ', n, n, v, ldu, a, lda )
 
 2015               CALL zheevr( 
'V', 
'V', uplo, n, a, ldu, vl, vu, il, iu,
 
 2016     $                      abstol, m2, wa2, z, ldu, iwork, work, lwork,
 
 2017     $                      rwork, lrwork, iwork( 2*n+1 ), liwork-2*n,
 
 2019               IF( iinfo.NE.0 ) 
THEN 
 2020                  WRITE( nounit, fmt = 9999 )
'ZHEEVR(V,V,' // uplo //
 
 2021     $               
')', iinfo, n, jtype, ioldsd
 
 2023                  IF( iinfo.LT.0 ) 
THEN 
 2026                     result( ntest ) = ulpinv
 
 2027                     result( ntest+1 ) = ulpinv
 
 2028                     result( ntest+2 ) = ulpinv
 
 2035               CALL zlacpy( 
' ', n, n, v, ldu, a, lda )
 
 2037               CALL zhet22( 1, uplo, n, m2, 0, a, ldu, wa2, d2, z, ldu,
 
 2038     $                      v, ldu, tau, work, rwork, result( ntest ) )
 
 2041               CALL zlacpy( 
' ', n, n, v, ldu, a, lda )
 
 2043     $                             il, iu, abstol, m3, wa3, z, ldu,
 
 2044     $                             iwork, work, lwork, rwork, lrwork,
 
 2045     $                             iwork( 2*n+1 ), liwork-2*n, iinfo )
 
 2046               IF( iinfo.NE.0 ) 
THEN 
 2047                  WRITE( nounit, fmt = 9999 )
 
 2048     $               
'ZHEEVR_2STAGE(N,V,' // uplo //
 
 2049     $               
')', iinfo, n, jtype, ioldsd
 
 2051                  IF( iinfo.LT.0 ) 
THEN 
 2054                     result( ntest ) = ulpinv
 
 2059               IF( m3.EQ.0 .AND. n.GT.0 ) 
THEN 
 2060                  result( ntest ) = ulpinv
 
 2066               temp1 = dsxt1( 1, wa2, m2, wa3, m3, abstol, ulp, unfl )
 
 2067               temp2 = dsxt1( 1, wa3, m3, wa2, m2, abstol, ulp, unfl )
 
 2069                  temp3 = max( abs( wa1( 1 ) ), abs( wa1( n ) ) )
 
 2073               result( ntest ) = ( temp1+temp2 ) /
 
 2074     $                           max( unfl, temp3*ulp )
 
 2076               CALL zlacpy( 
' ', n, n, v, ldu, a, lda )
 
 2090            ntestt = ntestt + ntest
 
 2091            CALL dlafts( 
'ZST', n, n, jtype, ntest, result, ioldsd,
 
 2092     $                   thresh, nounit, nerrs )
 
 2099      CALL alasvm( 
'ZST', nounit, nerrs, ntestt, 0 )
 
 2101 9999 
FORMAT( 
' ZDRVST2STG: ', a, 
' returned INFO=', i6, / 9x, 
'N=', i6,
 
 2102     $      
', JTYPE=', i6, 
', ISEED=(', 3( i5, 
',' ), i5, 
')' )
 
 2103 9998 
FORMAT( 
' ZDRVST2STG: ', a, 
' returned INFO=', i6, / 9x, 
'N=', i6,
 
 2104     $      
', KD=', i6, 
', JTYPE=', i6, 
', ISEED=(', 3( i5, 
',' ), i5,