New Fortran projects

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

continuation of previous message

Physics

chiralpl: simulates vibronic spectra of aggregates of organic chromophores using the Holstein Hamiltonian in the multiparticle basis spectra, by Louis Alvar Minion

CODE-GPSD-3D: code associated with paper Generalized geometric pore size distribution code GPSD-3D for periodic systems composed of monodisperse spheres, by Martin KrĂśger et al., Computer Physics Communications (2024)

Flash-X-snia-stage: highly composable multiphysics software system that can be used to simulate physical phenomena in several scientific domains, by Dean Townsley et al. The Flash-X architecture has been redesigned to be compatible with increasingly heterogeneous hardware platforms.

gensaw: code associated with paper Efficient generation of self-avoiding, semiflexible rotational isomeric chain ensembles in bulk, in confined geometries, and on surfaces, by O. Weismantel et al., Computer Physics Communications (2022)

PyGeTe: implementation Fortran of the Zipoli & Curioni many-body GeTe potential optimised for Monte Carlo simulations in Python, by David Quigley

Single-particle IMage Processing Linux Engine (SIMPLE): package for analysis of cryogenic transmission electron microscopy (cryo-EM) movies of single-particles (Single-Particle Analysis, SPA), by Hans Elmlund et al.

v2qgt: provides an efficient tool for calculating the quantum geometric tensor (QGT) directly from DFT calculations, by yutqian. The code is based on VASPBERRY but includes important fixes and enhancements and extends functionality to support both 2D and 3D materials.

X-ray-induced Thermal And Nonthermal Transitions (XTANT-3): An associated paper is Electron-phonon coupling in metals at high electronic temperatures, by N. Medvedev and I. Milov, Phys. Rev. B. (2020)

Zoa Optical Analysis: cross-platform optical design and analysis tool, by jnez13. It is built on KDP-2 with the primary change being to migrate the UI from using a commercial GUI toolset to gtk4 via the gtk-fortran language binding, so that it can be built and run using open source software.

Quantum Chemistry and Electronic Structure

Atomic Energy NETwork (aenet): collection of tools for the construction and application of atomic interaction potentials based on artificial neural networks (ANN), by Nongnuch Artrith and Alexander Urban. The ĂŚnet code allows the accurate interpolation of structural energies, e.g., from electronic structure calculations, using ANNs. ĂŚnet-PyTorch is an extension of that code to allow GPU-support for the training process of ĂŚnet, substituting the train.x training step.

Behler-Parrinello neural NETwork potential (BPNET): implementation of machine learning potential construction, using modern Fortran for high-performance computation and Julia (under development) for flexible model training, by Yuki Nagai

b-spline-two-e: computes matrix elements for non-relativistic, two-electron atoms using B-spline orbitals, by Edvin Olofsson

nio: program for carrying out natural ionization orbital analysis, by Hrant P. Hratchian and Andrew Bovill

periodic-io: library to read and write most of the atomic file formats and convert between formats, by Moritz Gubler. Supported file formats are .ascii, .in (FHI-AIMS), .xyz, .cif, .gen (DFTB), .qe (QUANTUM-ESPRESSO), and .vasp POSCAR (vasp).

pseudopotential: modernized atomic configuration and pseudopotential generation code, associated with the paper Efficient pseudopotentials for plane-wave calculations, by Norm Troullier and JosĂŠ LuĂ­s Martins, Physical Review B (1991). Also cpw2000, a density functional theory pseudopotential plane-wave code.

standalone_noft: stand-alone version of the DoNOF code for running Reduced Density Matrix Functional Theory (RDMFT) and Natural Orbital Functional Theory (NOFT) calculations, by M. Rodriguez-Mayorga

Root Finding

FORTRAN-Roots: subroutines to find the roots of a single-valued function within a bounded interval, using a combination of Brent’s method, the secant method, and interpolation, and to find the real and complex roots of an nth-degree polynomial, by Bryan Durham

Special Functions

spherical_bessel_fortran: calculates the spherical Bessel function of first kind j_n(x) Formulas 10.1.2, 10.1.19 and 10.1.59 of Abramowitz and Stegun, SphericalBesselJ[n,x] of Mathematica, by JosĂŠ LuĂ­s Martins

Statistics

Elementary Data Analysis Toolkit (EDAT): functions for strings and to compute the correlation, covariance, variance, mean, sum (using accurate pairwise summation), subroutines for I/O, and a module of math constants from math.h, by Kosei Ohara

FJsample: jackknife resampling, with Python bindings, by Ryan Bignell

MCMC f90 library: do Markov chain Monte Carlo simulation from a posterior distribution of unknown model parameters defined by a likelihood function and prior, by mjlaine. Also MOdel ESTimation (Modest), a program package for parameter estimation of mechanistic mathematical models as well as for experimental design.

Strings

bstrith: provides procedures for arithmetic operations on binary numbers in strings, by Tomohiro Degawa

Fortran Tokenizer: basic tokenizer that allows users to easily customize its behavior by defining a function that receives a character(*), intent(in) :: token and returns .true. if the string received by the function is a valid token, by Ian Giestas Pauli

Time Series

CWT: calculates the Continuous Wavelet Transform of a signal using the Morlet and Mexican Hat mother wavelets, by Oscar Garcia-Cabrejo

GARCH: simulation and estimation of ARCH and GARCH processes, used to model the time-varying standard deviation (volatility) of asset returns, with conditional distributions such as the normal, Laplace, and Student t, by Beliavsky

nsmarkov-fortran: subroutines to construct Markov chain approximations of (non-stationary) AR(1) processes as described in the paper Markov-Chain Approximations for Life-Cycle Models" by Giulio Fella, Giovanni Gallipoli and Jutong Pan, Review of Economic Dynamics (2019)

Unit Testing

testdrive_util: provides procedures to improve the convenience of test-drive, by Tomohiro Degawa

3 Likes

update since March 5, full list here

Art and Music

fynth: synthesizer and audio processor, by Jeff Irwin

Astronomy and Astrophysics

AI-based Reconstruction of the Geospace Unified System (ARGUS): an associated paper is Global Empirical Picture of Magnetospheric Substorms Inferred From Multimission Magnetometer Data, by G. K. Stephens et al., JGR Space Physics (2019)

