272      SUBROUTINE sspsvx( FACT, UPLO, N, NRHS, AP, AFP, IPIV, B, LDB,
 
  274     $                   LDX, RCOND, FERR, BERR, WORK, IWORK, INFO )
 
  282      INTEGER            INFO, LDB, LDX, N, NRHS
 
  286      INTEGER            IPIV( * ), IWORK( * )
 
  287      REAL               AFP( * ), AP( * ), B( LDB, * ), BERR( * ),
 
  288     $                   ferr( * ), work( * ), x( ldx, * )
 
  295      PARAMETER          ( ZERO = 0.0e+0 )
 
  304      EXTERNAL           lsame, slamch, slansp
 
  319      nofact = lsame( fact, 
'N' )
 
  320      IF( .NOT.nofact .AND. .NOT.lsame( fact, 
'F' ) ) 
THEN 
  322      ELSE IF( .NOT.lsame( uplo, 
'U' ) .AND.
 
  323     $         .NOT.lsame( uplo, 
'L' ) )
 
  326      ELSE IF( n.LT.0 ) 
THEN 
  328      ELSE IF( nrhs.LT.0 ) 
THEN 
  330      ELSE IF( ldb.LT.max( 1, n ) ) 
THEN 
  332      ELSE IF( ldx.LT.max( 1, n ) ) 
THEN 
  336         CALL xerbla( 
'SSPSVX', -info )
 
  344         CALL scopy( n*( n+1 ) / 2, ap, 1, afp, 1 )
 
  345         CALL ssptrf( uplo, n, afp, ipiv, info )
 
  357      anorm = slansp( 
'I', uplo, n, ap, work )
 
  361      CALL sspcon( uplo, n, afp, ipiv, anorm, rcond, work, iwork,
 
  366      CALL slacpy( 
'Full', n, nrhs, b, ldb, x, ldx )
 
  367      CALL ssptrs( uplo, n, nrhs, afp, ipiv, x, ldx, info )
 
  372      CALL ssprfs( uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx,
 
  374     $             berr, work, iwork, info )
 
  378      IF( rcond.LT.slamch( 
'Epsilon' ) )
 
 
subroutine sspcon(uplo, n, ap, ipiv, anorm, rcond, work, iwork, info)
SSPCON
subroutine ssprfs(uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, ferr, berr, work, iwork, info)
SSPRFS
subroutine sspsvx(fact, uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info)
SSPSVX computes the solution to system of linear equations A * X = B for OTHER matrices
subroutine ssptrs(uplo, n, nrhs, ap, ipiv, b, ldb, info)
SSPTRS
subroutine slacpy(uplo, m, n, a, lda, b, ldb)
SLACPY copies all or part of one two-dimensional array to another.