Question, usually I use openmp with the version embedded with the compiler. How will this openmp metapackage work when working with multiple compilers? Will the metapackage be bypassed if the compiler does not support that version? Might this create a collision? Or it will only be effectively used if using a specific version of gfortran, for instance? Just wondering about the possibilities and limitations.
Metapackages provide a generic interface for additional features needed during compilation (see Rust’s Cargo features).
For openmp, this resolves to additional compiler flags (I’m not aware of any openmp-as-an-external-library option, as it needs to be interpreted and resolved by the compiler).
In the future, there is a plan to enforce version constraints, which in case of openmp, is a bit convoluted but doable.
I think fpm is one of the best things that happened to Fortran. You can speak all day long how “Fortran is modern”, but only when you show people how easy you can start and build a project with fpm, this is when you can tell the surprise by their faces. I care to include fpm in all of my Fortran presentations that I do to students. (Most of them are surprised I come to the class without a tape reader.) CMake and Makefiles for Fortran are obsolete by now.