Algorithm for Void Identification in coSMology (AVISM): void finder algorithm combining both geometrical and dynamical information in order to identify voids within a specific input region in which a given set of particles (or a grid) have matter (density) and velocities well defined, by Oscar Monllor-Berbegal et al.

BEAM_beta: Monte Carlo radiative transfer Code for studies of Saturn’s rings, by Daniel Olson

ellc: code associated with paper ellc: A fast, flexible light curve model for detached eclipsing binary stars and transiting exoplanets, by Pierre Maxted, Astronomy & Astrophysics (2016)

EQUIB: solves the statistical equilibrium equation for each ion and yields atomic level populations and line emissivities for given physical conditions, namely electron temperature and electron density, appropriate to the zones in an ionized nebula where the ions are expected to exist, by I. D. Howarth et al.

FLRWSolver_public: provides cosmological initial conditions for the Einstein Telescope. A related preprint is Inhomogeneous Cosmology with Numerical Relativity by Hayley J. Macpherson et al., (2017).

Gadgetviewer: program for visualisation of Gadget N-body simulation snapshots, by John Helly et al. It can read Gadget type 1, type 2 and HDF5 snapshots and provides an interactive display of the particle distribution, optionally with SPH type smoothing and colouring by any quantity that can be read from the snapshot.

Quadratic Interpolated State Transition (libqist): library for fast propagation of second-order relative motion around arbitrary SPICE kernels, by David Cunningham and Ryan P. Russell. Since current and future space mission planning can require relative motion in regimes that are highly non-Keplerian and potentially non-linear, QIST is an attempt to build a generalized relative motion framework for a broad class of gravitational dynamics.

Mock AMR Sunyaev-Zeldovich Calculator (MASC): package associated with the paper Imprints of the internal dynamics of galaxy clusters on the Sunyaev-Zeldovich effect, by Óscar Monllor-Berbegal et al., Astronomy & Astrophysics (2024)

mercury: modified version of the N-body code mercury, by John E. Chambers, associated with the paper Mercury and OrbFit packages for numerical integration of planetary systems: implementation of the Yarkovsky and YORP effects, by M. Fenucci and B. Novakovic, Serbian Astronomical Journal (2022)

Pade-disk-code: simulates hydrodynamic turbulence in protoplanetary disks using a Pade/compact scheme, by Karim Shariff

Pulse_Profile_Simulation: code for a relativistic pulse profile simulation from a rotating neutron star with one or two hot spots on its surface, by Eda Vurgun, based on the paper Hot spots on neutron stars - The near-field gravitational lens, by K. R. Pechenick et al., Astrophysical Journal (1983). Also SPMHD for numerical simulations with smoothed particle magnetohydrodynamics.

SFT-1D: surface flux transport modelling in one dimension (latitude), by Soumyaranjan Dash

Starburst99: stellar population synthesis code for modeling the spectrophotometric and related properties of star-forming galaxies, by Claus Leitherer, updated by 1digitaldesign

stingray: mock cone facility for astrophysical applications, by Danail Obreschkow. Also nbodyx to run direct gravitational N-body simulations, procorr to compute several correlation functions of periodic 3D density fields in a cubic box, and surfsuite, a suite of routines to handle the particle data (positions and velocities) in large cosmological simulations, especially the SURFS simulations produced at ICRAR.

SuperNu: Monte Carlo radiative transfer for supernova and kilonova spectra. An associated paper is Radiation Transport for Explosive Outflows: Opacity Regrouping, by Ryan T. Wollaeger and Daniel R. van Rossum, Astrophysical Journal (2024).

Yale Rotating Evolution Code (YREC): pseudo-2D stellar evolution code with rotation, modern microphysics, and starspots, by Lyra Cao and Kaili Cao

Automatic Differentiation

Differentia: allows for the computation for derivatives, gradients and Jacobians of Fortran subroutines or functions using forward mode automatic differentiation (AD), by Nicholas Wogan, inspired by DNAD and ForwardDiff.jl

hyperdualize-fortran: Python script that converts Fortran source code by replacing standard numeric type declarations (e.g., real, double precision, int, integer) with a custom Fortran type type(hyperdual), from atmmod. It also converts variable initializations—including scalars and arrays—to calls to the hyperdual constructor and automatically inserts a use HDMod statement into modules, programs, subroutines, or functions that need it.

Benchmarks and Benchmarking

fortran_benchmarks: small benchmarks for allocation, intrinsic functions, function pointers vs. if statements, and select case, by Jannis Teunissen

Whetstone: Whetstone performance testing in Java, C, Fortran and Free Pascal, by Anatoly S. Krivitsky

Biology and Medicine

DISCOVER: co-occurrence and mutual exclusivity analysis for cancer genomics data. An associated paper is A novel independence test for somatic alterations in cancer shows that biology drives mutual exclusivity but chance explains most co-occurrence, by Sander Canisius et al., Genome Biology (2016).

Haemflow-cl0: cardiovascular model by Alex Drysdale for the venous and arterial systems based on the paper A concentrated parameter model for the human cardiovascular system including heart valve dynamics and atrioventricular interaction, by Theodosios Korakianitis and Yubing Shi, Medical Engineering & Physics (2006)

Hierarchical Clustering of Correlation Patterns (HCCP): algorithm and software for dynamic domain identification in proteins. An associated paper is Hierarchical clustering of the correlation patterns: New method of domain identification in proteins, by S. O. Yesylevskyy et al., Biophysical Chemistry (2006)

ichthyotox: simulates drunk fish in dynamic environments, by Keeney

Phytoplankton Individual-Based Model (PIBM): an associated paper is PIBM 1.0: An individual-based model for simulating phytoplankton acclimation, diversity, and evolution in the ocean, by Iria Sala and Bingzhang Chen, Geoscientific Model Development (2024)

Climate and Weather

2L-DRM: code associated with paper Two-Layer Dynamic Recycling Model (2L-DRM): Learning from Moisture Tracking Models of Different Complexity, by F. Dominguez et al., Journal of Hydrometeorology (2020)

