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,
logical function lsame(CA, CB)
LSAME
subroutine xerbla(SRNAME, INFO)
XERBLA
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 stpqrt(M, N, L, NB, A, LDA, B, LDB, T, LDT, WORK, INFO)
STPQRT
subroutine sgelqt(M, N, MB, A, LDA, T, LDT, WORK, INFO)
SGELQT