The presented FORTRAN codes are built on the LAPACK and BLAS libraries, containing a collection of highly performant and numerically reliable basic linear algebra subroutines. These packages can be obtained via Netlib.
# ---------------------------------
# Driver routines
# ---------------------------------

file dhaesu.f     dhaesu.f plus dependencies
Computes the eigenvalues and the symplectic URV/periodic Schur
decomposition of a Hamiltonian matrix.
Test routine: tdhaesu.f     tdhaesu.f plus dependencies
Test data:    dhaesu.dat    dhaesu.res

file dhasub.f     dhasub.f plus dependencies
Computes stable and unstable invariant subspaces of a Hamiltonian
matrix from the output of DHAESU.
Test routine: tdhasub.f     tdhasub.f plus dependencies
Test data:    dhasub.dat    dhasub.res

file dshes.f      dshes.f plus dependencies
Computes the eigenvalues and the skew-Hamiltonian Schur decomposition of
a skew-Hamiltonian matrix.
Test routine: tdshes.f      tdshes.f plus dependencies
Test data:    dshes.dat     dshes.res

file dshevx.f     dshevx.f plus dependencies
Computes the eigenvalues and eigenvectors of a skew-Hamiltonian
matrix, with preliminary balancing of the matrix, and computes
reciprocal condition numbers for the eigenvalues and some eigenvectors.
Test routine: tdshevx.f     tdshevx.f plus dependencies
Test data:    dshevx.dat    dshevx.res

# ---------------------------------
# Computational routines
# ---------------------------------

file dgesqb.f     dgesqb.f plus dependencies
Symplectic QR decomposition of a general matrix. Blocked version.
Test routine: tdgesqb.f     tdgesqb.f plus dependencies
Test data:    dgesqb.dat    dgesqb.res

file dgesqr.f
Symplectic QR decomposition of a general matrix. Unblocked version.
Test routine: tdgesqr.f     tdgesqr.f plus dependencies
Test data:    dgesqr.dat    dgesqr.res

file dgesub.f     dgesub.f plus dependencies
Symplectic URV decomposition of a general matrix. Blocked version.
Test routine: tdgesub.f     tdgesub.f plus dependencies
Test data:    dgesub.dat    dgesub.res

file dgesuv.f
Symplectic URV decomposition of a general matrix. Unblocked version.
Test routine: tdgesuv.f     tdgesuv.f plus dependencies
Test data:    dgesuv.dat    dgesuv.res

file dhabak.f
Applies the inverse of a balancing transformation, computed by the
routines DHABAL or DSHBAL.

file dhabal.f
Symplectic balancing of a Hamiltonian matrix.
Test routine: tdhabal.f     tdhabal.f plus dependencies
Test data:    dhabal.dat    dhabal.res

file dhaord.f     dhaord.f plus dependencies
Reorder the (skew-)Hamiltonian Schur decomposition of a (skew-)
Hamiltonian matrix.
Test routine: tdhaord.f     tdhaord.f plus dependencies
Test data:    dhaord.dat    dhaord.res

file dhapvb.f     dhapvb.f plus dependencies
PVL reduction of a Hamiltonian matrix. Blocked version.
Test routine: tdhapvb.f     tdhapvb.f plus dependencies
Test data:    dhapvb.dat    dhapvb.res

file dhapvl.f
PVL reduction of a Hamiltonian matrix. Unblocked version.
Test routine: tdhapvl.f     tdhapvl.f plus dependencies
Test data:    dhapvl.dat    dhapvl.res

file dhgpqr.f     dhgpqr.f plus dependencies
Periodic Schur decomposition of a product of two matrices.
Test routine: tdhgpqr.f     tdhgpqr.f plus dependencies
Test data:    dhgpqr.dat    dhapvl.res

file dosgpv.f     dosgpv.f plus dependencies
Generates the orthogonal symplectic matrix U from a PVL decomposition
determined by DHAPVL or DSHPVL.

