CMake builds for modern Fortran 2008 / 2018

Fortran languages standards keep long backward compatibility. Fortran 2018 finally deprecated Fortran 1958 fixed width format. In general across languages, compiler vendors take years to add the full language feature set. Automatically determining if a particular compiler supports a needed modern Fortran feature is straightforward with CMake (and Meson).

This CMake example is for Fortran 2008 error stop. Unlike C++, we do not typically need to enable modern Fortran features with specific compiler flags. Modern Fortran features are typically enabled by default.

include(CheckSourceCompiles)

check_source_compiles(Fortran "error stop; end" f08errorstop)

if(f08errorstop)
  ...
endif()

Fortran 2008 submodule support is in CMake. I created CMake check_fortran_source_runs().