A pure Fortran 2003+ OOP library for reading and writing VTK XML files for scientific visualization.
VTKFortran is a pure Fortran 2003+ object-oriented library for reading and writing VTK XML files. It solves the problem of enabling Fortran-based scientific and high-performance computing applications to output visualization data directly into the standard VTK format, which can be rendered by tools like ParaView, without requiring C/C++ wrappers or external libraries.
Fortran developers and researchers in computational science, engineering, and high-performance computing who need to visualize simulation data using the VTK ecosystem.
Developers choose VTKFortran because it provides a native, dependency-free Fortran API for VTK XML, supports modern OOP patterns, handles parallel I/O safely, and offers flexible licensing and build system options.
pure Fortran VTK (XML) API
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Explicitly designed to be thread and processor safe, enabling concurrent file writing under OpenMP or MPI, which is critical for high-performance computing simulations as stated in the README.
Provides a native, object-oriented interface in Fortran 2003+ without external C/C++ bindings, simplifying integration into Fortran projects and avoiding cross-language dependencies.
Supports all major VTK XML topologies including structured, unstructured, rectilinear grids, and composite datasets like multi-block and parallel partitioned files, as detailed in the features table.
Offers multiple license options (GPL, BSD, MIT), allowing use in both open-source and commercial projects without restrictive terms, as highlighted in the copyrights section.
While it can parse VTK files, the documentation and examples focus heavily on writing; reading capabilities may be less robust or well-documented for complex use cases.
Requires Fortran 2003+ compilers, which can be a barrier for legacy systems or environments with older toolchains that lack modern OOP support.
Every procedure returns an integer error code, leading to repetitive error-checking code in user applications, which can increase boilerplate and complexity.