  Adsorption of the molecule CO on metallic surfaces is an important unsolved
problem in Kohn-Sham density functional theory (KS-DFT). We present a detailed
study of carbon monoxide adsorption on fcc (111) surfaces of 3d, 4d and 5d
metals using nonempirical semilocal density functionals for the
exchange-correlation energy: the local-density approximation (LDA), two
generalized gradient approximations or GGAs (PBE and PBEsol), and a meta-GGA
(SCAN). The typical error pattern (as found earlier for free molecules and for
free transition metal surfaces), in which results improve from LDA to PBE or
PBEsol to SCAN, due to the satisfaction of more exact constraints, is not found
here. Instead, for CO adsorption on transition metal surfaces, we find that,
while SCAN overbinds much less than LDA, it overbinds slightly more than PBE.
Moreover, the tested functionals often predict the wrong adsorption site, as
first pointed out for LDA and GGA in the ``CO/Pt (111) puzzle". This abnormal
pattern leads us to suspect that the errors of PBE and SCAN for this problem
are density-driven self-interaction errors associated with incorrect charge
transfer between molecule and metal surface. We point out that, by the
variational principle, overbinding by an approximate functional would be
reduced if that functional were applied not to its selfconsistent density for
the adsorbed system but to an exact or more correct density for that system.
Finally, we show for CO on Pt(111) that the site preference is corrected and
the adsorption energy is improved for the PBE functional by using not the
selfconsistent PBE density but a PBE+U density. The resulting correction to the
PBE total energy is much larger for the adsorbed system than for its desorbed
components, showing that the error is in the density of the adsorbed system.
This seems to solve the ``CO/Pt (111) puzzle", in principle if not fully in
practice.
