Clicky
Showing changes from revision #114 to #115:
(追記) Added (追記ここまで) | (削除) Removed (削除ここまで) | (削除) Chan (削除ここまで)(追記) ged (追記ここまで)
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:
When available, the above tags should link to the license page for a particular library.
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]
coretran An easy to follow library to make Fortran easier in general with wrapped interfaces, sorting routines, kD-Trees, and other algorithms to handle scientific data and concepts.
erloff Make error-handling in Fortran a bit more flexible (OS: MIT)
parff An (almost) functional style parser combinator library for Fortran (OS: MIT)
ferror A library to assist with error handling in Fortran projects.
Fortran Character String Utilities a library of string manipulation routines by George Benthien
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)
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)
HSL Mathematical Software Library, free for academic use.
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
Numerical Methods of Statitics, Fortran 95 code from book by John Monahan.
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)
Emmix Fits a mixture model of multivariate normal or t-distributions to a user supplied data set via the EM algorithm. With gfortran, must be compiled with -std=legacy option.
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)
Simfit - package for simulation, statistical analysis, curve fitting and graph plotting, using models from a compiled library or from ASCII text files supplied by the user. Source code for over two hundred NAG library subroutines called by the Academic version of the Simfit package is available.
Tensor Toolbox for Modern Fortran (ttb)(OS: MIT License)
forSISL - Modern Fortran interfaces to the SINTEF Spline Library (SISL)
BLAS: Basic Linear Algebra Subprograms that provide standard building blocks for performing basic vector and matrix operations (PD)
LAPACK is the standard package for numerical linear algebra. (OS: BSD)
BLAP95 - a Fortran 95 interface to the Level 3 BLAS routines and key LAPACK computational and driver routines. (?)
Fortran_Davidson - Modern Fortran implementation of the Davidson diagonalization algorithms. (OS:Apache-2.0 License)
fortran_lsp - Fortran routines from "Solving Least Squares Problems" by C. Lawson and R. Hanson, with improved interfaces.
PSBLAS - Parallel Sparse Basic Linear Algebra Subroutines (OS: BSD)
linalg - linear algebra library that provides a user-friendly interface to several BLAS and LAPACK routines. (OS:GPL-3.0 License)
qrupdate - library for fast updates of QR and Cholesky decompositions.
Alan Miller’s Fortran Software for subset selection in regression, random number generation, logistic regression, linear least squares, and other topics.
Climate time series analysis by Manfred Mudelsee.
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)
Fast Statistical Methods, by Rybicki and Press.
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
Modifed Burg Algorithms in Multivariate Subset Autoregressive Modeling by A. Alexandre Trindade
SLICE, efficient N-Dimensional Monte Carlo inversion algorithm.
TIMSAC package for analysis, prediction and control of time series.
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
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.
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.
cobyla.f90 Mike Powell’s routine for minimization of non-linear functions with smooth non-linear constraints, using local linear approximations to the constraints.
tron.zip Newton’s method for large bound-constrained optimization problems by Chih-Jen Lin & Jorge More’, a MINPACK-2 project.
lm.zip Levenberg-Marquardt algorithm for non-linear least squares (unconstrained). This is a translation of the MINPACK routines, LMDER & LMDIF. Us
conmin.zip The classic CONMIN package for constrained minimization updated to Fortran 90.
minim.f90 The Nelder-Mead simplex algorithm for unconstrained minimization. It does NOT require or use derivatives.
uobyqa.f90 Mike Powell’s package for unconstrained minimization when derivatives are not available.
tn.zip Stephen Nash’s truncated-Newton code for the minimization of continuous functions. It can use differences instead of derivatives, and bounds may be imposed on the parameters.
global.f90 At Arnold Neumaier’s web site, this is recommended as the most successful of the global optimization packages.
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)
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)
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)
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)
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)
WKML is based on FoX, and writes KML (Keyhole Markup Language). (OS: BSD)
xml (?)
xml-fortran (OS: BSD)
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+)