Fortran Wiki

This page is for linking to available Fortran libraries and source code repositories. See Software repositories for collections of libraries and see Library distribution for methods for packaging and distributing Fortran libraries.

Libraries linked here are classified as follows:

  • (PD) public domain (e.g., software written by the U.S. government)
  • (OS) free and open source software (GPL, LGPL, BSD, and similar licenses)
  • (NC) free for noncommercial use, possibly with commercial licensing options
  • (C) commercial
  • (?) unspecified license

When available, the above tags should link to the license page for a particular library.

General-Purpose Libraries

  • libGPF - General Purpose Fortran Collection.

  • FGSL - A Fortran interface to the GNU Scientific Library. (OS: GPL)

  • FLIBS is a collection of Fortran modules by Arjen Markus and Michael Baudin. (OS: BSD)

  • json-fortran - Fortran 2003/2008 JSON API. (OS: BSD)

  • S-EXPTRAN - Fortran library for reading and writing S-expressions. (OS: MIT)

  • FortranCL a Fortran interface for OpenCL, allows to execute code on GPUs and accelerators directly from Fortran. (OS: LGPL)

  • FortCUDA A native Fortran interface to the CUDA GPU library. Contains a Python pre-processor to parse the CUDA C headers and creates ISO_C_BINDING interfaces for the method calls. Comes with a fairly complex example. (OS: GPL)

  • IR_Precision a Fortran (standard 2003) module useful to achieve portable codes. The module makes available portable kind-parameters and some useful procedures to deal with them. (OS: GPL)

  • BeFoR64 the Base64 encoding/decoding library for FoRtran poor men, is a pure Fortran (KISS) library for base64 encoding/decoding for modern (2003+) Fortran projects. (OS: GPL)

  • fdict a native Fortran 90 dictionary with hash tables for retaining any data-type in a Python-like dictionary. (OS: MPL-2)

  • functional-fortran - Library for functional programming in modern Fortran. (OS: BSD)

  • qContainers is a container library for Fortran language. It enables to store any internal Fortran data type and any derived data type to the container. It implements containers for key/value pairs: tree table and hash table, and containers for objects: list and vector. (OS: BSD)

  • NPY-for-Fortran allows the developer to save Fortran arrays in Numpy’s .npy format. (OS:MIT)

  • forpy - use Python in Fortran and vice versa. (OS:LGPL)

String Manipulation

Date and Time Manipulation

Numerical, Scientific, and Mathematical Libraries

  • SLATEC Common Mathematical Library: a comprehensive software library containing over 1400 general purpose mathematical and statistical routines written in Fortran 77. (PD)

  • CERNLIB, a collection of FORTRAN 77 libraries and modules maintained by CERN. (OS: GPL)

  • SLATEC, a Fortran 90 version by John Burkardt. (?)

  • ARPREC, a C++/Fortran 90 library for arbitrary precision math. Includes a complete interactive high-precision arithmetic computing interpreter (“toolkit”) written in Fortran, that will integrate symbolic expressions etc. (OS: BSD)

  • FMLIB, David M. Smith’s libraries for multiple precision computation. The package performs multiple-precision real, complex, and integer arithmetic, providing the intrinsic Fortran numerical functions, as well as many special functions. An existing Fortran program can be checked by converting it from double precision to FM arithmetic. (NC)

  • MPFUN90, a pure Fortran 90 library for arbitrary precision math. Includes a complete interactive high-precision arithmetic computing interpreter (“toolkit”) written in Fortran, that will integrate symbolic expressions etc. (OS: BSD)

  • starpac, A Fortran 77 statistical library writen by John Koontz and Janet Donaldson (at NIST) (PD)

  • datapac, A Fortran 77 statistical library written by James Filliben (at NIST) (PD)

  • stspac, A Fortran 77 statistical library written by Charlie Reeves (at NIST) (PD)

  • SLICOT - The Control and Systems Library (GPL)

  • Muesli - A free numerical and graphical Fortran 95 library written by Edouard Canot at Univ of Rennes (?)

  • National Wind Technology Center Subroutine Library - A library of general-use Fortran 2003 routines used in many NWTC computer-aided engineering tools (OS: GPL)

  • lookup_table_fortran A module for linear lookup tables. Supports multiple columns and various ways to read values from the table.

  • NumDiff - A modern Fortran numerical differentiation library by Jacob Williams (OS: BSD).

  • faiNumber-Fortran - A fast, flexible, and secure numerical library for Fortran with fast number parsing as one of its features. (OS: MIT)

Linear Algebra

  • BLAS: Basic Linear Algebra Subprograms that provide standard building blocks for performing basic vector and matrix operations (PD)

  • Expokit provides matrix exponential routines. (NC)

  • LAPACK is the standard package for numerical linear algebra. (OS: BSD)

  • LAPACK95 is a Fortran 95 interface for LAPACK. (OS)

  • BLAP95 - a Fortran 95 interface to the Level 3 BLAS routines and key LAPACK computational and driver routines. (?)

  • NETLIB freely available mathematical and scientific software much of it in Fortran 77 ([?])

  • PSBLAS - Parallel Sparse Basic Linear Algebra Subroutines (OS: BSD)