Cloud Model 1 (CM1): three-dimensional, non-hydrostatic, non-linear, time-dependent numerical model designed for idealized studies of atmospheric phenomena, by David Ahijevych and George H. Bryan

E3SM: Energy Exascale Earth System Model source code, by E3SM-Project

easyclimate-backend: back end for the Easy Climate project for climate data analysis, by Yi Zhang

fortran-open-meteo: Weather Forecasts Download Server for Open-meteo, by Hisashi Takeda

HexKloud: Joe Klemp’s toy cloud model modified by NSSL scientists

Ml2pl: interpolates atmospheric data at model levels to pressure levels, by Lionel Guez. Input and output are in NetCDF format.

Model Coupling Toolkit (MCT): toolkit to support the construction of highly portable and extensible high-performance couplers for distributed memory parallel coupled models, by Robert Jacob et al.

OGSTM: offline transport reaction model used to solve temporal evolution of 3D Eulerian advection and diffusion processes, by Giorgio Bolzon and Paolo Lazzari. The tool is employed in the context of operational oceanography and to perform climate scenario simulations.

System for Atmospheric Modeling (SAM_SRCv6.11): evolved from the Large-Eddy Simulation (LES) model, from KuangLab-Harvard. Documented here.

WAve Model (WAM): spectral wave model, by r-hartmann et al. A related paper is The WAM Model – A Third Generation Ocean Wave Prediction Model, Journal of Physical Oceanography (1988).

Code Tools

dbrew-for: interfaces to the DBrew library for Dynamic Binary Rewritingm by Ivan Pribec

fpm-deps: generates dependency graphs of Fortran packages, by Ivan Pribec

fpm-gdb: plugin for FPM that runs gdb in vim on Linux, by urbanjost

Compiler Tests

fortran_unitialised_vars: simple subroutines that check the ability of gfortran, ifort, and ifx to to detect uninitialized variables, by Martin Dix

Computational Chemistry

CDMSreader: reads molecular transition data from the Cologne Database for Molecular Spectroscopy (CDMS) catalogue to determine the radiative lifetimes of the various states involved in the transitions, by banana-bred

local_dielectric_saturation: Metropolis Monte-Carlo program to study local dielectric saturation in Restricted Primitive Model electrolytes, by David Ribar and janneforsman. Also modified_widom to study the structure and thermodynamics of ionic fluids

M-ANEOS: program for the construction of thermodynamic equations of state, which extends the ANEOS computer code developed at Sandia National Laboratories, by S. L. Thompson et al.

Thermopack: thermodynamic model library for fluid properties and PVT (pressure-volume-temperature) calculations, from SINTEF Energy Research

XIAM-2NQ: spectral fitting code that handles up to two quadrupolar nuclei and 4 internal rotors. An associated paper is XIAM-NQ: Implementation of exact quadrupole coupling, by Sven Herbers,

Journal of Molecular Spectroscopy (2024).

Containers and Generic Programming

bitfield: implementation of 1D bit array, by PierUgit

fll: multi-level linked list library with parallel I/O, used in a project described in Recent Developments in Fun3D and LoCi/CHEM CFD Codes Towards Multiphysics Modeling, by A. Jirasek and J. Seidel (2020)

quadtree-fortran: quadtree implementation by Gidon Bauer

Computational Fluid Dynamics

Canonical Large-Eddy Simulation (CaLES): GPU-accelerated finite-difference solver designed for large-eddy simulations (LES) of incompressible wall-bounded flows in massively parallel environments, built upon the existing direct numerical simulation (DNS) solver CaNS, by Pedro Costa et al.

CO2GraVISim: reduced physics model of the flow of CO2 injected into a porous reservoir, by ajobutler

Drops: simulation code for predicting the equilibrium shape of a droplet on a structured substrate by solving the Young-Laplace equation of capillary hydrostatics. An associated paper is Enabling efficient energy barrier computations of wetting transitions on geometrically patterned surfaces, by Nikolaos T. Chamakos et al., Soft Matter (2013).

EulerFV: 2D unstructured finite volume Euler equation solver, by Andrew C. Kirby

FLOW36: pseudo-spectral code for direct numerical simulation of multiphase turbulence based on a phase-field model approach. An associated paper is FLOW36: A Spectral solver for phase-field based multiphase turbulence simulations on heterogeneous computing architectures, by Alessio Roccon et al., Computer Physics Communications (2025).

FSILBM3D: fluid-structure interaction solver based on Lattice Boltzmann method, by Ankang Gao

IBM_TENO: GPU-accelerated solver for simulating supersonic flows using a combination of the Immersed Boundary Method (IBM) and Targeted Essentially Non-Oscillatory (TENO) schemes, by FallenCastle. It is designed to handle complex geometries efficiently on CUDA-enabled GPUs. Also MHD_GDDC_GPU, a GPU-accelerated code based on the TENO and Gradient Descent Divergence Cleaning method (GDDC) to solve the ideal magnetohydrodynamics equations.

incomp3D: Incompressible Fluid FLow Solver For Equal-Spaced Rectilinear Mesh, by hirotori

ISBN9784274224706-fortran: code from the book Learning Computational Fluid Dynamics in Python (2020) by Takazo Fujii and Tomoaki Tachikawa translated by DSCF-1224

MHIT36: code for direct numerical simulation of Navier-Stokes equation coupled with a phase-field method, Allen-Cahn Diffuse Interface (ACDI), for interface description, by Alessio Roccon et al. There is a multi-GPU version of MHIT36 using cuDecomp (Nvidia only).

MovingEB_CNSAMReX: implementation of a moving embedded boundary algorithm for compressible flows within the compressible Navier-Stokes (CNS) framework in AMReX, by Mahesh Natarajan. Also AxisymmetricJet, a flow solver for compressible, axisymmetric, cylindrical, nozzle jets.

multimat_1drdg: 1D discontinuous Galerkin solver for multi-material flows, associated with the paper Multi-material hydrodynamics with algebraic sharp interface capturing, by Aditya K. Pandare et al., Computers & Fluids (2021)

NCAR Turbulence with Lagrangian Particles (NTLP): simulates turbulent flows using Lagrangian particle tracking to model complex fluid element trajectories, from RichterLab

