Illegal pair_coeff command (src/KSPACE/pair_lj_charmm_coul_long.cpp:646)

Despite much searching I have been unable to resolve the following problem with a LAMMPS simulation. I am getting

ERROR: Illegal pair_coeff command (src/KSPACE/pair_lj_charmm_coul_long.cpp:646)
Last command: read_data       md.data

and cannot figure out what in my data or input file is wrong.

My input file contains

pair_style lj/charmm/coul/long 9.0 7.0
pair_modify mix arithmetic tail yes
bond_style harmonic
angle_style harmonic
dihedral_style fourier
kspace_style pppm 1.0e-5
special_bonds amber

and the relevant parts of my data file are

Pair Coeffs

1  1  0.1094  3.399670
2  2  0.0157  2.471353
3  3  0.0000  0.000000
4  4  0.2104  3.066473
5  5  0.1700  3.000012

Bond Coeffs

1  303.1  1.535
2  314.1  1.426
3  335.9  1.093
4  301.5  1.439
5  369.6  0.974


Angle Coeffs

1  46.36  110.07
2  67.72  109.43
3  67.78  108.42
4  39.18  109.55
5  50.97  109.88
6  50.84  108.82
7  47.09  108.16
8  62.39  112.45


Dihedral Coeffs

1  1  0.155556  3  0.0
2  1  0.166667  3  0.0
3  1  0.383333  3  0.0
4  2  0.160000  3  0.0  0.250  1    0.0
5  2  0.383000  3  0.0  0.100  2  180.0
6  2  0.144000  3  0.0  1.175  2    0.0
7  2  0.144000  3  0.0  1.175  2    0.0
8  2  0.000000  3  0.0  0.250  1    0.0
9  2  0.000000  3  0.0  0.250  1    0.0

The error message makes me think that my data file is formatted incorrectly, but I have run another simulation with an almost identical format (but using the lj/cut/tip4p/long style instead of lj/charmm/coul/long because the other system also contains water) with no problems.

I was suspicious that the Pair Coeffs for atom type 3 being zero could cause a problem, so I also tried setting those to arbitrary nonzero values. The error message seems to be coming from the KSPACE module, so I also tried commenting out the kspace_style command, but get the same result.

Any suggestions for further troubleshooting would be greatly appreciated!

Your Pair Coeffs section in incorrect. You should have only one column of atom types (unlike for the pair_coeffs command. This is for force fields that have only LJ parameters for each atom type and then determine the remaining inter-type parameters from mixing. If you would be using two columns of atom types, then you need to provide the PairIJ Coeffs section instead, but then you also need to provide all mixed values and your input should have 20 lines instead of 5.

This is one of the reasons why it is usually more convenient to not have any force field parameters in the data file, but put them into separate files with pair_coeff and bond_coeff commands and so on and then use the include command to read them.

Thank you @akohlmey! Of course it seems so obvious now that I know the answer.