173 SUBROUTINE cungtsqr( M, N, MB, NB, A, LDA, T, LDT, WORK, LWORK,
182 INTEGER INFO, LDA, LDT, LWORK, M, N, MB, NB
185 COMPLEX A( lda, * ), T( ldt, * ), WORK( * )
192 parameter( cone = ( 1.0e+0, 0.0e+0 ),
193 $ czero = ( 0.0e+0, 0.0e+0 ) )
197 INTEGER IINFO, LDC, LWORKOPT, LC, LW, NBLOCAL, J
203 INTRINSIC cmplx, max, min
213 ELSE IF( n.LT.0 .OR. m.LT.n )
THEN 215 ELSE IF( mb.LE.n )
THEN 217 ELSE IF( nb.LT.1 )
THEN 219 ELSE IF( lda.LT.max( 1, m ) )
THEN 221 ELSE IF( ldt.LT.max( 1, min( nb, n ) ) )
THEN 229 IF( lwork.LT.2 .AND. (.NOT.lquery) )
THEN 235 nblocal = min( nb, n )
247 IF( ( lwork.LT.max( 1, lworkopt ) ).AND.(.NOT.lquery) )
THEN 257 CALL xerbla(
'CUNGTSQR', -info )
259 ELSE IF ( lquery )
THEN 260 work( 1 ) = cmplx( lworkopt )
266 IF( min( m, n ).EQ.0 )
THEN 267 work( 1 ) = cmplx( lworkopt )
282 CALL claset(
'F', m, n, czero, cone, work, ldc )
289 CALL clamtsqr(
'L',
'N', m, n, n, mb, nblocal, a, lda, t, ldt,
290 $ work, ldc, work( lc+1 ), lw, iinfo )
297 CALL ccopy( m, work( (j-1)*ldc + 1 ), 1, a( 1, j ), 1 )
300 work( 1 ) = cmplx( lworkopt )
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ccopy(N, CX, INCX, CY, INCY)
CCOPY
subroutine cungtsqr(M, N, MB, NB, A, LDA, T, LDT, WORK, LWORK, INFO)
CUNGTSQR
subroutine claset(UPLO, M, N, ALPHA, BETA, A, LDA)
CLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values...