154       SUBROUTINE cdrvsy_aa( DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR,
 
  155      $                      NMAX, A, AFAC, AINV, B, X, XACT, WORK,
 
  156      $                      RWORK, IWORK, NOUT )
 
  165       INTEGER            nmax, nn, nout, nrhs
 
  170       INTEGER            IWORK( * ), NVAL( * )
 
  172       COMPLEX            A( * ), AFAC( * ), AINV( * ), B( * ),
 
  173      $                   work( * ), x( * ), xact( * )
 
  180       PARAMETER          ( ZERO = 0.0d+0 )
 
  182       parameter( czero = 0.0e+0 )
 
  183       INTEGER            NTYPES, NTESTS
 
  184       parameter( ntypes = 10, ntests = 3 )
 
  186       parameter( nfact = 2 )
 
  190       CHARACTER          DIST, FACT, 
TYPE, UPLO, XTYPE
 
  191       CHARACTER*3        MATPATH, PATH
 
  192       INTEGER            I, I1, I2, IFACT, IMAT, IN, INFO, IOFF, IUPLO,
 
  193      $                   izero, j, k, kl, ku, lda, lwork, mode, n,
 
  194      $                   nb, nbmin, nerrs, nfail, nimat, nrun, nt
 
  198       CHARACTER          FACTS( NFACT ), UPLOS( 2 )
 
  199       INTEGER            ISEED( 4 ), ISEEDY( 4 )
 
  200       REAL   RESULT( NTESTS )
 
  204       EXTERNAL           DGET06, CLANSY
 
  217       COMMON             / infoc / infot, nunit, ok, lerr
 
  218       COMMON             / srnamc / srnamt
 
  224       DATA               iseedy / 1988, 1989, 1990, 1991 /
 
  225       DATA               uplos / 
'U', 
'L' / , facts / 
'F', 
'N' /
 
  233       path( 1: 1 ) = 
'Complex precision' 
  238       matpath( 1: 1 ) = 
'Complex precision' 
  239       matpath( 2: 3 ) = 
'SY' 
  245          iseed( i ) = iseedy( i )
 
  251      $   
CALL cerrvx( path, nout )
 
  265          lwork = max( 3*n-2, n*(1+nb) )
 
  266          lwork = max( lwork, 1 )
 
  273          DO 170 imat = 1, nimat
 
  277             IF( .NOT.dotype( imat ) )
 
  282             zerot = imat.GE.3 .AND. imat.LE.6
 
  283             IF( zerot .AND. n.LT.imat-2 )
 
  289                uplo = uplos( iuplo )
 
  294                CALL clatb4( matpath, imat, n, n, 
TYPE, kl, ku, anorm,
 
  295      $                      mode, cndnum, dist )
 
  298                CALL clatms( n, n, dist, iseed, 
TYPE, rwork, mode,
 
  299      $                      cndnum, anorm, kl, ku, uplo, a, lda, work,
 
  305                   CALL alaerh( path, 
'CLATMS', info, 0, uplo, n, n, -1,
 
  306      $                         -1, -1, imat, nfail, nerrs, nout )
 
  316                   ELSE IF( imat.EQ.4 ) 
THEN 
  326                      IF( iuplo.EQ.1 ) 
THEN 
  327                         ioff = ( izero-1 )*lda
 
  328                         DO 20 i = 1, izero - 1
 
  338                         DO 40 i = 1, izero - 1
 
  349                      IF( iuplo.EQ.1 ) 
THEN 
  378                DO 150 ifact = 1, nfact
 
  382                   fact = facts( ifact )
 
  387                   CALL clarhs( matpath, xtype, uplo, 
' ', n, n, kl, ku,
 
  388      $                         nrhs, a, lda, xact, lda, b, lda, iseed,
 
  394                   IF( ifact.EQ.2 ) 
THEN 
  395                      CALL clacpy( uplo, n, n, a, lda, afac, lda )
 
  396                      CALL clacpy( 
'Full', n, nrhs, b, lda, x, lda )
 
  401                      CALL csysv_aa( uplo, n, nrhs, afac, lda, iwork,
 
  402      $                                 x, lda, work, lwork, info )
 
  407                      IF( izero.GT.0 ) 
THEN 
  413                         ELSE IF( iwork( j ).EQ.k ) 
THEN 
  427                         CALL alaerh( path, 
'CSYSV_AA ', info, k,
 
  428      $                               uplo, n, n, -1, -1, nrhs,
 
  429      $                               imat, nfail, nerrs, nout )
 
  431                      ELSE IF( info.NE.0 ) 
THEN 
  438                      CALL csyt01_aa( uplo, n, a, lda, afac, lda,
 
  439      $                               iwork, ainv, lda, rwork,
 
  444                      CALL clacpy( 
'Full', n, nrhs, b, lda, work, lda )
 
  445                      CALL csyt02( uplo, n, nrhs, a, lda, x, lda, work,
 
  446      $                            lda, rwork, result( 2 ) )
 
  453                         IF( result( k ).GE.thresh ) 
THEN 
  454                            IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
 
  455      $                        
CALL aladhd( nout, path )
 
  456                            WRITE( nout, fmt = 9999 )
'CSYSV_AA ',
 
  457      $                        uplo, n, imat, k, result( k )
 
  473       CALL alasvm( path, nout, nfail, nrun, nerrs )
 
  475  9999 
FORMAT( 1x, a, 
', UPLO=''', a1, 
''', N =', i5, 
', type ', i2,
 
  476      $      
', test ', i2, 
', ratio =', g12.5 )