1 SUBROUTINE pzlatrs( 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
13 DOUBLE PRECISION SCALE
16 INTEGER DESCA( * ), DESCX( * )
17 DOUBLE PRECISION CNORM( * )
18 COMPLEX*16 A( * ), X( * ), 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.0d+0 )
39 INTEGER ICTXT, IIX, IROFF, JJX, MYCOL, MYROW, NP,
40 $ NPCOL, NPROW, LDX, IXCOL, IXROW
47 EXTERNAL blacs_gridinfo, zgebr2d, zgebs2d,
infog2l,
54 ictxt = desca( ctxt_ )
55 CALL blacs_gridinfo( ictxt, nprow, npcol, myrow, mycol )
65 CALL pztrsv( 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 zgebs2d( ictxt,
'R',
' ', np, 1, x( iix+(jjx-1)*ldx ),
79 CALL zgebr2d( ictxt,
'R',
' ', np, 1, x( iix+(jjx-1)*ldx ),