geodynamics / Rayleigh

Rayleigh: Pseudo-spectral MHD
GNU General Public License v3.0
61 stars 48 forks source link

Provide support for the mpi_f08 module #497

Closed tukss closed 7 months ago

tukss commented 7 months ago

This PR add the new option --mpi-f08 to configure, which bases all of Rayleigh's MPI calls on the mpi_f08 module instead of the mpi module. The default (mpi) is left untouched but the hope is that the new option helps us work around many compiler warnings and errors due to stricter type checking. In the long term we probably have switch to mpi_f08 as this is what the MPI standard highly recommends and the old mpi module might go away at some point.

Ideally we should have the CI build and test all MPI variants. I don't want to replicate all the code in the Github actions though. If anyone knows of a more elegant way of running the same code with different configure parameters, I'd appreciate it.

Rationale for adding this:

This also includes some other MPI cleanups:

tukss commented 7 months ago

I've set up a matrix build for the CI testing all the MPI configurations. It's a bit wasteful because it builds the documentation for each.

The mpi_f08 module currently doesn't work on the conda build because the MPICH 3.4 we're using there doesn't seem provide that module, at least not in the configuration we're using.