1 SUBROUTINE pielget( SCOPE, TOP, ALPHA, A, IA, JA, DESCA )
13 INTEGER A( * ), DESCA( * )
113 INTEGER , CSRC_, CTXT_, DLEN_, DTYPE_,
114 $ LLD_, MB_, M_, NB_, N_, RSRC_
115 parameter( block_cyclic_2d = 1, dlen_ = 9, dtype_ = 1,
116 $ ctxt_ = 2, m_ = 3, n_ = 4, mb_ = 5, nb_ = 6,
117 $ rsrc_ = 7, csrc_ = 8, lld_ = 9 )
119 parameter( zero = 0 )
122 INTEGER IACOL, IAROW, ICTXT, IIA, , JJA, MYCOL,
136 ictxt = desca( ctxt_ )
139 CALL infog2l( ia, ja, desca, nprow, npcol, myrow, mycol, iia, jja,
144 IF( lsame( scope, 'r
' ) ) THEN
145.EQ.
IF( MYROWIAROW ) THEN
146.EQ.
IF( MYCOLIACOL ) THEN
147 IOFFA = IIA+(JJA-1)*DESCA( LLD_ )
148 CALL IGEBS2D( ICTXT, SCOPE, TOP, 1, 1, A( IOFFA ), 1 )
151 CALL IGEBR2D( ICTXT, SCOPE, TOP, 1, 1, ALPHA, 1,
155 ELSE IF( LSAME( SCOPE, 'c
' ) ) THEN
156.EQ.
IF( MYCOLIACOL ) THEN
157.EQ.
IF( MYROWIAROW ) THEN
158 IOFFA = IIA+(JJA-1)*DESCA( LLD_ )
159 CALL IGEBS2D( ICTXT, SCOPE, TOP, 1, 1, A( IOFFA ), 1 )
162 CALL IGEBR2D( ICTXT, SCOPE, TOP, 1, 1, ALPHA, 1,
166 ELSE IF( LSAME( SCOPE, 'a
' ) ) THEN
167.EQ..AND..EQ.
IF( ( MYROWIAROW )( MYCOLIACOL ) ) THEN
168 IOFFA = IIA+(JJA-1)*DESCA( LLD_ )
169 CALL IGEBS2D( ICTXT, SCOPE, TOP, 1, 1, A( IOFFA ), 1 )
172 CALL IGEBR2D( ICTXT, SCOPE, TOP, 1, 1, ALPHA, 1,
176.EQ..AND..EQ.
IF( MYROWIAROW MYCOLIACOL )
177 $ ALPHA = A( IIA+(JJA-1)*DESCA( LLD_ ) )
subroutine infog2l(grindx, gcindx, desc, nprow, npcol, myrow, mycol, lrindx, lcindx, rsrc, csrc)
subroutine pielget(scope, top, alpha, a, ia, ja, desca)