Statistics and Econometrics

  • starpac, A Fortran 77 statistical library writen by John Koontz and Janet Donaldson (at NIST) (PD)

  • datapac, A Fortran 77 statistical library written by James Filliben (at NIST) (PD)

  • stspac, A Fortran 77 statistical library written by Charlie Reeves (at NIST) (PD)

  • Multiple stream Mersenne Twister pseudorandom number generator (OS: BSD)

  • rng_fortran, Fast pseudorandom number generator based on Xoroshiro128+. Supports OpenMP.

  • MISCLIB, a library of statistical and support routines, written by Barry Brown (M.D.Anderson Cancer Institute) - open source

  • apstat, a collection of subroutines (AS1 - AS319) published in the journal Applied Statistics 1968-1994. Most are Fortran. Personal favourites include AS319 and AS164.

Optimization and Solvers

  • MINPACK contains routines for solving nonlinear equations and nonlinear least squares problems. (OS: BSD)

Plotting and Graphics

  • ogpf is an object based Fortran 2003 / Fortran 2008 code for 2D, 3D plotting and animation, implements an interface to gnuplot. (PD)

  • gtk-fortran is a cross-platform library to build Graphical User Interfaces (GUI). It is a GTK / Fortran 2003 binding based on the ISO_C_BINDING module. (OS: GPL)

  • GnuplotFortran is a Fortran Interface to Gnuplot. (OS: LGPL)

  • GNUFOR2 is a Fortran 90 interface to Gnuplot which helps to plot graphs, surfaces, histograms and images. (?)

  • DISLIN is a high-level scientific data plotting library. (NC)

  • F90GL - Fortran 90 bindings for OpenGL and the GL Utility Toolkit (GLUT) (PD)

  • F03GL - Fortran 2003 bindings for OpenGL, GLU and GLUT (?)

  • g2 is an easy to use, portable and powerful 2D graphics library. Currently supported devices: PostScript, X11, PNG and JPEG (using gd) and Win32 (xfig in development). g2 is written in C (ANSI) and has a Fortran interface. (OS: LGPL)

  • g95gl - Alternate Fortran 95 (interop) bindings for OpenGL and the GL Utility Toolkit (GLUT)

  • MathGL is a library for making high-quality scientific graphics under Linux and Windows via Qt, FLTK or OpenGL. (OS: GPL)

  • PGPLOT graphics subroutine library. (NC)

  • plotterf90 is a graphics subroutine library producing Postscript written by Masao Kodama. (?)

  • PLplot is a free, cross-platform plotting library. (OS: LGPL)

  • libvogle a basic vector-based graphics library in C, but Fortran-callable

  • grapheps is a port of a very compact Postscript library

  • EGGX/ProCALL is an X11 graphics library for C and FORTRAN created to achieve extreme simplicity. Uses only (OS: GPL)

  • GrWin is a Windows graphics library for FORTRAN and C.

  • Lib_VTK_IO a pure Fortran library to write and read data conforming the VTK standard. This library is not a porting or a wrapper of the VTK code, but it is only an exporter/importer of VTK data format written in pure Fortran language (standard Fortran 2003). (OS: GPL)

  • text_viz - Text-mode 2D-Graphics for Fortran. (?)

  • f03xlib is an interface to (a subset) of Xlib. (OS: ISC)

  • f03sdl2 is a Fortran interface to Simple DirectMedia Layer 2 (SDL 2). It uses the ISO_C_BINDING module. (OS: ISC)

Differential Equations

  • ODEPACK is a systematized collection of ODE solvers. (PD)


  • ORDERPACK is a library with routines for unconditional, unique, and partial ranking, sorting, and permutation. (?)

Command-Line Parsing

  • KRACKEN: a library for parsing Unix-like command-line arguments. (OS)

  • FLAP a Fortran command Line Arguments Parser for poor people. A KISS pure Fortran Library for building powerful, easy-to-use, elegant command line interfaces. (OS: GPL)(OS: BSD)

INI (config file) Parsers

  • FiNeR, the Fortran INI ParseR and generator for FoRtran poor men, is a (KISS) library for IO of INI (config) files for modern (2003+) Fortran projects. (OS: GPL)
  • config_fortran A single-file module to read and write configuration settings. Supported are (arrays of) integers, reals, logicals and strings.

CSV Files

  • csvio-f90, the CSVIO F90 module, is a Fortran 90 module for easily reading and writing CSV files. (OS: BSD)

Command History Editor

  • cdcdcd REDO: a library that permits you to list, recall, save, and modify interactive input using a simple line-mode editor model. (OS)

XML Parsers

C-library Interfaces

  • ncurses A Fortran interface to the C-based CRT display handling library ncurses(3c). (PD)


  • fortranposix - An implementation of some POSIX functions in Fortran 90/95. (OS: LGPL)

  • fortyxima/filesys - Modern Fortran wrappers around the file system interface of libc as part of the Fortyxima library: rename and remove files, recursively create and remove directories, obtain filenames in a directory, check whether a given file exists and if a directory or a symbolic link, obtain the current working directory and change to a directory, create hard links and symbolic links, resolve the target of symbolic links, canonize path names. Fortyxima/filesys replaces the old modfilesys library. (OS: BSD)

  • Posix90 - The Fortran 90 Posix interface project. (OS: GPLv2+)