Polymer_DNS: direct numerical simulation code for channel/boundary layer flows with an external force field, and optional passive scalar and polymer additives, by Ryan Kelly

ppiclF: applications include element-based particle-in-cell simulations, such as Euler-Lagrange mutliphase flow simulation, immersed boundary methods, and even atomistic-scale modeling. An associated paper ppiclF: A Parallel Particle-In-Cell Library in Fortran, by David Zwick, Journal of Open Source Software (2019).

Rocflupicl: solves the three-dimensional time-dependent compressible Navier-Stokes equations

on moving and/or deforming unstructured grids, by Thierry Daoud and ATCouture

SFEMaNS: code to solve the MHD equations in axi-symmetric domains, by Jean-Luc Guermond et al.

SmartRedis-MPI: provides subroutines that facilitate communication between Computational Fluid Dynamics (CFD) solvers and Redis databases, by Maochao Xiao et al. Built on top of the SmartRedis library and Message Passing Interface (MPI), this library simplifies the process of storing and retrieving data from Redis databases in parallel computing environments.

Cryptography

MessageDigest-Fortran: module for computing message digests like MD5, SHA256 and so on using the OpenSSL library, by LaplaceSoda

Earth Science

3dVarBio: variational method for data assimilation, associated with the paper Parallel implementation of a data assimilation scheme for operational oceanography: The case of the MedBFM model system, by A. Teruzzi et al., Computers & Geosciences (2019)

Atmospheric Lagrangian dispersion (ATLASFlor): atmospheric dispersion model tailored to volcanic tephra/ash particles, by Reckziegel Florencia et al.

Community Fire Behavior Model (fire_behavior): simulates the evolution of wildland fires, by Pedro Jimenez Munoz et al.

compute_fsle_ftlv: module for computation of Lagrangian trajectories, Finite-Time Lagrangian Vorticity (FTLV) and Finite-Size Lyapunov Exponents (FSLE), by Diego Cortes Morales and Ismael Hernandez Carrasco

Continuous Runoff and Erosion Hillslope model with DYnamic Surface properties (CREHDYS): an associated thesis is Effectiveness of conservation cropping practices in mitigating runoff, soil erosion, and pesticide surface losses in Northwestern Europe, by TimothÊe Clement

FEOTS: Fast Equilibration of Ocean Tracers, by Joe Schoonover et al.

Global Carbon Assimilation System (GCASv2): atmospheric inversion system described in the paper Regional CO₂ fluxes from 2010 to 2015 inferred from GOSAT XCO₂ retrievals using a new version of the Global Carbon Assimilation System, by Fei Jiang et al., Atmospheric Chemistry and Physics (2021)

iasp: Buland and Kennett Tau-P routines are a suite of programs that calculate seismic wave travel times through a radial earth model specified as velocity as a function of depth. An associated paper is The computation of seismic travel times, by Ray Buland and C. H. Chapman, Bulletin of the Seismological Society of America (1983).

iHydroSlide3D: parallelized and modular modeling software for regional hydrologic processes and landslides simulation and prediction. An associated paper is iHydroSlide3D v1. 0: an advanced hydrological–geotechnical model for hydrological simulation and three-dimensional landslide prediction, by Guoding Chen et al., Geoscientific Model Development (2023).

jimf-cligen532: stochastic weather generator which produces daily estimates of precipitation, temperature, dewpoint, wind, and solar radiation for a single geographic point, using monthly parameters (means, SD’s, skewness, etc.) derived from the historic measurements, by Jim Frankenberger and Roger Lew

LakeModelDriver: lightweight, modular framework for integrating multiple lake models (e.g., FLake, Simstrat) with a unified interface, enabling seamless coupling with the Common Land Model (CoLM) or standalone execution, by Omarjan

National Weather Service River Forecasting System Hydrology Models (nwsrfs-hydro-models): provides timely information related to flooding, water supply, drought, recreation, navigation, and environmental flows, for the U.S. Northwest, by Geoffrey Walters

and Cameron Bracken

OAK: Ocean Assimilation Kit, by Alexander Barth and Luc Vandenblucke

OBS_Trans_Inv: seismological transdimensional Bayesian inversion tools for ocean bottom seismometers (OBS) in marine environments, by jhzhang711

Oceanic Regional Circulation and Tide Model (ORCTM): code that by including nonhydrostatic dynamics can numerically reproduce Internal Solitary Waves (ISWs) dynamics, by HaoHuang

Ocean Successive Orders with Atmosphere - Advanced (RadiativeTransferCode-OSOAA): accurate computation of the radiative tranfer into the Ocean-Atmosphere system including polarisation, coupling terms, and the agitated surface, from CNES. Also Successive Orders of Scattering method coupled with the gaseous ABSorptions (SOS-ABS).

PLUMECALC: determines resident or flux-averaged concentrations in groundwater flow models using the results from a random-walk particle tracking model simulation, by Terry Miller

Potency Density Tensor Inversion (PDTI): an associated paper is Potency density tensor inversion of complex body waveforms with time-adaptive smoothing constraint, by Shinji Yamashita et al., Geophysical Journal International (2022)

Precipitation Runoff Modeling System (prms): deterministic, distributed-parameter, physical process based modeling system developed to evaluate the response of various combinations of climate and land use on streamflow and general watershed hydrology, by Steve Markstrom et al.

PyPestUtils: suite of Python tools based on PEST utilities in Fortran to support parameterization with pilot points, drawing stochastic realizations, and MODFLOW post-processing for structured and unstructured grids, by Mike Taves et al.

QSSP: complete synthetic seismograms for a spherical earth – an all-in-one code for body waves, surface waves, free oscillations, tsunami for uniform ocean, infrasound waves for a standard atmosphere and static deformation, by Rongjiang Wang, modified by nicklinyi

QSSPPEGS_2020: variant of the code QSSP for calculating prompt elasto-gravity signals (PEGS) of an earthquake in a spherically symmetric and elastic earth. An associated paper is Complete synthetic seismograms based on a spherical self-gravitating Earth model with an atmosphere–ocean–mantle–core structure, by Rongjiang Wang et al., Geophysical Journal International (2017). The author has several other seismology codes.

