Skip to content

Resolve "[psolver@1.9.2] unable to compile with psolver (pkernel_init)"

Description

With the new version of psolver (and after setting the fix from #763 ) the compiler fails at :

../../src/poisson/poisson_psolver.F90:301:18:

  301 |     this%kernel = pkernel_init(cube%mpi_grp%rank, cube%mpi_grp%size, this%inputs,&
      |                  1
Error: Type mismatch in argument 'dom' at (1); passed CHARACTER(1) to TYPE(domain)
../../src/poisson/poisson_psolver.F90:225:18:

  225 |     this%kernel = pkernel_init(cube%mpi_grp%rank, cube%mpi_grp%size, this%inputs, this%geocode, cube%rs_n_global, &
      |                  1
Error: Type mismatch in argument 'dom' at (1); passed CHARACTER(1) to TYPE(domain)
  CPP      grid/mesh_partition.lo
  CPP      grid/time_interpolation.lo
  CPP      td/potential_interpolation.lo
make[2]: *** [Makefile:3448: poisson/poisson_psolver.lo] Error 1

See #764 (closed) This MR solves this by using the new API of PSolver which uses bigdft-atlab for domain instead of geocode. This MR has the following parts:

  • Patch to get octopus working with psolver 1.9.2
  • m4 macro to detect bigdft-atlab via a test program
  • m4 macro to detect the new psolver api if the old test program fails to compile
  • #ifndef wrappers around the octopus src that use psolver calls that need the new api ( so that old versions used by easybuild is also supported )

News snippet

Added support to Psolver 1.9.2

Closes #764 (closed)

Edited by Ashwin

Merge request reports