1 SUBROUTINE psdbsv( N, BWL, BWU, NRHS, A, JA, DESCA, B, IB, DESCB,
12 INTEGER BWL, BWU, IB, INFO, JA, LWORK, N, NRHS
15 INTEGER DESCA( * ), DESCB( * )
16 REAL A( * ), B( * ), WORK( * )
366 parameter( one = 1.0e+0 )
367 parameter( zero = 0.0e+0 )
369 parameter( int_one = 1 )
370 INTEGER DESCMULT, BIGNUM
371 parameter(descmult = 100, bignum = descmult * descmult)
372 INTEGER BLOCK_CYCLIC_2D, 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_ )
411 CALL blacs_gridinfo( ictxt, nprow, npcol, myrow, mycol )
416 ws_factor = nb*(bwl+bwu)+6*
max(bwl,bwu)*
max(bwl,bwu)
420 CALL psdbtrf( 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,
'PSDBSV', -info )
435 CALL psdbtrs(
'N', n, bwl, bwu, nrhs, a, ja, desca, b, ib, descb,
436 $ work,
min( lwork, ws_factor ), work( 1+ws_factor),
437 $ lwork-ws_factor, info )
442 CALL pxerbla( ictxt,
'PSDBSV', -info )
subroutine psdbsv(n, bwl, bwu, nrhs, a, ja, desca, b, ib, descb, work, lwork, info)
subroutine psdbtrf(n, bwl, bwu, a, ja, desca, af, laf, work, lwork, info)
subroutine psdbtrs(trans, n, bwl, bwu, nrhs, a, ja, desca, b, ib, descb, af, laf, work, lwork, info)