====================================================================
dorghr examples
====================================================================

====================================================================
Man Page Details
====================================================================

NAME
       DORGHR  - a real orthogonal matrix Q which is defined as the product of
       IHI-ILO elementary reflectors of order N, as returned by DGEHRD

SYNOPSIS
       SUBROUTINE DORGHR( N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO )

           INTEGER        IHI, ILO, INFO, LDA, LWORK, N

           DOUBLE         PRECISION A( LDA, * ), TAU( * ), WORK( * )

PURPOSE
       DORGHR generates a real orthogonal matrix Q which  is  defined  as  the
       product  of  IHI-ILO  elementary  reflectors of order N, as returned by
       DGEHRD:

       Q = H(ilo) H(ilo+1) . . . H(ihi-1).


ARGUMENTS
       N       (input) INTEGER
               The order of the matrix Q. N >= 0.

       ILO     (input) INTEGER
               IHI     (input) INTEGER ILO and IHI must have the  same  values
               as  in  the  previous  call  of  DGEHRD. Q is equal to the unit
               matrix except in the submatrix  Q(ilo+1:ihi,ilo+1:ihi).   1  <=
               ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.

       A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
               On  entry,  the vectors which define the elementary reflectors,
               as returned by DGEHRD.  On exit, the N-by-N  orthogonal  matrix
               Q.

       LDA     (input) INTEGER
               The leading dimension of the array A. LDA >= max(1,N).

       TAU     (input) DOUBLE PRECISION array, dimension (N-1)
               TAU(i) must contain the scalar factor of the elementary reflec-
               tor H(i), as returned by DGEHRD.

       WORK      (workspace/output)   DOUBLE   PRECISION   array,    dimension
       (MAX(1,LWORK))
               On exit, if INFO = 0, WORK(1) returns the optimal LWORK.

       LWORK   (input) INTEGER
               The dimension of the array WORK. LWORK >= IHI-ILO.  For optimum
               performance  LWORK  >=  (IHI-ILO)*NB,  where  NB is the optimal
               blocksize.

               If LWORK = -1, then a workspace query is assumed;  the  routine
               only  calculates  the  optimal  size of the WORK array, returns
               this value as the first entry of the WORK array, and  no  error
               message related to LWORK is issued by XERBLA.

       INFO    (output) INTEGER
               = 0:  successful exit
               < 0:  if INFO = -i, the i-th argument had an illegal value

