167      SUBROUTINE schksy_aa( DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL,
 
  168     $                      THRESH, TSTERR, NMAX, A, AFAC, AINV, B,
 
  169     $                      X, XACT, WORK, RWORK, IWORK, NOUT )
 
  179      INTEGER      NN, NNB, NNS, NMAX, NOUT
 
  184      INTEGER      IWORK( * ), NBVAL( * ), NSVAL( * ), NVAL( * )
 
  185      REAL         A( * ), AFAC( * ), AINV( * ), B( * ),
 
  186     $             rwork( * ), work( * ), x( * ), xact( * )
 
  193      PARAMETER    ( ZERO = 0.0e+0 )
 
  195      parameter( ntypes = 10 )
 
  197      parameter( ntests = 9 )
 
  201      CHARACTER    DIST, 
TYPE, UPLO, XTYPE
 
  202      CHARACTER*3  PATH, MATPATH
 
  203      INTEGER      I, I1, I2, IMAT, IN, INB, INFO, IOFF, IRHS,
 
  204     $             iuplo, izero, j, k, kl, ku, lda, lwork, mode,
 
  205     $             n, nb, nerrs, nfail, nimat, nrhs, nrun, nt
 
  210      INTEGER      ISEED( 4 ), ISEEDY( 4 )
 
  211      REAL         RESULT( NTESTS )
 
  227      COMMON       / infoc / infot, nunit, ok, lerr
 
  228      COMMON       / srnamc / srnamt
 
  231      DATA         iseedy / 1988, 1989, 1990, 1991 /
 
  232      DATA         uplos / 
'U', 
'L' /
 
  241      path( 1: 1 ) = 
'Single precision' 
  246      matpath( 1: 1 ) = 
'Single precision' 
  247      matpath( 2: 3 ) = 
'SY' 
  252         iseed( i ) = iseedy( i )
 
  258     $   
CALL serrsy( path, nout )
 
  270         IF( n .GT. nmax ) 
THEN 
  272            WRITE(nout, 9995) 
'M ', n, nmax
 
  285         DO 170 imat = 1, nimat
 
  289            IF( .NOT.dotype( imat ) )
 
  294            zerot = imat.GE.3 .AND. imat.LE.6
 
  295            IF( zerot .AND. n.LT.imat-2 )
 
  301               uplo = uplos( iuplo )
 
  309               CALL slatb4( matpath, imat, n, n, 
TYPE, kl, ku,
 
  310     $                      anorm, mode, cndnum, dist )
 
  315               CALL slatms( n, n, dist, iseed, 
TYPE, rwork, mode,
 
  316     $                      cndnum, anorm, kl, ku, uplo, a, lda, work,
 
  322                  CALL alaerh( path, 
'SLATMS', info, 0, uplo, n, n, -1,
 
  323     $                         -1, -1, imat, nfail, nerrs, nout )
 
  337                  ELSE IF( imat.EQ.4 ) 
THEN 
  347                     IF( iuplo.EQ.1 ) 
THEN 
  348                        ioff = ( izero-1 )*lda
 
  349                        DO 20 i = 1, izero - 1
 
  359                        DO 40 i = 1, izero - 1
 
  369                     IF( iuplo.EQ.1 ) 
THEN 
  416                  CALL slacpy( uplo, n, n, a, lda, afac, lda )
 
  424                  lwork = max( 1, n*nb + n )
 
  425                  CALL ssytrf_aa( uplo, n, afac, lda, iwork, ainv,
 
  451                     CALL alaerh( path, 
'SSYTRF_AA', info, k, uplo,
 
  452     $                            n, n, -1, -1, nb, imat, nfail, nerrs,
 
  459                  CALL ssyt01_aa( uplo, n, a, lda, afac, lda, iwork,
 
  460     $                            ainv, lda, rwork, result( 1 ) )
 
  468                     IF( result( k ).GE.thresh ) 
THEN 
  469                        IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
 
  470     $                     
CALL alahd( nout, path )
 
  471                        WRITE( nout, fmt = 9999 )uplo, n, nb, imat, k,
 
  496                     CALL slarhs( matpath, xtype, uplo, 
' ', n, n,
 
  497     $                            kl, ku, nrhs, a, lda, xact, lda,
 
  498     $                            b, lda, iseed, info )
 
  499                     CALL slacpy( 
'Full', n, nrhs, b, lda, x, lda )
 
  502                     lwork = max( 1, 3*n-2 )
 
  503                     CALL ssytrs_aa( uplo, n, nrhs, afac, lda,
 
  504     $                               iwork, x, lda, work, lwork,
 
  510                        IF( izero.EQ.0 ) 
THEN 
  511                           CALL alaerh( path, 
'SSYTRS_AA', info, 0,
 
  512     $                                  uplo, n, n, -1, -1, nrhs, imat,
 
  513     $                                  nfail, nerrs, nout )
 
  516                        CALL slacpy( 
'Full', n, nrhs, b, lda, work, lda
 
  521                        CALL spot02( uplo, n, nrhs, a, lda, x, lda,
 
  522     $                               work, lda, rwork, result( 2 ) )
 
  529                           IF( result( k ).GE.thresh ) 
THEN 
  530                              IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
 
  531     $                           
CALL alahd( nout, path )
 
  532                              WRITE( nout, fmt = 9998 )uplo, n, nrhs,
 
  533     $                           imat, k, result( k )
 
  551      CALL alasum( path, nout, nfail, nrun, nerrs )
 
  553 9999 
FORMAT( 
' UPLO = ''', a1, 
''', N =', i5, 
', NB =', i4, 
', type ',
 
  554     $      i2, 
', test ', i2, 
', ratio =', g12.5 )
 
  555 9998 
FORMAT( 
' UPLO = ''', a1, 
''', N =', i5, 
', NRHS=', i3, 
', type ',
 
  556     $      i2, 
', test(', i2, 
') =', g12.5 )
 
  557 9995 
FORMAT( 
' Invalid input value: ', a4, 
'=', i6, 
'; must be <=',