Files
awesome-awesomeness/html/fortran.html
2025-07-18 22:22:32 +02:00

253 lines
11 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<h1 id="awesome-fortran-awesome-build-status">Awesome Fortran <a
href="https://github.com/sindresorhus/awesome"><img
src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg"
alt="Awesome" /></a> <a
href="https://travis-ci.org/rabbiabram/awesome-fortran"><img
src="https://api.travis-ci.org/rabbiabram/awesome-fortran.svg?branch=master"
alt="Build Status" /></a></h1>
<p>A curated list of awesome Fortran frameworks, libraries and software.
Inspired by <a
href="https://github.com/Wolg/awesome-swift">awesome-swift</a> by <span
class="citation" data-cites="Wolg">@Wolg</span>.</p>
<ul>
<li><a href="#awesome-fortran">Awesome Fortran</a>
<ul>
<li><a href="#functional-libraries">Functional Libraries</a></li>
<li><a href="#graphics-libraries">Graphics Libraries</a></li>
<li><a href="#math-libs">Math libs</a></li>
<li><a href="#json-manipulation">JSON Manipulation</a></li>
<li><a href="#xml-manipulation">XML Manipulation</a></li>
<li><a href="#date-and-time-manipulation">Date and time
manipulation</a></li>
<li><a href="#testing">Testing</a></li>
<li><a href="#encoding-decoding">Encoding-Decoding</a></li>
<li><a href="#portability-enabling">Portability enabling</a></li>
<li><a href="#command-line-parsing">Command-Line parsing</a></li>
<li><a href="#compiling-and-building">Compiling and building</a></li>
<li><a href="#preprocessor">Preprocessor</a></li>
<li><a href="#automatic-documentation">Automatic documentation</a></li>
<li><a href="#computational-fluid-dynamics">Computational Fluid
Dynamics</a></li>
<li><a href="#docker">Docker</a></li>
<li><a href="#web">Web</a></li>
</ul></li>
<li><a href="#resources">Resources</a>
<ul>
<li><a href="#fortran-websites">Fortran Websites</a>
<ul>
<li><a href="#fortran-videos">Fortran Videos</a></li>
</ul></li>
</ul></li>
<li><a href="#other-awesome-lists">Other Awesome Lists</a></li>
<li><a href="#contributing">Contributing</a></li>
</ul>
<h2 id="functional-libraries">Functional Libraries</h2>
<ul>
<li><a
href="https://github.com/wavebitscientific/functional-fortran">Functional
Fortran</a> - Functional programming for modern Fortran.</li>
</ul>
<h2 id="graphics-libraries">Graphics Libraries</h2>
<p><em>Libraries for graphing, graphics, and GUIs</em></p>
<ul>
<li><a href="https://www.mps.mpg.de/dislin/">DISLIN</a> - a high-level
graphing and user-interface library.</li>
<li><a href="https://math.nist.gov/f90gl/">f90gl</a> - public domain
implementation of the official NIST Fortran 90 bindings for OpenGL.</li>
<li><a
href="http://www-stone.ch.cam.ac.uk/pub/f03gl/index.xhtml">F03GL</a> - a
Fortran 2003 interface to the OpenGL library, along with the GLU and
GLUT toolkits.</li>
<li><a
href="https://github.com/vmagnin/gtk-fortran/wiki">gtk-fortran</a> - a
cross-platform library to build Graphical User Interfaces (GUI) using <a
href="https://www.gtk.org/">GTK+</a>. Very useful when combined with the
<a href="https://glade.gnome.org/">Glade</a> RAD tool.</li>
<li><a href="https://www.astro.caltech.edu/~tjp/pgplot/">PGPLOT</a> -
cross-platform scientific graphing library.</li>
<li><a href="https://github.com/szaghi/VTKFortran">VTKFortran</a> - Pure
Fortran (2003+) library to write and read data conforming the VTK
standard.</li>
</ul>
<h2 id="math-libs">Math Libs</h2>
<p><em>Libraries for calculating and other mathematical
operations.</em></p>
<ul>
<li><a href="http://www.netlib.org/blas/">BLAS</a> - application
programming interface standard for publishing libraries to perform basic
linear algebra operations such as vector and matrix multiplication.</li>
<li><a href="http://cernlib.web.cern.ch/cernlib/">CERNLIB</a> - 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</li>
<li><a href="http://www.netlib.org/eispack/">EISPACK</a> - a software
library for numerical computation of eigenvalues and eigenvectors of
matrices, written in FORTRAN</li>
<li><a
href="https://www.lrz.de/services/software/mathematik/gsl/fortran/index.html">FGSL</a>
- portable, object-based Fortran interface to the <a
href="https://www.lrz.de/services/software/mathematik/gsl/">GNU
scientific library</a></li>
<li><a
href="https://www.imsl.com/products/imsl-fortran-libraries">IMSL</a> -
The IMSL Fortran Numerical Library is the standard for high performance
computing commercial mathematics and statistics libraries</li>
<li><a href="https://www.ssisc.org/lis/index.en.html">Lis</a> - a
Library of Iterative Solvers for Linear Systems</li>
<li><a href="https://www.nag.co.uk/content/nag-library-fortran">NAG
Fortran Library</a> - 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</li>
<li><a href="https://github.com/Unidata/netcdf-fortran">netCDF</a> - a
set of software libraries and self-describing, machine-independent data
formats that support the creation, access, and sharing of array-oriented
scientific data.</li>
<li><a href="https://github.com/xianyi/OpenBLAS">OpenBLAS</a> - one of
the fastest open source BLAS libraries available. Almost as fast as
Intel MKL.</li>
</ul>
<h2 id="json-manipulation">JSON Manipulation</h2>
<p><em>Libraries for JSON data manipulating with Fortran
language.</em></p>
<ul>
<li><a href="https://github.com/josephalevin/fson">FSON</a> - Fortran 95
JSON Parser.</li>
<li><a
href="https://github.com/jacobwilliams/json-fortran">json-fortran</a> -
A Fortran 2008 JSON API.</li>
</ul>
<h2 id="xml-manipulation">XML Manipulation</h2>
<p><em>Libraries for XML data manipulating with Fortran
language.</em></p>
<ul>
<li><a href="https://github.com/andreww/fox">fox</a> - Fortran XML
library</li>
<li><a
href="https://sourceforge.net/projects/xml-fortran/">xml-fortran</a> -
an all-Fortran solution for reading and writing XML files.</li>
</ul>
<h2 id="date-and-time-manipulation">Date and time manipulation</h2>
<p><em>Libraries for date and time manipulation with Fortran
language.</em></p>
<ul>
<li><a
href="https://github.com/wavebitscientific/datetime-fortran">datetime-fortran</a>
- A Fortran 2003 date and time manipulation library, modeled after
Pythons datetime library.</li>
</ul>
<h2 id="testing">Testing</h2>
<p><em>Libraries for testing codebases and generating test
data.</em></p>
<ul>
<li><a href="https://sourceforge.net/projects/fortranxunit/">FRUIT</a> -
FORTRAN Unit Test Framework, written in FORTRAN 95</li>
<li><a href="http://flibs.sourceforge.net/ftnunit.html">Ftunit</a> -
Fortran unit testing framework by Arjen Markus</li>
<li><a href="https://sourceforge.net/projects/pfunit/">pFUnit</a> - Unit
testing framework for Fortran with MPI extensions by developers from
NASA and NGC TASC. Uses parallel codes and object-oriented design.</li>
<li><a
href="https://gitlab.com/everythingfunctional/vegetables">Vegetables</a>
- For a healthier code base, eat your vegetables</li>
</ul>
<h2 id="encoding-decoding">Encoding-Decoding</h2>
<p><em>Libraries for encoding and decoding data with Fortran
language.</em></p>
<ul>
<li><a href="https://github.com/szaghi/BeFoR64">BeFoR64</a> - Base64
encoding/decoding library for FoRtran poor men. A KISS library for
base64 encoding/decoding for modern (2003+) Fortran projects.</li>
</ul>
<h2 id="portability-enabling">Portability enabling</h2>
<p><em>Libraries for enabling codes portability.</em></p>
<ul>
<li><a href="https://github.com/szaghi/PENF">PENF</a> - Pure Fortran
(2003+) library for ensuring codes portability.</li>
</ul>
<h2 id="command-line-parsing">Command-Line parsing</h2>
<p><em>Libraries for parsing command-line and building user
interfaces.</em></p>
<ul>
<li><a href="https://github.com/szaghi/FLAP">FLAP</a> - Fortran command
Line Arguments Parser for poor men. A KISS library for building easily
nice Command Line Interfaces (CLI) for modern (2003+) Fortran
projects.</li>
<li><a href="https://github.com/cngilbreth/optionsf90">options.f90</a> -
Options &amp; input processing for modern Fortran.</li>
</ul>
<h2 id="compiling-and-building">Compiling and building</h2>
<p><em>Libraries for compiling and building Fortran projects.</em></p>
<ul>
<li><a href="https://github.com/szaghi/FoBiS">FoBiS</a> - Fortran
Building System for poor men. A KISS tool for automatic building modern
Fortran projects.</li>
</ul>
<h2 id="preprocessor">Preprocessor</h2>
<p><em>Libraries for conditional-compilation, macros for code
simplification, and inclusion of additional source files, templating
systems.</em></p>
<ul>
<li><a href="http://blockit.sourceforge.net/">Blockit/PyF95++</a> - 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.</li>
<li><a href="https://github.com/szaghi/PreForM">PreForM</a> -
Preprocessor for Fortran poor Men.</li>
</ul>
<h2 id="automatic-documentation">Automatic documentation</h2>
<p><em>Libraries for building documentation.</em></p>
<ul>
<li><a href="https://github.com/cmacmackin/ford">FORD</a> - An automatic
documentation generator for modern Fortran programs.</li>
</ul>
<h2 id="computational-fluid-dynamics">Computational Fluid Dynamics</h2>
<p><em>Libraries for CFD computations</em></p>
<ul>
<li><a href="https://github.com/szaghi/OFF/tree/testing">OFF</a> - Open
source Finite volume Fluid dynamics code.</li>
</ul>
<h2 id="docker">Docker</h2>
<ul>
<li><a
href="https://hub.docker.com/r/baekjoon/onlinejudge-fortran/">Unoficial
Image</a> - docker image provided by <span class="citation"
data-cites="baekjoon">@baekjoon</span></li>
</ul>
<h2 id="web">Web</h2>
<ul>
<li><a href="https://github.com/mapmeld/fortran-machine">Fortran
Machine</a> - An MVC web stack written in Fortran 90</li>
</ul>
<h1 id="resources">Resources</h1>
<p>Various resources, such as books, websites and articles, for
improving your Fortran development skills and knowledge.</p>
<h2 id="fortran-websites">Fortran Websites</h2>
<ul>
<li><a href="https://www.fortran.com/">The Fortran Company</a> - A home
page of FORTRAN programming language.</li>
<li><a href="https://fortrandev.wordpress.com/">Fortran Dev</a> -
Fortran development blog.</li>
<li><a href="http://fortranwiki.org/fortran/show/HomePage">Fortran
WIKI</a> - An open venue for discussing all aspects of the Fortran
programming language and scientific computing.</li>
</ul>
<h2 id="fortran-videos">Fortran Videos</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=qUy8M10uZRU">GNU FORTRAN
Lesson 1</a> - Videos about the Fortran programming language.</li>
</ul>
<h1 id="other-awesome-lists">Other Awesome Lists</h1>
<p>Other amazingly awesome lists can be found in the <a
href="https://github.com/bayandin/awesome-awesomeness">awesome-awesomeness</a>
list.</p>
<h1 id="contributing">Contributing</h1>
<p>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 hasnt been updated in the past 6
months or is not awesome.</p>
<p><a href="https://github.com/rabbiabram/awesome-fortran">fortran.md
Github</a></p>