CSO-RM uses a HAIEFF model to calculate intermolecular interactions. The form of the intermolecular model is the same as that given in Section 2.1, comprising electrostatic and repulsion/dispersion contributions. The repulsion/dispersion calculation is implemented as specified in Section 2.1, although additional pairwise potential functions are also supported. The electrostatic contribution is calculated as the sum of interacting atom-centred multipole expansions. All possible multipole interactions up to a combined rank of l 1 + l 2 = 4 are implemented in the code, where l 1 and l 2 are ranks of interacting multipoles on each atom site . The specific case of a point-charge based electrostatic model is obtained by limiting the calculation to only interactions where l 1 + l 2 = 0. To ensure that the summation of multipole interactions is calculated accurately, a generalised Ewald summation is employed based on the work of Nijboer and De Wette and Vasileiadis with additional modifications to improve the speed of the calculation. Unlike programs such as DMACRYS , which employs Ewald summations for low-order multipole interactions and direct space summations for higher-order interactions, CSO-RM uses Ewald summations for multipole interactions of arbitrary rank. This ensures that high accuracy can be achieved for both conditionally-convergent and slowly-converging summations at minimal computational expense.