162 SUBROUTINE slaswlq( M, N, MB, NB, A, LDA, T, LDT, WORK, LWORK,
170 INTEGER INFO, LDA, M, N, MB, NB, LWORK, LDT
173 REAL 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(
'SLASWLQ', -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 sgelqt( m, n, mb, a, lda, t, ldt, work, info)
238 kk = mod((n-m),(nb-m))
243 CALL sgelqt( m, nb, mb, a(1,1), lda, t, ldt, work, info)
246 DO i = nb+1, ii-nb+m , (nb-m)
250 CALL stplqt( m, nb-m, 0, mb, a(1,1), lda, a( 1, i ),
251 $ lda, t(1, ctr * m + 1),
259 CALL stplqt( 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 sgelqt(M, N, MB, A, LDA, T, LDT, WORK, INFO)
SGELQT
subroutine stplqt(M, N, L, MB, A, LDA, B, LDB, T, LDT, WORK, INFO)
STPLQT
subroutine sgeqrt(M, N, NB, A, LDA, T, LDT, WORK, INFO)
SGEQRT
subroutine stpqrt(M, N, L, NB, A, LDA, B, LDB, T, LDT, WORK, INFO)
STPQRT
subroutine slaswlq(M, N, MB, NB, A, LDA, T, LDT, WORK, LWORK, INFO)
SLASWLQ