1 SUBROUTINE stzscal( UPLO, M, N, IOFFD, ALPHA, A, LDA )
10 INTEGER IOFFD, LDA, M, N
107 parameter( one = 1.0e+0, zero = 0.0e+0 )
126 IF( ( m.LE.0 ).OR.( n.LE.0 ).OR.( alpha.EQ.one ) )
131 IF( alpha.EQ.zero )
THEN
132 CALL stzpad( uplo,
'N', m, n, ioffd, zero, zero, a, lda )
136 IF( lsame( uplo,
'L' ) )
THEN
140 mn =
max( 0, -ioffd )
141 DO 10 j = 1,
min( mn, n )
142 CALL sscal( m, alpha, a( 1, j ), 1 )
144 DO 20 j = mn + 1,
min( m - ioffd, n )
147 $
CALL sscal( m-jtmp+1, alpha, a( jtmp, j ), 1 )
150 ELSE IF( lsame( uplo,
'U' ) )
THEN
154 mn =
min( m - ioffd, n )
155 DO 30 j =
max( 0, -ioffd ) + 1, mn
156 CALL sscal( j + ioffd, alpha, a( 1, j ), 1 )
158 DO 40 j =
max( 0, mn ) + 1, n
159 CALL sscal( m, alpha, a( 1, j ), 1 )
162 ELSE IF( lsame( uplo,
'D' ) )
THEN
166 DO 50 j =
max( 0, -ioffd ) + 1,
min( m - ioffd, n )
168 a( jtmp, j ) = alpha * a( jtmp, j )
176 CALL sscal( m, alpha, a( 1, j ), 1 )