1 SUBROUTINE ztzpadcpy( UPLO, DIAG, M, N, IOFFD, A, LDA, B, LDB )
10 INTEGER IOFFD, LDA, LDB, M, N
13 COMPLEX*16 A( LDA, * ), B( LDB, * )
120 parameter( one = ( 1.0d+0, 0.0d+0 ),
121 $ zero = ( 0.0d+0, 0.0d+0 ) )
124 INTEGER I, ITMP, J, JTMP, MN
136 IF( m.LE.0 .OR. n.LE.0 )
141 IF( lsame( uplo,
'L' ) )
THEN
143 mn =
max( 0, -ioffd )
144 DO 20 j = 1,
min( mn, n )
146 b( i, j ) = a( i, j )
150 jtmp =
min( m - ioffd, n )
152 IF( lsame( diag,
'N' ) )
THEN
153 DO 50 j = mn + 1, jtmp
155 DO 30 i = 1, itmp - 1
159 b( i, j ) = a( i, j )
163 DO 80 j = mn + 1, jtmp
165 DO 60 i = 1, itmp - 1
169 DO 70 i = itmp + 1, m
170 b( i, j ) = a( i, j )
175 DO 100 j = jtmp + 1, n
181 ELSE IF( lsame( uplo,
'U' ) )
THEN
183 jtmp =
max( 0, -ioffd )
191 mn =
min( m - ioffd, n )
193 IF( lsame( diag,
'N' ) )
THEN
194 DO 150 j = jtmp + 1, mn
197 b( i, j ) = a( i, j )
199 DO 140 i = itmp + 1, m
204 DO 180 j = jtmp + 1, mn
206 DO 160 i = 1, itmp - 1
207 b( i, j ) = a( i, j )
210 DO 170 i = itmp + 1, m
216 DO 200 j =
max( 0, mn ) + 1, n
218 b( i, j ) = a( i, j )
226 b( i, j ) = a( i, j )