
The mpi_catarray function has caused some problems lately. We had to change a few things around to get it to work with inline in a particular way, but the specifics escape me now. I think that it was this change that broke the ngrids<ncpu issue that you bring up; I'm sorry it caused you an issue! Your fix looks fine to me.
Thanks for letting me know how this bug possibly arose. I'll go ahead and push the change.
Nope! As of right now, Enzo's the only code that implements preload. I suspect that any fix would have to be applied specific to each code, but my gut feeling is that the only reason it came up in Enzo is because of carelessness on my part; for some reason the IO Handler instance doesn't know about its parent parameter file or hierarchy. I think that a longer-term fix would be to avoid this ignorance, and simply give unto the IOHandler a reference to the parameter file. I think that if we removed the grids[0] call, otherwise preload() should succeed. Your fix is great, thought.
Good to know. I just didn't want to push a change that could've been extended to other formats :) Thanks again, John