Open ufdup89 opened 3 years ago
Thanks. This is now fixed. If there are other issues let us know. The intention is to continue supporting the package as long as possible.
I have now looked at the most recent commit and it still won't compile on gcc10. It complains at
ftran.F90:526:33:
526 | call init_f_r2c(XgYZ,nx,buf2,nxhp,nx,jisize*kjsize)
| 1
......
810 | call init_f_r2c (rXgYZ, nx, cXgYZ, nxhp, nx, jisize*kjsize)
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (COMPLEX(8)/REAL(8)).
For a successful build, I had to copy the routine init_f_r2c
from fft_init.F90
into ftran.F90
. I think that otherwise the compiler can't check that the types are correct (sorry for not mentioning that in my previous post). Compilation of driver_sine_many.F90
also fails, but we can look into that afterwards (it's also related to type mismatch).
In any case, the code compiles with -fallow-argument-mismatch
as mentioned before.
Thanks for your report. It looks like using -fallow-argument-mismatch flag helps to compile the code. I will think about what else we can do, but as a minimum we can use this flag.
I have tried to compile the 2.7.9 release using gcc10 and got a few errors related to type mismatch. The errors look like the following one and are mostly related to MPI calls:
Some googling indicates that this is due to a feature introduced in gcc10, which made it more strict regarding type compatibility (some other softwares experienced the same some time ago, see e.g. this link. I found two solutions. The quick and dirty way is to simply add the compilation flag
-fallow-argument-mismatch
, which will turn the error messages into warnings. The second, among other minor fixes, involves replacinginclude 'mpif.h'
inmodule.f90
byuse mpi
.Is there still interest in maintaining this version of p3dfft? If yes, I would be glad to discuss the problem and ways of fixing it.