1 SUBROUTINE psptsv( N, NRHS, D, E, JA, DESCA, B, IB, DESCB, WORK,
12 INTEGER IB, INFO, JA, LWORK, N, NRHS
15 INTEGER DESCA( * ), DESCB( * )
16 REAL B( * ), D( * ), E( * ), WORK( * )
367 parameter( one = 1.0e+0 )
368 parameter( zero = 0.0e+0 )
370 parameter( int_one = 1 )
371 INTEGER DESCMULT, BIGNUM
372 parameter(descmult = 100, bignum = descmult * descmult)
373 INTEGER BLOCK_CYCLIC_2D, CSRC_, CTXT_, DLEN_, DTYPE_,
374 $ lld_, mb_, m_, nb_, n_, rsrc_
375 parameter( block_cyclic_2d = 1, dlen_ = 9, dtype_ = 1,
376 $ ctxt_ = 2, m_ = 3, n_ = 4, mb_ = 5, nb_ = 6,
377 $ rsrc_ = 7, csrc_ = 8, lld_ = 9 )
380 INTEGER ICTXT, MYCOL, MYROW, NB, NPCOL, NPROW,
398 IF( desca( dtype_ ) .EQ. block_cyclic_2d )
THEN
400 ictxt = desca( ctxt_ )
401 ELSEIF( desca( dtype_ ) .EQ. 501 )
THEN
404 ELSEIF( desca( dtype_ ) .EQ. 502 )
THEN
408 info = -( 5*100 + dtype_ )
415 CALL blacs_gridinfo( ictxt, nprow, npcol, myrow, mycol )
420 ws_factor = (12*npcol + 3*nb)
424 CALL pspttrf( n, d, e, ja, desca, work,
min( lwork, ws_factor ),
425 $ work( 1+ws_factor ), lwork-ws_factor, info )
430 IF( info .LT. 0 )
THEN
431 CALL pxerbla( ictxt,
'PSPTSV', -info )
438 CALL pspttrs( n, nrhs, d, e, ja, desca, b, ib, descb, work,
439 $
min( lwork, ws_factor ), work( 1+ws_factor),
440 $ lwork-ws_factor, info )
445 CALL pxerbla( ictxt,
'PSPTSV', -info )
subroutine psptsv(n, nrhs, d, e, ja, desca, b, ib, descb, work, lwork, info)
subroutine pspttrf(n, d, e, ja, desca, af, laf, work, lwork, info)
subroutine pspttrs(n, nrhs, d, e, ja, desca, b, ib, descb, af, laf, work, lwork, info)