203      SUBROUTINE dgghrd( COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB,
 
  205     $                   LDQ, Z, LDZ, INFO )
 
  212      CHARACTER          COMPQ, COMPZ
 
  213      INTEGER            IHI, ILO, INFO, LDA, LDB, LDQ, LDZ, N
 
  216      DOUBLE PRECISION   A( LDA, * ), B( LDB, * ), Q( LDQ, * ),
 
  223      DOUBLE PRECISION   ONE, ZERO
 
  224      PARAMETER          ( ONE = 1.0d+0, zero = 0.0d+0 )
 
  228      INTEGER            ICOMPQ, ICOMPZ, JCOL, JROW
 
  229      DOUBLE PRECISION   C, S, TEMP
 
  245      IF( lsame( compq, 
'N' ) ) 
THEN 
  248      ELSE IF( lsame( compq, 
'V' ) ) 
THEN 
  251      ELSE IF( lsame( compq, 
'I' ) ) 
THEN 
  260      IF( lsame( compz, 
'N' ) ) 
THEN 
  263      ELSE IF( lsame( compz, 
'V' ) ) 
THEN 
  266      ELSE IF( lsame( compz, 
'I' ) ) 
THEN 
  276      IF( icompq.LE.0 ) 
THEN 
  278      ELSE IF( icompz.LE.0 ) 
THEN 
  280      ELSE IF( n.LT.0 ) 
THEN 
  282      ELSE IF( ilo.LT.1 ) 
THEN 
  284      ELSE IF( ihi.GT.n .OR. ihi.LT.ilo-1 ) 
THEN 
  286      ELSE IF( lda.LT.max( 1, n ) ) 
THEN 
  288      ELSE IF( ldb.LT.max( 1, n ) ) 
THEN 
  290      ELSE IF( ( ilq .AND. ldq.LT.n ) .OR. ldq.LT.1 ) 
THEN 
  292      ELSE IF( ( ilz .AND. ldz.LT.n ) .OR. ldz.LT.1 ) 
THEN 
  296         CALL xerbla( 
'DGGHRD', -info )
 
  303     $   
CALL dlaset( 
'Full', n, n, zero, one, q, ldq )
 
  305     $   
CALL dlaset( 
'Full', n, n, zero, one, z, ldz )
 
  314      DO 20 jcol = 1, n - 1
 
  315         DO 10 jrow = jcol + 1, n
 
  316            b( jrow, jcol ) = zero
 
  322      DO 40 jcol = ilo, ihi - 2
 
  324         DO 30 jrow = ihi, jcol + 2, -1
 
  328            temp = a( jrow-1, jcol )
 
  329            CALL dlartg( temp, a( jrow, jcol ), c, s,
 
  330     $                   a( jrow-1, jcol ) )
 
  331            a( jrow, jcol ) = zero
 
  332            CALL drot( n-jcol, a( jrow-1, jcol+1 ), lda,
 
  333     $                 a( jrow, jcol+1 ), lda, c, s )
 
  334            CALL drot( n+2-jrow, b( jrow-1, jrow-1 ), ldb,
 
  335     $                 b( jrow, jrow-1 ), ldb, c, s )
 
  337     $         
CALL drot( n, q( 1, jrow-1 ), 1, q( 1, jrow ), 1, c,
 
  342            temp = b( jrow, jrow )
 
  343            CALL dlartg( temp, b( jrow, jrow-1 ), c, s,
 
  345            b( jrow, jrow-1 ) = zero
 
  346            CALL drot( ihi, a( 1, jrow ), 1, a( 1, jrow-1 ), 1, c,
 
  348            CALL drot( jrow-1, b( 1, jrow ), 1, b( 1, jrow-1 ), 1, c,
 
  351     $         
CALL drot( n, z( 1, jrow ), 1, z( 1, jrow-1 ), 1, c,
 
 
subroutine dgghrd(compq, compz, n, ilo, ihi, a, lda, b, ldb, q, ldq, z, ldz, info)
DGGHRD