167 SUBROUTINE slatsqr( M, N, MB, NB, A, LDA, T, LDT, WORK,
175 INTEGER INFO, LDA, M, N, MB, NB, LDT, LWORK
178 REAL A( LDA, * ), WORK( * ), T(LDT, *)
186 INTEGER I, II, KK, CTR
194 INTRINSIC max, min, mod
202 lquery = ( lwork.EQ.-1 )
206 ELSE IF( n.LT.0 .OR. m.LT.n )
THEN
208 ELSE IF( mb.LT.1 )
THEN
210 ELSE IF( nb.LT.1 .OR. ( nb.GT.n .AND. n.GT.0 ))
THEN
212 ELSE IF( lda.LT.max( 1, m ) )
THEN
214 ELSE IF( ldt.LT.nb )
THEN
216 ELSE IF( lwork.LT.(n*nb) .AND. (.NOT.lquery) )
THEN
223 CALL xerbla(
'SLATSQR', -info )
225 ELSE IF (lquery)
THEN
231 IF( min(m,n).EQ.0 )
THEN
237 IF ((mb.LE.n).OR.(mb.GE.m))
THEN
238 CALL sgeqrt( m, n, nb, a, lda, t, ldt, work, info)
241 kk = mod((m-n),(mb-n))
246 CALL sgeqrt( mb, n, nb, a(1,1), lda, t, ldt, work, info )
249 DO i = mb+1, ii-mb+n , (mb-n)
253 CALL stpqrt( mb-n, n, 0, nb, a(1,1), lda, a( i, 1 ), lda,
262 CALL stpqrt( kk, n, 0, nb, a(1,1), lda, a( ii, 1 ), lda,
263 $ t(1, ctr * n + 1), ldt,
subroutine xerbla(srname, info)
subroutine sgeqrt(m, n, nb, a, lda, t, ldt, work, info)
SGEQRT
subroutine slatsqr(m, n, mb, nb, a, lda, t, ldt, work, lwork, info)
SLATSQR
subroutine stpqrt(m, n, l, nb, a, lda, b, ldb, t, ldt, work, info)
STPQRT