+}
+
+/*! \brief Dispatches the non-bonded N versus M atom cluster CPU kernels.
+ *
+ * OpenMP parallelization is performed within this function.
+ * Energy reduction, but not force and shift force reduction, is performed
+ * within this function.
+ *
+ * \param[in] pairlistSet Pairlists with local or non-local interactions to compute
+ * \param[in] kernelSetup The non-bonded kernel setup
+ * \param[in,out] nbat The atomdata for the interactions
+ * \param[in] ic Non-bonded interaction constants
+ * \param[in] shiftVectors The PBC shift vectors
+ * \param[in] stepWork Flags that tell what to compute
+ * \param[in] clearF Enum that tells if to clear the force output buffer
+ * \param[out] vCoulomb Output buffer for Coulomb energies
+ * \param[out] vVdw Output buffer for Van der Waals energies
+ * \param[in] wcycle Pointer to cycle counting data structure.
+ */
+static void nbnxn_kernel_cpu(const PairlistSet& pairlistSet,
+ const Nbnxm::KernelSetup& kernelSetup,
+ nbnxn_atomdata_t* nbat,
+ const interaction_const_t& ic,
+ rvec* shiftVectors,
+ const gmx::StepWorkload& stepWork,
+ int clearF,
+ real* vCoulomb,
+ real* vVdw,
+ gmx_wallcycle* wcycle)
+{
+
+ const nbnxn_atomdata_t::Params& nbatParams = nbat->params();
+
+ const int coulkt = getCoulombKernelType(kernelSetup, ic);
+ const int vdwkt = getVdwKernelType(kernelSetup, nbatParams, ic);