1      SUBROUTINE pspbsv( UPLO, N, BW, NRHS, A, JA, DESCA, B, IB, DESCB,
 
   13      INTEGER            BW, IB, INFO, JA, LWORK, N, NRHS
 
   16      INTEGER            DESCA( * ), DESCB( * )
 
   17      REAL               A( * ), B( * ), WORK( * )
 
  366      parameter( one = 1.0e+0 )
 
  367      parameter( zero = 0.0e+0 )
 
  369      parameter( int_one = 1 )
 
  370      INTEGER            DESCMULT, BIGNUM
 
  371      parameter(descmult = 100, bignum = descmult * descmult)
 
  372      INTEGER            BLOCK_CYCLIC_2D, CSRC_, CTXT_, DLEN_, DTYPE_,
 
  373     $                   lld_, mb_, m_, nb_, n_, rsrc_
 
  374      parameter( block_cyclic_2d = 1, dlen_ = 9, dtype_ = 1,
 
  375     $                     ctxt_ = 2, m_ = 3, n_ = 4, mb_ = 5, nb_ = 6,
 
  376     $                     rsrc_ = 7, csrc_ = 8, lld_ = 9 )
 
  379      INTEGER            ICTXT, MYCOL, MYROW, NB, NPCOL, NPROW,
 
  397      IF( desca( dtype_ ) .EQ. block_cyclic_2d ) 
THEN 
  399         ictxt = desca( ctxt_ )
 
  400      ELSEIF( desca( dtype_ ) .EQ. 501 ) 
THEN 
  404         info = -( 6*100 + dtype_ )
 
  411      CALL blacs_gridinfo( ictxt, nprow, npcol, myrow, mycol )
 
  416      ws_factor = (nb+2*bw)*bw
 
  420      CALL pspbtrf( uplo, n, bw, a, ja, desca, work,
 
  421     $              
min( lwork, ws_factor ), work( 1+ws_factor ),
 
  422     $              lwork-ws_factor, info )
 
  427         IF( info .LT. 0 ) 
THEN 
  428            CALL pxerbla( ictxt, 
'PSPBSV', -info )
 
  435      CALL pspbtrs( uplo, n, bw, nrhs, a, ja, desca, b, ib, descb, work,
 
  436     $              
min( lwork, ws_factor ), work( 1+ws_factor),
 
  437     $              lwork-ws_factor, info )
 
  442         CALL pxerbla( ictxt, 
'PSPBSV', -info )
 
 
subroutine pspbsv(uplo, n, bw, nrhs, a, ja, desca, b, ib, descb, work, lwork, info)
 
subroutine pspbtrf(uplo, n, bw, a, ja, desca, af, laf, work, lwork, info)
 
subroutine pspbtrs(uplo, n, bw, nrhs, a, ja, desca, b, ib, descb, af, laf, work, lwork, info)