1 SUBROUTINE pclatrs( UPLO, TRANS, DIAG, NORMIN, N, A, IA,
2 $ JA, DESCA, X, IX, JX, DESCX, SCALE, CNORM,
11 CHARACTER DIAG, NORMIN, TRANS, UPLO
12 INTEGER IA, IX, JA, JX, N
16 INTEGER DESCA( * ), DESCX( * )
18 COMPLEX A( * ), ( * ), WORK( * )
30 INTEGER BLOCK_CYCLIC_2D, CSRC_, CTXT_, DLEN_, DTYPE_,
31 $ LLD_, MB_, M_, NB_, N_, RSRC_
32 parameter( block_cyclic_2d = 1, dlen_ = 9, dtype_ = 1,
33 $ ctxt_ = 2, m_ = 3, n_ = 4, mb_ = 5, nb_ = 6,
34 $ rsrc_ = 7, csrc_ = 8, lld_ = 9 )
36 PARAMETER ( ONE = 1.0e+0 )
39 INTEGER ICTXT, IIX, IROFF, JJX, MYCOL, MYROW, NP,
40 $ NPCOL, NPROW, LDX, IXCOL, IXROW
54 ictxt = desca( ctxt_ )
65 CALL pctrsv( uplo, trans, diag, n, a, ia, ja, desca, x, ix, jx,
68 CALL infog2l( ix, jx, descx, nprow, npcol, myrow, mycol, iix, jjx,
71 iroff = mod( ix-1, descx(mb_) )
72 np = numroc( n+iroff, descx( mb_ ), myrow, ixrow, nprow )
75 IF( mycol.EQ.ixcol )
THEN
76 CALL cgebs2d( ictxt,
'R',
' ', np, 1, x( iix+(jjx-1)*ldx ),
79 CALL cgebr2d( ictxt,
'R',
' ', np, 1, x( iix+(jjx-1)*ldx ),
subroutine infog2l(grindx, gcindx, desc, nprow, npcol, myrow, mycol, lrindx, lcindx, rsrc, csrc)
subroutine pclatrs(uplo, trans, diag, normin, n, a, ia, ja, desca, x, ix, jx, descx, scale, cnorm, work)