Build and Installation#

NC4F requires a modern Fortran compiler and the NetCDF C library. The NetCDF Fortran library is not required. The tested Fortran compilers are:

  • gfortran >= 15

  • llvm flang >= 23

Build and test with fpm#

From a checkout of this repository, build and run the test suite with:

fpm test --compiler gfortran --profile debug --flag "$(pkg-config --cflags --libs netcdf)"

Generated NetCDF test artifacts are written to build/test-results/.

Use NC4F as an fpm dependency#

Add NC4F to the consuming package’s fpm.toml, then link the NetCDF C library in that package:

[dependencies]
nc4f = { git = "https://github.com/han190/nc4f.pack.git" }

[build]
link = ["netcdf"]

Your application can then import the public façade with:

use, non_intrinsic :: nc4f

Build from Make with fypp#

The Make build regenerates the constructor and extraction source files from the fypp/ templates. Install fypp before building when you intend to edit or regenerate those templates.

git clone https://github.com/han190/nc4f.pack.git
cd nc4f.pack
python -m pip install fypp
make library
make test

make library creates build/makefile/ncpack.a; make test builds and runs the test executable. Set PROFILE=release for optimized compiler flags.

Build the documentation#

Install the documentation dependencies and generate the Sphinx Book Theme site from the repository root:

python -m pip install -r requirements-docs.txt
python -m sphinx -b html -c docs docs/src docs/pages

Open docs/pages/index.html in a browser.

Publish with GitHub Pages#

The Deploy documentation workflow builds the Sphinx site from docs/src and deploys the generated docs/pages artifact whenever documentation changes are pushed to main. In the repository’s Settings → Pages, select GitHub Actions as the publishing source.