I don’t know the answer to your question, but unless you are specifically interested in programming aspects of the spooles solver, I would recommend trying the pardiso or pastix solvers, they are faster and can accommodate larger models.
The crash is caused by a bug in spooles
(int overflow).
You can fix your spooles by editing
spooles-2.2/I2Ohash/src/util.c:
However, even with this correction, the largest model you can solve is a little over 1 million equations. After that you get crashes due to I presume 32-bit limitations…
Pardiso is free now and the way to go. Much faster and can solve many millions of equations.
I am running models with more than 1M equations and have not seen a crash. However I am not sure if the solution I am getting is correct or if is there is any misbehavior due the solver. You see, as it is not detailed what the correction is for, there is always a suspicion.
I am running the CalculiX version distributed by debian 11 (ccx v2.17), but also compiled on ubuntu 20.04 ccx v2.19 using the system libraries (spooles, arpack, lapack, blas) with a slight modification of the default Makefile_MT.
PastiX is difficult to make it work (I gave up with v2.17, maybe should retry…)
Pardiso seam to have changed the licensing policy. I’ve got recently the following reply from Prof. Olaf Schenk:
“at the moment I would recommend to use spooles as the USI legal department is not any more supporting the licensing of PARDISO to both academic and corporate users”
Just noticed that the spooles package maintained by debian is up to date and has the mentioned I2Ohash and many other bug fixes and corrections. So definitely I recommend to build CalculiX with system libraries.