1 SUBROUTINE dorghr( N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO )
9 INTEGER IHI, ILO, INFO, LDA, LWORK, N
12 DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * )
69 DOUBLE PRECISION ZERO, ONE
70 parameter( zero = 0.0d+0, one = 1.0d+0 )
74 INTEGER I, IINFO, J, LWKOPT, NB, NH
92 lquery = ( lwork.EQ.-1 )
95 ELSE IF( ilo.LT.1 .OR. ilo.GT.max( 1, n ) )
THEN
97 ELSE IF( ihi.LT.min( ilo, n ) .OR. ihi.GT.n )
THEN
99 ELSE IF( lda.LT.max( 1, n ) )
THEN
101 ELSE IF( lwork.LT.max( 1, nh ) .AND. .NOT.lquery )
THEN
106 nb = ilaenv( 1,
'DORGQR',
' ', nh, nh, nh, -1 )
107 lwkopt = max( 1, nh )*nb
112 CALL xerbla(
'DORGHR', -info )
114 ELSE IF( lquery )
THEN
129 DO 40 j = ihi, ilo + 1, -1
134 a( i, j ) = a( i, j-1 )
157 CALL dorgqr( nh, nh, nh, a( ilo+1, ilo+1 ), lda, tau( ilo ),
158 $ work, lwork, iinfo )
subroutine dorghr(N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO)
subroutine dorgqr(M, N, K, A, LDA, TAU, WORK, LWORK, INFO)
subroutine xerbla(SRNAME, INFO)