1 SUBROUTINE pzlaqsy( UPLO, N, A, IA, JA, DESCA, SR, SC, SCOND,
12 DOUBLE PRECISION AMAX, SCOND
16 DOUBLE PRECISION SC( * ), SR( * )
157 INTEGER BLOCK_CYCLIC_2D, CSRC_, CTXT_, DLEN_, DTYPE_,
158 $ lld_, mb_, m_, nb_, n_, rsrc_
159 parameter( block_cyclic_2d = 1, dlen_ = 9, dtype_ = 1,
160 $ ctxt_ = 2, m_ = 3, n_ = 4, mb_ = 5, nb_ = 6,
161 $ rsrc_ = 7, csrc_ = 8, lld_ = 9 )
162 DOUBLE PRECISION ONE, THRESH
163 parameter( one = 1.0d+0, thresh = 0.1d+0 )
166 INTEGER IACOL, IAROW, ICTXT, II, IIA, IOFFA, IROFF, J,
167 $ jb, jj, jja, jn, kk, lda, ll, mycol, myrow, np,
169 DOUBLE PRECISION CJ, LARGE, SMALL
176 INTEGER ICEIL, NUMROC
177 DOUBLE PRECISION PDLAMCH
178 EXTERNAL iceil, lsame, numroc, pdlamch
194 ictxt = desca( ctxt_ )
196 CALL infog2l( ia, ja, desca, nprow, npcol, myrow, mycol, iia, jja,
202 small = pdlamch( ictxt,
'Safe minimum' ) /
203 $ pdlamch( ictxt,
'Precision' )
206 IF( scond.GE.thresh .AND. amax.GE.small .AND. amax.LE.large )
THEN
216 jn =
min( iceil( ja, desca( nb_ ) ) * desca( nb_ ), ja+n-1 )
221 IF( lsame( uplo, 'u
' ) ) THEN
227.EQ.
IF( MYCOLIACOL ) THEN
228.EQ.
IF( MYROWIAROW ) THEN
229 DO 20 LL = JJ, JJ + JB -1
231 DO 10 KK = IIA, II+LL-JJ+1
232 A( IOFFA + KK ) = CJ*SR( KK )*A( IOFFA + KK )
237 IOFFA = IOFFA + JB*LDA
244 IAROW = MOD( IAROW+1, NPROW )
245 IACOL = MOD( IACOL+1, NPCOL )
249 DO 70 J = JN+1, JA+N-1, DESCA( NB_ )
250 JB = MIN( JA+N-J, DESCA( NB_ ) )
252.EQ.
IF( MYCOLIACOL ) THEN
253.EQ.
IF( MYROWIAROW ) THEN
254 DO 40 LL = JJ, JJ + JB -1
256 DO 30 KK = IIA, II+LL-JJ+1
257 A( IOFFA + KK ) = CJ*SR( KK )*A( IOFFA + KK )
262 DO 60 LL = JJ, JJ + JB -1
265 A( IOFFA + KK ) = CJ*SR( KK )*A( IOFFA + KK )
275 IAROW = MOD( IAROW+1, NPROW )
276 IACOL = MOD( IACOL+1, NPCOL )
285 IROFF = MOD( IA-1, DESCA( MB_ ) )
286 NP = NUMROC( N+IROFF, DESCA( MB_ ), MYROW, IAROW, NPROW )
291.EQ.
IF( MYCOLIACOL ) THEN
292.EQ.
IF( MYROWIAROW ) THEN
293 DO 90 LL = JJ, JJ + JB -1
295 DO 80 KK = II+LL-JJ, IIA+NP-1
296 A( IOFFA + KK ) = CJ*SR( KK )*A( IOFFA + KK )
301 DO 110 LL = JJ, JJ + JB -1
303 DO 100 KK = II, IIA+NP-1
304 A( IOFFA + KK ) = CJ*SR( KK )*A( IOFFA + KK )
314 IAROW = MOD( IAROW+1, NPROW )
315 IACOL = MOD( IACOL+1, NPCOL )
319 DO 160 J = JN+1, JA+N-1, DESCA( NB_ )
320 JB = MIN( JA+N-J, DESCA( NB_ ) )
322.EQ.
IF( MYCOLIACOL ) THEN
323.EQ.
IF( MYROWIAROW ) THEN
324 DO 130 LL = JJ, JJ + JB -1
326 DO 120 KK = II+LL-JJ, IIA+NP-1
327 A( IOFFA + KK ) = CJ*SR( KK )*A( IOFFA + KK )
332 DO 150 LL = JJ, JJ + JB -1
334 DO 140 KK = II, IIA+NP-1
335 A( IOFFA + KK ) = CJ*SR( KK )*A( IOFFA + KK )
345 IAROW = MOD( IAROW+1, NPROW )
346 IACOL = MOD( IACOL+1, NPCOL )
subroutine infog2l(grindx, gcindx, desc, nprow, npcol, myrow, mycol, lrindx, lcindx, rsrc, csrc)
subroutine pzlaqsy(uplo, n, a, ia, ja, desca, sr, sc, scond, amax, equed)