Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

problem in installing wannier_tool-2.6.2 #130

Open
Nagasapa opened this issue Oct 28, 2023 · 1 comment
Open

problem in installing wannier_tool-2.6.2 #130

Nagasapa opened this issue Oct 28, 2023 · 1 comment

Comments

@Nagasapa
Copy link

Dear Sir and wanniertools user
I am new to this field and my apology if i am raising any silliy questions.
I was trying to install wannier-tools -2.6.2 in ubuntu following the instruction provided in the INSTALL file after running the make command i am getting this error message. I have used 'Makefile.gfortran-mpi' as my Makefile. the error message as follows
mpif90 -cpp -DMPI -ffree-line-length-512 -g -c symmetry.f90
symmetry.f90:427:24:

425 | call mpi_allreduce(tau_find_t,tau_find_t_mpi,size(tau_find_t),&
| 2
426 | mpi_dp,mpi_sum,mpi_cmw,ierr)
427 | call mpi_allreduce(op_tau,op_tau_mpi,size(op_tau),&
| 1
Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/REAL(8)).
symmetry.f90:429:24:

425 | call mpi_allreduce(tau_find_t,tau_find_t_mpi,size(tau_find_t),&
| 2
......
429 | call mpi_allreduce(ntaup,ntaup_mpi,size(ntaup),&
| 1
Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/REAL(8)).
make: *** [Makefile:42: symmetry.o] Error 1

could you please help me resolve this error.
Thank you .

@rlpitts
Copy link

rlpitts commented Feb 19, 2024

Still a problem in version 2.7. The issue is that this program was built on the old MPICH standards. Most MPI distributions in use now are stricter about checking for communicators getting reused for different data types, and they don't like it. If you comment either the one MPI_AllReduce() calls taking data of type double, or the two taking data of type integer, and recompile with the rest, it works without error. MPI_SUM is a bit different between the two data types, and MPI doesn't seem to like switching between the two once one has been chosen for a give communicator.

Anyway, the problem can be sidestepped by adding -fallow-argument-mismatch into the F90 line of the gfortran-mpi version of the Makefile (and, I presume, any other Makefile version with that line), but the designers really should fix this by updating the symmetry.f90 file to use different communicator names for the different variable types.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants