162 SUBROUTINE zlaswlq( M, N, MB, NB, A, LDA, T, LDT, WORK, LWORK,
170 INTEGER INFO, LDA, M, N, MB, NB, LWORK, LDT
173 COMPLEX*16 A( LDA, * ), WORK( * ), T( LDT, *)
181 INTEGER I, II, KK, CTR
189 INTRINSIC max, min, mod
197 lquery = ( lwork.EQ.-1 )
201 ELSE IF( n.LT.0 .OR. n.LT.m )
THEN
203 ELSE IF( mb.LT.1 .OR. ( mb.GT.m .AND. m.GT.0 ))
THEN
205 ELSE IF( nb.LE.0 )
THEN
207 ELSE IF( lda.LT.max( 1, m ) )
THEN
209 ELSE IF( ldt.LT.mb )
THEN
211 ELSE IF( ( lwork.LT.m*mb) .AND. (.NOT.lquery) )
THEN
219 CALL xerbla(
'ZLASWLQ', -info )
221 ELSE IF (lquery)
THEN
227 IF( min(m,n).EQ.0 )
THEN
233 IF((m.GE.n).OR.(nb.LE.m).OR.(nb.GE.n))
THEN
234 CALL zgelqt( m, n, mb, a, lda, t, ldt, work, info)
238 kk = mod((n-m),(nb-m))
243 CALL zgelqt( m, nb, mb, a(1,1), lda, t, ldt, work, info)
246 DO i = nb+1, ii-nb+m , (nb-m)
250 CALL ztplqt( m, nb-m, 0, mb, a(1,1), lda, a( 1, i ),
251 $ lda, t(1, ctr * m + 1),
259 CALL ztplqt( m, kk, 0, mb, a(1,1), lda, a( 1, ii ),
260 $ lda, t(1, ctr * m + 1), ldt,
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zgelqt(M, N, MB, A, LDA, T, LDT, WORK, INFO)
ZGELQT
subroutine ztplqt(M, N, L, MB, A, LDA, B, LDB, T, LDT, WORK, INFO)
ZTPLQT
subroutine zlaswlq(M, N, MB, NB, A, LDA, T, LDT, WORK, LWORK, INFO)
ZLASWLQ