1 SUBROUTINE psdtsv( N, NRHS, DL, D, DU, JA, DESCA, B, IB, DESCB,
12 INTEGER IB, INFO, JA, LWORK, N, NRHS
15 INTEGER DESCA( * ), DESCB( * )
16 REAL B( * ), D( * ), DL( * ), DU( * ), WORK( * )
376 parameter( one = 1.0e+0 )
377 parameter( zero = 0.0e+0 )
379 parameter( int_one = 1 )
380 INTEGER DESCMULT, BIGNUM
381 parameter(descmult = 100, bignum = descmult * descmult)
382 INTEGER BLOCK_CYCLIC_2D, CSRC_, CTXT_, DLEN_, DTYPE_,
383 $ lld_, mb_, m_, nb_, n_, rsrc_
384 parameter( block_cyclic_2d = 1, dlen_ = 9, dtype_ = 1,
385 $ ctxt_ = 2, m_ = 3, n_ = 4, mb_ = 5, nb_ = 6,
386 $ rsrc_ = 7, csrc_ = 8, lld_ = 9 )
389 INTEGER ICTXT, MYCOL, MYROW, NB, NPCOL, NPROW,
407 IF( desca( dtype_ ) .EQ. block_cyclic_2d )
THEN
409 ictxt = desca( ctxt_ )
410 ELSEIF( desca( dtype_ ) .EQ. 501 )
THEN
413 ELSEIF( desca( dtype_ ) .EQ. 502 )
THEN
417 info = -( 6*100 + dtype_ )
424 CALL blacs_gridinfo( ictxt, nprow, npcol, myrow, mycol )
429 ws_factor = (12*npcol+3*nb)
433 CALL psdttrf( n, dl, d, du, ja, desca, work,
434 $
min( lwork, ws_factor ), work( 1+ws_factor ),
435 $ lwork-ws_factor, info )
440 IF( info .LT. 0 )
THEN
441 CALL pxerbla( ictxt,
'PSDTSV', -info )
448 CALL psdttrs(
'N', n, nrhs, dl, d, du, ja, desca, b, ib, descb,
449 $ work,
min( lwork, ws_factor ), work( 1+ws_factor),
450 $ lwork-ws_factor, info )
455 CALL pxerbla( ictxt,
'PSDTSV', -info )
subroutine psdtsv(n, nrhs, dl, d, du, ja, desca, b, ib, descb, work, lwork, info)
subroutine psdttrf(n, dl, d, du, ja, desca, af, laf, work, lwork, info)
subroutine psdttrs(trans, n, nrhs, dl, d, du, ja, desca, b, ib, descb, af, laf, work, lwork, info)