This is a workaround for this gcc bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55227
Using a struct initializer with a field name for a char * field prevents the code from compiling as C++ with current versions of gcc. This merger request comments out the field names, since relying on the ordering appears to be allowed in C and C++. I've also added casts on a couple of calloc() calls where they were missing.
Not tested yet because it needs a few more fixes in the cooling, feedback and extra_io modules to compile as C++.