162 SUBROUTINE claswlq( M, N, MB, NB, A, LDA, T, LDT, WORK, LWORK,
170 INTEGER info, lda, m, n, mb, nb, lwork, ldt
173 COMPLEX a( lda, * ), work( * ), t( ldt, *)
181 INTEGER i, ii, kk, ctr
189 INTRINSIC max, min, mod
201 lquery = ( lwork.EQ.-1 )
205 ELSE IF( n.LT.0 .OR. n.LT.m )
THEN 207 ELSE IF( mb.LT.1 .OR. ( mb.GT.m .AND. m.GT.0 ))
THEN 209 ELSE IF( nb.LE.0 )
THEN 211 ELSE IF( lda.LT.max( 1, m ) )
THEN 213 ELSE IF( ldt.LT.mb )
THEN 215 ELSE IF( ( lwork.LT.m*mb) .AND. (.NOT.lquery) )
THEN 223 CALL xerbla(
'CLASWLQ', -info )
225 ELSE IF (lquery)
THEN 231 IF( min(m,n).EQ.0 )
THEN 237 IF((m.GE.n).OR.(nb.LE.m).OR.(nb.GE.n))
THEN 238 CALL cgelqt( m, n, mb, a, lda, t, ldt, work, info)
242 kk = mod((n-m),(nb-m))
247 CALL cgelqt( m, nb, mb, a(1,1), lda, t, ldt, work, info)
250 DO i = nb+1, ii-nb+m , (nb-m)
254 CALL ctplqt( m, nb-m, 0, mb, a(1,1), lda, a( 1, i ),
263 CALL ctplqt( m, kk, 0, mb, a(1,1), lda, a( 1, ii ),
264 $ lda, t(1,ctr*m+1), ldt,
integer function ilaenv(ISPEC, NAME, OPTS, N1, N2, N3, N4)
ILAENV
logical function lsame(CA, CB)
LSAME
subroutine cgelqt(M, N, MB, A, LDA, T, LDT, WORK, INFO)
CGELQT
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ctplqt(M, N, L, MB, A, LDA, B, LDB, T, LDT, WORK, INFO)
CTPLQT