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 since that time we have considerably improved the program and made it more portable, and we have added several new capabilities, resulting in the present improved version 4. 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 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-dominat-small-curvature approximation, the large-curvature-version-3 approximation, and / or methods that were available earlier. 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.