1 SUBROUTINE pdptsv( N, NRHS, D, E, JA, DESCA, B, IB, DESCB, WORK,
12 INTEGER IB, INFO, JA, LWORK, N, NRHS
15 INTEGER DESCA( * ), DESCB( * )
16 DOUBLE PRECISION B( * ), D( * ), E( * ), WORK( * )
366 DOUBLE PRECISION ONE, ZERO
367 parameter( one = 1.0d+0 )
368 parameter( zero = 0.0d+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 pdpttrf( 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,
'PDPTSV', -info )
438 CALL pdpttrs( 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,
'PDPTSV', -info )
subroutine pdptsv(n, nrhs, d, e, ja, desca, b, ib, descb, work, lwork, info)
subroutine pdpttrf(n, d, e, ja, desca, af, laf, work, lwork, info)
subroutine pdpttrs(n, nrhs, d, e, ja, desca, b, ib, descb, af, laf, work, lwork, info)