update since Feb 8, full list here
Art and Music
MZ2SYNTH: wavetable synthesizer by E. Lamprecht inspired by the ANS synthesizer built by Yevgeny Murzin
Astronomy and Astrophysics
Astrodynamics-Toolkit: includes useful tools, functions, and methods to solve prominent orbital dynamics problems, by Loay Gouda. Also initial-orbit-determination implementing the Double-R method for preliminary (initial) orbit determination using three sets of right-ascension and declination angles.
kemimo: three-phase gas-grain astrochemical model, associated with the paper Modeling chemistry during star formation: water deuteration in dynamic star-forming regions, by S. S. Jensen et al., Astronomy & Astrophysics (2021)
magmaps: Generates magnification maps for extragalactic microlensing studies using the Poisson and Inverse Polygon method, by glendama. The code incorporates the presence of smoothly distributed matter, as well as two types of randomly distributed microlenses (stars and primordial black holes).
MCGSuite: set of codes designed to generate mock observations of tilted ring models, by Nate Deg and K. Spekkens. These mock observations mimic observations of axisymmetric HI gas disks.
METhod of Interpolation for Single Star Evolution (METISSE): code package designed for rapidly computing the evolution of a large number of stars by interpolating within a set of pre-computed evolutionary tracks. An associated paper is Modelling stellar evolution in mass-transferring binaries and gravitational-wave progenitors with metisse, by Poojan Agrawal et al., Monthly Notices of the Royal Astronomical Society (2023).
MoonSun: routines for computing Sun and Moon position in observerâs sky, by Amin KHiabani. Also Legendre-Polynomials for Legendre fuctions and polynomials in physical geodesy and SunDials, a program to create a table of coordinates (x,y) of shadow tip of gnomon, on sundial surface.
PyJKTEBOP: Python interface by Nikki Miller for the Fortran code JKTEBOP for analyzing light and velocity curves of detached eclipsing binaries and transiting planets, by John Southworth
Space geodesy data analysis software suite (SGDASS): collection of software programs with the primary goal of support of analysis of very long baseline interferometry (VLBI) observations, by Leonid Petrov et al.
TRECS: code to produce radio sources catalogs with user-defined frequencies, area and depth, associated with the paper The Tiered Radio Extragalactic Continuum Simulation (T-RECS), by Anna Bonaldi et al., Monthly Notices of the Royal Astronomical Society (2019)
Benchmarks and Benchmarking
Fortran Coarray Micro-Benchmark Suite (cafbench): set of benchmarks to measure the performance of various parallel operations involving Fortran coarrays, by David Henty. These include point-to-point (âping-pongâ) data transfer patterns, synchronisation patterns and halo-swapping for 3D arrays.
Biology and Medicine
All Ages Lead Model (AALM): evaluates the impact of lead exposures on lead levels in humans, from the U.S. Environmental Protection Agency. It rapidly estimates the effect of exposures on lead concentrations in tissues of children and adults; can assess exposures of a day or more, as well as chronic exposures; and can be applied to specific individuals or to groups of similarly exposed individuals.
Texture-Toolbox: allows the user to input a 2D or 3D image, in the form of a NumPy array and calculate 43 commonly used, texture features of the image, by cgreen259. Quantisation methods are also avaiable to improve feature stability in the form of Fixed Bin Width (FBW) and Fixed Bin Number (FBN).
Climate and Weather
Dutch Atmospheric Large Eddy Simulation (DALES): An associated paper is Large-Eddy Simulation Comparison of Neutral Flow Over a Canopy: Sensitivities to Physical and Numerical Conditions, and Similarity to Other Representations, by H.G. Ouwersloot et al., Boundary-Layer Meteorology (2017)
Global-Regional Integrated Forecast System (GRIST): atmospheric model framework system that aims at the development of global-regional and weather-climate integration. An associated paper is Intercomparison of two model climates simulated by a unified weather-climate model system (GRIST), part II: MaddenâJulian oscillation, by Zhen Fu et al., Climate Dynamics (2025).
KW_TC_boundary_layer: implementation of the Kepert and Wang (2001) boundary layer model for coupling gradient-level tropical cyclone winds to the earthâs surface, by Yuqing Wang et al.
libtdlpack: subset of subroutines from the MOS-2000 Software System for the TDLPACK data format, from NOAA-MDL
Code Tools
flavanaly: wrapper for Fortran-stdlib logger that enhances log messages with purpose classification and message categorization, by Tomohiro Degawa
urclfortran: work-in-progress Fortran compiler written in modern fortran, currently targeting 16 bit URCL, by Verlio-H. Also urcl-ld to link URCL files.
Computational Chemistry
freemol: framework for computational chemistry, containing the programs adfrom, a code to work with ADF (Amsterdam Density Functional), ch4sym2cart to convert coordinates from symmetric to Cartesian for CH4 (Methane)-like molecules, CSMG to compute the CSM âContinuous Symmetry Measureâ of weighted point objects using Gaussian functions, fit1Dpol to fit 1-D functions, and XY4Coord and XY4PolySphere for coordinate transformations, by Fabio Mariotti
symm: integration and modification of VMD and SYVA software to analyze the symmetrical elements and point groups of molecules, as well as to visualize them, associated with the paper Visualizing Symmetry: A Resource for Chemical Education with VMD and SYVA Programs, by Qingyan Zeng and Jinglin Mu, Journal of Chemical Education (2024)
Containers and Generic Programming
murmur3f: implementation of Murmur3, a non-cryptographic hash function, by Marshall Ward
Traits-for-Fortran: A traits system for Fortran is described, by Konstantinos Kifonidis et al. Its aim is to endow the language with state-of-the-art capabilities for both compile-time and run-time polymorphism, that are similar to those of the Swift, Rust, Go, or Carbon languages.
Computational Fluid Dynamics
Compressible-Flow: Riemann solver for the Euler equations on an unstructured triangular mesh using the finite volume method, by Winston Ong. The HLLC fluxes are computed by solving the x-split Riemann problem at each face, taking advantage of the rotational invariance of the flux vectors. Also Incompressible-Flow which implements Chorinâs projection method to solve the incompressible Navier-Stokes equations on an unstructured triangular mesh using the finite volume method.
flop: operator-oriented library for two-dimensional incompressible fluid flow simulation, by Tomohiro Degawa
fvm-source-wb: finite volume method code for Euler equations with source and well balancedness, by Maria Veiga. Also 1d-dg-nn, a 1D discontinuous Galerkin code integrated with a neural net.
Glenn Flux Reconstruction (GFR): high-order computational fluid dynamics code for large-eddy simulations, by scspiegel and Jason Duley. It is based on the simple and efficient flux reconstruction method and accurate to arbitrary order through a user-supplied input parameter.
MUltiScale Simulation Tribology (MUSST): implements the finite element method on Reynoldsâ equation, by NoĂ«l BrunetiĂšre and Arthur Francisco. It can solve a large variety of problems with standard geometries like sliders, bearings and pockets.
NavierStokes-2D-ChannelFlow: 2D Navier-Stokes equation solver, discretized using Finite Differences and solved via the successive over-Relaxation (SOR) method, by Matthew Lintern-Monro
Neko: portable framework for high-order spectral element flow simulations, by Niclas Jansson et al. It adopts an object-oriented approach, allowing multi-tier abstractions of the solver stack and facilitating various hardware backends ranging from general-purpose processors, CUDA and HIP enabled accelerators to SX-Aurora vector processors.
TLNS3D: solves Reynolds-averaged Navier-Stokes Equations to simulate turbulent, viscous flows over three-dimensional configurations, from NASA. A general multiblock grid approach is used to model complex configurations.
VortoNeX: code associated with paper The Full Non-linear Vortex Tube-Vorton Method: the pre-stall condition, by Jesus Carlos Pimentel-Garcia, Advances in Aerodynamics, (2024)
Dates and Times
Fortran Date/Time Utilities: comprehensive module for handling date and time operations with robust error handling and formatting capabilities, by artkula. It can display current date, time, and day of week, show timezone information, calculate days left in the current year, detect leap years, and calculate time differences.
Earth Science
2DGeoHF: object-oriented multithreaded (via the OpenMP API) solver for 2D heat diffusion through different geological materials (rock types), by Matthew Lintern-Monro
buoyant-tracers: code for buoyant tracer simulations, by jmeach97
Coastal Generalized Ecosystem Model (CGEM): biogeochemical model designed to address eutrophication, dissolved oxygen, and acidification dynamics in coastal and freshwater ecosystems, by Cody Simmons and Wilson Melendez. It simulates biogeochemical processes regulating carbon, oxygen, nutrients, phytoplankton, and zooplankton, and includes numerous model formulations and variable phytoplankton functional types that can be modified based on site specific model requirements.
dgswem: Discontinuous Galerkin Shallow Water Equation Model, by Dylan Wood et al.
Flexible Snow Model (FSM2): multi-physics energy balance model of snow accumulation and melt, extending the Factorial Snow Model with additional physics, driving and output options. An associated preprint is A Flexible Snow Model (FSM 2.1.0) including a forest canopy, by Richard Essery et al., EGUsphere (2024).
gflow1: analytic element groundwater solver by Henk M. Haitjema. It solves steady state groundwater flow in a single aquifer, with support for conjunctive groundwater/surface water solutions, and interface seawater intrusion solutions.
H08: global hydrological model that can be applied to elucidate various global water and environmental issues and be used for regional simulations at high spatial resolution, by Chihiro298 et al.
hydroanalyzer_fortran: program to analyze hydrological information, focused on frequency analysis of discharge data, calculating the potential evapotranspiration on a monthly scale using different methods, and performing a simple soil water balance using the Thornwaite method, by Oscar Garcia-Cabrejo
HYPO3D: program to determine the hypocenter and magnitude of local earthquakes, by Milan Werl and Petr Firbas. It solves earthquake location within a 3-dimensional velocity model.
HypoInverse: program that processes files of seismic station data for an earthquake (like p wave arrival times and seismogram amplitudes and durations) into earthquake locations and magnitudes, by Fred W. Klein, updated for use in QuakeFlow
isola: moment tensor retrieval software, a combination of Matlab graphic user interface (by E. Sokos) and Fortran codes (by J. ZahradnĂk), intended for a transparent and detailed manual processing of selected events (earthquakes)
k223d: produces fractal stochastic slip distributions on non-planar faults that are described by triangular mesh, by Shane Murphy. The program will also provide the rupture time for each location on the fault plane for a given nucleation location and rupture velocity. Also StrikeSlipDef to calculate surface displacement due to a slowly propagating earthquake source.
modaem: single-layer, steady-state analytic element groundwater flow model that has been enhanced for use with GMS, by Vic Kelson
Modified_Cam_Clay_Potts: Modified cam clay with Mohr-Coulomb surface in the deviatoric plane, from CriticalSoilModels. Also Strain_Rate_Mohr_Coulomb, associated with the paper Constitutive modelling of non-cohesive soils under high-strain rates: a consistency approach by Luis E. Zambrano-Cruzatty et al., Géotechnique (2024).
NMSplit90: programs to compute splitting functions of normal modes due to Inner Core anisotropy, by Will Eaton, in some cases translating code by Jeroen Tromp
Piecewise Potential Vorticity Inversion (PPVI): ingests model forecast and analysis from the GFS, IFS and GFDL SHiELD models, so that the total potential vorticity (PV) field can be calculated from total Ï, T, and u-,v-wind fields, by Jun Gu
Orchestrator-TSDHN (picv-2025): tool for estimating distant source tsunami parameters using numerical simulations, by David. It combines the TSDHN model in Fortran with an API in Python that processes initial seismic data, such as earthquake location and magnitude, to calculate variables such as: seismic rupture dimensions, seismic moment and crustal displacement.
(T)emperature, Heat Flow (Q), (Tec)tonics (tqtec): calculates the one-dimensional transient thermal field for an area that experiences processes occurring at tectonic plate boundaries, by Matthew Herman et al. The package includes tools for estimating thermochronologic observables corresponding to the temperature history.
Error Handling
assert: simple assertion utility taking advantage of the Fortran 2018 standardâs introduction of variable stop codes and error termination inside pure procedures, by Damian Rouson
Fast Fourier Transform
DataTyped Fast Fourier Transform (dtFFT): performs FFT on a distributed memory cluster, using MPI to handle communications between processes, by Oleg Shatrov. The main idea of this library is to implement zero-copy algorithms in 2d and 3d cases.
File I/O
fcat: port of cat
command used to concatenate file(s) to standard output, by soonsimple
fed: functions to make it easier to create Fortran edit descriptors, by Tomohiro Degawa
Finite Elements
rbf: mode shape interpolation via radial basis functions, by Steven J. Massey
Games and Puzzles
FORage: simple, postapocalyptic, pigeon-themed expedition manager game, by Sebastian Mutz
Fortran-Engine: game engine in Fortran, only using C as a way to call NCurses functions for ease of display, by hyper2snyper. The games created are Snake, Tanks and Dungeon.
General Purpose
fortran-requests: analog to the Python requests module, by Ian Giestas Pauli â a work in progress
fortran-time-measurement: provides timing routines using system_clock
, cpu_time
, date_and_time
, and omp_get_wtime
for the Intel, PGI, GNU Fortran compilers, and QueryPerformanceCounter
on Windows, by Tomohiro Degawa
orbs: wrapper that allows arithmetic operations for stdlib_bitsets, by Tomohiro Degawa. It expands the range of information conveyed by bitsets by providing several operators, including logical, shift, and arithmetic operators on the bitset.
Watch: compute and display the CPU and wall time elapsed at break points in a program, by Beliavsky
Graphics, Plotting, and User Interfaces
FVisualizer: tool made with GTK to visualize math equations, by PoliCoding
Interoperability
node-fortran: bridge allowing Fortran code to be run from Node.js, by IonicÄ BizÄu. Also node.fortran to execute Node.js in Fortran programs.
Interpolation
gf_int_node: subroutines to find the index of the right interpolating node for each data point in an ordered array, by Giulio Fella. It speeds up computation by exploiting the ordering of both the array of interpolating nodes and of the array of data points.
polynomial_interpolation: Lagrange polynomial interpolation with derivatives and error indication, by JosĂ© LuĂs Martins
spline_interpolation_fortran: spline subroutines written by Rondall E. Jones, modernized by JosĂ© LuĂs Martins
Linear Algebra
Bolander-Linear-Algebra-Library: implements several numerical linear algebra techniques for solving systems of equations, finding eigenvalues and decomposition techniques, by Christian Bolander
hello-sparse-blas: minimal sparse BLAS CMake project with Fortran and Intel MKL, demonstrating sparse matrix-vector multiplication, by Jared Frazier
Interpolative Decomposition Library (libid): a related preprint is ID: a software package for low-rank approximation of matrices via interpolative decompositions, by P. Martinsson et al. (2014)
kiss: Krylov-based iterative sparse solvers, by Ivan Pribec
polynomial_arnoldi: polynomial Arnoldi preconditioner for GMRES, applied to the 2D Poisson equation, by Jean-Christophe Loiseau
SpecialMatrices: simple package providing specialized routines for operations such as computing the determinant, inverse, singular value decomposition, and eigenvalues, for common structured matrix types, such as diagonal, bidiagonal, tridiagonal, symmetric tridiagonal, Poisson2D, by Jean-Christophe Loiseau
Materials Science
AMSimulator: code associated with the paper High performance additive manufacturing phase field simulation: Fortran Do Concurrent vs OpenMP, by Shahid Maqbool and Byeong-Joo Lee, Computational Materials Science (2025)
CompDam - Deformation Gradient Decomposition (DGD): continuum damage mechanics (CDM) material model intended for use with the Abaqus finite element code, by Frank A. Leone et al. It aims to provide an accurate representation of mesoscale damage modes in fiber-reinforced polymer composite materials in finite element models in which each ply is discretely represented.
LUSE_ENGR851_ICME: scripts necessary to bridge certain length scales of Integrated Computational Materials Engineering design process, by Joby M. Anthony III
Molecular Dynamics
dynamon: general-purpose script for common calculations with fDynamo, associated with the book A Practical Introduction to the Simulation of Molecular Systems, by Martin J. Field, Cambridge University Press (1999)
laser_diatom_md: time-dependent molecular dynamics simulation of a gas of diatomic molecules (several molecular parameters, such as mass, bond length and force parameters may be chosen), by Shikshokio. A related paper is Dynamics and Hydrodynamics of Molecular Superrotors, by Uri Steinitz et al., ChemPhysChem (2016).
Multiple Precision
814-fm-2001: Algorithm 814: Fortran 90 software for floating-point multiple precision arithmetic, gamma and related functions, by David M. Smith, whose site has the latest version. Also 911-fm-2010, Algorithm 911: Multiple-Precision Exponential Integral and Related Functions, and 786-fm-1997, Algorithm 786: multiple-precision complex arithmetic and functions.
MPFUN2020: thread-safe arbitrary precision package that enables one to perform floating-point computations (real and complex) to arbitrarily high numeric precision, by making only relatively minor changes to existing Fortran-90 programs (mostly changes to type statements), by David H. Bailey. All basic arithmetic operations and transcendental functions are supported, together with several special functions. FPM package by Jacob Williams here. Baileyâs High-Precision Software Directory also has DQFUN: A double-quad precision package with special functions (approx. 66 digits), QXFUN: A quad precision package with special functions (approx. 33 digits), and DDFUN: A double-double precision package with special functions (approx. 30 digits).
QD: double-double and quad-double package for Fortran and C++, by Michael Orlitzky and X. Sherry Li
Neural Networks and Machine Learning
Fortran-ML-Interface: interface to the AIxeleratorService, a library to couple HPC applications with machine/deep learning inference accelerated on GPUs or other devices, from RWTH-HPC
KohonenF08: library for Self-Organizing Maps using object-oriented programming and modern Fortran features, by Oscar Garcia-Cabrejo
Nonlinear Equations
NITSOL2: version of NITSOL, the inexact Newton-Krylov solver, without common blocks and some extra parameters, such as to set the finite-difference precision, by Vadim Zborovskii
Numerical
Burkardt-Fortran-90-codes: codes for cluster analysis, combinatorics, computational geometry, eigenvalues, FFTs, graph algorithms, interpolation and approximation, dense and sparse linear algebra, nonlinear equations and nonlinear least squares, uniform and non-uniform random number generation, quasirandom number generation, optimization, probability distributions, numerical integration, root-finding, sorting, special functions, wavelet transforms, and other topics, by John Burkardt. Codes from his older site are here.
Numeric Library for Modern Fortran (fortran-numeric): deals with integers (handling integer constants, digits, convert to string with format), reals (handling real constants, convert to string with format), and NaN (handling quiet NaN and positive/negative inf as constants, check whether an array of floating-point numbers has at least one quiet nan, positive/negative inf value), by Tomohiro Degawa
Optimization
conmin: subroutine for the solution of linear or nonlinear constrained optimization problems, by G. N. Vanderplaats, updated by Jacob Williams
dfo: package for solving general nonlinear optimization problems that have the following characteristics: they are relatively small scale (less than 100 variables) and their objective function is relatively expensive to compute and derivatives of such functions are not available, from COIN-OR
Diver: fast parameter sampler and optimiser based on differential evolution, by Pat Scott et al.
optgra: optimization algorithm specifically designed for near-linear constrained problems, which commonly occur in trajectory optimization, developed and implemented by Johannes Schoenmaekers, and modernized by Jacob Williams
psqp: sequential quadratic programming algorithm, with simple bounds on variables and general nonlinear constraints, by Ladislav Luksan, modernized by Jacob Williams. Other optimization codes are at Luksanâs site.
schittkowski-test-problems: an associated book is More Test Examples for Nonlinear Programming, by Klaus Schittkowski, Springer (1987)
Partial Differential Equations
Fortran-Heat-Equation-Solver: solves the heat equation in one spatial dimension with the implicit Euler method, spatial discretization by centered finite differences of order 2 and a conjugate gradient solver parallelized with MPI, by Yanel Aina and Elonm
Particle Physics
subnucleondiffraction: calculates diffractive vector meson production at high energy. An associated paper is Revealing proton shape fluctuations with incoherent diffraction at high energy, by Heikki M antysaari and Bjorn Schenke, Physical Review D (2016)
SuperChic: Monte Carlo event generator for central exclusive production, by LucianHL