Random Geological Model Generation package (RGM): generates realistic random geological models, including seismic images, faults, relative geological time (seismic horizons), and salt bodies, via a multi-randomization method, by Kai Gao and Ting Chen. The generated models can be used to train machine learning models, e.g., MTI-MTR.

SHIELDS-PTM: large-scale particle tracing code primarily intended for magnetospheric applications. It provides a fast, parallel computing-friendly, and versatile framework for tracing charged particles in arbitrary electric and magnetic fields. An associated paper is Data-optimized source modeling with the Backwards Liouville Test–Kinetic method, by J.R. Woodroffe et al., Journal of Atmospheric and Solar-Terrestrial Physics (2018).

ShoreTrans-fortran: simulates long-term (10-100 years) coastal change in response to sea level rise and sediment supply, accounting for sediment budgeting, shoreface translation, and multiple real-world coastal constraints, by Mohammad Traboulsi. An associated paper is A rules-based shoreface translation and sediment budgeting tool for estimating coastal change: ShoreTrans, by R. Jak McCarroll et al., Marine Geology (2021).

SImulation COde for POLythermal Ice Sheets (SICOPOLIS): 3D model that simulates the evolution, dynamics and thermodynamics of ice sheets and ice caps. An associated paper is A continuum-mechanical formulation for shallow polythermal ice sheets, by R. Greve, Philosophical Transactions of the Royal Society A (1997).

snesim-standalone: an associated report is Sequential simulation drawing structures from training images, by Sebastien Strebelle

soc-rad-conv-fort: radiative-convective equilibrium code using Met Office SOCRATES radiation code, by Hamish Innes.

swatpgl: SWAT+GL improves the applicability of SWAT+ in high-mountaineous & glaciated basins. An associated paper is SWAT-GL: A New Glacier Routine For the Hydrological Model SWAT, by Timo Schaffhauser et al., Journal of the American Water Resources Association (2024).

swb2: modified Thornthwaite-Mather soil-water-balance Code for estimating groundwater recharge, using commonly available geographic information system (GIS) data layers in combination with tabular climatological data, by Steve Westenbroek.

System for Integrated modeLling of Atmospheric coMposition (silam-model): forecasts air quality, wild-land fire smoke, and allergenic pollen, by Mikhail Sofiev and Rostislav Kouznetsov

Trees: pre-processing tool used to virtually build the forest fuel arrays used by FIRETEC and QUIC-Fire, by Alexander Josephson and joliveto1

Unified Gravity Wave Physics (UGWP): gravity wave physics parameterizations developed at NOAA/GSL

Engineering

spice2: general-purpose circuit simulation program for nonlinear dc, nonlinear transient, and linear ac analyses, originally by A. Vladimirescu et al., updated by Ulrich Steinmann

File I/O

FORTRAN-Input-Output-Toolbox: subroutines for reading and writing matrices to CSV files and printing vectors and matrices, by Bryan Durham

readbyte: simple routine to read individual bytes and 4/8-byte reals and integers from any file, by Danail Obreschkow

Finite Elements

Nodal Position Finite Element Method (NPFEM): robust approach for finite element analysis that uses nodal positions rather than displacements to evaluate element strain and strain energy, by Fuzhen Yao

OpenSTAP: FEM solver by Haoguang Yang based on STAP90 by Xiong Zhang. Basic elements and some advanced elements and methods are added, as well as an Abaqus interface.

1 Like

continuation of previous message

Fortran Books and Tutorials

easy: steps to setup a GitHub repository with the Fortran Package Manager, and GitHub actions including FORD documentation and unit tests, by urbanjost

finding-uninitialised-vars-fortran-skillshare: describes how to find uninitalized variables using ifx, ifort, and gfortran compiler options and mentions the DDT debugger, by Sean Bryan

Intermediate Modern Fortran: intermediate course focusing on some of the more recent features which are central to Modern Fortran, by Kevin Stratford. Two main topics are the facilities in Fortran for abstraction and polymorphism provided by classes and interfaces, and the facilities for formal interoperability with ANSI C. Slides with exercises are here.

Introduction to Fortran: course from the UK Met Office aimed at users and developers who know how to program, but have little or no experience in Fortran, and those who may wish to have a refresher in Fortran, by Julien Sindt and William Lucas.

open-catalog: collaborative effort to consolidate expert knowledge on code guidelines for the correctness, modernization, security, portability, and optimization of code written in Fortran, C, and C++ programming languages, from Codee. Also Top 10 Recommendations for Fortran Modernization.

Games and Puzzles

FortranChess: chess program by Dean Menezes

UCSD_p-Trek: port of “Super Star Trek” to the standalone IBM PC version of the UCSD p-System, by Jim Fehlinger

General Purpose

config_fortran: configuration file parser, by Jannis Teunissen et al. One creates configuration variables, by providing a default value and a description, reads a text file in which new values are specified for (some of) the variables, and uses the updated values in the program, so that there is no need to recompile.

evaluate.f: routines for evaluating mathematical expressions contained in strings, a modernization by David Pfister of code by George Benthien

flibs: collection of modules that perform particular tasks, such as, providing interfaces to open=source C libraries, manipulating or examining strings in not too trivial ways, and implementing well-known abstract data types or data structures, by Arjen Markus

fortran-file: functions for file manipulation, wrapping operating system commands, by Hisashi Takeda. The functions are touch, cp, mv, rm, mkdir, rmdir, cldir, print and find.

frsh: shell in Fortran by polybones, with the GNU Readline Library library as a dependency

fstdlib: a standard library, with array utilities, command line processing, a list type, string operations, and unit testing, by Vladimir Terzi

Graphics, Plotting, and User Interfaces

fplt: scientific plotting library for producing high-quality (“publication-ready”) figures quickly by leveraging the GMT(Generic Mapping Tools) C-API and Fortran’s derived types, by Sebastian G. Mutz. FPLT includes procedures for producing geographical maps, xy-plots, heat maps, animated figures, and more.

Iterated Function Systems in Fortran (ifsif): create and design iterated function systems, featuring additive or subtractive color mixing,

multithreaded rendering, post-processing with OpenCV, several built-in useful functions for generating fractals, and image stacking for noise reduction, by Raiden van Bronkhorst

