Thank you for your interest in contributing to fxarray! This document provides guidelines for building, testing, and submitting changes.
- Fortran compiler (gfortran >= 11)
- C and C++ compilers
- CMake >= 3.18
- NetCDF-Fortran (via pkg-config:
netcdf-fortran) - HDF5 with Fortran bindings
- Kokkos (CMake package)
- MPI (for parallel computing)
- fpm (for alternative lightweight builds)
We recommend using the Spack environment unistate to avoid ABI mismatches
between system and Spack-provided HDF5/NetCDF libraries.
cmake -B build -S .
cmake --build build -j$(nproc)cmake -B build-mpi -S . -DUSE_MPI=ON
cmake --build build-mpi -j$(nproc)cd build && ctest --output-on-failureRun a single test:
cd build && ctest -R test_Dataset --output-on-failurefpm builds the core Fortran API (Kokkos GPU backends require CMake):
fpm test --compiler gfortran- All functionality lives in modules with
implicit noneandprivate - Only expose API via
public - Type
Foolives in moduleFoo_Mod - Use
select typefor polymorphicData_Bufferdispatch - Call
destroy()methods for cleanup in tests
- Fork the repository and create a feature branch
- Make your changes with clear, focused commits
- Ensure all tests pass with both CMake and fpm
- Update documentation if your change affects user-facing behavior
- Open a Pull Request with a clear description
Open a GitHub Issue for questions, bug reports, or feature requests.