I’ve been using the surf_source_write and surf_source_read functions in eigenvalue and fixed source modes respectively, tallying photon and neutron fluxes with spherical meshes outside my reactor but get sometimes subtly, sometimes outrageously different results depending on the model and where my read/write surface is located. They are never the same between modes, with at best one group being an order of magnitude smaller in “read” mode, and at worst values across all tallies being three orders of magnitude higher. Source particle count makes no difference. Am I setting things up wrong somehow or is this a bug in the code?
Quite likely an error in your model/setup.
I use read/writes all the time, they work.
Make sure the geometry and surfaces are correctly setup. Make sure you normalize results of the particles run in the SSR to those in the SSW.