Interoperability

farray: experimental Python array class implemented on top of Fortran arrays, by Ivan Pribec. The goal is to cover a decent subset of the Python array API standard.

pkgfortran: minimal R package for using Modern Fortran code in the backend, by Alberto Pessia

Linear Algebra

sparseSET: library for assembling sparse matrices, by Dorival Piedade Neto et al.

Materials Science

merchant_modeling: performs machining analysis based on Merchant’s theory of orthogonal cutting, which is a predictive model of chip formation that assumes a perfectly plastic workpiece and a sharp cutting edge, by Luis F. M. Alves

Mesh Generation

foap4: combines p4est: Parallel Adaptive Mesh Refinement on Forests of Octrees with OpenAcc and Fortran, by Jannis Teunissen. The goal is to build a simple and compact code for numerical simulations on quadtrees/octrees, using multiple GPUs.

Molecular Dynamics

j_presto: program suite that compiles subprograms for preparing input files and executing molecular dynamics (MD) simulations, specifically for biomolecules such as proteins, by Jinzen Ikebe. This suite features the original computational method, Adaptive Lambda Square Dynamics (ALSD) simulation, which enables comprehensive conformational sampling by enhancing conformational changes in specific regions of the molecule.

Molecular-Dynamics-Simulation: molecular dynamics simulation program for simulating Lennard-Jones particles, with Python-based analysis tools, by Fuad Hasan

Non-adiabatic EXcited-state Molecular Dynamics (NEXMD): command-line program to understand the non-radiative relaxation of a main-block molecule with 100s of atoms and 10s of relevant excited states on the picosecond time scale after a vertical photoexcitation, by Walter Malone et al.

Neural Networks and Machine Learning

ML4ESM: code associated with paper A Fortran–Python interface for integrating machine learning parameterization into earth system models, by Tao Zhang et al., Geoscientific Model Development (2025)

pytorch_from_fortran: PyTorch neural network called from Fortran, by Chris DeGrendele. A C helper library (built with Python/NumPy C APIs), allows the Fortran code (via iso_c_binding) to directly execute the PyTorch model and exchange numerical data.

TensorFlow to Fortran (tf2): enables the integration of TensorFlow models into C++/Fortran projects seamlessly, without the need for TensorFlow installation or compilation, by Ivan Zanardi

Numerical Methods

ectrans: global spherical harmonics transforms library, extracted from the IFS, by Sam Hatfield et al. It contains both CPU and GPU (Nvidia) code-paths.

fortran-approx: enables approximate comparisons, defining custom operators such as .aeq., .ane., .alt., .ale., .agt., and .age. that perform comparisons that take the specified tolerance into account, by Yuta Suzuki

ForTran LIBrary for numerical analysis (FTLIB): some topics covered are numerical integration, root-finding, and fitting polynomials to surfaces, by fradevita

fortranpack: numerical and scientific programming package that combines many FPM packages, covering interpolation, optimization, CSV file I/O, directed acyclic graphs, ODEs, machine constants, searching and sorting, JSON files, RNG, nonlinear equations, numerical differentiation, root-finding, plotting, numerical integration, and spline approximation, by Jacob Williams

ieee_class_fortran: additional functions for ieee_class_type, by DSCF-1224

libslam: algorithms used for space applications, such as NEPTUNE, by Christopher Kebschull et al. src/math has code for interpolation, linear algebra, mathematics, random number generation, sorting, and statistics.

numerical-analysis: exercises from the textbook Introduction to numerical analysis by J. Stoer and R. Bulirsch, by Jeff Irwin

Ordinary Differential Equations

dae4py: Python wrappers by Jonas Breuling for the daskr, daspk, dassl, pside, and radau Fortran codes

daskr: modernized version of DASKR, a differential-algebraic system solver with root-finding, by HugoMVale

Parareal-Lorenz: implements both sequential RK4 and parallel Parareal solvers to efficiently simulate four dynamic regimes (non-walker, regular walker, chaotic walker, oscillations), from KyFaxTeam

sundials_cuda_fortran: interfaces for the NVector and Magma Dense SUNMatrix for Sundials, by Victoria Guenter. An associated talk is GPU Acceleration of the SUMMA-SUNDIALS Land Model.

Optimization

limSolve: R package with Fortran code for finding the minima of linear or quadratic functions subject to linear equality and inequality constraints, by Karline Soetaert et al.

Quadprog: code for convex quadratic programs by Jean-Christophe Loiseau, updating code by Berwin Turlach

Robust-Gauss-Newton-Algorithm: RGN algorithm introduces three heuristics to enhance its performance on nonlinear least squares problems: (i) the large sampling scale scheme to capture large-scale features of the objective function, (ii) the best-sampling point scheme to take advantage of free information, and (iii) the null-space jump scheme to escape near-flat regions. An associated paper is A robust Gauss-Newton algorithm for the optimization of hydrological models: From standard Gauss-Newton to robust Gauss-Newton, by Youwei Qin et al., Water Resources Research (2018).

StochOptim: object-oriented routines to sample a parameter model space and optimize objective functions:

Metropolis-Hastings algorithm, Differential Evolution, Particle Swarm Optimization, Competitive Particle Swarm Optimization, and Covariance Matrix Adaptation - Evolution Strategy, by Keurfon Luu. Also EvoSeis, a software package for earthquake seismology using evolutionary algorithms as optimization methods.

Parallel Programming

Custom MPI Wrapper (c_mpi): implementation of MPI wrappers that bind directly to native MPI library routines using ISO_C_BINDING, by Gaurav Dhingra and Aditya Trivedi. The goal is to eliminate intermediate C wrappers and call MPI functions directly from Fortran.

fortran_mpi: MPI wrappers that bind directly to native MPI library routines using ISO_C_BINDING, by Gaurav Dhingra and Aditya Trivedi. The goal is to eliminate intermediate C wrappers and call MPI functions directly from Fortran.

lecture_fortran2gpu: codes from a seminar “Migrating Fortran Programs Parallelized with MPI+OpenMP to GPUs” in Japanese, by Kazuya Yamazaki

