150 SUBROUTINE slaswlq( M, N, MB, NB, A, LDA, T, LDT, WORK, LWORK,
159 INTEGER INFO, LDA, M, N, MB, NB, LWORK, LDT
162 REAL A( lda, * ), WORK( * ), T( ldt, *)
170 INTEGER I, II, KK, CTR
178 INTRINSIC max, min, mod
186 lquery = ( lwork.EQ.-1 )
190 ELSE IF( n.LT.0 .OR. n.LT.m )
THEN
192 ELSE IF( mb.LT.1 .OR. ( mb.GT.m .AND. m.GT.0 ))
THEN
194 ELSE IF( nb.LE.m )
THEN
196 ELSE IF( lda.LT.max( 1, m ) )
THEN
198 ELSE IF( ldt.LT.mb )
THEN
200 ELSE IF( ( lwork.LT.m*mb) .AND. (.NOT.lquery) )
THEN
208 CALL xerbla(
'SLASWLQ', -info )
210 ELSE IF (lquery)
THEN
216 IF( min(m,n).EQ.0 )
THEN
222 IF((m.GE.n).OR.(nb.LE.m).OR.(nb.GE.n))
THEN
223 CALL sgelqt( m, n, mb, a, lda, t, ldt, work, info)
227 kk = mod((n-m),(nb-m))
232 CALL sgelqt( m, nb, mb, a(1,1), lda, t, ldt, work, info)
235 DO i = nb+1, ii-nb+m , (nb-m)
239 CALL stplqt( m, nb-m, 0, mb, a(1,1), lda, a( 1, i ),
240 $ lda, t(1, ctr * m + 1),
248 CALL stplqt( m, kk, 0, mb, a(1,1), lda, a( 1, ii ),
249 $ lda, t(1, ctr * m + 1), ldt,
subroutine sgelqt(M, N, MB, A, LDA, T, LDT, WORK, INFO)
subroutine stpqrt(M, N, L, NB, A, LDA, B, LDB, T, LDT, WORK, INFO)
STPQRT
subroutine sgeqrt(M, N, NB, A, LDA, T, LDT, WORK, INFO)
SGEQRT
subroutine stplqt(M, N, L, MB, A, LDA, B, LDB, T, LDT, WORK, INFO)
STPLQT
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine slaswlq(M, N, MB, NB, A, LDA, T, LDT, WORK, LWORK, INFO)