{"id":25456805,"url":"https://github.com/szaghi/vtkfortran","last_synced_at":"2026-02-01T20:02:16.930Z","repository":{"id":3061688,"uuid":"4083996","full_name":"szaghi/VTKFortran","owner":"szaghi","description":"pure Fortran VTK (XML) API","archived":false,"fork":false,"pushed_at":"2025-05-29T17:59:00.000Z","size":155507,"stargazers_count":145,"open_issues_count":17,"forks_count":53,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-05-29T18:56:21.204Z","etag":null,"topics":["fortran","oop","vtk"],"latest_commit_sha":null,"homepage":"","language":"Fortran","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/szaghi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.bsd-2.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2012-04-20T07:15:46.000Z","updated_at":"2025-05-29T17:42:47.000Z","dependencies_parsed_at":"2025-05-29T18:36:58.272Z","dependency_job_id":"e00c8e47-c4da-4aa5-8d71-0b7da28e9b4d","html_url":"https://github.com/szaghi/VTKFortran","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/szaghi/VTKFortran","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szaghi%2FVTKFortran","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szaghi%2FVTKFortran/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szaghi%2FVTKFortran/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szaghi%2FVTKFortran/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/szaghi","download_url":"https://codeload.github.com/szaghi/VTKFortran/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szaghi%2FVTKFortran/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262095155,"owners_count":23258102,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","oop","vtk"],"created_at":"2025-02-18T01:51:21.629Z","updated_at":"2026-02-01T20:02:16.894Z","avatar_url":"https://github.com/szaghi.png","language":"Fortran","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"top\"\u003e\u003c/a\u003e\n\n# VTKFortran [![GitHub tag](https://img.shields.io/github/tag/szaghi/VTKFortran.svg)](https://github.com/szaghi/VTKFortran/releases)\n\n[![Join the chat at https://gitter.im/szaghi/VTKFortran](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/szaghi/VTKFortran?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n[![License](https://img.shields.io/badge/license-GNU%20GeneraL%20Public%20License%20v3,%20GPLv3-blue.svg)]()\n[![License](https://img.shields.io/badge/license-BSD2-red.svg)]()\n[![License](https://img.shields.io/badge/license-BSD3-red.svg)]()\n[![License](https://img.shields.io/badge/license-MIT-red.svg)]()\n\n[![Status](https://img.shields.io/badge/status-stable-brightgreen.svg)]()\n[![CI Status](https://github.com/szaghi/VTKFortran/actions/workflows/ci.yml/badge.svg)](https://github.com/szaghi/VTKFortran/actions)\n[![Coverage Status](https://img.shields.io/codecov/c/github/szaghi/VTKFortran.svg)](https://app.codecov.io/gh/szaghi/VTKFortran)\n\n### VTKFortran, pure Fortran VTK (XML) API\n\nA KISS pure Fortran Library to parse and emit files conforming VTK (XML) standard\n\n+ VTKFortran is a pure Fortran library to parse and emit VTK files, [VTK standard](http://www.vtk.org/);\n+ VTKFortran is Fortran 2003+ standard compliant;\n+ VTKFortran supports parallel architectures, it being threads-safe;\n+ VTKFortran supports _ascii_, _binary_ (Base64 encoding) and _raw_ file formats;\n+ VTKFortran is a Free, Open Source Project.\n\n#### Issues\n\n[![GitHub issues](https://img.shields.io/github/issues/szaghi/VTKFortran.svg)]()\n\n#### Compiler Support\n\n[![Compiler](https://img.shields.io/badge/GNU-pass%20(v6.0.1+)-brightgreen.svg)]()\n[![Compiler](https://img.shields.io/badge/Intel-pass%20(v16.x+)-brightgreen.svg)]()\n[![Compiler](https://img.shields.io/badge/IBM%20XL-not%20tested-yellow.svg)]()\n[![Compiler](https://img.shields.io/badge/g95-not%20tested-yellow.svg)]()\n[![Compiler](https://img.shields.io/badge/NAG-not%20tested-yellow.svg)]()\n[![Compiler](https://img.shields.io/badge/PGI-not%20tested-yellow.svg)]()\n\n---\n\n[Main features](#main-features) | [Copyrights](#copyrights) | [Documentation](#documentation) | [A Taste of VTKFortran](#a-taste-of-vtkfortran)\n\n---\n\n## Main features\n\n### VTK features\n\n#### Exporters\n\n##### Legacy standard\n* [x] Structured Points;\n* [x] Structured Grid;\n* [x] Unstructured Grid;\n* [ ] Polydata;\n* [x] Rectilinear Grid;\n* [ ] Field;\n\n##### XML standard\n* [ ] serial dataset:\n    * [ ] Image Data;\n    * [ ] Polydata;\n    * [x] Rectilinear Grid;\n    * [x] Structured Grid;\n    * [x] Unstructured Grid;\n* [ ] parallel (partitioned) dataset:\n    * [ ] Image Data;\n    * [ ] Polydata;\n    * [x] Rectilinear Grid;\n    * [x] Structured Grid;\n    * [x] Unstructured Grid;\n* [x] composite dataset:\n    * [x] vtkMultiBlockDataSet.\n\n#### Importers\nThe importers are under developing.\n\n### Parallel Support\n\nVTKFortran can be safely used in parallel *environments*, handling multiple concurrent files: it is **thread/processor-safe**, meaning that it can be safely used into parallel architectures using OpenMP and/or MPI paradigms.\n\n## Copyrights\n\nVTKFortran is an open source project, it is distributed under a multi-licensing system:\n\n+ for FOSS projects:\n  - [GPL v3](http://www.gnu.org/licenses/gpl-3.0.html);\n+ for closed source/commercial projects:\n  - [BSD 2-Clause](http://opensource.org/licenses/BSD-2-Clause);\n  - [BSD 3-Clause](http://opensource.org/licenses/BSD-3-Clause);\n  - [MIT](http://opensource.org/licenses/MIT).\n\nAnyone is interest to use, to develop or to contribute to VTKFortran is welcome, feel free to select the license that best matches your soul!\n\nMore details can be found on [wiki](https://github.com/szaghi/VTKFortran/wiki/Copyrights).\n\nGo to [Top](#top)\n\n## Documentation\n\nBesides this README file the VTKFortran documentation is contained into its own [wiki](https://github.com/szaghi/VTKFortran/wiki). Detailed documentation of the API is contained into the [GitHub Pages](http://szaghi.github.io/VTKFortran/index.html) that can also be created locally by means of [ford tool](https://github.com/cmacmackin/ford).\n\nGo to [Top](#top)\n\n### A taste of VTKFortran\n\nLet us assume our aim being to save our pure Fortran data into a VTK structured grid file in binary XML form. This is simple as\n\n```fortran\nuse vtk_fortran, only : vtk_file\n\ntype(vtk_file)     :: a_vtk_file                             ! A VTK file.\ninteger, parameter :: nx1=0_I4P                              ! X lower bound extent.\ninteger, parameter :: nx2=9_I4P                              ! X upper bound extent.\ninteger, parameter :: ny1=0_I4P                              ! Y lower bound extent.\ninteger, parameter :: ny2=5_I4P                              ! Y upper bound extent.\ninteger, parameter :: nz1=0_I4P                              ! Z lower bound extent.\ninteger, parameter :: nz2=5_I4P                              ! Z upper bound extent.\ninteger, parameter :: nn=(nx2-nx1+1)*(ny2-ny1+1)*(nz2-nz1+1) ! Number of elements.\nreal               :: x(nx1:nx2,ny1:ny2,nz1:nz2)             ! X coordinates.\nreal               :: y(nx1:nx2,ny1:ny2,nz1:nz2)             ! Y coordinates.\nreal               :: z(nx1:nx2,ny1:ny2,nz1:nz2)             ! Z coordinates.\nreal               :: v(nx1:nx2,ny1:ny2,nz1:nz2)             ! Variable at coordinates.\ninteger            :: error                                  ! Error status.\n\n! initialize the data...\n\nerror = a_vtk_file%initialize(format='binary', filename='XML_STRG-binary.vts', \u0026\n                              mesh_topology='StructuredGrid',                  \u0026\n                              nx1=nx1, nx2=nx2, ny1=ny1, ny2=ny2, nz1=nz1, nz2=nz2)\nerror = a_vtk_file%xml_writer%write_piece(nx1=nx1, nx2=nx2, ny1=ny1, ny2=ny2, nz1=nz1, nz2=nz2)\nerror = a_vtk_file%xml_writer%write_geo(n=nn, x=x, y=y, z=z)\nerror = a_vtk_file%xml_writer%write_dataarray(location='node', action='open')\nerror = a_vtk_file%xml_writer%write_dataarray(data_name='float64_scalar', x=v, one_component=.true.)\nerror = a_vtk_file%xml_writer%write_dataarray(location='node', action='close')\nerror = a_vtk_file%xml_writer%write_piece()\nerror = a_vtk_file%finalize()\n```\n\nNote that all VTKFortran functions return an error code that can be used for sophisticated error trapping algorithms.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fszaghi%2Fvtkfortran","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fszaghi%2Fvtkfortran","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fszaghi%2Fvtkfortran/lists"}