Coot uses the surface code from Gruber and Noble (2004).
Coot uses the partial charges of the atoms (the partial_charge field in the _chem_comp_atom block) from the charge dictionary item in the refmac (or other) cif dictionary. However, partial charges are only used under certain conditions
1) the molecule consists of less than 100 atoms
or
2) the number of atoms in the molecule that are hydrogens is at least 15% of the total number of atoms in the molecule
If partial charges are not used, then the fall-back is to use charges from side-chains charged at physiological pH (Arg, Lys, Asp, Glu).