2727* > TRANS = 'T': Q**T * C C * Q**T
2828* > where Q is a real orthogonal matrix defined as the product
2929* > of blocked elementary reflectors computed by tall skinny
30- * > QR factorization (DLATSQR )
30+ * > QR factorization (SLATSQR )
3131* > \endverbatim
3232*
3333* Arguments:
7272* > \verbatim
7373* > MB is INTEGER
7474* > The block size to be used in the blocked QR.
75- * > MB > N. (must be the same as DLATSQR )
75+ * > MB > N. (must be the same as SLATSQR )
7676* > \endverbatim
7777* >
7878* > \param[in] NB
8787* > A is REAL array, dimension (LDA,K)
8888* > The i-th column must contain the vector which defines the
8989* > blockedelementary reflector H(i), for i = 1,2,...,k, as
90- * > returned by DLATSQR in the first k columns of
90+ * > returned by SLATSQR in the first k columns of
9191* > its array argument A.
9292* > \endverbatim
9393* >
@@ -214,7 +214,7 @@ SUBROUTINE SLAMTSQR( SIDE, TRANS, M, N, K, MB, NB, A, LDA, T,
214214* ..
215215* .. Local Scalars ..
216216 LOGICAL LEFT, RIGHT, TRAN, NOTRAN, LQUERY
217- INTEGER I, II, KK, LW, CTR
217+ INTEGER I, II, KK, LW, CTR, Q
218218* ..
219219* .. External Functions ..
220220 LOGICAL LSAME
@@ -233,22 +233,26 @@ SUBROUTINE SLAMTSQR( SIDE, TRANS, M, N, K, MB, NB, A, LDA, T,
233233 RIGHT = LSAME( SIDE, ' R' )
234234 IF (LEFT) THEN
235235 LW = N * NB
236+ Q = M
236237 ELSE
237238 LW = MB * NB
239+ Q = N
238240 END IF
239241*
240242 INFO = 0
241243 IF ( .NOT. LEFT .AND. .NOT. RIGHT ) THEN
242244 INFO = - 1
243245 ELSE IF ( .NOT. TRAN .AND. .NOT. NOTRAN ) THEN
244246 INFO = - 2
245- ELSE IF ( M.LT. 0 ) THEN
246- INFO = - 3
247- ELSE IF ( N.LT. 0 ) THEN
248- INFO = - 4
249247 ELSE IF ( K.LT. 0 ) THEN
250248 INFO = - 5
251- ELSE IF ( LDA.LT. MAX ( 1 , K ) ) THEN
249+ ELSE IF ( N.LT. K ) THEN
250+ INFO = - 4
251+ ELSE IF ( M.LT. N ) THEN
252+ INFO = - 3
253+ ELSE IF ( K.LT. NB .OR. NB.LT. 1 ) THEN
254+ INFO = - 7
255+ ELSE IF ( LDA.LT. MAX ( 1 , Q ) ) THEN
252256 INFO = - 9
253257 ELSE IF ( LDT.LT. MAX ( 1 , NB) ) THEN
254258 INFO = - 11
0 commit comments