Could you please describe how to do it? Modifying the changekon.f?
just replace the indicated line by the one I posted and recompile calculix
Thanks for your prompt answer, but it sounds like “just spread your wings and fly” to me. I assume that I have to modify and use file from GitHub - Dhondtguido/CalculiX: This repository contains the source files of CalculiX, a three-dimensional Finite Element Program (www.calculix.de).. What I don’t understand, is how to recompile these files? Is there any tutorial, may be? Another question, there is a warning there " Sorry, we had to truncate this directory to 1,000 files. 146 entries were omitted from the list." Will that cause a trouble, too?
you also can find a complete download of the source code ready in the software web site, for current version is http://www.dhondt.de/ccx_2.20.src.tar.bz2
there you have the instructions available: www.dhondt.de/ccx_2.20.README.INSTALL
Well, I tried these instructions, and they didn’t work for me. For example, step 3 provides links for SPOOLES and ARPACK which do not lead anywhere. But SPOOLES and ARPACK are mandatory, nevertheless. Skipping step 3, I receive errors
gfortran -Wall -O2 -c absolute_relative.f
make: gfortran: No such file or directory
make: *** [Makefile:11: absolute_relative.o] Error 127
I installed CalculiX 2.20 using instructions https://solvercube.com/courses/installation-tutorials/lessons/calculix-2-17-binary-executables-on-ubuntu-21-04/, replacing 2.17 with 2.20 and installing libgfortran from a .deb package. Worked fine, but now I got stuck with this ESPRNGA1 error.
you have everything in the software main page: CalculiX: A Three-Dimensional Structural Finite Element Program (dhondt.de)
Again, the link for the SPOOLES leads nowhere, and the link for the ARPACK leads to a github repository. After some tackling (I had to search and install gfortran and libopenmpi packages), ARPACK seems to be installed. SPOOLES is still out of my reach.
I found a SPOOLES version here Debian Science Team / spooles · GitLab. But can’t see any instructions how to install it.
SPOOLES files are in https://netlib.org/linalg/spooles/spooles.2.2.tgz - the same link Guido provided, just need to go down the page.
Installing instructions:
https://netlib.org/linalg/spooles/Install.ps.gz
This is how that link works for me.
In addition to salsa.debian.org needed files can be reached from netlib/linalg/spooles/index, this link seems to work.
I finally got to editing changekon.f and here what make command returns
Error: Unclassifiable statement at (1)
changekon.f:112:3:
112 | & (lakon(i)(1:7).eq.‘ESPRNGA’)) then
| 1
Error: Non-numeric character in statement label at (1)
make: *** [Makefile:11: changekon.o] Error 1
Calculix code is written in fixed format Fortran, so position is essential. You have to place the continuation character (& in this case) exactly in column 6 of the line. Executable code in each line MUST start from column 7 onwards.
Thank you for your prompt answer. I would never guess it myself. Surprisingly, make command now finds problems in cubtri.f
gfortran -Wall -O2 -c cubic.f
gfortran -Wall -O2 -c cubtri.f
cubtri.f:134:18:
134 | CALL CUBRUL(F, VEC, W(1,1), IDATA, RDATA)
| 1
Error: Interface mismatch in dummy procedure ‘f’ at (1): ‘f’ is not a function
cubtri.f:173:20:
173 | CALL CUBRUL(F, VEC, W(1,J), IDATA, RDATA)
| 1
Error: Interface mismatch in dummy procedure ‘f’ at (1): ‘f’ is not a function
make: *** [Makefile:11: cubtri.o] Error 1
this post:Compilation error with gfortran10 - #3 by JuanP74
I recommend implementing the changes in this file ONTO the new version of cubtri.f
since it seems some syntax was updated by dhondt.
I replaced cubtri.f with the file from the link, this error disappeared.
Now make command stops with another error
make: *** No rule to make target ‘…/…/…/ARPACK/libarpack_INTEL.a’, needed by ‘ccx_2.20’. Stop.
It looks like the link down on the page dhondt.de leads to an arpack package that has changed and new version does not support CalculiX.
you have to modify the Makefile
to point to the arpack library you compiled (or is installed) in your system. You can use the wayback machine to recover the broken link in calculix instructions: ARPACK - Arnoldi Package
Well, I suggest it is about these lines from /usr/local/CalculiX/ccx_2.20/src/Makefile
LIBS =
$(DIR)/spooles.a
…/…/…/ARPACK/libarpack_INTEL.a
-lpthread -lm -lc
Going through installation according to GitHub - opencollab/arpack-ng: Collection of Fortran77 subroutines designed to solve large scale eigenvalue problems., terminal showed this:
Libraries have been installed in:
/usr/local/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the ‘-LLIBDIR’
flag during linking and do at least one of the following:
- add LIBDIR to the ‘LD_LIBRARY_PATH’ environment variable
during execution - add LIBDIR to the ‘LD_RUN_PATH’ environment variable
during linking - use the ‘-Wl,-rpath -Wl,LIBDIR’ linker flag
- have your system administrator add LIBDIR to ‘/etc/ld.so.conf’
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
How to apply one to another, I still don’t understand.
calculix needs arpack libraries to be statically linked, not dynamic libraries. So I’d recommend you follow calculix compiling instructions using the provided download links: download arpack, compile the library as indicated, the result will be a single file libarpack_(PLAT).a
where (PLAT)
is substituted by the name indicated (e. g. UBUNTU
if you’re using ubuntu linux) when compiling and, placing this file where indicated in calculix compilation instructions.