OpenACC Validation and Verification (OpenACCV-V): OpenACC test codes validating and verifying implementations of features and its conformance to the OpenACC specification, from the OpenACC User Group

Partial Differential Equations

ChiDG: framework for solving sets of partial differential equations using the discontinuous Galerkin method on Chimera-overset grid, by Nathan A. Wukie et al.

Particle Physics

EventProducer: produce events for FCC-hh at a center of mass of 100 TeV and for FCC-ee, from HEP-FCC. Any other future collider can also be supported by this framework.

figures_2025_two_photon_resonance_fluorescence: Python and Fortran scripts for generating the data and plots for the preprint Two-Photon Resonance Fluorescence of a Three-Level Ladder-Type Atom by Jacob Ngaha et al.

FLUE_Lat: calculates various gluonic quantities in lattice QCD, including various wilson loops or F_uv, by Ryan Bignell

Jet_parton_cascade: framework to couple the jet parton shower and parton cascade, by Wenbin Zhao. Also Coalescence_Fragmentation_code and nucleon-coalescence-code, to generate the light nuclei, deuteron and triton, by the coalaescence process.

nnlocal: program associated with the paper NNLOCAL: completely local subtractions for color-singlet production in hadron collisions, by Vittorio Del Duca et al., (2024)

Q-ball: adaptive solver of the gauged Q-ball equations of motion. An associated paper is Dynamics of U(1) gauged Q-balls in three spatial dimensions, by Michael P. Kinach and Matthew W. Choptuik, Physical Review D (2024).

Plasma Physics

EPOCH: particle-in-cell code for plasma physics simulations. An associated paper is Contemporary particle-in-cell approach to laser-plasma modelling, by T. D. Arber et al., Plasma Physics and Controlled Fusion (2015). Also Cylindrical EPOCH, a version of EPOCH re-written using cylindrical co-ordinates, for quasi-3D laser-plasma simulations.

Galerkin Variational Equilibrium Code (GVEC): generates 3D magnetohydrodynamic (MHD) equilibria. An associated paper is Computing MHD equilibria of stellarators with a flexible coordinate frame, by Florian Hindenlang et al., Plasma Physics and Controlled Fusion (2025).

Gyrokinetic Advanced Collision Moment Solver (gyacomo): MPI code that solves the nonlinear gyrokinetic Boltzmann equation in the delta-f flux-tube limit with a moment-based approach derived from a Hermite-Laguerre velocity space representation. An associated paper is Gyrokinetic moment-based simulations of the Dimits shift, by A.C.D. Hoffmann et al., Journal of Plasma Physics (2023).

HYPIC: code associated with paper HYPIC: A fast hybrid EM PIC-MCC code for ion cyclotron resonance energization in cylindrical coordinate system, by Mingyang Wu et al., Computer Physics Communications (2024)

Plasma in a Linear Uniform Magnetized Environment (PLUME): numerical code that solves the Vlasov-Maxwell dispersion relation in a hot magnetised plasma, by Kristopher Gregory Klein

Physics

Combined Optical and Maxwell-Bloch Equations (CoOMBE): code associated with paper CoOMBE: A suite of open-source programs for the integration of the optical Bloch equations and Maxwell-Bloch equations, by R. M. Potvliege and S. A. Wrathmall, Computer Physics Communications (2025)

DICEBOX: OpenMP parallel version of DICEBOX for capture on isolated resonances (energy-, spin- and parity-well defined initial state), by Stanislav Valenta and Jiri Kroll

FuzzifiED_Fortran: Fortran code in the Julia package FuzzifiED intended for exact diagonalisation (ED) calculations on fuzzy sphere, by Zheng Zhou et al.

he3lib: provides constants and functions for various He3 properties, by Vladislav Zavjalov

Heisenberg_code_sparse_csr_fortran: Heisenberg spin models and entangleement entropy measurements, by Jakub Andrzej Jastrzebski and Maciej Bieniek

MC_GPU: GPU parallel Monte Carlo code for patchy particles with the model potential described in the paper Programming patchy particles to form complex periodic structures, by D. Tracey et al., The Journal of Chemical Physics (2019)

Parallel Integral Discrete Ordinates Transport Solver (PIDOTS): software application for studying an alternative iterative and parallel solution technique for linear, deterministic neutral-particle radiation transport, by Joe Zerr et al.

particle_core: collection of modules that make up the basic parts for a particle simulation, by Jannis Teunissen et al.

phtools: pre- and post-processing tools for phonon-based calculations, by Antonio Cammarata. Phonchar Calculates the atomic character of phonon eigenvectors, eigmap calculates the map between different eigenvectors via scalar products, and qpoints extracts phonon eigenvectors and eigenvalues.

simmsus: code that simulates the motion of a system of interacting particles, initially developed for studying the physics of magnetic spherical particles in suspensions in order to better understand the properties of magnetic fluids (ferrofluids), by Rafael Gabler Gontijo and Ciro Alegretti

SM-FMM: solid mechanics fast multipole method based on elastic Green’s function and accelerated using FFTs, by Miroslav Zecevic

SOURCES4D: code for computing neutron source rates and spectra from spontaneous fission (including delayed neutrons) and (alpha,n) reactions in homogeneous materials and (alpha,n) reactions in single-interface and two-interface geometries, by W. B. Wilson et al.

Universal Fieldline Tracer (UFiT): traces magnetic field lines in a range of magnetic geometries, by Val Aslanyan

Quantum Chemistry and Electronic Structure

bsprvse: solves the (ro)vibrational SchÜdinger Equation with a basis of B-splines, optionally with a complex absorbing potential, by banana-bred

bzint: simple library for the analytic evaluation of integrals of the delta and Heavyside functions in a simplicial tesselation of the Brillouin zone, by Matthias Auf der Maur. An associated paper is “Analytic quadratic integration over the two dimensional Brillouin zone”, by G. Wiesenekker et al., J. Phys. C: Solid State Phys. (1988).

Dissociative Recombination and Photo-Ionization (DRIP): code used to study dissociative recombination, but the framework upon which it is based allows for the calculation of RVE/PI cross sections and reaction rate coefficients, by banana-bred

Electronic Structure to k(T,P) (EStokTP): generates rate constants relying on calls to external codes to perform electronic structure calculations and master equation simulations, by Carlo Cavallotti et al.

