Abstract: QMMM is a computer program for performing single-point calculations (energies, gradients, and Hessians), geometry optimizations, and molecular dynamics using combined quantum mechanics (QM) and molecular mechanics (MM) methods. The boundary between the QM and MM regions can be treated by a number of schemes, including the redistributed charge (RC) scheme, the redistributed charge and dipole (RCD) scheme, the polarized-boundary RC (PBRC) scheme, the polarized-boundary RCD (PBRCD) scheme, the flexible-boundary RC (FBRC), and the flexible-boundary RCD (FBRCD) scheme. All of these schemes use link atoms to saturate the dangling bonds (if any) for the QM subsystem, and they use redistributed MM point charges to mimic a hybrid orbital on the MM host atom (called the M1 atom) that is replaced by the link atom. In the RCD treatment, the value of the redistributed charge and the value of the charge on the M2 atom, i.e., the MM atom that is directly bonded to the M1 atom, are further modified to preserve the M1-M2 bond dipole. The PBRC and PBRCD schemes are further developments of the RC and RCD schemes. The PBRC and PBRCD schemes account for the polarization of the MM subsystem due to the QM subsystem near the boundary; the polarization of the MM subsystem is realized by adjusting the secondary-subsystem atomic partial charges in the embedded-QM calculations according to the principle of electronegativity equalization and the principle of charge conservation. The FBRC and FBRCD schemes are further developments of the PBRC and PBRCD schemes, and they account for partial charge transfer (in addition to mutual polarization) between the QM and MM subsystems. Some other schemes used for QM/MM boundary treatments are also implemented; in particular, we implement the original integrated molecular-orbital molecular-mechanics (IMOMM, also known as the mechanical embedding scheme, ME), the straight electronic embedding (SEE) scheme, three eliminated-charge schemes, and the shifted-charge scheme. QMMM calls a QM package and an MM package to perform required single-level calculations. QMMM was tested with GAMESS, Gaussian (both Gaussian 09 and Gaussian 16), and ORCA for the QM package and with TINKER for the MM package; it contains 156 sample runs that can be used to learn and test the program.