如何用 gfortran 而不是 ifort 编译 MPI?

How to compile MPI with gfortran instead of ifort?

之前有人问过类似的 question,但答案并没有直接解决我遇到的问题。我正在尝试在 HPC 机器上编译基于 fortran 的应用程序。机器同时安装了 gfortanifort 并且在路径中。当我使用 MPI(Open MPI 1.8.8)包装器 mpifort 时,它会自动使用 ifort,这很好。但是出于某种原因,我想改用 gfortran 。我怎样才能确保 mpifort 包装器默认为 gfortran 而不是 ifort

Open MPI mpifort 使用的默认 Fortran 编译器是从 $ompi_root/share/openmpi/mpifort-wrapper-data.txt 读取的。构建过程将构建库时选择的 Fortran 编译器存储在那里。它可以通过设置 OMPI_FC 环境变量来覆盖。这同样适用于 C 包装器 (OMPI_CC) 和 C++ 包装器 (OMPI_CXX)。

示例:

$ mpifort -showme:command
ifort
$ env OMPI_FC=gfortran mpifort -showme:command
gfortran

请记住,与 C 和 C++ 不同,英特尔在 Fortran ABI 上不同意 GCC。

mpifort -fc=gfortran main.f90 (or other files you want to compile)也可以帮助更改编译器。