file dosgsb.f     dosgsb.f plus dependencies
Generates all or part of the orthogonal symplectic matrix Q from
a symplectic QR decomposition determined by DGEQRB or DGEQRS.
Blocked version.

file dosgsq.f
Generates all or part of the orthogonal symplectic matrix Q from
a symplectic QR decomposition determined by DGEQRB or DGEQRS.
Unblocked version.

file dosgsu.f     dosgsu.f plus dependencies
Generates the orthogonal symplectic matrices U and V from a
symplectic URV decomposition determined by DGESUB or DGESUV.

file dosmpv.f     dosmpv.f plus dependencies
Applies the orthogonal symplectic matrix U from a PVL decomposition
determined by DHAPVL or DSHPVL to a general matrix.

file dosmsb.f     dosmsb.f plus dependencies
Applies all or part of the orthogonal symplectic matrix Q from a
symplectic QR decomposition determined by DGEQRB or DGEQRS to a general
matrix. Blocked version.

file dosmsq.f
Applies all or part of the orthogonal symplectic matrix Q from a
symplectic QR decomposition determined by DGEQRB or DGEQRS to a general
matrix. Unblocked version.

file dshbal.f
Symplectic balancing of a skew-Hamiltonian matrix.
Test routine: tdshbal.f     tdshbal.f plus dependencies
Test data:    dshbal.dat    dshbal.res

file dshevc.f     dshevc.f plus dependencies
Eigenvectors of a skew-Hamiltonian matrix in skew-Hamiltonian Schur form.

file dshpvb.f     dshpvb.f plus dependencies
PVL reduction of a skew-Hamiltonian matrix. Blocked version.
Test routine: tdshpvb.f     tdshpvb.f plus dependencies
Test data:    dshpvb.dat    dshpvb.res

file dshpvl.f
PVL reduction of a skew-Hamiltonian matrix. Unblocked version.
Test routine: tdshpvl.f     tdshpvl.f plus dependencies
Test data:    dshpvl.dat    dshpvl.res

file dshsna.f     dshsna.f plus dependencies
Computes reciprocal condition numbers for the eigenvalues and some
eigenvectors of a skew-Hamiltonian matrix in skew-Hamiltonian Schur
form.



# ---------------------------------
# Auxiliary routines
# ---------------------------------

file dcroot.f
Complex square root in real arithmetic.

file dhaex2.f     dhaex2.f plus dependencies
Swaps adjacent diagonal blocks in a (skew-)Hamiltonian Schur
decomposition.

file dlabmx.f     dlabmx.f plus dependencies
Auxiliary routine for DHASUB.

file dlabtr.f
Solution of a certain triangular block system.

file dlaesb.f
Applies a block symplectic orthogonal transformation.

file dlaest.f
Triangular factors of a block symplectic orthogonal transformation.

file dlanha.f
Norm of a (skew-)Hamiltonian matrix.

file dlapqr.f     dlapqr.f plus dependencies
Periodic Schur decomposition of a product of two small matrices.

file dlapv2.f
Periodic Schur decomposition of a product of two 2-by-2 matrices.

file dlapvb.f
Panel reduction for PVL reduction.

file dlasub.f
Panel reduction for symplectic URV decomposition.

file dskmv.f
Skew-symmetric matrix-vector product.

file dskr2.f
Skew-symmetric rank 2 update.

file dskr2k.f
Skew-symmetric rank 2k update.

file dskrkb.f
Computes alpha*C + beta*A*B*A' for skew-symmetric matrices B and C.

file dskupd.f
Computes Z*A*Z' for a skew-symmetric matrix A.

file dtgpx2.f     dtgpx2.f plus dependencies
Swaps adjacent diagonal blocks in a periodic Schur decomposition.

file dtgpy2.f
Solution of a small periodic Sylvester equation.

file dtrqml.f
Computes matrix-matrix products involving a quasi-triangular matrix.

file ilahap.f
Problem-dependent parameters for the local environment.