1 SUBROUTINE pzbmatgen( ICTXT, AFORM, AFORM2, BWL, BWU, N,
3 $ LDA, IAROW, IACOL, ISEED,
4 $ MYROW, MYCOL, NPROW, NPCOL )
15 CHARACTER*1 AFORM, AFORM2
16 INTEGER IACOL, IAROW, ICTXT,
17 $ ISEED, LDA, MB, MYCOL, MYROW, N,
18 $ nb, npcol, nprow, bwl, bwu
21 COMPLEX*16 A( LDA, * )
116 DOUBLE PRECISION ONE, ZERO
117 PARAMETER ( ONE = 1.0d+0 )
118 parameter( zero = 0.0d+0 )
119 COMPLEX*16 CONE, CZERO
120 parameter( cone = ( 1.0d+0, 0.0d+0 ) )
121 parameter( czero = ( 0.0d+0, 0.0d+0 ) )
124 INTEGER DIAG_INDEX, I, J, M_MATGEN, NQ, N_MATGEN,
132 INTEGER ICEIL, NUMROC
133 EXTERNAL ICEIL, NUMROC, LSAME
138 IF( lsame( aform,
'L' ).OR.lsame( aform,
'U' ) )
THEN
142 IF( lsame( aform,
'L' ) )
THEN
148 m_matgen = bwl + bwu + 1
154 nq = numroc( n, nb, mycol, iacol, npcol )
159 IF( lsame( aform,
'T' ) .OR.
160 $ ( lsame( aform2,
'T' ) ) )
THEN
163 $ n_matgen, m_matgen,
164 $ nb, m_matgen, a( start_index, 1 ),
166 $ iseed, 0, nq, 0, m_matgen,
167 $ mycol, myrow, npcol, nprow )
172 $ m_matgen, n_matgen,
173 $ m_matgen, nb, a( start_index, 1 ),
175 $ iseed, 0, m_matgen, 0, nq,
176 $ myrow, mycol, nprow, npcol )
182 DO 2000 i=1, lda-m_matgen
189 a( i-lda+m_matgen, j ) = czero
197 IF( lsame( aform2,
'D' ).OR.
198 $ ( lsame( aform,
'L' ).OR.lsame( aform,
'U' ) ) )
THEN
204 IF( lsame( aform,
'T' ) .OR.
205 $ ( lsame( aform2,
'T' ) ) )
THEN
206 IF( nprow .EQ. 1 )
THEN
207 a( i, diag_index ) = dcmplx( dble( a( i, diag_index ) )
208 $ + dble( 2*( bwl+bwu+1 ) ) )
211 IF( nprow .EQ. 1 )
THEN
212 a( diag_index, i ) = dcmplx( dble( a( diag_index, i ) )
213 $ + dble( 2*( bwl+bwu+1 ) ) )
225 IF( nprow .EQ. 1 )
THEN
227 IF( mod(i+mycol*nb,2) .EQ. 1 )
THEN
228 a( diag_index+1, i ) =
229 $ dcmplx( dble( a( diag_index+1, i ) )
230 $ + dble( 2*( bwl+bwu+1 ) ) )
234 a( diag_index-1, i ) =
235 $ dcmplx( dble( a( diag_index-1, i ) )
236 $ + dble( 2*( bwl+bwu+1 ) ) )
subroutine pzmatgen(ictxt, aform, diag, m, n, mb, nb, a, lda, iarow, iacol, iseed, iroff, irnum, icoff, icnum, myrow, mycol, nprow, npcol)
subroutine pzbmatgen(ictxt, aform, aform2, bwl, bwu, n, mb, nb, a, lda, iarow, iacol, iseed, myrow, mycol, nprow, npcol)