1 SUBROUTINE pcptsv( UPLO, N, NRHS, D, E, JA, DESCA, B, IB, DESCB,
13 INTEGER IB, INFO, JA, LWORK, N,
16 INTEGER DESCA( * ), DESCB( * )
17 COMPLEX B( * ), E( * ), WORK( * )
372 parameter( one = 1.0e+0 )
373 parameter( zero = 0.0e+0 )
375 parameter( cone = ( 1.0e+0, 0.0e+0 ) )
376 parameter( czero = ( 0.0e+0, 0.0e+0 ) )
378 PARAMETER ( int_one = 1 )
379 INTEGER DESCMULT, BIGNUM
380 parameter(descmult = 100, bignum = descmult * descmult)
381 INTEGER BLOCK_CYCLIC_2D, CSRC_, CTXT_, DLEN_, DTYPE_,
382 $ lld_, mb_, m_, nb_, n_, rsrc_
383 parameter( block_cyclic_2d = 1, dlen_ = 9, dtype_ = 1,
384 $ ctxt_ = 2, m_ = 3, n_ = 4, mb_ = 5, nb_ = 6,
385 $ rsrc_ = 7, csrc_ = 8, lld_ = 9 )
388 INTEGER ICTXT, MYCOL, MYROW, NB, NPCOL, NPROW,
406 IF( desca( dtype_ ) .EQ. block_cyclic_2d )
THEN
408 ictxt = desca( ctxt_ )
409 ELSEIF( desca( dtype_ ) .EQ. 501 )
THEN
412 ELSEIF( desca( dtype_ ) .EQ. 502 )
THEN
416 info = -( 5*100 + dtype_ )
428 ws_factor = (12*npcol + 3*nb)
432 CALL pcpttrf( n, d, e, ja, desca, work,
min( lwork, ws_factor ),
433 $ work( 1+ws_factor ), lwork-ws_factor, info )
438 IF( info .LT. 0 )
THEN
439 CALL pxerbla( ictxt,
'PCPTSV', -info )
446 CALL pcpttrs( uplo, n, nrhs, d, e, ja, desca, b, ib, descb, work,
447 $
min( lwork, ws_factor ), work( 1+ws_factor),
448 $ lwork-ws_factor, info )
453 CALL pxerbla( ictxt,
'PCPTSV', -info )
subroutine pcptsv(uplo, n, nrhs, d, e, ja, desca, b, ib, descb, work, lwork, info)
subroutine pcpttrf(n, d, e, ja, desca, af, laf, work, lwork, info)
subroutine pcpttrs(uplo, n, nrhs, d, e, ja, desca, b, ib, descb, af, laf, work, lwork, info)