POLYRATE is a computer program for the calculation of chemical reaction rates of polyatomic species (and also atoms and diatoms as special cases). Version 1.1 was submitted to the CPC Program Library in 1987, and version 4.0.1 was submitted in 1992. Since that time many new capabilities have been added, old ones have been improved, and the code has been made more portable and user-friendly, resulting in the present improved version 6.5. The methods used are variational or conventional transition state theory and multidimensional semiclassical adiabatic and large-curvature approximations for tunneling and nonclassical reflection. Rate constants may be calculated for canonical or microcanonical ensembles or for specific vibrational states of selected modes with translational, rotational, and other vibrational modes treated thermally. Bimolecular and unimolecular reactions and gas-phase, solid-state, and gas-solid interface reactions are all included. Potential energy surfaces may be global analytic functions or implicit functions defined by interpolation from input energies, gradients, and force constants (Hessian matrices) at selected points on a reaction path. The data needed for the dynamics calculations may also be calculated from a global potential energy surface with more accurate calculations at stationary points. The program calculates reaction paths by the Euler, Euler stabilization, or Page-McIver methods. Variational transition states are optimized from among a one-parameter sequence of generalized transition states orthogonal to the reaction path. Tunneling probabilities are calculated by numerical quadrature, using either the centrifugal-dominant-small-curvature approximation, the large-curvature-version-3 approximation, and/or optimized multidimensional tunneling approximations. In the large-curvature case the tunneling probabilities may be summed over final vibrational states for exoergic reactions or initial vibrational states for endoergic reactions.