Describe the bug
FMS currently requires the MPI Fortran 2008 module interface, mpi_f08. This prevents FMS from building with MPI installations that provide the older mpi module but do not provide mpi_f08.
This occurs in GitHub Actions macOS arm64 runners using the Homebrew MPICH 5.0.1 bottle. The installed MPICH provides:
mpi.mod
mpi_base.mod
mpi_constants.mod
mpi_sizeofs.mod
but does not install
Test programs with use mpi build correctly but use mpi_f08 report a missing module.
The MPICH library was built with Fortran support, and mpi_f08 was not explicitly disabled in the reported configure options, as shown below.
MPICH Version: 5.0.1
MPICH Release date: Fri Apr 10 09:45:31 AM CDT 2026
MPICH ABI: 18:1:6
MPICH Device: ch4:ofi
MPICH configure: --disable-dependency-tracking --disable-silent-rules --enable-fast=all,O3 --enable-g=dbg --enable-romio --enable-shared --with-hwloc=/opt/homebrew/opt/hwloc --with-pm=hydra --prefix=/opt/homebrew/Cellar/mpich/5.0.1 --mandir=/opt/homebrew/Cellar/mpich/5.0.1/share/man F77=gfortran FC=gfortran
MPICH CC: clang -fno-common -DNDEBUG -DNVALGRIND -g -O3
MPICH CXX: clang++ -DNDEBUG -DNVALGRIND -g -O3
MPICH F77: gfortran -g -O3
MPICH FC: gfortran -g -O3
MPICH features: threadcomm
As discussed in this linked comment, mpi_f08 support depends on several compiler and interoperability requirements, including:
ISO_Fortran_binding.h availability and interoperability
type(*), dimension(..) support
- correct
asynchronous semantics
On the affected macOS GitHub Actions runners, attempting to compile ISO_Fortran_binding.h from the Homebrew gfortran installation with clang produces the following error:
+ clang -c cfi.c -I/opt/homebrew/Cellar/gcc/15.2.0_1/bin/../lib/gcc/current/gcc/aarch64-apple-darwin24/15/include
In file included from cfi.c:1:
In file included from /opt/homebrew/Cellar/gcc/15.2.0_1/bin/../lib/gcc/current/gcc/aarch64-apple-darwin24/15/include/ISO_Fortran_binding.h:33:
/opt/homebrew/Cellar/gcc/15.2.0_1/bin/../lib/gcc/current/gcc/aarch64-apple-darwin24/15/include/stddef.h:448:68: error: __float128 is not supported on this target
448 | __float128 __max_align_f128 __attribute__((__aligned__(__alignof(__float128))));
| ^
/opt/homebrew/Cellar/gcc/15.2.0_1/bin/../lib/gcc/current/gcc/aarch64-apple-darwin24/15/include/stddef.h:448:3: **error: __float128 is not supported on this target**
448 | __float128 __max_align_f128 __attribute__((__aligned__(__alignof(__float128))));
| ^
2 errors generated.
This may explain why the installed MPICH package lacks mpi_f08, although I cannot confirm the exact reason that the Homebrew bottle was built without it.
The practical here is that mpi_f08 is unavailable in what appears to be a fairly standard macOS/Homebrew arm64 MPI environment, even though the older mpi module is available and functional.
To Reproduce
Set up a macOS CI on GitHub and set FC to gfortran. Examples:
Expected behavior
System Environment
Describe the system environment, include:
- OS: macOS 15.7.4 (24G517)
- Compiler(s): gcc--15.2.0_1.arm64_sequoia
- MPICH 5.0.1 (bfb4e7bfbcd5b85c2e08fb56e4d73f98e7bf2412781f40c91b8212d9724581ef)
- netCDF Version: N/A
- Configure options: N/A
Additional context
Despite the name mpi_f08, some of the interoperability features required for robust support originated in the 2012 tech spec (29113) and were only later incorporated into Fortran 2018. So mpi_f08 support may not yet be available across all MPI/compiler toolchains.
Describe the bug
FMS currently requires the MPI Fortran 2008 module interface,
mpi_f08. This prevents FMS from building with MPI installations that provide the oldermpimodule but do not providempi_f08.This occurs in GitHub Actions macOS arm64 runners using the Homebrew MPICH 5.0.1 bottle. The installed MPICH provides:
but does not install
Test programs with
use mpibuild correctly butuse mpi_f08report a missing module.The MPICH library was built with Fortran support, and
mpi_f08was not explicitly disabled in the reported configure options, as shown below.As discussed in this linked comment,
mpi_f08support depends on several compiler and interoperability requirements, including:ISO_Fortran_binding.havailability and interoperabilitytype(*), dimension(..)supportasynchronoussemanticsOn the affected macOS GitHub Actions runners, attempting to compile
ISO_Fortran_binding.hfrom the Homebrew gfortran installation with clang produces the following error:This may explain why the installed MPICH package lacks
mpi_f08, although I cannot confirm the exact reason that the Homebrew bottle was built without it.The practical here is that
mpi_f08is unavailable in what appears to be a fairly standard macOS/Homebrew arm64 MPI environment, even though the oldermpimodule is available and functional.To Reproduce
Set up a macOS CI on GitHub and set
FCtogfortran. Examples:Expected behavior
System Environment
Describe the system environment, include:
Additional context
Despite the name
mpi_f08, some of the interoperability features required for robust support originated in the 2012 tech spec (29113) and were only later incorporated into Fortran 2018. Sompi_f08support may not yet be available across all MPI/compiler toolchains.