# Awesome Fortran Overview

Awesome list of Fortran libs

🏠 Home · 🔥 Feed · 📮 Subscribe · ❤️ Sponsor · 😺 rabbiabram/awesome-fortran · ⭐ 318 · 🏷️ Programming Languages

# Awesome Fortran

A curated list of awesome Fortran frameworks, libraries and software. Inspired by awesome-swift (⭐5.3k) by @Wolg.

## Functional Libraries

- Functional Fortran (⭐364) - Functional programming for modern Fortran.

## Graphics Libraries

*Libraries for graphing, graphics, and GUIs*

- DISLIN - a high-level graphing and user-interface library.
- f90gl - public domain implementation of the official NIST Fortran 90 bindings for OpenGL.
- F03GL - a Fortran 2003 interface to the OpenGL library, along with the GLU and GLUT toolkits.
- gtk-fortran (⭐205) - a cross-platform library to build Graphical User Interfaces (GUI) using GTK+. Very useful when combined with the Glade RAD tool.
- PGPLOT - cross-platform scientific graphing library.
- VTKFortran (⭐116) - Pure Fortran (2003+) library to write and read data conforming the VTK standard.

## Math Libs

*Libraries for calculating and other mathematical operations.*

- BLAS - application programming interface standard for publishing libraries to perform basic linear algebra operations such as vector and matrix multiplication.
- CERNLIB - The CERN Program Library is a large collection of general purpose libraries and modules maintained and offered in both source and object code form on the CERN central computers
- EISPACK - a software library for numerical computation of eigenvalues and eigenvectors of matrices, written in FORTRAN
- FGSL - portable, object-based Fortran interface to the GNU scientific library
- IMSL - The IMSL Fortran Numerical Library is the standard for high performance computing commercial mathematics and statistics libraries
- Lis - a Library of Iterative Solvers for Linear Systems
- NAG Fortran Library - Produced by experts for use in a variety of applications, the NAG Fortran Library has a global reputation for its excellence and, with hundreds of fully documented and tested routines, is the largest collection of mathematical and statistical algorithms available
- netCDF (⭐171) - a set of software libraries and self-describing, machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data.
- OpenBLAS (⭐4.8k) - one of the fastest open source BLAS libraries available. Almost as fast as Intel MKL.

## JSON Manipulation

*Libraries for JSON data manipulating with Fortran language.*

- FSON (⭐56) - Fortran 95 JSON Parser.
- json-fortran (⭐274) - A Fortran 2008 JSON API.

## XML Manipulation

*Libraries for XML data manipulating with Fortran language.*

- fox (⭐52) - Fortran XML library
- xml-fortran - an all-Fortran solution for reading and writing XML files.

## Date and time manipulation

*Libraries for date and time manipulation with Fortran language.*

- datetime-fortran (⭐118) - A Fortran 2003 date and time manipulation library, modeled after Python's datetime library.

## Testing

*Libraries for testing codebases and generating test data.*

- FRUIT - FORTRAN Unit Test Framework, written in FORTRAN 95
- Ftunit - Fortran unit testing framework by Arjen Markus
- pFUnit - Unit testing framework for Fortran with MPI extensions by developers from NASA and NGC TASC. Uses parallel codes and object-oriented design.
- Vegetables - For a healthier code base, eat your vegetables

## Encoding-Decoding

*Libraries for encoding and decoding data with Fortran language.*

- BeFoR64 (⭐17) - Base64 encoding/decoding library for FoRtran poor men. A KISS library for base64 encoding/decoding for modern (2003+) Fortran projects.

## Portability enabling

*Libraries for enabling codes portability.*

- PENF (⭐38) - Pure Fortran (2003+) library for ensuring codes portability.

## Command-Line parsing

*Libraries for parsing command-line and building user interfaces.*

- FLAP (⭐128) - Fortran command Line Arguments Parser for poor men. A KISS library for building easily nice Command Line Interfaces (CLI) for modern (2003+) Fortran projects.
- options.f90 (⭐12) - Options & input processing for modern Fortran.

## Compiling and building

*Libraries for compiling and building Fortran projects.*

- FoBiS (⭐128) - Fortran Building System for poor men. A KISS tool for automatic building modern Fortran projects.

## Preprocessor

*Libraries for conditional-compilation, macros for code simplification, and inclusion of additional source files, templating systems.*

- Blockit/PyF95++ - A fairly simple Python framework used to block parse your code (or any text file) into nested blocks. The BlockIt framework has already been used to create a templating capability for the Fortran 95/2003 language along with some language extensions.
- PreForM (⭐24) - Preprocessor for Fortran poor Men.

## Automatic documentation

*Libraries for building documentation.*

- FORD (⭐34) - An automatic documentation generator for modern Fortran programs.

## Computational Fluid Dynamics

*Libraries for CFD computations*

- OFF (⭐113) - Open source Finite volume Fluid dynamics code.

## Docker

- Unoficial Image - docker image provided by @baekjoon

## Web

- Fortran Machine (⭐783) - An MVC web stack written in Fortran 90

# Resources

Various resources, such as books, websites and articles, for improving your Fortran development skills and knowledge.

## Fortran Websites

- The Fortran Company - A home page of FORTRAN programming language.
- Fortran Dev - Fortran development blog.
- Fortran WIKI - An open venue for discussing all aspects of the Fortran programming language and scientific computing.

## Fortran Videos

- GNU FORTRAN Lesson 1 - Videos about the Fortran programming language.

# Other Awesome Lists

Other amazingly awesome lists can be found in the awesome-awesomeness (⭐29k) list.

# Contributing

Your contributions are always welcome! Please submit a pull request or create an issue to add a new framework, library or software to the list. Do not submit a project, which hasn't been updated in the past 6 months or is not awesome.