1 SUBROUTINE pzdtsv( N, NRHS, DL, D, DU, JA, DESCA, B, IB, DESCB,
12 INTEGER IB, INFO, JA, LWORK, N, NRHS
15 INTEGER DESCA( * ), DESCB( * )
16 COMPLEX*16 B( * ), D( * ), DL( * ), DU( * ), WORK( * )
375 DOUBLE PRECISION ONE, ZERO
376 parameter( one = 1.0d+0 )
377 parameter( zero = 0.0d+0 )
378 COMPLEX*16 CONE, CZERO
379 parameter( cone = ( 1.0d+0, 0.0d+0 ) )
380 parameter( czero = ( 0.0d+0, 0.0d+0 ) )
382 parameter( int_one = 1 )
383 INTEGER DESCMULT, BIGNUM
384 parameter(descmult = 100, bignum = descmult * descmult)
385 INTEGER BLOCK_CYCLIC_2D, CSRC_, CTXT_, DLEN_, DTYPE_,
386 $ lld_, mb_, m_, nb_, n_, rsrc_
387 parameter( block_cyclic_2d = 1, dlen_ = 9, dtype_ = 1,
388 $ ctxt_ = 2, m_ = 3, n_ = 4, mb_ = 5, nb_ = 6,
389 $ rsrc_ = 7, csrc_ = 8, lld_ = 9 )
392 INTEGER ICTXT, MYCOL, MYROW, NB, NPCOL, NPROW,
410 IF( desca( dtype_ ) .EQ. block_cyclic_2d )
THEN
412 ictxt = desca( ctxt_ )
413 ELSEIF( desca( dtype_ ) .EQ. 501 )
THEN
416 ELSEIF( desca( dtype_ ) .EQ. 502 )
THEN
420 info = -( 6*100 + dtype_ )
427 CALL blacs_gridinfo( ictxt, nprow, npcol, myrow, mycol )
432 ws_factor = (12*npcol+3*nb)
436 CALL pzdttrf( n, dl, d, du, ja, desca, work,
437 $
min( lwork, ws_factor ), work( 1+ws_factor ),
438 $ lwork-ws_factor, info )
443 IF( info .LT. 0 )
THEN
444 CALL pxerbla( ictxt,
'PZDTSV', -info )
451 CALL pzdttrs(
'N', n, nrhs, dl, d, du, ja, desca, b, ib, descb,
452 $ work,
min( lwork, ws_factor ), work( 1+ws_factor),
453 $ lwork-ws_factor, info )
458 CALL pxerbla( ictxt,
'PZDTSV', -info )
subroutine pzdtsv(n, nrhs, dl, d, du, ja, desca, b, ib, descb, work, lwork, info)
subroutine pzdttrs(trans, n, nrhs, dl, d, du, ja, desca, b, ib, descb, af, laf, work, lwork, info)