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,
logical function lsame(CA, CB)
LSAME
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ztplqt(M, N, L, MB, A, LDA, B, LDB, T, LDT, WORK, INFO)
ZTPLQT
subroutine zgelqt(M, N, MB, A, LDA, T, LDT, WORK, INFO)
ZGELQT