General Contraction Code (GeCCo-public): implements the internally contracted multireference theory, by Andreas Koehn et al. In addition, it also provides arbitrary order coupled-cluster calculations (for closed-shell cases) and explicitly correlated methods.

JuKKR: full-potential Korringa-Kohn-Rostoker Green function code, by Philipp Rüßmann et al. The most important features of the Jülich KKR codes include the possibility to perform relativistic calculations, predict scattering effects, and treat finite-sized clusters or very large systems.

Multiwfn_compile: code associated with paper A comprehensive electron wavefunction analysis toolbox for chemists, Multiwfn, by Tian Lu, Journal of Chemical Physics (2024)

OneDMin: calculates Lennard-Jones interaction parameters from intermolecular potentials via 1D minimizations. An associated paper is Lennard–Jones parameters for combustion and chemical kinetics modeling from full-dimensional intermolecular potentials, by Ahren W. Jasper and James A. Miller, Combustion and Flame (2014)

rslmtoasa: ab initio code based on Linear Muffin-tin Orbitals within the Atomic Sphere Approximation. Instead of solving the eigenvalue problem by diagonalization, RS-LMTO-ASA uses the recursion method (Chebyshev or Haydock) to calculate the local density of states in real-space.

SHRED: density functional theory for extreme conditions, by Alexander J. White and Ondrej Certik. It is designed to tackle numerically difficult problems for large-scale disordered systems and/or high-temperature (dense plasmas) calculations.

TBKOSTER: simulation package for the simulation of magnetic materials developed at the French Alternative Energies and Atomic Energy Commission, designed to provide a community standard tool for ab initio simulations of magnetic materials with high performance and an easy-to-use interface. An associated paper is Spin dynamics from a constrained magnetic tight-binding model, by Ramon Cardias et al., Physical Review B (2021).

uptight: versatile empirical tight-binding library. An associated paper is Transferable tight-binding model for strained group IV and III-V materials and heterostructures, by Y. Tan et al., Physical Review B (2016)

WignerD: routines to calculate the Wigner D-matrix and d-matrix. An associated paper is High-precision evaluation of Wigner’s (d) matrix by exact diagonalization, by X. M. Feng et al., Physical Review E (2015).

Random Number Generation

melg-64-fortran: code by DSCF_1224 for the algorithm of the paper Implementing 64-bit maximally equidistributed F2-linear generators with Mersenne prime period, by Shin Harase and Takamitsu Kimoto, ACM Transactions on Mathematical Software (2018)

pcg-fortran: PCG is a family of simple fast space-efficient statistically good algorithms for random number generation. Unlike many general-purpose RNGs, they are also hard to predict. This implementation is by DSCF_1224.

Reactor Physics

Simple Neutron-Transport Equation Solver (SNES): 1D discrete-ordinates neutron transport code, with diamond-difference and linear-discontinuous variants, by Michael Sleigh

Root Finding

gssFortran: tests using class(*) to bring an arbitrary objective function into the algorithm and compare its efficiency with directly coding golden section search for a specific optimization, by Hui-Jun Chen

Sorting

Fortran-QuickSort: quicksort via pure procedures, by Beliavsky, adapting code of Alan Miller

Special Functions

libcoul90: calculates real-valued Coulomb and Bessel functions for real-valued arguments, with code by A. R. Barnett updated by banana-bred

libcoulcc: calculates complex-valued Coulomb and Bessel functions for real-valued arguments, by banana-bred. An associated paper is COULCC: A continued-fraction algorithm for Coulomb functions of complex order with complex arguments, by I.J. Thompson and A.R. Barnett, Computer Physics Communications (1985).

sht_py: spherical harmonic expansion routine in Python+Fortran, by Hideyuki Hotta

Statistics

bsamGP: R package with Fortran code for Bayesian Spectral Analysis Models using Gaussian Process Priors, by Seongil Jo et al.

Fortran Statistics and Machine Learning Library (fsml): scientific toolkit consisting of common statistical and machine learning procedures, including basic statistics (e.g., mean, variance, correlation), common statistical tests (e.g., t-test, Kolmogorov-Smirnov), linear parametric methods and models (e.g., principal component analysis, discriminant analysis, Bayesian classifier), and non-linear statistical and machine learning procedures (e.g., k-means clustering), by Sebastian G. Mutz

NScluster: R package with Fortran code for simulation and estimation of the Neyman-Scott type spatial cluster models. An associated paper is Parameter Estimation and Model Selection for Neyman-Scott Point Processes, by Ushio Tanaka et al., Biometrical Journal (2008).

pod_using_fortran: extracts Proper Orthogonal Decomposition (POD) modes, by AndrÊs Castillo-Castellanos, based on a code Empirical Orthogonal Function (EOF) software/Principal Component Analysis (PCA) software by David W. Pierce

polyfit: toolbox for performing and manipulating polynomial fits to data with statistical uncertainties, by Pablo López Ríos. It uses Monte Carlo resampling to obtain uncertainties on quantities of interest, such as values and derivatives of the fit function, intersections between fits to different datasets, etc.

rpact.as251: R package that integrates Charles Dunnett’s AS 251 FORTRAN 77 algorithm from the paper Multivariate Normal Probability Integrals with Product Correlation Structure, Journal of the Royal Statistical Society Series C: Applied Statistics (1989)

Time Series

system_dynamics: code for simulation of dynamical systems and data assimilation, by Joaquim Ballabrera

Unclassified

finbound: internal boundary processing library, by Nkzono99

RADCAL: library of subroutines for calculating radiative properties of gaseous species and soot, from firemodels. It computes the spectral properties of the radiation participating species at discrete values of the spectrum (expressed either in wavenumber or in wavelength) and temperature, and returns two alternative mean absorption coefficients for each spectral band.

retrocomputing: exploring IBM 704 FORTRAN, by Hugh Coleman. PyFortran is a Python interpreter for early FORTRAN, i.e. to run programs written for FORTRAN on the IBM 704 and FORTRAN / GOTRAN for the IBM 1620 or FORTRANSIT on the IBM 650, by mdoege

2 Likes