The following three sections provide details on how the main steps of ddX calculations are handled in the implementations. The discussion will refer to the high level API of ddX, which are reported in table 1. See Figure for a graphical representation of external codes using ddX. Both the case of a classical solute in a calculation of energy and force, and of a QM solute in a calculation of energy and Fock matrix is reported. To make the following discussion more concise, we will only mention the function names in Fortran.