1 SUBROUTINE pddtsv( N, NRHS, DL, D, DU, JA, DESCA, B, IB, DESCB,
12 INTEGER IB, INFO, JA, LWORK, N, NRHS
15 INTEGER DESCA( * ), DESCB( * )
16 DOUBLE PRECISION B( * ), D( * ), DL( * ), DU( * ), WORK( * )
375 DOUBLE PRECISION ONE, ZERO
376 parameter( one = 1.0d+0 )
377 parameter( zero = 0.0d+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 pddttrf( 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,
'PDDTSV', -info )
448 CALL pddttrs(
'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,
'PDDTSV', -info )
subroutine pddtsv(n, nrhs, dl, d, du, ja, desca, b, ib, descb, work, lwork, info)
subroutine pddttrf(n, dl, d, du, ja, desca, af, laf, work, lwork, info)
subroutine pddttrs(trans, n, nrhs, dl, d, du, ja, desca, b, ib, descb, af, laf, work, lwork, info)