Advice on the following errors for DIRAC

25 views
Skip to first unread message

Ruairi Graham

unread,
Nov 24, 2025, 7:15:49 AMNov 24
to dirac-users
Unfortunately, I still cannot figure this out. Can you send again an email to the developers for advise on the following errors?

./setup --prefix=/opt/apps/dirac/25.0/gcc-14.1.0+openmpi+5.0.3+int8-odd-electrons --cc=/opt/apps/openmpi/5.0.3/gcc-14.1.0+int8/bin/mpicc --cxx=/opt/apps/openmpi/5.0.3/gcc-14.1.0+int8/bin/mpicxx --fc=/opt/apps/openmpi/5.0.3/gcc-14.1.0+int8/bin/mpif90 --mpi --int64 --blas=auto --lapack=auto --extra-fc-flags="-finteger-4-integer-8 -fno-range-check"

......
Error: Ambiguous interfaces in generic interface 'mpi_sizeof' for ‘mpi_sizeof_int32_r15’ at (1) and ‘mpi_sizeof_int64_r15’ at (2)
mpif-sizeof.h:1982:38:

......
Error: Ambiguous interfaces in generic interface 'pmpi_sizeof' for ‘pmpi_sizeof_int32_r15’ at (1) and ‘pmpi_sizeof_int64_r15’ at (2)
mpif-sizeof.h:666:37:

......
Error: Ambiguous interfaces in generic interface 'mpi_sizeof' for ‘mpi_sizeof_int32_r15’ at (1) and ‘mpi_sizeof_int64_r15’ at (2)
mpif-sizeof.h:1982:38:

......
Error: Ambiguous interfaces in generic interface 'pmpi_sizeof' for ‘pmpi_sizeof_int32_r15’ at (1) and ‘pmpi_sizeof_int64_r15’ at (2)

----

/opt/apps/dirac/25.0/gcc-14.1.0+openmpi+5.0.3+int8-odd-electrons/dirac/src/interface_mpi/interface_to_mpi.F90:796:77:

  796 |     call mpi_testall(ndim_i4, request_i4, x_l4, status_container_i4, ierr_i4)
      |                                                                             1
Error: Type mismatch in argument ‘flag’ at (1); passed LOGICAL(4) to LOGICAL(8)
/opt/apps/dirac/25.0/gcc-14.1.0+openmpi+5.0.3+int8-odd-electrons/dirac/src/interface_mpi/interface_to_mpi.F90:759:65:

  759 |     call mpi_test(request_i4, x_l4, status_container_i4, ierr_i4)
      |                                                                 1
Error: Type mismatch in argument ‘flag’ at (1); passed LOGICAL(4) to LOGICAL(8)
/opt/apps/dirac/25.0/gcc-14.1.0+openmpi+5.0.3+int8-odd-electrons/dirac/src/interface_mpi/interface_to_mpi.F90:727:96:

  727 |     call mpi_iprobe(rank_i4, message_id_i4, communicator_i4, x_l4, status_container_i4, ierr_i4)
      |                                                                                                1
Error: Type mismatch in argument ‘flag’ at (1); passed LOGICAL(4) to LOGICAL(8)


Without the extra-fc-flags, I get a different error:
./setup --prefix=/opt/apps/dirac/25.0/gcc-14.1.0+openmpi+5.0.3+int8-odd-electrons --cc=/opt/apps/openmpi/5.0.3/gcc-14.1.0+int8/bin/mpicc --cxx=/opt/apps/openmpi/5.0.3/gcc-14.1.0+int8/bin/mpicxx --fc=/opt/apps/openmpi/5.0.3/gcc-14.1.0+int8/bin/mpif90 --mpi --int64 --blas=auto --lapack=auto


/opt/apps/dirac/25.0/gcc-14.1.0+openmpi+5.0.3+int8-odd-electrons/dirac/external/pelib/src/pe_potential_derivatives.F90:92:29:

   92 |             call mpi_gatherv(Fels(1,i), poldists(myid), rmpi, dummy_real, poldists, displs, rmpi, master, comm, ierr)
      |                             1
......
  160 |             call mpi_gatherv(mpi_in_place, dummy_int, rmpi, Fnucs(1), poldists, displs, rmpi, master, comm, ierr)
      |                             2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/INTEGER(8)).

Hans Jørgen Aagaard Jensen

unread,
Nov 24, 2025, 9:39:57 AMNov 24
to dirac...@googlegroups.com
Does cmake not recognize that it is a gnu compiler?

Because your second case, the one without extra fc-flags, should not give that error.  If the compiler has been identified as a GNU Fortran compiler, this fc flag should be set:  “-fallow-argument-mismatch”. (If you are familiar with cmake or can ask someone for help, you can use “ccmake ..” in your build directory and see what fortran flags are set. You can add “-fallow-argument-mismatch” there, or by means of the extra-fc-flags option to setup.)

Hans Jørgen.

Fra: dirac...@googlegroups.com <dirac...@googlegroups.com> på vegne af Ruairi Graham <ruairig...@gmail.com>
Dato: mandag, 24. november 2025 kl. 13.16
Til: dirac-users <dirac...@googlegroups.com>
Emne: [dirac-users] Advice on the following errors for DIRAC

--
You received this message because you are subscribed to the Google Groups "dirac-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dirac-users...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/dirac-users/3259d9b4-1d8c-40f1-9638-f0d67fdb868bn%40googlegroups.com.

Miroslav Iliaš

unread,
Nov 24, 2025, 1:01:28 PMNov 24
to dirac...@googlegroups.com
Hello Ruari,

I see you are trying to compile DIRAC with 64-bit integers and OpenMPI, which is probably 64-bit integers. Probably your 64bit OpenMPI is built incorrectly, or you are mixing existing MPI libraries.

Here we describe how to build 64bit OpenMPI properly,  https://diracprogram.org/doc/master/installation/int64/mpi64.html .

Try to compile DIRAC first  without the "--int64" flag.

Note, PELIB module does not work with 64bit integers, deactivate it.

Concerning math libraries, 64bit or ILP64 ones are present in the Intel MKL installation.  Default GNU blas,lapack are built for 32-bit integers, you can not combine them with 64bit integers DIRAC.

Good luck.

Miro




Juan Jose Aucar

unread,
Nov 24, 2025, 8:46:40 PMNov 24
to dirac...@googlegroups.com
Dear Ruairi,

As Miroslav pointed out, in the link he sent you can find some instructions on how to test if openmpi libraries were compiled with 64-bit integers, and DIRAC setup instructions.
It is not always easy (nor possible) to do such a thing. Many times it has many workarounds that have to be followed depending on the compiler version.

Please find attached a docker file that allows you to compile openmpi-v4.1.1 and openblas v0.3.29 libraries with 64-bit integers (both work with DIRAC25). If you are not workin within docker, you just need to execute the commands in the file in your linux OS.


After building those libraries, you can compile DIRAC, linking against them, executing

- export PATH=/openmpi64-long/bin:$PATH
- export LD_LIBRARY_PATH=/opt/openblas64/lib/:$LD_LIBRARY_PATH
# Compile Dirac and run tests
- ./setup --pelib=OFF --exatensor=OFF --pcmsolver=OFF --int64 --mpi --blas=off --lapack=off --explicit-libs="-L/opt/openblas64/lib -lopenblas" build-openmpi64
- cd build-openmpi64
- make -jN (N equal to the number of cores to use cmake in parallel)



Best regards,

Juan J.



ubuntu24-gcc13-openmpi4.1.1-openblas3.29-int64-dockerfile
Reply all
Reply to author
Forward
0 new messages