1 SUBROUTINE psqrt13( SCALE, M, N, A, IA, JA, DESCA, NORMA, ISEED,
10 INTEGER IA, ISEED, JA, M, N, SCALE
130 INTEGER BLOCK_CYCLIC_2D, CSRC_, CTXT_, DLEN_, DTYPE_,
131 $ lld_, mb_, m_, nb_, n_, rsrc_
132 parameter( block_cyclic_2d = 1, dlen_ = 9, dtype_ = 1,
133 $ ctxt_ = 2, m_ = 3, n_ = 4, mb_ = 5, nb_ = 6,
134 $ rsrc_ = 7, csrc_ = 8, lld_ = 9 )
136 parameter( one = 1.0e0 )
139 INTEGER I, IACOL, IAROW, ICOFFA, ICTXT, IIA, INFO,
140 $ iroffa, j, jja, mp, mycol, myrow, npcol,
142 REAL AJJ, ASUM, BIGNUM, SMLNUM
146 REAL PSLAMCH, PSLANGE
147 EXTERNAL numroc, pslamch, pslange
158 ictxt = desca( ctxt_ )
161 IF( m.LE.0 .OR. n.LE.0 )
166 iroffa = mod( ia-1, desca( mb_ ) )
167 icoffa = mod( ja-1, desca( nb_ ) )
168 CALL infog2l( ia, ja, desca, nprow, npcol, myrow, mycol, iia,
169 $ jja, iarow, iacol )
170 mp =
numroc( m+iroffa, desca( mb_ ), myrow, iarow, nprow )
171 nq =
numroc( n+icoffa, desca( nb_ ), mycol, iacol, npcol )
177 CALL psmatgen( ictxt,
'N',
'N', desca( m_ ), desca( n_ ),
178 $ desca( mb_ ), desca( nb_ ), a, desca( lld_ ),
179 $ desca( rsrc_ ), desca( csrc_ ), iseed, iia-1, mp,
180 $ jja-1, nq, myrow, mycol, nprow, npcol )
184 IF( i.LE.ia+m-1 )
THEN
185 CALL psasum( m, asum, a, ia, j, desca, 1 )
186 CALL pselget( 'column
', ' ', AJJ, A, I, J, DESCA )
187 AJJ = AJJ + SIGN( ASUM, AJJ )
188 CALL PSELSET( A, I, J, DESCA, AJJ )
194.NE.
IF( SCALE1 ) THEN
196 NORMA = PSLANGE( 'm
', M, N, A, IA, JA, DESCA, WORK )
197 SMLNUM = PSLAMCH( ICTXT, 'safe minimum
' )
198 BIGNUM = ONE / SMLNUM
199 CALL PSLABAD( ICTXT, SMLNUM, BIGNUM )
200 SMLNUM = SMLNUM / PSLAMCH( ICTXT, 'epsilon
' )
201 BIGNUM = ONE / SMLNUM
203.EQ.
IF( SCALE2 ) THEN
207 CALL PSLASCL( 'general
', NORMA, BIGNUM, M, N, A, IA,
210.EQ.
ELSE IF( SCALE3 ) THEN
214 CALL PSLASCL( 'general
', NORMA, SMLNUM, M, N, A, IA,
221 NORMA = PSLANGE( 'one-
norm', M, N, A, IA, JA, DESCA, WORK )
subroutine psmatgen(ictxt, aform, diag, m, n, mb, nb, a, lda, iarow, iacol, iseed, iroff, irnum, icoff, icnum, myrow, mycol, nprow, npcol)
subroutine infog2l(grindx, gcindx, desc, nprow, npcol, myrow, mycol, lrindx, lcindx, rsrc, csrc)