1 SUBROUTINE pddbsv( N, BWL, BWU, NRHS, A, JA, DESCA, B, IB, DESCB,
12 INTEGER BWL, , IB, INFO, JA, LWORK, N, NRHS
15 INTEGER DESCA( * ), DESCB( * )
16 DOUBLE PRECISION A( * ), B( * ), WORK( * )
365 DOUBLE PRECISION ONE, ZERO
366 parameter( one = 1.0d+0 )
367 parameter( zero = 0.0d+0 )
369 parameter( int_one = 1 )
370 INTEGER DESCMULT, BIGNUM
371 parameter(descmult = 100, bignum = descmult * descmult)
372 INTEGER , CSRC_, CTXT_, DLEN_, DTYPE_,
373 $ lld_, mb_, m_, nb_, n_, rsrc_
374 parameter( block_cyclic_2d = 1, dlen_ = 9, dtype_ = 1,
375 $ ctxt_ = 2, m_ = 3, n_ = 4, mb_ = 5, nb_ = 6,
376 $ rsrc_ = 7, csrc_ = 8, lld_ = 9 )
379 INTEGER ICTXT, MYCOL, MYROW, NB, NPCOL, NPROW,
397 IF( desca( dtype_ ) .EQ. block_cyclic_2d )
THEN
399 ictxt = desca( ctxt_ )
400 ELSEIF( desca( dtype_ ) .EQ. 501 )
THEN
404 info = -( 6*100 + dtype_ )
416 ws_factor = nb*(bwl+bwu)+6*
max(bwl,bwu)*
max(bwl,bwu)
420 CALL pddbtrf( n, bwl, bwu, a, ja, desca, work,
421 $
min( lwork, ws_factor ), work( 1+ws_factor ),
422 $ lwork-ws_factor, info )
427 IF( info .LT. 0 )
THEN
428 CALL pxerbla( ictxt,
'PDDBSV', -info )
435 CALL pddbtrs(
'N', n, bwl, bwu, nrhs
436 $ work,
min( lwork, ws_factor ), work( 1+ws_factor),
437 $ lwork-ws_factor, info )
442 CALL pxerbla( ictxt,
'PDDBSV', -info )
subroutine pddbsv(n, bwl, bwu, nrhs, a, ja, desca, b, ib, descb, work, lwork, info)
subroutine pddbtrf(n, bwl, bwu, a, ja, desca, af, laf, work, lwork, info)
subroutine pddbtrs(trans, n, bwl, bwu, nrhs, a, ja, desca, b, ib, descb, af, laf, work, lwork, info)