  Unitary matrices which are zero below the secondary diagonal (Hessenberg
unitary matrices) have many uses in analysis. Given a set of needed conditions
on a unitary matrix, this algorithm will give the sparsest unitary matrix. We
give an algorithm for constructing all real Hessenberg unitary matrices. The
$n\times n$ unitary matrices given by the algorithm have $n-1$ variables which
can be chosen to give additional properties needed for a particular
application.
