Clicky

Fortran Wiki
Libraries (Rev #105)

Skip the Navigation Links | Home Page | All Pages | Recently Revised | Authors | Feeds | Export |

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. Awesome Fortran is another list of 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

  • Fortran Standard Library - Utilities (containers, strings, files, OS/environment integration, unit testing & assertions, logging, ...) Algorithms (searching and sorting, merging, ...) Mathematics (linear algebra, sparse matrices, special functions, fast Fourier transform, random numbers, statistics, ordinary differential equations, numerical integration, optimization, ...)(OS: MIT)

  • libGPF - General Purpose Fortran Collection. Updated at GitHub.(OS: MIT)

  • fortranlib - Collection of personal scientific routines in Fortran. (OS: BSD-2-Clause License)

  • Fortran-Library - Code for geometry transformations, nonlinear optimization, Fourier transforms, clustering, statistics, mathematics, linear algebra, strings, and chemistry. (OS: GPL-3.0 License)

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

  • flib has a standard library, function library, a tridiagonal matrix solver, and code for a doubly linked list, optimization, and interpolation. (OS: GPL-3.0 License)

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

  • flink Flexible Fortran Modules and Subroutines for Scientific Computing. (OS: GPL-3.0 License)

  • Fortran Template Library (FTL) - generic containers, versatile algorithms, easy string manipulation, and more. (OS: GPL-3)

  • JAMS - a collection of general Fortran modules offering miscellaneous functions in the categories Computational, Date and Time, Input / Output, Math / Numerics, Screening, Sensitivity Analysis and Optimising / Fitting, and Miscellaneous. Written by Matthias Cuntz, Juliane Mai and Stephan Thober. (OS: MIT)

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

  • jsonff - Fortran library for dealing with JSON data (OS: MIT)

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

  • Focal is a modern Fortran module library which wraps calls to the OpenCL runtime API with a higher abstraction level appropriate to the Fortran language. (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)[object Object]

  • erloff Make error-handling in Fortran a bit more flexible (OS: MIT)

  • parff An (almost) functional style parser combinator library for Fortran (OS: MIT)

String Manipulation

  • Fortran Character String Utilities a library of string manipulation routines by George Benthien. (?)[object Object]

  • strff a library of convenient string functions (OS: MIT)

  • iso_varying_string An implementation of the ISO standard for varying strings (OS: MIT)

  • M_strings - modules for processing strings. Routines for parsing, tokenizing, changing case, substituting new strings for substrings, locating strings with simple wildcard expressions, removing tabs and line terminators and other string manipulations are included. (OS)

Date and Time Manipulation

  • datetime-fortran is a library that provides time and date manipulation facilities. (OS: BSD)
  • m_time provides the ability to display dates in a variety of formats as well as basic date and time computation ([PD])

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)

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

  • TOMS, code from the journal Transactions on Mathematical Software. Many programs were translated to Fortran 90 by Alan Miller and John Burkardt

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

  • 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)

  • Numerical Methods for Scientists and Engineers, code in Fortran 77 and C from book by H. M. Antia

  • starpac, Standards Time Series and Regressions Package in Fortran 77(PD), translated to Fortran 90 here.

  • 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).

  • NumericalHUB - Set of modern Fortran numerical libraries covering: zeroes of Systems of Equations, Lagrange Interpolation, Finite Differences, Cauchy Problems, Boundary Value Problems, and Initial Boundary Value Problems, associated with book How to learn Applied Mathematics through modern FORTRAN

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

  • quaff - A library for making math with units a lot easier and more convenient (OS: MIT)

  • SciFortran - A library of fortran modules and routines for scientific calculations (in a way just like scipy for python). (OS: LGPL-3.0 License)

  • Tensor Toolbox for Modern Fortran (ttb)(OS: MIT License)

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. (?)

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

Statistics and Econometrics – see also the Open Directory section

  • Alan Miller’s Fortran Software for subset selection in regression, random number generation, logistic regression, linear least squares, and other topics.

  • 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

  • SLICE, efficient N-Dimensional Monte Carlo inversion algorithm.

  • apstat, a collection of subroutines (AS1 - AS319) published in the journal Applied Statistics 1968-1994. Most are Fortran. Personal favourites include AS319 and AS164. Many have been translated to Fortran 90 by John Burkardt and Alan Miller

Optimization and Solvers – see also the Open Directory section

  • GALAHAD is a library of modern Fortran modules for nonlinear optimization. (OS: lgpl-3.0)

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

  • PowellOpt is a collection of derivative-free optimization algorithms by M.J.D. Powell.

  • slsqp is a Modern Fortran edition of the SLSQP optimizer.

  • Applied Statistics algorithm 298 Hybrid minimization routine using simulated annealing and a user-supplied local minimizer.

  • Applied Statistics algorithm 319 Variable metric unconstrained function minimization without derivatives.

  • TOMS algorithm 778 solves bound-constrained optimization problems by using the compact formula of the limited memory BFGS updates.

  • TENSOLVE contains both TOMS 739 (UNCMIN) for unconstrained minimization, and TOMS 768 (TENSOLVE) for the solution of sets of non-linear equations.

  • TOMS algorithm 813 is for local minimization, with or without convex constraints. It requires the user to supply first derivatives. This version is in standard Fortran. It uses the so-called spectral projected gradient (SPG) method.

Machine Learning

  • FortLearner - linear regression, logistic regression, stochastic gradient descent, decision trees, ensemble trees, boosting trees, and dimension reduction.

  • neural-fortran is a parallel neural net microframework. (OS: MIT)

  • autofit is a Fortran code for fitting permutationally invariant polynomials (PIPs). (OS: Apache-2.0 License)

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)

  • Pyplot-Fortran is a simple module for generating plots from Fortran using Python’s matplotlib.pyplot.

  • 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. (?)

  • fortran-xlib is an interface to (a subset) of Xlib. (OS: ISC)

  • fortran-sdl2 is a Fortran interface to Simple DirectMedia Layer 2.0 (SDL 2.0). It uses the ISO_C_BINDING module. (OS: ISC)

Differential Equations

  • ODEPACK is a systematized collection of ODE solvers. (PD)
  • PETSc The Portable, Extensible Toolkit for Scientific Computation (PETSc, pronounced PET-see; the S is silent), is a suite of data structures and routines developed by Argonne National Laboratory for the scalable (parallel) solution of scientific applications modeled by partial differential equations.

Sorting and Ranking

  • 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

  • fortran-csv-module - read and write CSV Files using Modern Fortran.

  • 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)

System

  • 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+)

Revision from March 7, 2021 22:24:23 by Beliavsky?
Forward in time (91 more) | Back in time (104 more) | See current | See changes | History | Rollback | View: Source | Linked from: HomePage, Code, 2009, Fortran Wiki, CERNLIB

AltStyle によって変換されたページ (->オリジナル) /