150 SUBROUTINE claswlq( M, N, MB, NB, A, LDA, T, LDT, WORK, LWORK,
159 INTEGER INFO, LDA, M, N, MB, NB, LWORK, LDT
162 COMPLEX A( lda, * ), WORK( * ), T( ldt, *)
170 INTEGER I, II, KK, CTR
178 INTRINSIC max, min, mod
190 lquery = ( lwork.EQ.-1 )
194 ELSE IF( n.LT.0 .OR. n.LT.m )
THEN 196 ELSE IF( mb.LT.1 .OR. ( mb.GT.m .AND. m.GT.0 ))
THEN 198 ELSE IF( nb.LE.m )
THEN 200 ELSE IF( lda.LT.max( 1, m ) )
THEN 202 ELSE IF( ldt.LT.mb )
THEN 204 ELSE IF( ( lwork.LT.m*mb) .AND. (.NOT.lquery) )
THEN 212 CALL xerbla(
'CLASWLQ', -info )
214 ELSE IF (lquery)
THEN 220 IF( min(m,n).EQ.0 )
THEN 226 IF((m.GE.n).OR.(nb.LE.m).OR.(nb.GE.n))
THEN 227 CALL cgelqt( m, n, mb, a, lda, t, ldt, work, info)
231 kk = mod((n-m),(nb-m))
236 CALL cgelqt( m, nb, mb, a(1,1), lda, t, ldt, work, info)
239 DO i = nb+1, ii-nb+m , (nb-m)
243 CALL ctplqt( m, nb-m, 0, mb, a(1,1), lda, a( 1, i ),
252 CALL ctplqt( m, kk, 0, mb, a(1,1), lda, a( 1, ii ),
253 $ lda, t(1,ctr*m+1), ldt,
subroutine cgelqt(M, N, MB, A, LDA, T, LDT, WORK, INFO)
subroutine ctplqt(M, N, L, MB, A, LDA, B, LDB, T, LDT, WORK, INFO)
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine claswlq(M, N, MB, NB, A, LDA, T, LDT, WORK, LWORK, INFO)