{"id":19872173,"url":"https://github.com/geospace-code/h5fortran-mpi","last_synced_at":"2026-02-26T07:06:58.161Z","repository":{"id":47327216,"uuid":"377901005","full_name":"geospace-code/h5fortran-mpi","owner":"geospace-code","description":"HDF5-MPI parallel Fortran object-oriented interface","archived":false,"fork":false,"pushed_at":"2024-08-06T17:17:54.000Z","size":810,"stargazers_count":23,"open_issues_count":4,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-02-23T23:52:26.206Z","etag":null,"topics":["fortran","hdf5","mpi","mpi-applications","object-oriented-fortran"],"latest_commit_sha":null,"homepage":"","language":"Fortran","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/geospace-code.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":"codemeta.json","zenodo":null},"funding":{"github":["scivision"],"ko_fi":"scivision"}},"created_at":"2021-06-17T16:49:07.000Z","updated_at":"2025-11-17T21:01:23.000Z","dependencies_parsed_at":"2023-01-23T13:45:47.410Z","dependency_job_id":"8f349c0c-79c6-4da8-a2ad-745ac0d57951","html_url":"https://github.com/geospace-code/h5fortran-mpi","commit_stats":{"total_commits":485,"total_committers":1,"mean_commits":485.0,"dds":0.0,"last_synced_commit":"5804522b57bb829d591aea3e8039477e667ec2ef"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/geospace-code/h5fortran-mpi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geospace-code%2Fh5fortran-mpi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geospace-code%2Fh5fortran-mpi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geospace-code%2Fh5fortran-mpi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geospace-code%2Fh5fortran-mpi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geospace-code","download_url":"https://codeload.github.com/geospace-code/h5fortran-mpi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geospace-code%2Fh5fortran-mpi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29851221,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T22:37:40.667Z","status":"online","status_checked_at":"2026-02-26T02:00:06.774Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fortran","hdf5","mpi","mpi-applications","object-oriented-fortran"],"created_at":"2024-11-12T16:14:42.457Z","updated_at":"2026-02-26T07:06:58.147Z","avatar_url":"https://github.com/geospace-code.png","language":"Fortran","readme":"# h5fortran-mpi\n\n[![DOI](https://zenodo.org/badge/377901005.svg)](https://zenodo.org/badge/latestdoi/377901005)\n\n[![ci](https://github.com/geospace-code/h5fortran-mpi/actions/workflows/ci.yml/badge.svg)](https://github.com/geospace-code/h5fortran-mpi/actions/workflows/ci.yml)\n[![ci](https://github.com/geospace-code/h5fortran-mpi/actions/workflows/ci_build.yml/badge.svg)](https://github.com/geospace-code/h5fortran-mpi/actions/workflows/ci_build.yml)\n\nEasy to use object-oriented Fortran [parallel HDF5-MPI](https://portal.hdfgroup.org/display/HDF5/Parallel+HDF5) interface.\nThe [h5fortran-mpi API](./API.md) can be used with or with MPI.\nA very similar NetCDF4 interface is\n[nc4fortran](https://github.com/geospace-code/nc4fortran).\n\nMany computer systems default to the serial HDF5 API, which lacks the HDF5 parallel MPI layer.\nThe scripts/CMakeLists.txt can build the HDF5-MPI stack if needed.\nTo use HDF5-MPI features, the computer must have a working MPI library installed already (e.g. OpenMPI, MPICH, Intel MPI, MS-MPI).\n\nSome OS have an installable parallel HDF5 package:\n\n* Ubuntu: `apt install libhdf5-mpi-dev`\n* CentOS: `yum install hdf5-openmpi-devel`\n* MacOS Homebrew: `brew install hdf5-mpi`\n* MacOS MacPorts: `port install hdf5 +fortran +mpich`\n\nWhile HDF5 1.10.2 is the oldest working HDF5 version, in general for bugfixes and performance HDF5 \u0026ge; 1.10.5 is [recommended](https://portal.hdfgroup.org/display/knowledge/OpenMPI+Build+Issues).\nFor highest performance with parallel compressed writes consider HDF5 \u0026ge; 1.12.2.\n\n## Compressed parallel HDF5\n\nCompression is useful in general to save significant disk space and speed up write/read.\nHDF5-MPI file compression requires HDF5 \u003e= 1.10.2 and MPI-3.\nAs noted above, HDF5 \u003e= 1.10.5 is recommended for stability and performance.\n\n### Windows limitations\n\nMicrosoft Windows does not currently support native HDF5 parallel file compression.\nWindows Subsystem for Linux can be used for HDF5 parallel file compression.\nNative Windows users can read HDF5 compressed files but without using MPI.\n\nNative Windows MPI options are currently limited to MS-MPI and Intel MPI.\nCurrently Windows MS-MPI is MPI-2.\nA quirk with Intel oneAPI on Windows despite having MPI-3 is that with HDF5 1.10.x and at least through HDF5 1.12.1 the collective filtered parallel compression file I/O does not work.\nWe test for this in CMake and set the compile flags appropriately.\n\nWindows users that need file compression may use Windows Subsystem for Linux (e.g. Ubuntu) and install `libhdf5-mpi-dev`.\n\n## Build this project\n\nBuild this project like:\n\n```sh\ncmake -B build\ncmake --build build\n```\n\nIf you have previously built / installed a parallel HDF5 library, refer to it (saving build time) like:\n\n```sh\ncmake -B build -DHDF5_ROOT=~/lib_par\ncmake --build build\n```\n\nTo build without MPI (serial HDF5 file operations only):\n\n```sh\ncmake -B build -Dhdf5_parallel=off\n```\n\nCray computers may use a CMake toolchain file to work with Intel or GCC backend.\n\n---\n\nFortran Package Manager (FPM) users build like:\n\n```sh\nfpm build --flag -Dh5fortran_HAVE_PARALLEL\n# omitting this flag builds the serial API only\n\nfpm test\n```\n\n## Notes\n\nTo build and install the HDF5 parallel library use the script:\n\n```sh\ncmake -B build_hdf5 -S scripts --install-prefix=$HOME/lib_par\n\ncmake --build build_hdf5\n```\n\nthat will build and install HDF5 under ~/lib_par (or other directory of your choice).\n","funding_links":["https://github.com/sponsors/scivision","https://ko-fi.com/scivision"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeospace-code%2Fh5fortran-mpi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeospace-code%2Fh5fortran-mpi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeospace-code%2Fh5fortran-mpi/lists"}