From 2bb2038142e926c55eeea961f55506903c5b6827 Mon Sep 17 00:00:00 2001 From: Christopher Albert Date: Sat, 5 Apr 2025 22:15:04 +0200 Subject: [PATCH 1/5] NetCDF metapackage --- pages/spec/metapackages.md | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/pages/spec/metapackages.md b/pages/spec/metapackages.md index 0cd3cc39d..c4958f06e 100644 --- a/pages/spec/metapackages.md +++ b/pages/spec/metapackages.md @@ -110,12 +110,26 @@ name = "my_science_app" dependencies.hdf5 = "*" ``` -HDF5 is supported for Fortran, C and C++ languages. The `pkg-config` backend is employed by `fpm` to find a valid local HDF5 installation, so, please insure that `pkg-config` is also available when using this metapackage. +HDF5 is supported for Fortran, C and C++ languages. The `pkg-config` backend is employed by `fpm` to find a valid local HDF5 installation, so, please ensure that `pkg-config` is also available when using this metapackage. -Both the default and the high-level (`HL`) interfaces are linked against if available. -- On Ubuntu, special steps are taken to ensure `HL` are added. +Both the default and the high-level (`HL`) interfaces are linked against if available. +- On Ubuntu, special steps are taken to ensure `HL` are added. - On Ubuntu with oneAPI compilers, `CMake` HDF5 installations are supported (`apt` versions only support `gfortran`). :::{note} Codes using HDF5 built with `oneAPI` compilers should not have the `-standard-semantics` flag: it changes module name mangling from `_mp_` to `_MP_` which makes HDF5 modules unavailable. ::: + + +## NetCDF + +```{code-block} toml +:emphasize-lines: 2 +name = "my_geoscience_app" +dependencies.netcdf = "*" +``` + +The `netcdf` metapackage will automatically link against the NetCDF Fortran and C libraries. +It exposes the `netcdf` module for Fortran90, `netcdf_f03` and `netcdf4_f03` for +Fortran 2003, as well as the underlying lower-level modules. Similar to HDF5, `fpm` +uses `pkg-config` to find a valid local NetCDF installation. From 9fdb9b5699897de8bfd28e12be8a443de25a38e3 Mon Sep 17 00:00:00 2001 From: Christopher Albert Date: Sun, 6 Apr 2025 12:14:49 +0200 Subject: [PATCH 2/5] BLAS metapackage --- pages/spec/metapackages.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pages/spec/metapackages.md b/pages/spec/metapackages.md index c4958f06e..491a44d0a 100644 --- a/pages/spec/metapackages.md +++ b/pages/spec/metapackages.md @@ -133,3 +133,14 @@ The `netcdf` metapackage will automatically link against the NetCDF Fortran and It exposes the `netcdf` module for Fortran90, `netcdf_f03` and `netcdf4_f03` for Fortran 2003, as well as the underlying lower-level modules. Similar to HDF5, `fpm` uses `pkg-config` to find a valid local NetCDF installation. + + +## BLAS + +```{code-block} toml +:emphasize-lines: 2 +name = "my_linear_algebra_app" +dependencies.blas = "*" +``` +The `blas` metapackage will automatically discover and link against +BLAS libraries. Currently, only `openblas` is supported. From 5b0a3f386ba7cb67abd2cbafc740cdc3c470c1b9 Mon Sep 17 00:00:00 2001 From: Christopher Albert Date: Sun, 6 Apr 2025 12:15:09 +0200 Subject: [PATCH 3/5] Newline --- pages/spec/metapackages.md | 1 + 1 file changed, 1 insertion(+) diff --git a/pages/spec/metapackages.md b/pages/spec/metapackages.md index 491a44d0a..0eff63a4b 100644 --- a/pages/spec/metapackages.md +++ b/pages/spec/metapackages.md @@ -142,5 +142,6 @@ uses `pkg-config` to find a valid local NetCDF installation. name = "my_linear_algebra_app" dependencies.blas = "*" ``` + The `blas` metapackage will automatically discover and link against BLAS libraries. Currently, only `openblas` is supported. From 58cb06343bb3c012c6ffef1b207bdd5767746eb7 Mon Sep 17 00:00:00 2001 From: Christopher Albert Date: Tue, 8 Apr 2025 21:19:52 +0200 Subject: [PATCH 4/5] BLAS candidates: mkl, openblas, blas --- pages/spec/metapackages.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/spec/metapackages.md b/pages/spec/metapackages.md index 0eff63a4b..39ee82af6 100644 --- a/pages/spec/metapackages.md +++ b/pages/spec/metapackages.md @@ -144,4 +144,4 @@ dependencies.blas = "*" ``` The `blas` metapackage will automatically discover and link against -BLAS libraries. Currently, only `openblas` is supported. +BLAS libraries. The search order is `mkl`, `openblas` and then `blas`. From 29963ea137dc1dea58d47505660fbd01e470e4ed Mon Sep 17 00:00:00 2001 From: Christopher Albert Date: Tue, 8 Apr 2025 21:45:37 +0200 Subject: [PATCH 5/5] Accelerate framework on MacOS --- pages/spec/metapackages.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/spec/metapackages.md b/pages/spec/metapackages.md index 39ee82af6..caf058a80 100644 --- a/pages/spec/metapackages.md +++ b/pages/spec/metapackages.md @@ -143,5 +143,5 @@ name = "my_linear_algebra_app" dependencies.blas = "*" ``` -The `blas` metapackage will automatically discover and link against -BLAS libraries. The search order is `mkl`, `openblas` and then `blas`. +The `blas` metapackage will automatically discover and link against BLAS libraries. +The search order is `Apple Accelerate`, `Intel MKL`, `OpenBLAS` and finally usual `BLAS`.