Skip to content

Missing f2kcli.o when compiling psml2psf converter

Summary:

I am unable to compile the psml2psf converter on the latest commit of the psml-support branch. The main Siesta executable compiles just fine, but when trying to compile the psml2psf converter it complains that there is no recipe for f2kcli.o.

Code version:

The latest version of the psml-support branch as of this day (08-11-2021 at 14:31).

From the SIESTA.version: 3.0-root-348-gfba23d9b

The Commit Hash: 8f912890

System information:

OS: CentOS 8

Compiler: gcc (GCC) 10.3.0

Libraries:

  • OpenMPI 4.1.1
  • OpenBLAS 0.3.15
  • ScaLAPACK 2.1.0
  • LibPSML 1.1.10
  • XMLF90 1.5.4
  • LibXC 4.3.4
  • LibGridXC 0.9.6
  • flook 0.8.1

For the arch.make see the attached file. arch.make

I compiled with enabled MPI support in the arch.make (although I don't think the converter is compiled with MPI support).

Compilation output:

When compiling the psml2psf converter I get the error: make: *** No rule to make target 'f2kcli.o', needed by 'm_getopts.o'. Stop.

Possible fixes

I did a little bit of research myself and I tracked down the problem to the rewriting of command line parsing in this commit: 06f1d572 . During this rewriting the f2kcli.F90 file was removed, but the psml2psf converter still expects it to be there and therefore no longer compiles. If I checkout a commit just before this change, e.g. https://gitlab.com/siesta-project/siesta/-/tree/fba23d9bada9f9dd6d702da84225b8ad9991c987/ , then I am able to compile the converter just fine. So I would expect that a fix would be to either (temporarily) bundle the f2kcli.F90 file with the converter or to also rewrite the argument parser for the converter to not use this f2kcli file.

Edited by Arnold Kole